18 karma · joined February 19, 2018
edit: You can downvote all you want, but it still doesn't make sense to consider the expected return on one item in isolation. If you disagree, provide a reason.
The downsides of the current trend are:
- pretentious web development job posts requiring master's degrees in CS "or related field" (as if physics prepares you for jQuery).
- debt-ridden, unfulfilled scientists relegated to the above
Still, I wish I could see more info on this. At what point does the additional cognitive burden of advanced type system features become a worthwhile tradeoff for program correctness? It seems to me that this depends wholly on the complexity of the program.
Further to that point, the most complex programs I can think of (perhaps you may be able to offer other opinions, which I welcome) are AAA game engines. What are the reasons why the big engines out there are not using higher-kinded types, dependent types and the like? Is this just because of pragmatic issues such as the languages the developers learned in school not supporting these features, or because here-to-date functional languages supporting these features lacked the appropriate throughput of C/C++, where one can layout data for cache-efficiency?
In oversimplified terms, Rust has objects but not classes. It skews more toward: - from a C dev's perspective: data-driven design - from a Haskell dev's perspective: typeclasses and ADTs