My favorite language is clearly the best and all others are horrible because

Has anyone tried J? It looks like a good candidate for a list like this.

In the beginning of the World there was ALGOL, FORTRAN, LISP, a bunch of stupid and irrelevant languages, and a little diamond called APL. J is an ASCII descendant of APL.

2 Likes

Forgetting about the COBOLds?

“The elves, haughty and high-minded, guarded the shrine of the goddess LISP; yet outside their shining walls of parentheses the COBOLds multiplied and surged forth, laying waste to the land; as the fields and groves were thus despoiled, the dwarves laboured in their deep hidden caverns on the great machine they called FORTRAN…”

2 Likes

No? :smiley:

2 Likes

Imma recycle this meme here…

4kc03q

Before the war starts, that guy is just me.

3 Likes

I really despise syntactic indentation. It’s been the root of so many obscure bugs thus unique to Python.

I don’t program these days, but if I was going to start scripting again I’d probably learn Ruby.

3 Likes

The one thing that bothered me most about Python is that it is dynamically yet strongly typed. This seems like a strange combination because the interpreter will get upset about “1” being treated as an integer and start throwing runtime exceptions, unlike Perl which is fine with that.

2 Likes

Python: “1” is clearly a string, idiot, why are you asking me to math it??? eDuCaTe YoUrSeLf!!!1!

4 Likes

I followed a workshop once by a go player about a 2 dimensional programming language similar to brainfuck.
You could make a program on a go board with it, using black and white go stones as instructions for the program counter running around the board. If I remember correctly, the assignment of the workshop was to make a “busy beaver” program: construct nested loops on a 19x19 board that runs for as many steps as possible, while still ending eventually.

4 Likes

Sounds like masyu, with extra steps.

2 Likes

I recall a bit more info. The programming language is called 2L.
This Turing Complete language has only two operator symbols: * and + (while space = NOP), for which you can use white and black stones (while an empty intersection = NOP). * are memory operations and + are program flow operations, changing the direction in which the program counter runs.

The program space and the program counter are 2-dimensional.
The program space has edges at the top and left, while it is infinite towards the right and bottom. The program ends when the program counter runs off the top or left edge.

In the go variant (2Lgo?), program space is ofcourse limited to a 19x19 grid. The program still ends when the program counter runs off an egde.

4 Likes

I recovered the 2L interpreter that I made at the time (in C#) to test the programs of the workshop participants. My memory was inaccurate, because the contest was on a 9x9 board, not on a 19x19 board.

The winning 2L busy beaver program at the time (not written by me) runs for 61921 steps.

You can see it in action here by pressing the “Run” button (warning: may be mesmerizing to watch it run).

3 Likes

Fun stuff! Were you able to perform any useful computations on a 9x9? (Just as an example, adding two bytes?)

Actually I don’t quite get how input and output work for this

1 Like

Javascript, but, like, the good half of the language.

…Because sometimes classes are too easy and I want to suffer with my prototypes.

2 Likes

See the 2L wiki where I/O is described. But I didn’t implement I/O in my interpreter, because the goal of the contest was only about the duration (#steps) of the program and I/O was irrelevant.

2L is a Turing Complete language, so it should be possible to do anything that can be done in other Turing complete languages. But it is ofcourse extremely arduous and totally impractical to write software in 2L. It would be much simpler to write a for loop of arbitrary length in regular programming languages.

So these esoteric programming languages are more for fun than anything else. In this case, it was just an off-topic workshop in a go camp with a fun and nerdy challenge for the participants (a contest of writing a computer program with go playing material). A maximum program size of 9x9 instructions is a severe constraint on what you can do in 2L, but that also makes it fun to discover what you can do within those contraints.

2 Likes

Real programmers use LISP and Emacs! https://imgs.xkcd.com/comics/real_programmers.png

Real programmers use C++. Real physicists use Fortran :wink:

2 Likes

I don’t know much about programming, just some very, very basic C++ (by which I mean: I know there need to be semicolons and you can make IF/THEN stuff). How do you guys determine “quality” of a programming language?

Usually some combination of “how familiar I am with it” and “how well it handles the things I most often do” and “how popular it is with ‘my crowd’” (this last one helps a lot with finding answers when stuck)

2 Likes

What does “handles the things I most often do” mean?

Well, “programming” is a very vast field. Each language has its strengths and weaknesses, and some are more ideal for certain tasks than others… so depending on what project you’re working on, and what types of projects you typically work on, will at least partially influence what language you are most drawn towards.

It’s like, if you wanted to woo a certain girl, an essay or a poem might work best depending on your talents and her tastes.

3 Likes