Advent of code 2021 - new language each day.
The challenge is to complete Advent of Code, but using a different language each day.
Below is the languages I will use for each of the days. It is ordered very roughly in reverse order of my familiarity with the languages (with a few exceptions), so that the harder challenges towards the end of the month are done in languages I'm more familiar with. Hopefully...
01/12/2021 Rust
02/12/2021 C
03/12/2021 Ruby
04/12/2021 C#
05/12/2021 Dart
06/12/2021 Clojure
07/12/2021 Haskell
08/12/2021 Lisp
09/12/2021 Lua
10/12/2021 Fortran
11/12/2021 R
12/12/2021 F#
13/12/2021 Swift
14/12/2021 Julia
15/12/2021 Perl
16/12/2021 PHP
17/12/2021 Java
18/12/2021 C++
19/12/2021 Powershell
20/12/2021 Bash
21/12/2021 Go
22/12/2021 JavaScript
23/12/2021 Matlab/Octave
24/12/2021 Python
This section contains a description of my thoughts on each language, written as I do each challenge.
Please note that I probably won't do much research into specific features of each language, so some of the solutions may be horrific to someone familiar in the language!
Experience level: I'd probably recognise it if I saw it
Thoughts going into it: I've seen the syntax before and I can't say I was a fan... let's see how it goes.
Thoughts after completing:
- It's quite annoying how there appears to be a lot of built in functionality, but to me it isn't intuitive as to what you can and can't do with different types.
- The compiler has useful error messages.
- I feel like I absolutely abused this language, it definitely has more features and I'd probably like to try it out properly. Maybe even 'learn it properly'...
Sorry Rust...
Experience level: a bit...
Thoughts going into it: I should be able to do this, at least it's a sensible language
Thoughts after completing:
- To be honest it's hard.
- I got a correct solution for puzzle 1, started working on puzzle 2 and realised my solution to answer 1 was flaky. I did fix this in the end.
- Pointers are useful actually.
Experience level: none
Thoughts going into it: I don't really know what to expect.
Thoughts after completing:
- It feels a bit like Python, with array methods that remind me of javascript.
- Got caught out with division being integer division.
- I don't know what I'd use this language for in reality, but it isn't awful.
Experience level: I think I might have played with it once
Thoughts going into it: It's Microsoft Java. Gonna be lots of classes and lots of verbosity...
Thoughts after completing it:
- Gave up initially...