Why Do We Need So Many Programming Languages?

Forty years ago, people used to ask, we have FORTRAN for scientific applications and COBOL for business applications, why do we need PASCAL, C++, and dBaseIII+?

Twenty five years ago, the question changed to, we have C++ and Foxpro, what’s the need for Java and .NET?

Ten years ago, people wondered why a decentralized app (dApp or Web3) needed a blockchain and couldn’t be built on a centralized database.

More recently, people asked, why do we need Python when we have blah blah blah.

Now, people ask why we need yet another programming language e.g:

@ArturSepp: … developing its own programming language is an enormous waste of resources, given multiple languages around, in particular Python or Java.

Despite these repeated and enduring questions, the industry has developed many generations of programming languages.

Why?

I’d turn around and ask, why not?? Technically, every program is eventually executed in machine language. So, in theory, we shouldn’t need anything more than Machine Language. But, in practice, we still do have different programming languages like C++, Java, and Python, to name a few.

That’s because of the following technical and business reasons:

1. It’s hard to develop applications in machine language. That created the “business case” for inventing higher-level programming languages, from Assembly and FORTRAN through to Python and R.

2. Some programming languages are purpose-built for certain applications, so it becomes easier to develop them there e.g. Python and R for analytics applications.

3. “Not my father’s brand” consumer behavior. According to this theory, every generation eschews brands, behaviors, and trends of its parents’ generation. This maxim has gone past clothes, accessories and music icons to programming languages. Ergo, some languages lose their coolness over time and it’s impossible to get the NextGen to learn them, however powerful and ubiquitous they are. COBOL is the canonical example of this trend. They say that 75% of the GDP of USA touches a COBOL system at least once a day even in 2024. Despite its prominence, nobody wants to learn COBOL – it was uncool even among my engineering batchmates 40 years ago!

4. Some use cases have taken off on some programming languages, even though they could theoretically have been built on the earlier generation of technologies. These use cases don’t need X programming language for some technical reason but they happened only on X programming language probably because X provides some – ahem – X factor to them.

Take loyalty programs for example. Traditionally they gave rewards that were redeemable to gifts whose value was expressed in fiat terms. For many decades, consumers accorded a mixed reception to loyalty programs.

Then came a new genre of loyalty programs that issued rewards in crypto. They delivered Liquidity and Buoyancy, which were not possible in traditional loyalty programs. Because of these benefits, I predicted that there would be a spate of new loyalty programs based on blockchain in my blog post How Blockchain Can Crack The Holy Grail Of Loyalty Programs. My prediction proved right, with the launch of over 10 blockchain loyalty programs in the next three years or so. More in Blockchain Loyalty Programs – Sizzling Or Fizzling?.

5. New use cases have a strong correlation with the zeitgeist. Python is hot in the present era. It makes sense that applications for today’s world would index on Python even if they could be built on Java or .NET. Blockchain-based Flight Delay Insurance is a good example of such a use case (built out when blockchain was hot).

6. Wide variance in “price performance” of different programming languages. Some languages require more effort but its coders are cheap whereas others accelerate speed to market but need rare skills e.g. At one point, Ruby on Rails programmers attracted 4X the pay of Java programmers.

7. “Make hay while the sun shines” best practice in marketing. After studying many blockchain applications, AWS engineers felt that these apps could have worked on normal database architecture. Still Amazon went ahead and built Amazon Managed Blockchain, a cloud environment for building blockchain applications. Why? Because many blockchain companies wanted a dedicated development and operating environment for their Web 3 apps, and, flush with VC money, they were willing to pay top dollar for it. As they say, in a gold rush, it’s the shovelmakers who make money, so AWS made a shovel!

8. Beyond a certain size of an economy, incremental GDP comes from different ways of doing the same thing rather than altogether different things e.g. redevelopment of Web 2.0 apps in Web 3.0 architecture. Lest you think this is a frivolous pursuit, John Maynard Keynes won the Nobel Prize in Economics for advocating digging roads and filling them back to stimulate recessionary economies!

In a nutshell, it’s not that we need so many programming languages – it’s that we want them. This resonates with a basic tenet of capitalism that GDP comes not only from fulfillment of needs but also from catering to wants and aspirations.


I cheated a bit: The tweet at the start of the post begins with “Bridgewater is” i.e. “Bridgewater is developing its own programming language…”.

In short, I omitted to mention that the said new programming language was being developed by the leading hedge fund Bridgewater Associates.

But it doesn’t change anything. In fact, a new programming language makes the point “We’re a tech company, just with a hedge fund license” more eloquently than the lame ways in which some other banks and financial institutions have tried to do so in the past.

Then there are a few more benefits of inventing a new programming language speculated by tweeples in the aforementioned Twitter thread:

@David_PSRAM: Banks sometimes develop simple natural languages so non-IT user departments can use them to manage there own rules i.e. credit rules. (This reminds me of my old ERP company, which built a separate extension development kit that could be used by business users to add screens and logic to core product screens.)

@randomtalkwalk: They can advertise that they have proprietary technology to their clients and ask for their money!

@droskill: To keep senior devs engaged when their company has a boring or potentially evil purpose at its core e.g. “I work at Uber but I develop its tracing tools, so it’s cool”.

I also skipped the part where the OP asked

Why would anyone be interested to join (Bridgewater Associates) and spend first few months learning a new language?

Just because a company develops a new programming language does not mean it will use it internally, so it may not be necessary for its employees to spend their first few months to learn a new language. Back in the day, SUN Microsystems used to shill open systems in the market but used to run its internal order management software on an IBM mainframe!


While programming is a technical activity, the choice of programming language is often steered by business considerations.

While this post only covers programming languages, the core rationale presented here could be used equally well to explain why there are so many generations of servers, databases, frameworks, and other building blocks of computer hardware and software.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply