NobbZ' Blog


A hand trying to pick a numerical lock with a toothpick
2023-01-05; Norbert Melzer

Ariel on Unsplash

Yesterday I was greeted by a pop up on the exercism website, with a pop-up that contained a text like the following:

Hey everyone! Happy new year! For 2023, we've decided to do something a bit different and encourage everyone to try 12 different programming languages throughout the year! We're calling this The #12in23 Challenge. You should be seeing a new card on your dashboard to allow you to get started or go straight to the information page for more details and my intro video.

I added the link to the video.

So I thought, lets plan ahead, and see what nice languages we have to try.

Just visiting the track overview and filtering it to only languages that provide linux support gave me a list of 57 tracks remaining. Thats still enough for one language per week, and I still would require that the earth takes a bit longer to do its sun dance…

Though as I have already touched ~30 of those ~60 tracks I decided to narrow the list down to languages that are really new to me (from exercisms point of view).

I will only do languages which I have not yet a single solution in.

This leaves me with the following opportunites:

  1. AWK
  2. Ballerina
  3. Common Lisp
  4. Delphi Pascal (why is this in "Linux"?)
  5. Fortran
  6. Groovy
  7. Kotlin
  8. MIPS Assembly
  9. Objective-C
  10. Perl
  11. Pharo
  12. PL/SQL
  13. PureScript
  14. R
  15. Raku
  16. ReasonML
  17. Red
  18. Standard ML
  19. Swift
  20. Tcl
  21. Unison
  22. VB.Net
  23. Vim script
  24. WebAssembly
  25. Wren
  26. x86-64 Assembly

Among those I explicitely do not want to try

  1. Delphi Pascal (as it is basically windows only)
  2. MIPS Assembly (I had assembly during study, nothing I want to spent to much time with)
  3. Objective-C (Isn't that Mac only?)
  4. Swift (see Objective-C)
  5. Unison (not a friend of this cloud only thing)
  6. x86-64 Assembly (see MIPS Assembly)

So this leaves me with 20 languages to try…

As I do not want to have a though start right now, I will pick something that I know that is available for NixOS to not have to do the nasty packaging at the start.

Also it shall be something I am at least distantly familiar with, so I will try out "Common Lisp" during January.

For the following 11 months, I will try a mix of randomness and manually filtering the input/output of the randomness, to avoid far to heavy tasks for the travel seasons or when there is a lot of work to do.

Also I might cancel individual tracks after the announcement of doing them, if I realize that setting them up on NixOS is too cumbersome…

I will keep some notes about my progress here.