This article is based on the StackOverflow survey available at: https://insights.stackoverflow.com/survey/2018/.
Wait, I thought functional programming _is_ trendy!
(Currently reading https://www.manning.com/books/functional-programming-in-c-sh... and greatly enjoying it)
IMHO this is a misleading outcome.
What isn't represented to remove a bias from the numbers is the number of years of experience and education. It's highly unlikely that bootcamp graduates will be working in OCaml/Erlang since these will bias to people with CS degrees who understand the why behind functional.
There is a disproportionate usage of Erlang in the finance industry. That might be part of its high salary.
Even if AI is evil, most developers don't think it's the fault of the programmers. Fifty-eight percent say that ethics are the responsibility of upper management, 23 percent the inventor of the unethical idea, and just 20 percent think that they're the responsibility of the developer who actually wrote the code.
It's shocking to me that people would blame the invention of the idea. I think talking about unethical ways of doing business before they're adopted is useful, because it gives society a chance to frame the debate and possibly even criminalize the behavior before entire companies depend on it for their business model. Most unethical business behaviors are semi-obvious anyway, in the sense that they're going to occur to many people right away rather than waiting on a genius stroke of inspiration that might come this year or five years from now. If you think of an unethical idea at work, odds are that five other people are already thinking of it too, and one of them is planning how to implement it. Seize the initiative. Talk about the idea and frame it as evil. Make it a joke among the engineers. "Of course if we were really evil, we could do X." "Nice, what a way to fuck our customers over and make money from it." "Not that I could actually bring myself to do it." "Where's Martin Shkreli when you need him?" (Reference a company that went down in flames, a person who went crying to prison. It doesn't matter if Facebook or Mark Zuckerberg is a better comparison; don't mention a company with a thriving business or a person making bank with impunity. Success gives everything a halo.)
If you do this effectively, then the company has to consider the cost of embracing an idea that has already been framed as evil. They'll have to consider that they won't have the most enthusiastic cooperation from some of the engineers, that it will decrease people's pride and job satisfaction, that some engineers who have other opportunities might decide to leave so they can still be proud of their work. They will have to consider morale outside of engineering as well, because people in other departments will be saying, "What is the deal here? The engineers seem to think that what we're doing is really slimy. Am I going to be embarrassed to tell my friends about this?" Management might still go ahead with it, but on the other hand they might decide to do something else instead. And if they do it, they'll at least profit a little bit less because of the friction you created.
There are many devs making plenty maintaining old legacy systems in languages long since considered dead on sites like Stack Overflow. The biggest missing qualifier on that survey is the obvious "developers who are likely to answer a stack overflow survey....", or even use SO at all.
An org usually only hires functional programmers for specialized tasks, and specialization generally pays more. It's not about pay here, but about the nature of niches. The downside career-wise is that is that you have fewer alternatives, domain and geography, if your specialty slumps.
> Globally, F# and OCaml are the top average earners
Don't know about F# but the job market for OCaml consists of about 2 companies. What good is high average when you can count job openings on one hand?
I like OCaml, I wish it was more popular.
This is hardly surprising. Everything new is exciting at first. Yet when it comes to making a decision what tools to use in production, I suppose most developers have the presence of mind to choose something robust and battle-tested.
I've consistently seen functional programming used as leverage to offer lower salaries outside of a few companies known for paying well like Jet and Jane Street.
Breaking: People who work at Jane Street make a lot of money.
"functional" is so ambiguous in that context…
Could it be true, erlang and clojure are assuciated with higher income both worldwide and in US? A little back, I remember, functional programming was thought as academic and not fit for production. Has that changed? This is interesting and almost too good to be true.
What do people that use Ocaml all day actually do?
,,Fifty-eight percent say that ethics are the responsibility of upper management''
With the same reasoning management could say that ethics is the responsibility of investors who decide about how ethical a company should be and customers who may pay for the non-ethical product.
FP people are generally older and more experienced, like Hickey have said "Clojure is for old tired programmers" (Love thinking, tired of pressing keyboard - description I fit pretty much too).
Young FP adepts, especially converts in their early 20s, especially those who are "in trend", are a pure disaster.. don't pay them too much..