3 ms·
People in academia know enough computer science to appreciate that everything can be reduced down to unification and function application (+ side effects) and t
by Vampiero 2y ago
People in academia know enough computer science to appreciate that everything can be reduced down to unification and function application (+ side effects) and they advocate for expressiveness in the same sense that a manager on a team of people working with an industrial language advocates for simple and readable code (because he wants to streamline the onboarding process, and because he's constantly hiring juniors instead of seniors).
Common patterns in functional languages are considered "too clever" in most workplaces. Because they leave new hires dumbfounded and no one has got the time to explain them how to do their job. It's not that they're too "clever" but rather that the average coworker is too "dumb". But that's not a jab at anyone in particular, it's a consequence of our work culture -- and "clever" and "dumb" are not statements about intelligence, but about experience and team composition.
Basically the incentives are actually opposite to each other. It takes a long time to wrap your head around languages like Haskell because you actually have to know some theory, you can't just wing it. Javascript however...
On one side of the spectrum there's imperative languages and on the other end there's declarative ones. So this dichotomy creates friction and inertia.
- adamc 2y agoHere's a different take: Languages like Haskell aren't solving the problems companies actually experience (for the most part). High on that list of real problems is "how do I get effective work out of these <relatively inexpert> programmers?" And often the domain that the programmers are being asked to work in strongly constrains viable languages as well. (Web browsers and JavaScript would be an example.) I love Lisps, but for most companies, it's not the right investment. People don't leave school knowing lisp, its flexibility can be a downside with inexperienced developers, and it doesn't have the kind of ecosystem something like JavaScript or Python or Java or even C++ have. Nor can you easily hire contractors to help you on a project or to help clean up a mess. Businesses like solutions that can be planned for, that are easy to hire for, that one can get help with if things go badly.
- discreteevent 2y agoWhen I started programming most of the world that I encountered seemed to be written in C++. I don't think Haskell and C++ are hugely different in terms of how long it takes to become proficient in them. The programmers I come across nowadays don't seem to be much different in terms of their ability from those C++ programmers. I think that if Haskell hasn't succeeded then the idea that workers are too dumb (or don't have the time) is not the cause. There are many smart people in industry who know about Haskell but do not find it attractive.