What programming language should you learn?

Wait! No Malbolge chart?

It is the programming langua͕̟̲͇̻̝̪͟ge͇͈ͅ of̙̯̠̺̯ ̮t̟͝ḫ͈͖̦̝e͏̤ F̰̠̥͑̀ͬ̏̓U̪̥̅̽͜T̘̻͎̣̖͐ͨU̙̙̙̦̼̝ͣͬ̆͋͌ͩͅR͚̞̮̗̩͇̍̄ͨͧ̈́E̵̲͉̦ͭ̽ͤ!

3 Likes

$program =~ s/./&compiler/eg;

Seems to break the spirit of the challenge somewhat.

P.S. I’ll leave the implementation of compiler() to the reader.

3 Likes

Pretty weak. Look at the length of the Hello World programme. That’s only going to drive the programmer crazy. With 5 lines of APL code, you can wake Cthulhu himself and bring insanity to the entire universe.

4 Likes

Can you write this chunk of code as a fork-bomb like infinite branching recursion?

…yes, I want to see the multiverse burn…

3 Likes

Piece of cake. Add dyadic format, diaresis, and execute operators to the last line in the appropriate spots, then a jump back to the 2nd line. Start with a data set of Finnish or Court Thai text, and even Cthulhu is a little afraid to find out what happens next.

(Oops, I forgot - there is no such place as Finland. The programme is working already…)

3 Likes

According to this “list of major software products or utilities, with details about the programming languages used to implement them,” the answer seems to be C++. Nothing else is even close.

It’s a reference to an early Chris Burden performance work.

2 Likes

Bash for various ad-hoc glue.
C for system-level coding and for fooling around microcontrollers and SoC chips.
Python for various tools and utilities that you need quick’n’dirty. Perhaps for bigger, cleaner things too.
PHP for web shenanigans. Goes well with MySQL or PostgreSQL.
Javascript for in-browser fooling 'round.
Java if you want to mess with Android. (Crawling monstrosity. Bleh.)
R if you wrangle large datasets and need to do math/stat upon them.
Matlab if you do big math.
Lua for various lightweight embedded scripting, where applicable; seems to be handy around internet-of-things.
Assembler for the nose-on-the-bare-iron times. Goes well with raw machine code.
LISP for… whatever is LISP good for. Some swear on it. Some swear at it.
Verilog and/or VHDL for better nose-on-the-bare-iron times. Powerful stuff when coupled with the right hardware.
APL if you want to go insane.
…and more, for more purposes.

Every tool has its purpose. Many can be used in different contexts where they aren’t so good; but a suboptimal tool you know is usually better than a less-suboptimal one you are unfamiliar with.

3 Likes

Most modern IDEs are hardware stack machines, programmed in FORTH.

3 Likes

If you can’t do it with Emacs Lisp or NodeJS you’re better off watching Netflix. (And since there’s an Emacs webserver that runs on Heroku what can’t you do with Elisp?!)

2 Likes

Is this true? I’ve been looking for a reason to pass my yellowing FORTH books on to my son (cf my post above mentioning TILs)

2 Likes

That said, I think that the scientific Python stack, including pandas, is really far better than MATLAB for the enormous majority of the tasks I would use MATLAB for.

It’s also faster.

It’s also free, so I don’t have to ask my boss to spend 10k for a license for some data analysis tool I want, and I can make portable code without clunky and incredibly slow wrappers (falsely advertised as “compilers”). I can also have the exact same toolset I’m used to using professionally on my home computer for my own projects.

MATLAB is much better documented (than pretty much anything), though, so it has that going for it.

See above for MATLAB. I’m also familiar with R, and I would say that Pandas is pretty much R for Python, and runs faster (not really that important until your arrays get past a few million lines). Being in the context of Python gives you a lot more options for scripting the parsing of obscure proprietary data formats than in R, and the only areas where R really has an advantage are in the wealth of open source stats software and algorithms for it (only really relevant if you’re doing stats a lot more complicated than anything you’d find in an intro level engineering stats or error analysis course or basic Bayesian inference, which is really the extent of anything I’ve ever used.) and ggplot, which is only really better than something like mpl and Seaborn on the Python side for a couple of the more obscure corners of the data visualization world.

1 Like

I know you will mock me…

But perl is better for 99% of system programming. It really is. Unless you are writing a driver, patching a syscall, it is—wait a second, with a bit of xs code and it is still better.

I understand perl is entering into not just Uncool territory, but Seriously Uncool territory. But if you know C/perl/c# you can do anything. (Except grok lisp :D)

4 Likes

I don’t have much experience with either perl or python. With perl I had to maintain a third-party accounting system written in it; that was… interesting. The language is somewhat difficult to read and some parts tend to look like the proverbial line noise.

Cf. python, with which I got some file/firmware upload tools for NodeMCU/ESP8266. I was in the business of editing the tools and adding needed features within the same evening. Much less unpleasant.

Just imagine it’s C without types, casting, everything is a pointer but they don’t look like they are. Easy!

Honestly nothing reinforces the terror of pointers quite like $var, or the way you can misuse them like

my $var;
push(@{$var}, @gah);
push(%{$var->[0]}, %blargh);
print Dumper $var;

You don’t like that?

2 Likes

[runs away SCREAMING]

1 Like

I find these comparisons a bit ridiculous. It seems to me that no matter what languages you know if you’re a “real programmer” you should be able to pick up any language relatively quickly - like no more than a couple of weeks of flailing around to get the syntax and most important idioms down.

5 Likes

Perl really is awesome. You can do incredibly complex text parsing with just a few lines of code.

Powershell is pretty great, too. Very perl-like but backed by .Net and with tons of cool functionality.

2 Likes

It probably is, but it looks like alphabet soup with all of unicode as the alphabet. I’ve never seen any use of learning it instead of PHP so I don’t want to mess with it.

I do agree, but if you’re new to the game and you only get to learn one or two languages from your school, and you want to know what other languages to add to your tool box, I do think comparing them is relevant but not in the way the original post does.

Learning the ropes in a couple of weeks is one thing though, learning it enough to know if it is the best choice among the ones you know for a project, and also get a sketch in your head of what you should do, is something else.

1 Like

The OO implementation is also totally different, more like Java in A S3 than Javascript. Well, that and all the animation timeline and display related libraries…