Skip to main content

Python: Bambi Meets Godzilla

I just re-read a blog post that I read a couple years ago called Bambi Meets Godzilla, and I enjoyed it just as much the second time around. It's a brief history of Smalltalk, Java, Perl, Python, and Ruby, and it talks about why hype is vitally important. It also spends a fair amount of time critiquing Python's culture. If you haven't read it yet, stop reading my post, and go read it instead ;)

It reminds me of The UNIX-HATERS Handbook, which I also love. The funny thing is that to some degree, he's right about Python's culture. I've seen it with my own eyes.

Don't believe me? If I were to admit that I preferred Ruby on Rails over Django, how long do you think it would take for someone to flame me in a comment calling me either an idiot, a troll, a loser, or a heretic, or to say something like "You can recognize good design by the inanity of its detractors"?


Anonymous said…
Good rant, as you would expect from SY. It's a shame that he is still bashing Python in that piece -- all the ,,we, Ruby community, are so cool, maybe Python users will grow to our level someday'' bits sting a little, even if he adds ,,I really believe in them''. Yeah, he only forgot to mention how humble Ruby people are (more than Pythonistas, that's for sure ;-).

And his facts are, as usual, bent just a little to match his point -- like that piece about ,,proposing language changes'' that is in fact about incompatibile changes and the answer is ,,In general: no [+reasoning]'' (please feel free to use the Wayback Machine if you don't believe me, I did my best but failed anything else).

,,Erroneous'' and ,,confused'' parts are just low blows. When it comes to language spec and methodology there is no room for personal opinion (unless you're using PERL or you carry the title of BDFL). There is ,,the way it is done'' and all other ways, that are more or less incorrect. If someone is too touchy to hear ,,you're wrong'' then that person is not trying to learn anything, but is rather looking for acceptance (in all the wrong places). You loose this fine detail (meaning, you know, common sense and sanity) in between the lines about waiters and cultures. But the fact is that sometimes you're just wrong (in given context) and usually being wrong means that your way of thinking doesn't work the way you'd like it to (in given context). Because yeah, there are wrongs and there are rights (everywhere), and learning is in general about getting to see which is which.

I like Python because Python people are all about ,,batteries tested and included'', they walk-the-walk, not just talk-the-talk. I don't like Ruby because to me it's ugly, immature and if you try to say this in public you'll get bashed by this friendly community (,,... and this will get fixed in next version/VM X!''). So I would rather do Java than Ruby. It's not ugly, it's pro and its users know the difference between being frank and being dick. ;-)

(Sorry for ranting. On your blog. About his post. From 2006. Really sorry. Cheers.)
Anonymous said…
Second paragraph should of course end with (I blame this little textarea ;-):

''I did my best but failed to find anything else.''
Noah Gift said…
I have to agree with this statement, "First, inferior languages and technologies are just as likely to win." This is how life is. Read the book, Myths of Innovation, it is an eye opener.

As I have mentioned before, hype, a.k.a, marketing, is really the most important part of web development. If someone doesn't have an "A" hype game, forget about writing a web framework.
jjinux said…
> (Sorry for ranting. On your blog. About his post. From 2006. Really sorry. Cheers.)

Thanks for the comments.
Musesum said…
Hey JJ,

Thanks for reaching (via email) to an old Python enthusiast. It really is about the culture. By all measures I should be a rabid Pythonista:

1) I love whitespace
a) I wrote my first DBMS language using whitespace in 1979
b) I wrote my second Multimedia language using whitespace in 1992
c) I think Occam (the language) was cool for using whitespace
c) I think executable pseudocode can expand the "customer base"

2) I am vested in Python
a) I reconstructed the 2.4 language definition by hand
i) using a variant of BNF that used whitespace
ii) and then wrote a parser for said BNF in Python
b) I wanted to use Python as the backbone
i) for a non-programmer's media patchbay
ii) as a "my first language"
iii) that seamlessly transitions to the full version

3) I prefer “There should be one—and preferably only one—obvious way to do it” over TMTOWTDI
a) to allow other people to read my code with explaining it to them
b) to allow myself to read my code after forgetting it

And yet, I have resigned from the baypiggies list, because:

4) The Python community doesn't get Marketing
a) Python users are customers
i) you don't call your customers whiners when they complain
ii) I've heard Alex Martelli and Guido use the "whiner" epithet

b) I was turned off by the c[:]() discussion on
i) some posts pointed to some beautiful code
ii) other posters engaged in ad hominem attacks

6) My goals may be at cross purposes with Python
a) I like the utility of creating domain specific languages
i) which may be a closer fit to TMTOWTDI
b) I want to create a patchbay for non-programmers
i) for example, a twelve year old girl with an iPhone
ii) whom are welcomed by an open-minded community

In all fairness, I think that just about everyone that I've met at the Python meetups are a pure joy to be around. I even get a kick at the sometimes snarky comments. But, the community seems too defensive for the customers that I want to support.


jjinux said…
Thanks for your comments.

Popular posts from this blog

Ubuntu 20.04 on a 2015 15" MacBook Pro

I decided to give Ubuntu 20.04 a try on my 2015 15" MacBook Pro. I didn't actually install it; I just live booted from a USB thumb drive which was enough to try out everything I wanted. In summary, it's not perfect, and issues with my camera would prevent me from switching, but given the right hardware, I think it's a really viable option. The first thing I wanted to try was what would happen if I plugged in a non-HiDPI screen given that my laptop has a HiDPI screen. Without sub-pixel scaling, whatever scale rate I picked for one screen would apply to the other. However, once I turned on sub-pixel scaling, I was able to pick different scale rates for the internal and external displays. That looked ok. I tried plugging in and unplugging multiple times, and it didn't crash. I doubt it'd work with my Thunderbolt display at work, but it worked fine for my HDMI displays at home. I even plugged it into my TV, and it stuck to the 100% scaling I picked for the othe

ERNOS: Erlang Networked Operating System

I've been reading Dreaming in Code lately, and I really like it. If you're not a dreamer, you may safely skip the rest of this post ;) In Chapter 10, "Engineers and Artists", Alan Kay, John Backus, and Jaron Lanier really got me thinking. I've also been thinking a lot about Minix 3 , Erlang , and the original Lisp machine . The ideas are beginning to synthesize into something cohesive--more than just the sum of their parts. Now, I'm sure that many of these ideas have already been envisioned within , LLVM , Microsoft's Singularity project, or in some other place that I haven't managed to discover or fully read, but I'm going to blog them anyway. Rather than wax philosophical, let me just dump out some ideas: Start with Minix 3. It's a new microkernel, and it's meant for real use, unlike the original Minix. "This new OS is extremely small, with the part that runs in kernel mode under 4000 lines of executable code.&quo

Haskell or Erlang?

I've coded in both Erlang and Haskell. Erlang is practical, efficient, and useful. It's got a wonderful niche in the distributed world, and it has some real success stories such as CouchDB and Haskell is elegant and beautiful. It's been successful in various programming language competitions. I have some experience in both, but I'm thinking it's time to really commit to learning one of them on a professional level. They both have good books out now, and it's probably time I read one of those books cover to cover. My question is which? Back in 2000, Perl had established a real niche for systems administration, CGI, and text processing. The syntax wasn't exactly beautiful (unless you're into that sort of thing), but it was popular and mature. Python hadn't really become popular, nor did it really have a strong niche (at least as far as I could see). I went with Python because of its elegance, but since then, I've coded both p