Schemescape

Development log of a life-long coder

50 programming languages in 58 days

In the past two months, I've written code in 50 different programming languages. That's half way to my goal of 100.

Weeks 6 - 8

After tediously painting a picture to compute digit factorials, I'm trying to be more strategic about pairing programming languages with suitable Project Euler problems. Ideally, I can avoid writing "big integer" arithmetic and/or squeezing solutions into a 16-bit address space for the next update. And I'm definitely going to take a break from esoteric programming languages for a bit.

Anyway, here are the languages I used:

A few languages surprised me (one quite pleasantly and one quite unpleasantly).

The rest of this post just contains notes from my (minimal) interaction with each language. I'm planning to write a separate post with more general observations. As always, my observations are from spending at most a few hours with each language, so take my opinions completely encrusted with salt.

Turbo Pascal

I'd always wanted to try Turbo Pascal since two of my heroes helped create it (Anders "Turbo" Heljsberg and Niklaus ("Pascal") Wirth). It was allegedly far ahead of its time, although my only contemporaneous experience was with QBasic, so I can neither confirm nor deny. Regardless, it's an impressively complete little environment. I highly recommend it for retrocomputing!

Notes:

Hare

Wren

Pkl

According to its web site, Pkl provides "Configuration that is Programmable, Scalable, and Safe". Sounds great! Let's download it. Eighty four megabytes later, you can get a taste of Pkl.

Now, I know I'm in the minority when pining for a minimal development environment, but how can a configuration language be 84 MB? Why does a configuration language require its own JIT compiler?

I understand that INI files aren't enough and that YAML doesn't scale and that JSON probably wouldn't exist if XML had been simpler and less verbose. But (and I apologize for this)... Pkl is the Electron of configuration languages. That is both a compliment and an insult.

End rant.

Notes:

Qalb

Roc

wax

Boron

wenyan

Self

Haskell

Idris

Nim

Nim is the language that impressed me the most in this batch. Everything I thought would be a problem (significant whitespace, choose-your-own-function syntax, intermediate C compliation step) didn't bother me at all. The small sample of the standard library I played with was a little quirky, but Nim seems like excellent bang for your buck.

Notes:

Min

Cakelisp

F#