Skip to content

Comment on Ruby's not ready

Comments

While I agree that Ruby (in the form of MRI) is pretty limited in the kinds of production applications it's ready to support, I feel just as strongly that Python is an evolutionary dead end.

Personally I predict that JRuby (which addresses most of the issues listed in TFA) will become the mainline production Ruby. It runs adequately fast, and has JVM threading, meaning that ceteris paribus it is 'fast enough' for the largely IO-bound tasks that make up web-programming. And when you program in JRuby you find yourself leaning on the Java libraries for most of the heavy-duty stuff (say what you like about Java, I certainly do, but the libraries are abundant and abundantly production-worthy). Ultimately, when you've got lambda and reasonably low-impedance hash tables then you can make everything else, so there's a future for Ruby.

Python on the other hand is a lost cause. Objects are a valid and important ingredient in a balanced diet of programming abstractions, but 'object-oriented programming' is for idiots or assholes or worse. Objects as a first-class language feature are nice-but-optional, I've worked on large C systems written in an object oriented style (one was a simulation, another was a widget toolkit, both had 'object' as a meaningful native domain concept). First-class functions OTOH are not optional, without them you've designed a language for infants. If you are designing a modern high-level programming language and you choose to cripple lambda (either because you've made regrettable decisions about your syntax that prevents their expression, or because you want to put training-wheels on the language itself, or LOL both) then you're an asshole, full stop. Python's scoping is tragic, at least Larry and Brendan had the humility to admit they fucked up and add reasonable scoping. GVR isn't wrong, 30 years of hard-won experience with correct lexical scoping is. If you think Scheme is wrong then I've got news for you: you are. Funny, now that I think about it it's not even about right and wrong anymore, it's about 'Pythonicity', which basically means that not only is GVR never wrong, if you don't agree then you're some kind of barbaric programming-language outsider. God I can't wait for a good example of Python (and more importantly the frigid, self-righteous, under-endowed Python community, I'm looking at you Paul Prescodd) to come into direct competition (- lisp epsilon) in a measurable, documented way.

At least Ruby and Javascript know that (- lisp epsilon) is the place to be, and they're both in the process of trying to add enough curly-braces to make themselves palatable to Java-refugees and no more.

Just remember: Python's not wrong, you are.

http://www.python.org/doc/faq/general/#why-must-self-be-used...

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.