posts in the Programming category

I don’t tend to get too sniffy about the quality of discourse on the
Internet. I have some appreciation for even the most pointless, uninformed
flamewars. (And maybe my take on Web site comments is for another post.) But
there’s an increasingly popular topic of articles and blog posts which is starting to annoy
me a little. You’ve likely read them—they have titles like: “Python is Eating R’s Lunch,” “Why
Python is Going to Take Over Data Science,” “Why Python is a Pain in the Ass and
Will Never Beat R,” “Why Everyone Will Live on the Moon and Code in Julia in 5
Years,” etc.

And that’s all okay. Go on the Internet and bitch about languages you don’t like, or tell
everyone why your preferred one is awesome. That’s what
the Internet’s here for. And Lord knows I’ve done it myself.

This isn’t a very thoughtful post. But the conversation was becoming
sort of a shootout and my thoughts (half-formed as they are) were a bit
longer than a tweet. Essentially, I think the Python performance
shootouts—PyPy, Numba, Cython—are missing the point.

The point is, I think, that loops are a crutch. A 3-nested for loop in
Julia that increments a counter takes 8 lines of code (1 initialize
counter, 3 for statements, 1 increment statement, 3 end statements).
Only one of those lines tells me what the code does.

But most scientific programmers learned to code in imperative languages
and that style of thinking and coding has become natural. I’ve often
seen comments like this:

Which I think simply equates readability with familiarity. That isn’t
wrong, but it isn’t the whole story.