--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--