Tour De Babel -- Rant about programming languages
steve.yegge.googlepages.com
steve.yegge.googlepages.com
That explains so much.
For example, If your code base is 50 million lines in any language, you're doing it wrong, and it's going to be a pain to maintain. C++ has little to do with it.
He also seems to think Python is losing to Ruby -- Sorry, no. They're both going strong, and growing rapidly. Both of them are winning hard right now.
Also, his convolving of lisp and emacs is quite annoying. Emacs is not Lisp, and Lisp is not Emacs. Please don't confuse the two.
Overall, I think that this is a rather poor article. Although I've definitely seen worse.
He gives a much more informed opinion of Python here, I think. His overall impression is essentially, "Python is a really good language, but I already know Ruby, which is good at the same things, so I'll just stick with that." I feel the same, really, but favoring Python over Ruby.
I was under the impression that Ruby was mostly used for webapps, with really little use in other areas. Is this not correct? Python is used widely for a variety of purposes, like system programming.
I don't really use Ruby (I already know Python well, and while I've played with Ruby a bit, I think my studying time is better spent on languages that are more different), so I'm going to let Ruby-ists provide examples if they want.
Ruby can be used and will be used anywhere that Python can. They're both great languages, but I prefer Ruby for a few small reasons that Yegge seems to cover.
It's understandable that you might have this confusion, though, since if you're not a Ruby user it's easy to get the impression that Rails is the programming language. I constantly have to educate people about that ("Repeat after me: Rails is not a programming language"). Sometimes I wish Rails wasn't so popular, because I believe Ruby can stand on its own. I'm tired of conversations like this:
"Have you heard of Ruby?"
"No."
"Okay, have you heard of Rails?"
"Oh, Rails! That's what you're talking about!"
"No, that is not what I'm talking about."
I get this from the standard folks who never venture outside of their C++/Java/C# pens, and they've heard of Python only because of Google (tip for language evangelists: a hot and trendy company does more for your language than a killer app).
I would expect, however, that people who use Python would realize that Ruby stands right beside it as a similarly beautiful and productive dynamic language. In this I am constantly disappointed. Maybe it's a sign that Ruby is losing the popularity contest and will fade away to the sidelines. There are too many clueless people who pick up Python and love it and swear by the gods that there is no language like it, even though their experience with languages is summed up with C++, Java, and now Python. It's the language that ropes in all the clueless people that eventually wins. Congrats to my Python brothas.
To be fair, the same seems true of Ruby (mostly via Rails); they come from Java or PHP and declare Ruby the pinnacle of language design.
(I'd like to think, though, they are a mostly a noisy minority. There are a lot of Ruby, non-Rails Ruby, developers who just quietly go about their business.)
I make my living writing cross-platform desktop apps in Ruby.
Those were also the days when any respectable application was written in C++. Stevey's other mission was to make it OK to say that C++ sucks without getting looks from everyone like you'd just slapped your mother.
These days, sensible people just post a link to the C++ FQA Lite and get on with writing useful code. There's less of a need to fight the machine.
In yet another article, presumably more recent, Stevey mentions that after losing faith in Java he started writing everything in Jython. The Ruby craze came later, and these days it's all about JavaScript/Rhino. But each blog rant focuses on the flavor of the week. Point being, these posts aren't "essays", they're propaganda. They're a reasonably well-informed programmer's way of blasting one opinion at a time onto a readership that's already fairly saturated with other kinds of hype -- no room for nuance; Language X is the Next Big Language, repeated for page after page. The language comparisons are just a trampoline for that message.
If there's any real barrier to Python adoption, it's the lack of a language-specific fad like Java applets or Rails to push it into a wider audience.
What is the issue people have with it? They write code that writes code? That is the only issue I can come up with.
And self, yes it might seem a bit unaesthetic at first but it is not such a big deal.
For me, Python = productivity
Not to mention can't you fix that sort of in consistency in vim or Emacs with a few commands?
Cheers to that.
I don't read a lot of stuff on the web top-to-bottom, especially opinion pieces, but I found this article exceptionally entertaining.
It's hard, though. It's a big jump. It's not sufficient to learn how to write C-like programs in Lisp. That's pointless. C and Lisp stand at opposite ends of the spectrum; they're each great at what the other one sucks at.
That's good writing. Summarizes the writer's opinion in an active voice without latinate verbs or excessively long sentences.
Also, what pray tell is a "real" lisp? Last I checked, Emacs-Lisp has macros and much of what makes any lisp a "real" lisp.
What?
Perl OO did catch on, and it is part of the core language.
Has the situation changed? Are there OO things included with the default dist of Perl?
package Class;
sub new { my $class = shift; bless {} => $class }
sub method { my $self = shift; $self->{attribute} = 'value' };
package Subclass;
our @ISA = qw(Class);
sub method { my $self = shift; $self->SUPER::method(...); ... }
package main;
my $class = Subclass->new;
$class->method;
This is built into the core.