Over a million developers have joined DZone.

Revisited: Your Programming Language Sucks?

· Java Zone

Discover how AppDynamics steps in to upgrade your performance game and prevent your enterprise from these top 10 Java performance problems, brought to you in partnership with AppDynamics.

Of the conversations following my post Your programming language sucks?, I’ve received mostly nodding agreement. Perhaps most interesting of all, a friend from my reading group shared an article written by Paul Graham titled Beating the Averages.

In Beating the Averages, Graham illustrates how people talk about languages by calling on a hypothetical language, Blub. An equally hypothetical Blub programmer would look at a more powerful language in terms of Blub: “Hey, that language is pretty similar to Blub but it’s got some weird stuff mixed in. Well, anyway, I can do everything I need in Blub and it suits me.” Meanwhile, a programmer of that language more-powerful-than-Blub looks at Blub and says: “Hmm, it’s missing X. Why would you want to reduce yourself to Blub when you could have more?”

Let’s bring this back to the original example by substituting Java for Blub, using operators to compare Dates for X, and, say, C++ for the more-powerful-language.

“Hmm, Java is missing operators to compare Dates. Why would you want to reduce yourself to Java when you could have more?”

“Hey, C++ is pretty similar to Java but it’s got the hassle of pointers and dereferencing mixed in. Well, anyway, I can do everything I need in Java and it suits me. See, I can come up with two ways of comparing Dates in Java and one even uses operators!”

This helps explain two points Graham is making. First, the choice of language is more than just the choice of tool.

“…programming languages are not just technology, but what programmers think in.”

Second, a programmer’s experience colors how they think about new/other/different languages.

“…the only programmers in a position to see all the differences in power between the various languages are those who understand the most powerful one.”

These two points come together in what Graham terms the Blub Paradox:

“[Programmers are] satisfied with whatever language they happen to use, because it dictates the way they think about programs.”

With all of this in mind, I still stand by my original statement but I’ll add to it: Saying a programming language “sucks” says less about the language and more about the person speaking. It helps convey that person’s understanding of the language and may help place their point of view somewhere along the power-of-the-language “continuum.” Still, I consider the use of sucks to be uncharitable and dismissive.

This discussion only strengthens my interest in reading Seven Languages in Seven Weeks, which my reading group will begin shortly.

The Java Zone is brought to you in partnership with AppDynamics. AppDynamics helps you gain the fundamentals behind application performance, and implement best practices so you can proactively analyze and act on performance problems as they arise, and more specifically with your Java applications. Start a Free Trial.

Topics:

Published at DZone with permission of Mike Christianson , DZone MVB .

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}