Python: The new C

October 06, 2018

"If programming languages were countries, which country would each language represent?" My answer on Quora (Feb, 2015):

C: Ancient Rome. Widely studied, still the "lingua franca" of developers on whiteboards. Source of much modern culture, influenced everything, many great works of our trade found there/written in it. Primitive, somewhat barbaric worldview.

Just like Latin in its day, all serious universities teach C. It's the go-to for any new operating system, device driver, or language runtime (MRI, CPython, v8, CLR, JVM). Just like Latin, it's a "dead language" to some extent (though operating systems people might disagree), but its universality makes it the standard way algorithms are published and discussed.

But C is headed the way of assembly. Yes, everyone learned it, and no, nothing will take its place. But the real action today is in algorithms and data, not bit-slinging. Old-school "systems programming" is becoming more and more niche, with fewer and fewer people doing it.

Silicon Valley has taken a turn away from "programming" and toward true computer science. We've traded buffers, memory management, and bit-twiddling for data, algorithms, and math—and C for Python.

Python because, even though it's slow and synchronous, it has a great standard library, strong support for numerical computation, and reasonable automatic memory management. The innvation has shifted from bits and bytes to lane tracking, LSTM, and hidden Markov models.

I remember walking down 2nd Street in San Francisco, there was a whiteboard just south of Market St. that had been turned around, its back facing out the window. I walked by that office often and saw fragments of coding interviews. In 2010, I would've bet the language was a "brace language" (C, or one of its descendents).

Today, my money would be on Python, doubly so if it was a "data" role.

The future

← Previous