I don't have any obscure favourites that I actually use. But I have a soft spot for a bunch of old, obsolete ones.<p>Niklaus Wirth's post-Pascal languages, including Modula-2 (and its offshoot Modula-3) and Oberon were fantastic. Their syntaxes fit on a single piece of paper. Modula-3 is an outlier, since it was developed without much involvement from Wirth, but it adds some nice stuff, such as generics. Oberon had a strong influence on Go.<p>As a kind of "lost language", Barbara Liskov's CLU (1974-75) is fascinating. Its syntax is Algol/Simula-like, but it comes with a lot of advanced features (iterators, generics, type parameters with constraints, exceptions, variant types, parallel assignments, inheritance-less classes, "everything is an object", garbage collection, no global variables) that eventually ended up in other languages, much later. CLU was never intended to be used, but as a testbed for ideas, and it never really was.
Nim-lang. Its similar to Python in Syntax but runs at close to native speed. Nim has beautiful syntax.<p><a href="https://github.com/kostya/benchmarks" rel="nofollow">https://github.com/kostya/benchmarks</a>
<a href="https://nim-lang.org/" rel="nofollow">https://nim-lang.org/</a>
Nial (and its interpreter QNial) is strangely unheard-of. It's an intruiging APL-like that uses English words and a simple, general syntax that permits nested parentheses, allowing lisp-like code. It extends APL to multidimensional arrays a la Numpy (which it well predates - 1981!), and throws in some interesting and exotic ideas for good measure such as arrays of point-free functions as a first-class structure. It's a lot of fun to do Project Euler type math problems in, and captures the essential spirit of APL/J/K etc but without the obfuscated syntax.<p><pre><code> isprime is op n {not ((n = 1) or (0 in (n mod (rest count (floor (sqrt n))))))}
</code></pre>
<a href="https://github.com/danlm/QNial7" rel="nofollow">https://github.com/danlm/QNial7</a><p><a href="https://tangentstorm.github.io/nial/intro.ndf.html" rel="nofollow">https://tangentstorm.github.io/nial/intro.ndf.html</a><p><a href="https://en.wikipedia.org/wiki/Nial" rel="nofollow">https://en.wikipedia.org/wiki/Nial</a>
Icon [1] and Unicon [2] are very interesting languages. They both excel in string processing. Icon had some influence on Python. Unicon is a superset of Icon with many more features.<p>Unicon is still under development unlike Icon. I don't think Unicon has ever been discussed on Hacker News. Ever.<p>[1] <a href="https://www2.cs.arizona.edu/icon/" rel="nofollow">https://www2.cs.arizona.edu/icon/</a><p>[2] <a href="https://unicon.sourceforge.io/" rel="nofollow">https://unicon.sourceforge.io/</a>
Inform is a language for creating text adventure games with an English like syntax. It's very expressive, powerful and highly domain specific.<p>As an example here is the complete source code for a very simple game:<p>"Prototype" by defaultcompany<p>The Lookout Point is a room. An old man is here.<p>The Outskirts is south from the Lookout Point. A campaign poster is here.<p>The Village is east from the Outskirts.<p>The Scumm Bar is inside from The Village.
Definitely Haskell for introducing me to functional programming concepts (which I know use everywhere) and Erlang for introducing me to the actor model, embracing failure, and writing easily scalable and reliable code.
Of all the languages I've experimented with, I was fond of Dan Winkler's <i>HyperTalk</i> (the scripting language used by Apple's <i>Hypercard</i> app) because it was so high-level. It enabled <i>a lot</i> of people - particularly in education - to create app 'stacks' that might otherwise never have ventured into programming. And it was <i>fun</i>. I can't imagine a more noble goal for a language.<p>(The variant <i>Supertalk</i> is still in use, in <i>SuperCard</i>).
Delphi was amazing. The best GUI builder I've ever seen, fast as blazes... then Borland went bust, and it got killed by being priced into obscurity.
Professor Jack Schwartz's SETL is great for designing algorithms at a high level yet executable if you want it. SETL is dynamically typed with compilation, type inference, and 'reppers' to optionally declare type info as tools to trade verbosity/effort for runtime efficiency (Think typescript vs javascript) all this in the late 70's.
Not really obscure, but I find old-school Windows batch lots of fun.<p>Some of the stuff I've messed around with is on my Github: <a href="https://github.com/rahuldottech/" rel="nofollow">https://github.com/rahuldottech/</a>
I saw a presentation on Forth and ever since then I've loved tinkering with it.<p>The language is old, fast and powerful. It isn't quite compiled or interpreted (or maybe it's both), it can run on teeny tiny microcontrollers or be used for scripting.<p>The best part is, it's a completely different paradigm of how to program from any of the other modern languages I've used. There are no function arguments, and everything is done in reverse polish notation. There's no concept of parentheses in the language (parens are used for comments)
Idris lang seems awesome with the atom plugin. :)<p>Did not use it yet but I hope it will get more attention.<p><a href="https://youtu.be/mOtKD7ml0NU" rel="nofollow">https://youtu.be/mOtKD7ml0NU</a>
Learning Prolog was one of the better decisions I have made. Not because Prolog jobs are plentiful. Rather, understanding logic programming by broadened my problem-solving skill set.
I enjoy Clojure. It’s a lisp that runs on the JVM. It really taught me a lot about the power of immutable data structures, code as data, and first class functions.
Serpent![1] It's a Python-like language created by the guy who wrote Audacity, for operating on MIDI files mostly, and doing audio automation, like markov chain composition. It's super cool.<p>[1] <a href="https://www.cs.cmu.edu/~music/serpent/doc/serpent.htm" rel="nofollow">https://www.cs.cmu.edu/~music/serpent/doc/serpent.htm</a>
The E programming language [0] for secure distributed computing. A language that makes it very easy to reason about what permissions your code actually has, by implementing the object-capability security model.<p>[0] <a href="https://en.wikipedia.org/wiki/E_(programming_language)" rel="nofollow">https://en.wikipedia.org/wiki/E_(programming_language)</a>
Picolisp (<a href="https://picolisp.com/wiki/?home" rel="nofollow">https://picolisp.com/wiki/?home</a>) is one such lang not many know about but it brings a lot to the table (batteries included). It's super low on memory and it's (almost too) fast for most people.
i don’t believe that the question is valid in the context of hn (after all people here are curious by design and have probably heard about most things out there).<p>that being said, I quite enjoy Elixir. It builds on top of Erlang and the language and the community around it are just amazing.