The Most Important Obscure Languages?
Nerval's Lobster writes: If you're a programmer, you're knowledgeable about "big" languages such as Java and C++. But what about those little-known languages you only hear about occasionally? Which ones have an impact on the world that belies their obscurity? Erlang (used in high-performance, parallel systems) springs immediately to mind, as does R, which is relied upon my mathematicians and analysts to crunch all sorts of data. But surely there are a handful of others, used only by a subset of people, that nonetheless inform large and important platforms that lots of people rely upon... without realizing what they owe to a language that few have ever heard of.
How about FORTH? It's the stack fantastic!
So what is and not obscure? ,Modual, Oberon?
ADA? It is used in all the latest Boeing airliners but not used a lot outside of the aerospace community.
What about Lisp?
Or Haskell?
What about Comal, Action! and Promal? Now those are obscure.
Pascal
Or the RPG family? REXX?
Some are truly obscure or just not used anymore and some are very common in a specific domain. For instance I have never needed to use Lua but I know it is used in a lot of places.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
A few years ago I started using Scala and have even worked at shops where I convinced them to let me use it on larger scale telecom projects. There are things in Scala that can be terse and weird, but it's more than just a clean version of Java. If you learn all the tricks, it's got a lot of syntactic sugar and functional syntax that lend itself to shorter more manageable code. I'm still using it for some pretty big projects like BigSense.io.
Although it's not just Scala, Groovy and Clojure are both languages that try to leverage the existing JVM and the rich base of Java libraries with a newer language.
Java was a big stepping stone during its time. It did a lot of things right, but the backwards comparability and keeping in horrible concepts (checked exceptions, no real properties, interfaces) has kept it from really growing as a language. I think the future of the JVM won't include as much Java.
LISP is probably the most powerful language every discovered. I say "discovered" here and not "created" deliberately. There is a quality about it that makes it feel more like an extension of mathematics rather than a language.
It might have conquered the world if only Eich had been allowed to build Scheme in the browser, as he was hired to do.
Instead, it languishes for some reason I can't really understand. I still wish for a day it becomes a mainstream language but I think it'll just remain a wish.
How about WEB then? (and no it is not HTML, Javascript or anything to do with the WWW!) It's the programming language used to write TeX which itself lies behind LaTeX which is widely used by scientists and engineers to typeset papers involving maths as well as for theses, text books etc.
While it isn't considered a full-blown language, awk is pretty useful for a lot of purposes. Best of all, it's included with every *nix flavour.
Trolling is a art,
Crucial for a huge amount of software, yet very obscure.
R is also only one of several even more obscure languages in that domain, including Julia and Stan... is MAPLE still a thing? Less obscure is MATLAB, and Mathematica... (all platforms as well as languages) they've all got their special strengths as usual.
Swift is more popular than R, yet still obscure compared to the top 10 or so. I don't know how ABAP is still alive.
Prolog, Scheme, Groovy, SCALA... there are lots. Even LISP shows up below R in some lists.
SQL is similarly not obscure in its area, but worth learning and you rarely see it in a list of general programming languages (because it isn't). But the commercial vendors all ship their SQL with strong variants that extend the language and do more common language functions like looping. I speak of PL/SQL, TSQL, and their ilk, which all have a touch of obscurity in the same way R does.
I might recommend targeting obscure libraries or platforms also. CUDA isn't a language so much as an architecture; OpenCV is interesting.
If you're looking for jobs, take those, plug them into a job search engine and see what interests you. Languages tend to correlate with industries fairly well. If you want to work on Genomics, you'll see different languages at the top than if you want to work on Wall Street.
Avoid INTERCAL job postings at all costs.
I would say that since the FAA dropped the Ada mandate near on 20 years ago, there are few to no new projects being developed in Ada. As a former Ada programmer who has worked on avionics systems, the only jobs I see out there are for maintenance and upgrading of legacy software. Every new avionics project I've seen is done in C or in some cases, C++, depending on whether or not they went to the trouble of getting C++ accepted by risk-averse project management.
I've spent a career in the safety critical world, both in military and defense. Coincidentally, I did a short stint in train control as well. I haven't written a line of Ada code since 1998 and it's becoming increasingly rare to see any project still written in Ada. I have not even heard of any train control systems being written in Ada (though that doesn't mean there aren't). All of the new Positive Train Control upgrades being added to train systems are all written in C/C++. That much I can say for certain.
While Ada has some useful features, I found it was more than a bit tedious and cumbersome to use day to day. And while the development environment is solid and bug free, it doesn't get around the fact that bad programmers write bad code in any language. Sure, Ada puts road blocks in front of you but bad programmers are adept at getting around them with surprising frequency. That's not to say bad programmers writing bad code is exclusive to Ada. Bad programmers write bad code in any language. But the whole notion that a language can "prevent" bugs is ludicrous. The best it does is to "help you avoid" bugs. But adherence to a quality coding standard, along with competent people performing code reviews will do that for you no matter what language you use.
In this day and age, Ada certainly qualifies as "little known" because it is a dying language that most young people are never exposed to. It is slowly being displaced by more ubiquitous languages. Sure, there are some passionate adherents who will keep it alive for decades to come. But it will linger on only in a few niche environments, slowly fading into history.
Its incredible how many *huge* simulation and engineering systems, adminirtative tools, and other things are still powered by a language the mos important datatype of which is a string.
I for my part discovered tcl/tk as a programming language for everyday use only in 2007, and even if my tcl/tk programs were not that elegant (as e.g. the equivalent python program) they were compact and *extremely* stable (within 4 years of round-the clock data acquisition with sessions of months each, i never observed a crash attributable to the core libraries, no memory leaks etc....)