I'm thinking about trying the upcoming Advent of code with Raku, but I have never used it and it looks too complex to be picked up in a week or two. Any thoughts?
I don't feel like it's too complex. I started working with it about two years back and was productive within the first hour.
You definitely don't have to use everything. The only "requirement" you need - I use the term very loosely - is knowing how to use sigils ($,@,%,&) and understanding when to use which, which is easier than it looks. The rest of the knowledge comes naturally if you're inclined to refactoring.
For me, that means I'd write the most verbose solution first, then slowly work my way down to fewer SLoC. A recent programming problem took about 20 lines in Python but was a one-liner in Raku. I know SLoC isn't everything but it provides the dopamine this lizard brain craves, haha.
Well, let me tell you from experience that everything is difficult in Germany due to insane bureaucracy. I applied for student funding twice and twice I had to pay everything back due to technicalities. I would not consider founding a startup in Germany.
C is actually a huge disadvantage here for me, since I have no use for it outside of this tutorial which makes it hard to justify learning it on top of learning how a compiler works...
> The overhead to writing C makes it a less friendly introduction to the topic if you have never written a compiler or interpreter (or parser, specifically) before.
That's true and was my first thought. C seems like an arcane choice for an introduction course.
The code isn't perfect, it's a learning project and still WIP, but you can check the code for a parser for the LOX language ( c-like) from 'Crafting Interpreters' in this project. 'Ast.fs' and 'Parser.fs' should be enough to get an idea of what it's doing.You can also google the grammar of the language which is quite simple:
F# is an ML-family language, and ML stands for meta-language -- it was designed for language tools and compilers! Andrew Appel's Modern Compiler Implementation in ML is a great resource for code examples that aren't exactly F#, but will look damn close. The book has also been published with C and Java, if you want side-by-side comparisons
ML was designed to be the metalanguage for the LCF proof system, used to write proof tactics. It was then recognized to be interesting in its own right as a programming language.
Oh, thanks for the correction and apologies for the inadvertent misinfo.
Your comment sent me reading the HOPL paper about SML -- I think I (based on folklore knowledge/informal conversations) conflate the original development of ML with subsequent development and standardization around SML. All of this was well before my time so it's quite interesting to read about some of the details.