Skip to content
Advent of Code 2019
Fortran Assembly Crystal Ada Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
day1
day2
day3
day4
day5
.gitignore
README.md

README.md

Advent of Code 2019

This year I want to learn several new languages and this seems like a good opportunity to do so!

Languages

After using Ada and Crystal for the first two days I decided it would be fun to keep using new languages. These are more or less in chronological order.

  1. Ada (GNAT 8.3.0)
  2. Crystal (0.31.1)
  3. Fortran 95 (GFortan 8.3.0)
  4. x86 (NASM 2.14)
  5. ALGOL 68 (Algol68G 2.8.4)
  6. COBOL (GnuCOBOL)
  7. APL (GNU APL)
  8. BASIC (FreeBASIC)
  9. Forth (FreeForth2)
  10. Pascal (Free Pascal)
  11. Smalltalk (GNU Smalltalk)
  12. Prolog (SWI-Prolog)
  13. TeX (TeX Live)
  14. AWK (GNU Awk 4.2.1)
  15. PostScript (any PDF viewer)
  16. Haskell
  17. OCaml
  18. Dlang
  19. Adga
  20. Nim
  21. Idris
  22. Elixir
  23. Elm
  24. Julia
  25. Raku

After a while I decided to write down one thing I like and one thing I dislike about each language. This only represents the experience I gained from solving one problem in that language (and doesn't characterize my opinion about the whole language).

  1. Ada
    • like: := for assignments (more mathematical and frees = for comparison)
    • dislike: no functional array utilities like map and reduce
  2. Crystal
    • like: built-in list comparison with <=> (this is a common use-case)
    • dislike: unfamiliar closure syntax { |x| x + 1 }
  3. Fortran
    • like: ! for comments (my brain is programmed to prioritize exclamations)
    • dislike: no dynamic string manipulation utilities
  4. x86 assembly
    • like: now I can finally say I also did assembly once
    • dislike: historical register names like rsi, rdi (source/destination index)
  5. ALGOL 68
    • like: feels almost like a modern language!
    • dislike: semicolon as infix operator
You can’t perform that action at this time.