loading...

Most Esoteric Language You've Used

jldohmann profile image Jesse ・1 min read

Title pretty much sums it up.

I work using a kind of unusual proprietary language (in the sense that it has a niche audience), and am wondering what the strangest language y'all have used is. 😄

Discussion

markdown guide
 

I dabbled in Rockstar for fun - codewithrockstar.com - I guess that makes me a rockstar developer! 😛

I've also written in Z80 assembly language which I guess is quite unusual

 

Woo Rockstar is hilariously cool. I think my weirdest assembler coding is ARM RISC on an Acorn Archimedes.

 

Elixir. Not super esoteric, but the least used language that I use on work.

But I use a PHP framework called Phalcon and that I consider to much esoteric

 

viml, clojure and bash for me

 

I have a couple of colleagues who love Clojure, and it's on my list to check out if/when I ever get enough time outside of the other projects in my queue. The language I currently use is also LISP-inspired, but Clojure is more like a true LISP 😄

 

Oh yeah, I love clojure. But lisp is super esoteric when you first go in for most programmers

Maybe for most, but I think it'll be pretty easy for me to pick up tbh. I use a symbolic functional language that has a lot of similarities

 
 

POP-11, which I used for a few years at university. It's an extraordinarily flexible language which is now a mostly forgotten relic of old AI departments. It had its own editor, Ved, which was primarily distinguished by being even harder to exit than Vim (I remember resorting to kill -9 on more than one occasion).

 

For real applications, I think my most esoteric programming languages I have used have been: Prolog, Adam, Eve0.8, Eve2.

Prolog is a declarative language of relations, which solves for queries. I used it when I was a linguistics major. It was created by Alain Colmerauer and Robert Kowalski.

Adam is a declarative language of relations and constraints, which solves for state. It was created by Sean Parent.

Eve0.8 and Eve2 are declarative layout languages, for describing where static text, buttons, edit fields, pulldown, columns, rows, et cetera all go. They have similarities to WPF XAML. Both were also created by Sean Parent.

For toy programs, I've used quite a few of the well known different (and silly) programming languages.

 

I used Prolog in a programming languages course in college.

The class was supposed to introduce us to how different languages approached similar problems. I was able to make the switch to functional programming with Haskell pretty easily, but Prolog did not click.

 
 
 

Wow, I had no idea a language like Piet existed 😮, I'm definitely going to check it out--it's right up my alley!

 

Does XSLT count? I've never seen anyone else actually use it, but I used to use it quite a bit for documentation; same documentation needed to be on an internal wiki in wiki format, then html and markdown for a blog. Using XML and XSLT seemed logical at the time.

I've also used it to turn a custom content format sent for i18n into SQL statements to re-import into a DB.

Not how I'd do it now though.

 

Yes, absolutely it counts! 😄 I work on documentation tools, and I've worked with my fair share of obscure document formats lol

 

Depends on your definition of “use” but I try to complete as many programming challenges as I can in Befunge, or Funge++ my procedural extension.

I wrote a template engine called Candle that was inspired by Razor, but used CSV files as the view model and wasn’t specific to html. A company I worked for used that all the time for data conversion jobs in a smattering of ways. I originally developed it to take CSV output from one system and project it onto an XML template for upload into another system. Saved the company like $40k in consulting fees and they ended up using it for a whole bunch of stuff.

Wish I still had the compiler for it, it was pretty handy given the amount of data that lives only in spreadsheets...

 

That sounds incredibly useful, I really hope you got a hefty raise for saving them so much $$

 
 

ngl, I always thought bash was well known/widely used. Maybe it's less common than I thought, or maybe just decreased in use over the years

 

This is just my perspective, but despite bash (and POSIX shell scriptt in a more general sense) being widely used and relatively well known, I'd actually still consider it a somewhat esoteric language simply because of how drastically different it is from most mainstream programming languages.

There are all kinds of strange quirks and odd holdovers from the largely organic development of the language which make it difficult for people to learn and use in a lot of cases. Examples of this that come to mind include:

  • It's comparatively trivial to use computed variable names without using maps/dictionaries/hashes.
  • A large number of metacharacters have behavior that's dependent on their context, sometimes including what adjacent whitespace they have (see ! in the context of the conditional in an if statement for a really good example, depending on the exact shell and how you put whitespace around it, it's either a command history lookup, a negation of the condition, or a syntax error).
  • Statements resulting in errors don't terminate the script executing them (except that on some rare occasions they actually do) unless you configure the shell to have them work that way.
  • Controlled error propagation requires a non-negligible amount of code and has no side-channel (you can only do it through return codes or variables, there is no dedicated concept of an exception/error that can be caught like in many languages).
  • Errors in pipelines are dependent on later commands in the pipeline for error propagation, and most commands just eat the error.

Loved reading this comment, thanks for sharing all this!

 
 

I liked a lot FORTH when I was an ado. You can find it in a lot of places.
A lot of bar game machines were run with a sort of FORTH specialized in sprites management.
ZX80-81 Sinclair BASIC was mainly programmed with a FORTH family interpreter launched by an interrupt. This made the ROM very tiny, and big advantage you could use this language in your machine code and so make floating-point, Trigo, etc usable in your machine code games.
Even PostScript was in fact a FORTH, and you could execute programs in sending a program to print, with the printing of the result of the calculation on the page...
And for the best, as a FORTH core weight ~1K, it was ideal to manage embedded processor for whatever you want to control: Wash-machines, robots, bootstrap to load system, even a tiny system manager.
The only problem, you weren't allowed to mess with the stack. Sometimes some more impressive crash than in writing out of bound with C pointers.
A nice bug on the BBC was:
0 base ! 3 .
So pass in base 0!!! and display 3... :)
Hopefully, 3 was a FORTH word which gives 3, else decoding a number in base 0 would already have raised a problem.
After a while, the Beeb played random music. In fact, the overflowing stack crashed memory-mapped tone generators randomly... :D
The funnier thing was decoding the interpreter. The first thing to do was a 'disassembler' of FORTH definition. That was the first time I saw TCO, every final sub-call followed by a return was changed in goto.
Well, only fun...

 
 

I've taken money (very briefly) to debug procedures in TANDEM Access Command Language.

 
 

IBM Net.Data on AS/400... a long time ago in a company, far, far away.

mcpressonline.com/programming/web-...

("now" means ~year 2000)

 

I learnt the basics of programming in Turbo Pascal.

 

Erlang. I loved the Actor model for concurrency model of Erlang.

 

I wrote a tiny utility in REBOL a long time ago and it was actually used by support.

 
 

Probably not esoteric but I have coded in nasm (netwide assembler) and prolog. Just for fun.

 

Any real 10x dev codes in Whitespace :)

 

Tidal Cycles, a Haskell package to generate algorithmic rave music:

tidalcycles.org/index.php/Welcome

 

Well, not very esoteric, but these days definitely rare: REXX. Those who remember OS/2 or worked with IBM mainframes should know it...