by ferris
I finished my Asteroids clone written in Elm, elmsteroids!! You can find the source here :)
This was a really fun exercise in building a mid-sized, interactive project with no mutable state. I learned a ton of useful tricks and really nailed some of the FP concepts I had had trouble with before, such as monads, functors, and applicative functors. And it was received pretty well by the community, and that's always a plus :)
I also did a bit of a writeup on the experience in the readme. To summarize, it was pretty fun, but being a purely functional programming language with very haskell-like syntax, it naturally invited comparisons where it felt like it really didn't stand up. A lot of features you'd expect seem to be missing, and the only reason I was able to dig around and find was "to simplify the language and make it easier to learn and pick up". This is probably true, but even when doing elmsteroids, I hit a few walls. I don't feel like explaining them here as I already explained them in the readme, but overall it was a positive learning experience and I'm glad I did the project. Also, people are already forking it on github and trying to make it less haskell'y and more elm'y, and it's cool to see the equivalences as well (even though I may argue against the usefulness), especially when I don't have to do the work :D
I also dug into a bit of category theory this week trying to "suck in" more context for some of the stuff I learned. Basically I learned the notion of a category is REALLY simple and there's hardly anything to it! I'm still learning where some of the patterns in the theory come from, so it'll be a bit before I'm able to explain things properly I think, but it's been a fun journey (and you can see some of that journey in a question I asked on reddit today here).
So, I'm gonna cut this short as my brain is just in shambles from pounding the learnings all week, and I barely got any sleep (as is usual for my semi-annual FP/category theory obsessions) but hey, I learned a ton, stuff's starting to stick, and I had a lot of fun :)
Now, time to drop this stuff, and get back on demo things.... :D
Last Edited on Mon May 23 2016 22:17:32 GMT-0400 (EDT)