Just for the fun of it (and somewhat helped by having some out of date exercises that needed to be updated) I’ve finished my 5 (at least) exercises for 12 languages and have just started my 13th, all in January! Also, man, Fortran is hella verbose!
On the negative side, that means I now need to do the completion states and the badges for this
Most enjoyable 3 languages?
That was one of my thoughts :D “What if I finish it and there is nothing on the other side (yet)”
I’d say Go, Elixir, and MIPS Assemnly turned out to be my “surprise”, as in really fresh to the language, top three… hadn’t actually used Go since choosing Rust over it years ago, and found it to be very pleasant and wasn’t at all as bothered by the error handling as I’d thought I’d be. Syntax was relatively intuitive, error messages meaningful, and relevant docs readily available. Elixir I had never tried, and I was expecting to be more painful, but was also quite good (though definitely felt a bit less polished than Go and Rust, as an experience)… could definitely see building things in it. MIPS took me by surprise, as I’d completely forgotten how fun finding success when coding at that low of a level can be, though it took a hell of a lot of googling to figure out some of the pseudo instructions.
My overall favorite though is still Rust… the feedback from the compiler and the tooling around Cargo and and the functional-inspired syntax around iterators… it just all comes together in a way that makes it feel like a very, very deeply considered language. To the point I think it’s maybe a better “first” language than it’s given credit for, despite having a lot (perhaps too many) good ideas packed into it.
I do wish there was a track for Zig, that’s a language I’d like to add to my comparison table.
Congrats! I finished mine yesterday. Refreshed a few times until I realized maybe the badges weren’t ready yet
My top 3 would be Rust, Scala and Python, which incidentally is also what I use the most.
Unison had some great ideas but I had a very hard time with the documentation. On that note, there is a massive difference between tracks with learning modes and those without. Once you depend on the language docs, you appreciate the work that modern languages like Go and Rust put into theirs.
F# was also a pleasant surprise although to me it did have some syntactic quirks (like ‘=’ for equality).
Verbose? Fortran is verbose?! Try COBOL on for size!
Actually COBOL was one of my 12, and surprisingly I found it much easier to pick up than Fortran, mainly because the verbosity of COBOL felt more semantically motivated (ie aimed at communicating to a human reader) than structurally motivated (ie aimed at communicating to a compiler). That said, I’m alway coming at PLs from a business-first perspective, rather than maths-first, so I’m not really Fortran’s target audience.
Ooh, since we are playing ask and I shall receive, TLA+, Pony, Idris2, and LLVM MLIR, please…
If anyone wants to help get them over the line… (20 exercises to launch)
Thought I’d try to help with Zig, as it’s one exercise away from the finish line and I could probably do a passable
binary, but 0.10.1 throws as “comptime call of extern function” error with the current test_hello_world.zig when it tries to grab a lock on stderr, and I’ll be damned if I can see why.
EDIT: actually, now I can see why … remove the two
comptime declarations from the file and it works, showing me that the test expects “Hello, world!” instead of “Hello, World!” (incidentally, the docs suggest it should be the latter) … keep the
comptimes and it fails to grab the lock. Might have something to do with being on an M2 Mac?
@yawpitch It’s not due to your Mac! We have the same issue with the test runner: Test runner fails hello world · Issue #21 · exercism/zig-test-runner · GitHub
I’ve also tried to upgrade to 0.10.1, but I’m running into some issue: Upgrade to version 0.10.1 by ErikSchierboom · Pull Request #20 · exercism/zig-test-runner · GitHub
Oh and the tests should have “Hello, World!” to be consistent with other tracks.