33 Comments
- helixblue, on 10/12/2007, -0/+5Interesting. The gist is: Programmers should learn radically different languages like LISP and Scheme rather than similar languages like C, Ruby, Perl. This concept is practiced in Computer Science, in order to get people to broaden the way they think of solutions. I think this article is interesting from an academic perspective, but perhaps understates the advantages you may get between using similar languages for different tasks.
That said, I think it's time I learn a radically different language, just for the hell of it. :) - jesusphreak, on 10/12/2007, -0/+3Why the focus on Ruby? Isn't this applicable to any Algol-type language?
- mrtom852, on 10/12/2007, -0/+2Bizarre theory. Trying a new language is a useful way of seeing if you can do things more efficiently. Either quicker at runtime or quicker in development. I don't see why Ruby is singled out; it's as if he started with some rant about Ruby and ended up with that.
I do agree that it's good to learn different types of languages but who wouldn't agree with that? - corbanbrook, on 10/12/2007, -0/+2Ive been using ruby for 5 years now, and find it one of the most enjoyable and well thought out languages I have ever coded in. I find it really funny that now that RubyOnRails hype has brought a lot of attention to the language and people are lining up to bash it when they have no idea of its capabilities.
.. and people that think RubyOnRails and AJAX are synonymous.... that bugs me too.
I guess for people who use the ruby language, seeing the thousands of amateur PHP programmers out there critiquing it is really silly and annoying. - monolith, on 10/12/2007, -0/+2Wow... so how does that navel look?
- Arevos, on 10/12/2007, -0/+2Whilst I agree with the basic premise of the article, that programmers should learn a broad range of languages, I don't think that Ruby is a bad choice. Compared to languages like C++ or Java, Ruby has a very advanced and complete object model. Ruby's use of blocks is also something programmers should know about, as its tantamount to anonymous functions.
This said, some things about Ruby just rub me the wrong way, which may be why I find myself programming in Python instead. Those silly prefixes for one, and whyever is there distinction between methods and blocks? It's almost as bad as Java's superfluous 'new' operator!
Lisp is nice, but doesn't have the libraries that Python, Perl and Ruby have in abundance. - apheleon, on 10/12/2007, -0/+1yeah. this article really has nothing to do with ruby itself, other than the fact that it is a relatively new language.
- DavidDigg, on 10/12/2007, -0/+1Lisp is not well suited to reading fast.
I used to be a Scheme devotee, but I switched to Python over a year ago and I haven't looked back. The "bend your mind" endeavor is worthwhile, but business realities often trump nice ideas, and reading lisp all day will give you a totally unnecessary headache.
Syntax is hardly the most innovative idea that Lisp brought to the programming language universe. I'd have to say tail-call elimination and lambda are two really great mind-bending ideas (although again, not necessarily good things in a production environment).
However Scheme is probably one of the best pedagogical languages, since it can be understood completely (i.e. build your own meta-circular interpreter) in one semester. - Kam3k, on 10/12/2007, -0/+1Surely anyone into programming should at least look at Lisp but also python and ruby. I think the benefit of learning ruby having already known C is far greater than 12.5%, as is the benefit of learning python. I certainly benefited from learning Java after already knowing C,PHP etc. but when I learned Python and especially Ruby, it changed my whole expectation of a programming language, and my approach to problems.
- cha0sth30ry, on 10/12/2007, -0/+1The problem with this is that functional languages is that while they are really powerful; they are also really hard to understand and learn for the majority of programmers. Moreover Ruby and Python already have some features of functional languages like Lisp or Haskell, that say languages like C and Java do not.
Another key difference in Python and Ruby is that there is a lot less intermediate things to learn and figure out as opposed to Java before things get interesting (I should know I'm a Java programmer).
Personally I think it's good to both learn AND use a programming language before you make a quick and broad statements/judgements regarding them. - organic, on 10/12/2007, -0/+0Ruby is for Nuby's..sorry had to say it
Ruby is a great language for people just getting in to programming. The uncluttered syntax and multiple ways of doing thigs makes for fewer syntax errors and a much more pleasant experience. However given some of the great introspection features and other dynamic metaprogramming features, ruby is great for hard-core users as well. It's like chess, easy to learn, hard as ***** to master. - jesusphreak, on 10/12/2007, -0/+0AJAX isn't a language, though...
- bigA, on 10/12/2007, -0/+0Ruby is a great language for people just getting in to programming. The uncluttered syntax and multiple ways of doing things makes for fewer syntax errors and a much more pleasant experience.
I remember the same being said about Visual Basic! - CaptHarlock, on 10/12/2007, -0/+0Python is better if you intrested in make a seamless jump that can be integrated in the current environment that you use.
IronPython or Jython anyone? - inactive, on 10/12/2007, -0/+0I respond to this on my blog: Lisp vs Algol
- astyler, on 10/12/2007, -1/+1didnt anybody else find it odd that in the example, although the guy learned C first, he didn't learn about Garbage Collection until he learned Java? laugh.
- cha0sth30ry, on 10/12/2007, -0/+0Not everyone is a linguist or a calculus expert. Lambda seems easy to some, yet very difficult for others...
Yes I agree with Metal H. The cost of learning languages within the same broad family is a lot less than learning one with a completely different paradigm. Besides like I said before: both Python and Ruby have features of functional languages - so it is useful and difference from say C, Perl, or Java.
Moreover some of the languages that the article mentioned while somewhat similar, are also different as night and day. For ex, while Perl claims to be object oriented, it's just a hack; and it's still mainly as just a procedural language. - clementi, on 10/12/2007, -0/+0Interesting. I'm not a linguist, but as I understand it, the author's argument rests on a version of the Sapir-Whorf hypothesis. There may be something to it.
In any event, I agree with his admonition to learn new, interesting, diverse languages. - Metal_Hurlant, on 10/12/2007, -0/+0The time spent to learn a new language is roughly proportional to the amount of new concepts in that language.
I say "roughly", because there's also a constant time used to go through the new syntax and the standard libraries. In practice, experienced programmers picking up Ruby only spend that constant time, which makes it fairly cheap to learn.
So while the existence of that constant time means there is a diminishing return in learning new languages for the sake of it, it's not nearly as bad as the article makes it sound. - astyler, on 10/12/2007, -0/+0if you are a programmer and you want to broaden the way you think, check out SML. (SML of New Jersey specifically). Very cool language, you can do powerful functions in very few lines. note: it is a functional language. not for actual use, just a cool way to program.
- tjogin, on 10/12/2007, -0/+0Ruby is a great language to learn if you're the least bit interested in improving your OO skills, not to mention learning about how simple approaches often trumps complicated ones.
- RoyBatty, on 10/12/2007, -0/+0No, no, no
He wants to paint Ruby into the Algol corner when it's really more of a Lisp/Smalltalk hybrid. I'm not sure what his bias is...maybe Lisp or Python just from looking at his blog but his generalization has really failed. - burke, on 10/12/2007, -0/+0"He wants to paint Ruby into the Algol corner when it's really more of a Lisp/Smalltalk hybrid."
Well, according to http://tinyurl.com/cj5j2, (Very interesting chart, BTW) Ruby is descended from:
Python (Algol)
Smalltalk (Lisp)
Eiffel (Algol)
I don't think he's wrong to paint this into the Algol corner. Although there are remnants of Lisp, Ruby is (IMO) *much* more closely related to Algol than to Lisp.
If you've ever tried to bluff your way through Lisp or Scheme, you'll understand :) - mfearby, on 10/12/2007, -0/+0I couldn't quite put my finger on why I was so apathetic towards Ruby until I read this article. There are only so many languages the world needs or one person can seriously bother learning before you're just wasting your time dabbling in "the latest thing". Sure, there are mind-exercising benefits to learning a new language, but when you have things to accomplish, taking time out to seriously evaluate another language is time that could be better spent getting your job done.
An IT department that churns out web-based solutions, or any other, needs to have a fairly limited stable of languages at its disposal so that it can support each one in a timely and efficient manner. Having your collection of offerings written in Perl, Python, PHP, Java, ASP, ASP.NET, and Ruby is just going to make your life a nightmare. Pick two, maybe three, and leave the rest to the fashion victims. - kdehead, on 10/12/2007, -0/+0its always interesting to hear an alternative , contrarian viewpoint.
digg++ - tarun, on 10/12/2007, -0/+0Update: Author has written a follow up article http://weblog.hypotheticalabs.com/?p=65
Just wanted to say, my CS education was at a medium sized school, small department, but still awesome as far as exposure to different languages. The functional languages like ML and Scheme were pretty neat to learn and for certain apps they are the best choice.
It's just cool to step out of OO-land sometimes and look at things in a different manner. - peaceofmind, on 10/12/2007, -0/+0ive never tried ruby..does it run on my php server?
- skidooer, on 10/12/2007, -0/+0What ever happened to using the right tool for the job?
Ruby is well suited to certain problems, and should be used when it's the best tool. When there is a better tool for a problem, use it. It's not that hard of a concept, yet very few people actually understand it. - tolbs, on 10/12/2007, -0/+0In my opinion Ruby is a great starter language for those completely naive to scripting languages yet have some understanding in non-scripting languages like C++ and Java. Other than that, eh. It's a nice language to know and it's pretty fun to program in, but right now I see no benefit (individually) as it's pretty much just perl and rexx at my workplace. I do however, have a lot of time on my hands, so I went about and got educated anyways.
- britneysbaby, on 10/12/2007, -1/+0ruby this ajax that..whatever happend to logo the turtle?
- secretivecoward, on 10/12/2007, -2/+0Ruby is for Nuby's..sorry had to say it
What is Digg?
Digg is coming to a city (and computer) near you! Check out all the details on our