DEV Community ๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ป

Jesse
Jesse

Posted on

Most Esoteric Language You've Used

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. ๐Ÿ˜„

Top comments (38)

Collapse
 
jonrandy profile image
Jon Randy ๐ŸŽ–๏ธ • Edited on

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

Collapse
 
miketalbot profile image
Mike Talbot โญ

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

Collapse
 
leonimella profile image
Leoni Mella • Edited on

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

Collapse
 
kelvinmai profile image
Kelvin Mai

viml, clojure and bash for me

Collapse
 
jldohmann profile image
Jesse

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 ๐Ÿ˜„

Collapse
 
kelvinmai profile image
Kelvin Mai

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

Thread Thread
 
jldohmann profile image
Jesse

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

Collapse
 
ivanpierre profile image
Ivan Pierre

For sure.

Collapse
 
eljayadobe profile image
Eljay-Adobe

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.

Collapse
 
nathanminchow profile image
Nathan Minchow

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.

Collapse
 
neilmadden profile image
Neil Madden

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

Collapse
 
sam_ferree profile image
Sam Ferree

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

Collapse
 
jldohmann profile image
Jesse

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

Collapse
 
ashleyjsheridan profile image
Ashley Sheridan

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.

Collapse
 
jldohmann profile image
Jesse

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

Collapse
 
amananandrai profile image
amananandrai

I have used Brainf**k, Arnold C and Piet.


Piet is a language whose code looks like an abstract painting.
Collapse
 
jldohmann profile image
Jesse

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

Collapse
 
tomfa profile image
Tomas Fagerbekk • Edited on
Collapse
 
jldohmann profile image
Jesse

Ok, this video is straight up amazing, thanks for sharing!

Collapse
 
skydevht profile image
Holy-Elie Scaรฏde

Definitely bash

Collapse
 
jldohmann profile image
Jesse

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

Collapse
 
ahferroin7 profile image
Austin S. Hemmelgarn

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.
Thread Thread
 
jldohmann profile image
Jesse

Loved reading this comment, thanks for sharing all this!

Collapse
 
adam_cyclones profile image
Adam Crockett

Lua for sure.

Collapse
 
ivanpierre profile image
Ivan Pierre • Edited on

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

Collapse
 
ambroseus profile image
Eugene Samonenko • Edited on

1 2 + :) Forth is amazing!

Collapse
 
daveparr profile image
Dave Parr

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

tidalcycles.org/index.php/Welcome

Collapse
 
sayjava profile image
Raymond Ottun

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

Collapse
 
slifin profile image
Adrian Smith

Clojure/ClojureScript

Top Heroku Alternatives (For Free)

>> Check out this classic DEV post <<