5 ms·
You have two things to consider: Python vs. Ruby and Rails vs. Django. Steve Yegge has made a good write-up on languages: http://steve.yegge.googlepages.com/t
by 1gor 18y ago
You have two things to consider: Python vs. Ruby and Rails vs. Django.
Steve Yegge has made a good write-up on languages: http://steve.yegge.googlepages.com/tour-de-babel http://steve.yegge.googlepages.com/tour-de-babel. Steve is a top notch programmer with brains and eloquence. He was one of the first hackers at Amazon. Now he works at Google, and Google has chosen Python and JavaScript as company languages. Which has pissed off Steve quite a bit, because he has firmly decided that Ruby is more powerful and rewarding than Python. But he's not allowed to program in Ruby at work.
So, Steve has engineered a kind of 'JavaScript on Rails' in order to fit into Google. All to avoid programming in Python. JavaScript is more powerful and elegant than Python, as he sees it.
This gives you two clues. One about Ruby and second about the Rails. To be brutally honest, Lisp is the most powerful and beautiful language to approach a programming problem. But List is not the most practical choice because of lack of libraries and dialect balkanisation. Ruby is considered to be an 'acceptable Lisp'. Almost as powerful and much more practical. And very very elegant. You may hear a lot about Ruby being slow. That is true, but that is also changing fast. Make your own research. You'll hear some interesting thoughts about what 'programmers' time' is worth vs. 'processor time' etc.
Finally, the frameworks. Rails has been mercilessly hyped, but the fact remains -- it is a framework for programmers. It has digested lots of 'theorizing' from Java and Smalltalk space. It tried to answer the question: "What an ideal MVC framework would be?" The answer turned out to be surprisingly good.
Django is a clever framework, but it has arisen from a particular website (Lawrence Journal-World) and it still has roots in website page design. Nothing wrong with that, but programmers talk less about Django (just check IBM tech articles), there is less programming 'meat' in there. There are also much lesser number of plugins and hacks for Django. You do not have the same amount of books and general enthusiasm about Django platform, comparing to Rails. Not by any objective measure.
Now let Python fanboys kill me, but I went through the same analysis a couple of years ago and I came firmly in favour of Ruby and later in favour of Rails. And I have not been disappointed a bit ever since.
- deleted 18y ago[deleted]
- astrec 18y ago"Steve has engineered a kind of 'JavaScript on Rails' in order to fit into Google. All to avoid programming in Python." If only it were true. Steve wrote Rhino on Rails while working on a project that requires the JVM. At Google this infers a choice of Java, Python (Jython) or Javascript (Rhino). Steve chose Rhino over Jython for reasons you can read about here: http://steve-yegge.blogspot.com/2007/06/rhino-on-rails.html http://steve-yegge.blogspot.com/2007/06/rhino-on-rails.html
- brooksbp 18y ago+1 Obviously haven't read much Yegge when making statements like that. Ontop of the above defense, there's a video on Youtube... http://youtube.com/watch?v=1QD9XQm_Jd4 http://youtube.com/watch?v=1QD9XQm_Jd4
- 1gor 18y agoMy fault, Steve has indeed explicitly said he could not use Python for that project. But I somehow feel I'm not far from the truth, knowing his history of gentle Python bashing. After all, he chose not to make 'Django on Rhino'.
- astrec 18y agoYou really haven't read much Steve Yegge have you? He has his gripes (some of which have been recanted, mind), but he explicitly states he likes Python. I'd say you're far from the truth.
- 1gor 18y agoI find it unfair to invoke Steve Yegge too often, since he's just a guy with an opinion. I have read a fair amount of his rants, of varying quality. His language comparative analysis is interesting because it is informed, argumented and ...well, funny. Read this passage, for example: >Well, they're just like the Smalltalk folks, who waited forever to replace C++, and then Java came along and screwed them royally, and permanently. Oops. Ruby's doing exactly that to Python, right now, today. Practically overnight. He just points out at some major architectural flaws in Python (like the scoping issues leading to selfSelfself and unreadable code, and then the whitespace...) and argues that Ruby has superseded both Perl and Python in many ways. That does not mean he does not LIKE Python. His is just an engineer's analysis, not an emotional judgement. offtopic: I -- on the other hand -- am emotionally scarred by Python having tried to take it into my system over a couple of years and having failed to love it. Then Ruby came along... ;)
- timr 18y agoHere's my take, after working in Ruby/Rails for a year, and coming from a background in C++ and Perl (with a tiny bit of Lisp in my distant past): Ruby is nothing like Lisp. It has some metaprogramming features that make you think (vaguely) of Lisp, but fundamentally, it's more like the bastard child of a torrid, three-way affair between Lisp, Python and Perl -- the genetic heritage was passed on, but poor baby Ruby got little of the careful childhood upbringing. The result? Ruby has the syntactical consistency and beauty of Perl, and the blazing speed and low overhead of Lisp. There are roughly six dozen different ways of doing everything (including really simple things, like delimiting blocks), and bizarre inconsistencies in basic use cases (e.g. most String functions return copies, whereas nearly everything else works by reference), and plenty of long-term code maintainability nightmares lurking in the corners. It can be fun to code in Ruby, and it's certainly a language you should check out someday, but I'm still not sure it's the language you want to choose for a project involving a team of programmers or long-term project maintenance. My advice, if you know neither Ruby nor Python, is to learn Python, unless you've got some particular reason (i.e. a job) to learn Ruby first. Rails is an okay framework, but Django is okay too, and Python is the more elegant language. (Now...if you'll excuse me, I'm going to go put on my asbestos underwear....)
- dats 18y ago"Ruby has. . .the blazing speed and low overhead of Lisp." How did you conclude this?
- run4yourlives 18y agoWith a smirk, most likely.
- dats 18y agoGranted the OP was being facetious in claiming the beauty of Perl or blazing speed of Lisp, but he was sincere in analogizing Ruby to Perl and Lisp. In that sense, he was wrong. Ruby is nowhere near the speed of Lisp. Peter Norvig claims Lisp is "about 1 to 2 times slower than C++" (http://norvig.com/python-lisp.html http://norvig.com/python-lisp.html), and I don't think anyone would sensibly equate the speeds of Ruby and Lisp.
- nostrademons 18y agoInteresting. I went through the same analysis a couple years ago and concluded that Ruby had the hype but Python had the goods. Was skeptical of Django for a long time, but finally warmed up to it last December and haven't looked back. In all honesty, I think both are perfectly fine web languages, and it doesn't really matter which you choose. Pick one and get good at it. Either will be light-years better than, say, Java or PHP.
- jshen 18y agoI couldn't agree more. Pick the one you like and run with it. Which you choose isn't going to make or break your business or career.