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

Drawing Sierpinski's Triangle in Minecraft Using Python

In his keynote at PyCon, Eben Upton, the Executive Director of the Rasberry Pi Foundation, mentioned that not only has Minecraft been ported to the Rasberry Pi, but you can even control it with Python . Since four of my kids are avid Minecraft fans, I figured this might be a good time to teach them to program using Python. So I started yesterday with the goal of programming something cool for Minecraft and then showing it off at the San Francisco Python Meetup in the evening. The first problem that I faced was that I didn't have a Rasberry Pi. You can't hack Minecraft by just installing the Minecraft client. Speaking of which, I didn't have the Minecraft client installed either ;) My kids always play it on their Nexus 7s. I found an open source Minecraft server called Bukkit that "provides the means to extend the popular Minecraft multiplayer server." Then I found a plugin called RaspberryJuice that implements a subset of the Minecraft Pi modding API for B

Creating Windows 10 Boot Media for a Lenovo Thinkpad T410 Using Only a Mac and a Linux Machine

TL;DR: Giovanni and I struggled trying to get Windows 10 installed on the Lenovo Thinkpad T410. We struggled a lot trying to create the installation media because we only had a Mac and a Linux machine to work with. Everytime we tried to boot the USB thumb drive, it just showed us a blinking cursor. At the end, we finally realized that Windows 10 wasn't supported on this laptop :-/ I've heard that it took Thomas Edison 100 tries to figure out the right material to use as a lightbulb filament. Well, I'm no Thomas Edison, but I thought it might be noteworthy to document our attempts at getting it to boot off a USB thumb drive: Download the ISO. Attempt 1: Use Etcher. Etcher says it doesn't work for Windows. Attempt 2: Use Boot Camp Assistant. It doesn't have that feature anymore. Attempt 3: Use Disk Utility on a Mac. Erase a USB thumb drive: Format: ExFAT Scheme: GUID Partition Map Mount the ISO. Copy everything from