“Niche” Programming Languages


There are a number of very good “niche” programming languages available. But “niches” are not all alike.

Scala has a “niche” in parallel software. It’s a good language and you can use it for other things, but it buys you the most in that area.

Haskell has a “niche” in scientific programming. It’s also a good language and can be used for other things, but it buys you the most in that area.

LISP has a “niche” in recursive programming, which is useful for certain types of mathematical problems and for AI, it can be used for other things, but framing common business problems in LISP can be more of a challenge than it’s worth unless you’re really good with it.

Smalltalk, on the other hand, is also a “niche” language, but its niches seem to have little in common at first glance. It’s used in prototyping, due to the speed of revising iterative software, and simultaneously in production automation, including high performance manufacturing such as semiconductor fabs. It’s used in DoD defense automation systems, as well as things like telecom, where most of Iceland’s cell phone system is run on a Smalltalk back end. Another, seemingly unrelated niche is epidemiology software, such as Kendrick, used for the Ebola outbreak.

The commonality to these niches that stands out has less to do with specific language aspects that make certain types of calculations easier to frame, but rather that in each case “shit has to work”, and it has to be written, tested and debugged productively.

However “shit has to work” and “has to be written, tested and debugged quickly and productively” seem like niches that shouldn’t be niche in the first place, especially given the percentage of overall software projects that are late, overbudget, or fail completely. According to a software productivity study undertaken in 2013 based on time to production per feature point and average number of defects, Smalltalk was 34x as productive as basic assembler, compared to Ruby at 16x, Java at 11x, C at 5x, and JavaScript/NodeJS at 1.2x.

It seems odd that CIOs, technical leads and developers would see a language that productive and that reliable as merely a “niche”.

Advertisements

One thought on ““Niche” Programming Languages

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s