--0016361e847c021f910499e27604 Content-Type: text/plain; charset=ISO-8859-1 On Fri, Jan 14, 2011 at 7:34 AM, Jonas Pfenniger (zimbatm) < jonas / pfenniger.name> wrote: > Hi rubyists, > > this is a general census to get developer feedback. Please post the > issues you encounter when developing in ruby. This can range from > syntax issues, to library support, documentation, or anything that is > a roadblock when developing in ruby. > > After the thread settles down, I will build a report. This could be > useful to know, for example, what actions to take next to make our > favorite language shine even better. I can't guarantee it will be > taken in consideration by the core developers, but at least I can > assure you I will try to pick the ones I can handle and solve them > myself. > > To avoid having this thread get out of hand, please follow these three > rules: > > * Don't post more that once in this thread (+1 count as a post :-p) > * Try to be constructive on your remarks > * If you really have to answer a specific point, make a new thread > (it can be done by changing your reply's subject) > > Let the remarks flow ! > zimbatm > > Can't help but notice that 2/3 of the OP's rules are already violated :P In no particular order * All the gross-ness that is working with files. For an example, `$ bones create some_project > /dev/null ; cat some_project/lib/some_project.rb` Also, having to constantly File.dirname(__FILE__) everywhere. I always feel so embarrassed when I am showing non-rubyists code, and have to write something like that. Current dir is so common, it should have its own thing. And if I am going to see it in normal coding (which I am with the 1.9.2 changes) then can it please not be wrapped in underscores. * define_method should be public. Even the docs have to violate that in order to show how it could ever be useful. http://ruby-doc.org/core/classes/Module.html#M000497 * define_singleton_method should exist So you don't have to do (class << self ; self ; end).send :define_method "meth" do end (okay, I know there is finally a singleton_method, and a public define_method would get rid of the send hack, but still ;) * Ranges should be able to go up and down I feel like they are a great idea, but have just way too little power. Really only used for things where there are already equivalent alternatives like iteration (1..5).each{} vs 1.upto(5).each{} and checking boundaries (1..5) 3 vs 1<0&& 3<P * Ranges have weird behaviour when defined with 2 vs 3 dots. I would expect the internal representation to be the same, like single vs double quoted strings, but instead they are different. I assume this is to make it so you can use any data at all with a range, including your own. But I don't think anyone ever does this, and I think it handicaps ranges and makes it dangerous to use them for anything more than the simplest of examples, like the ones given just above. r1 , r2 ...5 , 0..4 enum1 , enum2 1.each , r2.each r1.all? { |e1| e1 enum2.next } # true r2.all? { |e2| e2 enum1.next } # true r1 r2 # false r1.first r2.first # true r1.last r2.last # false r1.last r1.to_a.last # false r2.last r2.to_a.last # true r1.to_a r2.to_a # true * The ability to ask a method what file / line of code it was defined on. When code is defined with metaprogramming and it is hard to know where to go to figure out how it behaves http://twitter.com/tenderlove/status/25614816215310336 http://twitter.com/tenderlove/status/25615989907394560 * It would be nice if we could play well with the Debian folks. I don't know if there is a good solution to that or not, but I think it hurts our community. For example, they took Ruby off our school computers, I think for this reason (I don't know that for certain, but our sysadmin doesn't go for it if it isn't blessed by Debian, and I've never heard of any other language being removed). * Well documented STDLIB Somehow I keep finding new gems in here. I think it is because when I sat down to go through all the stdlibs, I didn't have the knowledge to know what some stuff was, or how to use it, and it wasn't documented. I think it would be a lot easier to appreciate if it was well documented. It also makes Ruby look neglected that some of it has no documentation at all. * It would be nice to have a way to distribute work to non-developers I'm with David on this one, when I realized I had no way to reliably distribute something that was working on my computer to someone else, that was a sad day for me. I think it also makes other people take it less seriously, because all the programs they interact with are somehow distributed to them, but mine can't. I tried playing with a few, I think they were ruby2exe, and ocra, but couldn't figure out how to get them to work. * I'd love to see a Ruby wiki Okay, this isn't a language thing, but where people can aggregate knowledge on different topics. For example, we love to talk about how great testing is, but I had to wait more than a year to get the RSpec book. What if that information was easy to find, and comprehensive, and easy to update. Then instead of condescendingly saying "and you are testing, aren't you?" (can't remember who said that, but I wanted to smack them) you could say "go *here* for a tutorial to get you bootstrapped into the topic". I still don't know wtf a runner is, but at least I know how to make my rake files just as capable as if I ran the command by hand (which is how I have been handling it until now). Or just generally, some community affirmed path to go from not knowing something to knowing it. Rails has a wiki (not sure how good it is), and they have the guides (which are really amazing), and they have screencasts that the whole community rallies behind. I just learned about sockets a couple of days ago. From a Lisp book. They were always scary to me, but then I saw how easy they are, and couldn't help but think "That's it?! Why don't I already know this?" I guess I feel like I shouldn't have to find my own way out of ignorance, I wish we had conspicuous, empowered, accredited, exciting, easy ways to get a piece of knowledge. And if anyone saw Uncle Bob's Rails talk ( http://blip.tv/file/2089545/), he said "There is a tremendous amount of effort being put in by people trying to create testing frameworks, and easy ways to test. So I am very encouraged by that, but I am not entirely encouraged, because I think that this community is growing very rapidly, and the disciplines may not grow with it." @ 27min. This is part of his concern that "what killed Smalltalk could kill Ruby too". That's not to say that we don't have anything, Satish Talim and Gregory Brown have each put a lot of work into really helping educate people. I would like to see more of that, and have it be more comprehensive, and more prevalent. Anyway, those are mine :) Hope they are helpful. If anyone wants to address any of them, just start a new thread. --0016361e847c021f910499e27604--