4 ms·
The allure of easy concurrency is a trap. My functional programming experience comes from Scala, and the building of systems usually ends up like this: 1. Tak
by cerrelio 10y ago
The allure of easy concurrency is a trap. My functional programming experience comes from Scala, and the building of systems usually ends up like this:
1. Take an approachable problem and break it into composable functional units - mostly monads and abstract syntax trees
2. Try to write something useful to actually compose and execute these pieces
3. Give up and use scalaz
4. Forsake static typing
5. Coup de grace - sprinkle in implicits for an extra "fuck you" to future maintainers
6. System is shitcanned - subsequent attempt uses Spark
The lesson learned is that most languages can be used to build a concurrent system, but you're often better served by choosing the language with a community that produces the most useful tools, frameworks and APIs for the problem you're solving.