Slashdot Mirror


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.

46 of 429 comments (clear)

  1. I would hardly call R obscure. by BitterOak · · Score: 3, Insightful

    Just because a language was built for specialized uses doesn't mean it's obscure. R is very widely known and used. I haven't used Erlang, but I've heard of it, which means it probably isn't too obscure.

    --
    If I can be modded down for being a troll, can I be modded up for being an orc, or a balrog?
    1. Re:I would hardly call R obscure. by LWATCDR · · Score: 4, Interesting

      So what is and not obscure?
      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 ,Modual, Oberon?
      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.
    2. Re:I would hardly call R obscure. by Chris+Mattern · · Score: 2

      Pascal? I can remember when many, many Intro to CS courses were taught in Pascal. Including some I took. I still have the textbooks.

    3. Re:I would hardly call R obscure. by Z00L00K · · Score: 2

      A few I think are in the category of obscure languages that at least comes to my mind:

      • Logo
      • Lisp
      • Bliss
      • D
      • ML
      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    4. Re:I would hardly call R obscure. by KatchooNJ · · Score: 2

      True... I had a Pascal class in high school... it used to be fairly common to teach with once upon.

      I still remember my teacher talking about a "Waloop" and I couldn't figure out what the heck that was. (I should note that I wasn't alone with this confusion in class.) Then it hit me that she was talking about a "WHILE LOOP"! D'oh! lol She had a wacky accent.

      --
      "Never give up, for that is just the time and place when the tide will change." -Harriet Beecher Stowe ^_^
  2. Intercal by Anonymous Coward · · Score: 5, Funny

    http://catb.org/esr/intercal/

    It speaks for itself...

  3. Haskell? by Wootery · · Score: 3, Informative

    I might go with a more exotic language, like Haskell or Mercury. D and Scala aren't as big as C++, but they're not conceptually that different. (That's not to say they're not worthwhile, mind.) Languages like Haskell, Mercury, Prolog, Erlang, are rather more alien.

    I guess my real point is that most important isn't terribly precise.

    1. Re: Haskell? by Anonymous Coward · · Score: 3, Interesting

      How about FORTH? It's the stack fantastic!

    2. Re:Haskell? by sdxxx · · Score: 2

      I definitely agree. Once you've learned Haskell, it helps you understand a lot of design decisions in other pograming languages. So well worth it even if you don't end up writing tons of production Haskell code.

    3. Re: Haskell? by phantomfive · · Score: 2

      Forth is good because it gives you a completely different way of looking at programming. Instead of writing a program, you are extending the compiler.
      Alan Perlis said, "A programming language that doesn't affect the way you think about programming isn't worth knowing." Forth is worth knowing by that metric.

      --
      "First they came for the slanderers and i said nothing."
    4. Re:Haskell? by owski · · Score: 2

      Java's garbage collection was revolutionary when it was introduced into modern programming languages (I'm forgetting about BASIC here).

      It was revolutionary in LISP in 1959. A tad be earlier than Java, my friend.

  4. VBA by alexhs · · Score: 5, Funny

    Visual Basic for Applications seems to be a pretty important language on the dark side of the Force.

    --
    I have discovered a truly marvelous proof of killer sig, which this margin is too narrow to contain.
  5. BF by Anonymous Coward · · Score: 2, Informative

    I rather like BF. It's a very compact language with 8 instructions total, so it's usefulness to implement useful software is pretty limited. By pretty limited I mean 0. However, the language itself, being 8 instructions and some implied state, is pretty trivial to implement. It is also Turning complete. So it ends up being a great mechanism to prove another language is Turning complete by implementing a BF interpreter with it. So no one wants to actually use it, there is a small number of people who know about it, and it is very utilitarian in a meta context. Best obscure language.

  6. Does Ada count as 'little known'? by david.emery · · Score: 5, Insightful

    Most contemporary aircraft have significant amounts of flight-critical software in Ada, some train control systems use Ada, some air traffic control systems use Ada, and of course there's a lot of Ada in US (and other country's) weapon systems. There's the SPARK subset that has been used for provably correct systems (does your software vendor provide a no-bugs warranty?). And there's production-quality code available under Open Source. http://www.adacore.com/ (no connection with AdaCore, other than I have lots of friends who work there.) All of my production code after 1980 was written in Ada. There's substantial anecdotal/unpublished evidence that shows large Ada systems have substantially lower life-cycle/software maintenance costs. Your Mileage May Vary, of course.

    1. Re:Does Ada count as 'little known'? by mrun4982 · · Score: 2

      Ada was the first thing that came to mind when I saw this article. I'd say it counts as lots of people outside of the aviation world have never even heard of it.

    2. Re:Does Ada count as 'little known'? by Darinbob · · Score: 2

      If they're computer science graduates and have not heard of Ada, then they're merely 9 to 5 programmers with no interest in their chosen profession. If they're on Slashdot and have never heard of Ada then they need to turn in their ID number so that someone else can use it.

    3. Re:Does Ada count as 'little known'? by grimmjeeper · · Score: 4, Interesting

      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.

    4. Re:Does Ada count as 'little known'? by phantomfive · · Score: 2

      MUMPS as a language probably deserves attention in that same vein, because it's used in a lot of different (old) medical systems. If you haven't seen it, here's an example of what it looks like.

      --
      "First they came for the slanderers and i said nothing."
  7. Scala by SumDog · · Score: 2, Interesting

    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.

    1. Re:Scala by angel'o'sphere · · Score: 2

      Checked Exceptions are not a "horrible concept".

      Try to do a majour project without them ... have fun!

      And what would you suggest as replacement for interfaces?

      Sure, Java lacks true mix ins and true multiple inheritance (and templates) ... but what has that to do with interfaces?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  8. This one's easy by 93+Escort+Wagon · · Score: 5, Funny

    French.

    --
    #DeleteChrome
  9. LISP by Ckwop · · Score: 4, Interesting

    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.

    1. Re:LISP by Anonymous Coward · · Score: 2, Informative

      The syntax is too obscure for most mainstream programmers.

    2. Re:LISP by pushing-robot · · Score: 2

      Obligatory: https://xkcd.com/224/

      --
      How can I believe you when you tell me what I don't want to hear?
    3. Re:LISP by naris · · Score: 2

      (reason (there ( is ( for ( LISP ( remain (obscure (it ( did ))))))))

  10. MUMPS by Anonymous Coward · · Score: 4, Insightful

    https://en.wikipedia.org/wiki/MUMPS

    This unholy abomination is often tied into your healthcare systems. At the minimum, modern health care software has to be able to speak it to communicate to the old iron still used by hospitals. Often times, you'll still see the software designed in it. The best thing about it is the compactness of the code, which hearkened back to the day when 640kb of memory was all anyone needed. It compressed so much and encouraged such short variable length that mentally unwinding code is extremely difficult, especially when those variables are functionally database queries.

  11. JCL by roman_mir · · Score: 2, Insightful

    Job Control Language.

  12. WEB by Roger+W+Moore · · Score: 3, Interesting

    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.

  13. Re:3 categories: general-purpose; specialist; hips by Anonymous Coward · · Score: 2, Insightful

    For the avoidance of doubt, Go, Dart, Swift and Rust are top tier hipster, and a kitten masturbates god every time someone writes their first Hello World in any of them.

    Ruby is so obviously hipster that not even hipsters think it's cool anymore.

    Every language developed in the past 15 years which promises AMAZINGLY EASY PARALLEL PROGRAMMING OPPORTUNITIES is hipster. Pro-tip: parallel programming is hard, and an excellent understanding of just what the fuck you're doing is what'll give you efficient, bug-free code - not syntactic sugar.

    C and Perl are the quintessential general-purpose languages.

    Python is arguably hipster-LISP.

    PHP was special-purpose in the days where it was that or cgi-perl, but I'm not sure what the fuck PHP is now. It still feels like BASIC but for web programmers.

    Javascript is a great bit of general-purpose quick-and-dirty, but most Javascript libraries make it hipster. jQuery in particular is a great example of how it doesn't matter one fucking bit how incompetent software developers are because Intel makes some really fucking fast CPUs these days. This is really annoying, as the base language is just not-awful enough to be good.

  14. awk by grub · · Score: 3, Interesting


    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,
  15. C++, hands down by DoofusOfDeath · · Score: 5, Insightful

    I use C++ all day, every day. Every time the C++ standardization committee meets, the language gets more obscure to me.

    1. Re:C++, hands down by david.emery · · Score: 2

      I use C++ all day, every day. Every time the C++ standardization committee meets, the language gets more obscure to me.

      Someone with mod points mod parent up +1 either funny or insightful.
      (I've already contributed to this thread, so I'm disqualified.)

  16. including postscript, etc by rewindustry · · Score: 2

    LISP is the correct answer - it's in almost every printer on the planet, to begin with - by far the most ubiquitous of all, and as obscure as reverse polish is.

  17. Assembly by DarkEdgeX · · Score: 2

    As languages further abstract away the underlying hardware, it's helpful to understand how it all works. Especially if you've never had to step into an assembly language debugger. The most likely (and probably relevant) architecture would be x86/x86-64, followed closely by some variation of ARM. IA64 isn't relevant, but if you read up on a little bit of it (there was a series of articles on Raymond Chen's blog a few weeks back), you'll learn about an interesting take on a processor architecture (which offloaded much of the optimization work to the compiler; it was also heavily slanted towards parallel processing unlike x86).

    --
    All I know about Bush is I had a good job when Clinton was president.
  18. Re:Pascal? by Halo1 · · Score: 2

    Is Pascal used anywhere still?

    We still get a lot of downloads, so I assume yes :)

    --
    Donate free food here
  19. Re:The one true language by CodeArtisan · · Score: 2

    That's sad. Assembler was a required course for my CS degree. If you wanted to mix in any significant computer engineering you took the optional second course that covered Motorola assembler as well.

    Same for me. Motorola 6800 and 6809 assembler for the low level and Pascal for the data structures courses. Once we had a strong grounding in both, they let us loose on C. It was a great combination.

  20. gcc linker command language by Anonymous Coward · · Score: 3, Interesting

    Crucial for a huge amount of software, yet very obscure.

  21. Re:Avoid INTERCAL by ZahrGnosis · · Score: 3, Interesting

    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.

  22. Re:The one true language by chipschap · · Score: 2

    You make a good point about assembly language. I cut my teeth, so to speak, on IBM 1620 assembly way back when, and that type of learning very early on in my career was really a good thing in terms of learning how computers work --- something that hasn't changed in its fundamentals.

  23. tcl/tk by drolli · · Score: 3, Interesting

    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....)

  24. Re:COBOL by KatchooNJ · · Score: 2

    I remember the COBOL guys got a lot of extra work when banks and other companies were preparing for Y2K. I think they had to import people from Russia, since there was a shortage of people in the U.S. who knew the language well enough.

    --
    "Never give up, for that is just the time and place when the tide will change." -Harriet Beecher Stowe ^_^
  25. MUMPS, JCL/REXX, JOVIAL by sirwired · · Score: 2

    MUMPS - A horrific health-record management specific language inexplicably still in wide use.

    JCL and REXX - Used for Mainframe scripting. Few mainframe shops will be without a JCL guru. (JCL is used for non-interactive scripting, REXX is used for the sorts of things you might use Perl for everywhere else.)

    JOVIAL - An IAL offshoot that still runs much of the US ATC system until the FAA finally finishes replacing the systems that run it.

  26. My favorite obscure language by Applehu+Akbar · · Score: 2

    Mention of C# brings back nostalgic memories of maniacal pizza-driven overnighters to finish projects in the latter days of "Windows," an operating system written by Washington-state software developer Microsoft, which you will probably remember for its office applications. It enjoyed a period of popularity ranging into the first decade of our new century and is still in use by some of my rural IT customers.

  27. Re:The one true language by Garfong · · Score: 3, Insightful

    I find being able to read assembly incredibly useful when debugging optimized C/C++ code. In my experience it's not infrequent for a debugger to not be able to find the value of a variable in memory, even on lines where the variable is being passed into a (non-inline) function.

    And debugging optimized code is required a fair amount when fixing performance & reliability issues (when the problem may disappear on non-optimized code), and embedded (where the program may not fit on the device without optimization).

  28. Obligatory by quietwalker · · Score: 2

    English.

    In all seriousness: it's becoming difficult to communicate with all the acronyms, framework names being used as verbs, and corp-speak trickling into conversation, and this is with folks who are not necessarily expert communicators in the first place.

  29. Re:3 categories: general-purpose; specialist; hips by Required+Snark · · Score: 3, Insightful
    You opinions may or may not be valid. I won't argue about any particular judgement.

    Your attitude sucks rocks. Your use of the word "hipster" as a pejorative is asinine. It demonstrates that you have the emotional maturity of an eight year old.

    To show just how puerile you are, I will demonstrate by substituting "cooties" for "hipster" in part of your post.

    For the avoidance of doubt, Go, Dart, Swift and Rust have top tier cooties, and a kitten masturbates god every time someone writes their first Hello World in any of them.

    Ruby is so obviously has cooties that not even cooties think it's cool anymore.

    Every language developed in the past 15 years which promises AMAZINGLY EASY PARALLEL PROGRAMMING OPPORTUNITIES has cooties.

    Since there are no standards on Slashdot it makes no difference when you post drivel like this. If you were to ever display this kind of behavior in a school or professional environment you would be lucky to last a week.

    Get a clue. Grow up. Otherwise you are a waste of space.

    --
    Why is Snark Required?