This feels like a low-content article. The only thing I can get out of it is: Learning Haskell teaches you language features and patterns that you can take to other languages. As an FP dabbler I agree, but I wish there were more to this.
> approximately 50-hour training course
Is this really long enough to achieve anything? That's like "FP 101 (one semester)" if you don't take the time to do the homework.
> Is this really long enough to achieve anything? That's like "FP 101 (one semester)"
Probably. The semester that covered Haskell didn't have enough time to teach me much, but that's because it also covered FSAs, Turing Machines, Lambda Calculus, natural deduction, structural induction and Hoare logic.
You could get so much more done by learning from a practitioner that can show you how to start a project, where the packages live, which ones to use etc.
No, because this is an ad disguised as an article. You are now supposed to leave your job and apply to work there, and then, when you are hired and spend a bit of time working there, you get the Haskell course.
Feels like a gentle claim that "Haskell is best", in that the author thinks that Haskell people have an edge even when coding in other languages, because (somehow) they'll have seen it in Haskell already. I'm not sure I buy that claim, but OK.
I am convinced that no perfect lingua franca exists, and that even the best, richest, languages you can think of, with giant ecosystems and millions of users, have massive holes that guarantee another language has a meaty role. C is the closest, and whole industries have been borne trying to solve its problems.
If I was in charge of Educating The Young, I would ask that they learn C, something culturally descendant from C, and something wildly different from it.
(It occurs to me that one could make exactly the same comment about human languages too, which is why contract lawyers exist, I suppose. And my advice there would be to maybe learn English, German/French, and then something unrelated, like Mandarin Chinese. Or Finnish. I do feel strongly that learning a second language gives you new ways of thinking that are not easily available in your mother tongue.)
I definitely feel like each programming language I've learned contributed uniquely to my mindset as a hacker. And even ones that didn't really contribute to my thinking, opened up new doors. For example, C opened up open source (as a kind of lingua franca), JS opened up the browser, Hoon opened up Urbit, etc.
The most fun I've had coding was in SQL, making it do algorithms. It's actually surprisingly well-suited.
I also really enjoyed learning x86 assembly.
More important than languages are ecosystems, communities, and technological traditions. Like Unix. Becoming a Unix hacker, or an Urbit hacker, or playing CTFs, you kind of learn a whole little computational ethos that you carry with you forever. The programming language fits into that bigger picture.
When I was in University I took a course that focused on a set of problems to be solved. Each assignment in the course was solving them using a different language. Thinking back the languages were:
- C
- C++
- ASM
- Haskell
- Lisp
- Java
- Eiffel
- Modula
- Prolog
- Perl
It was an awesome course, you learned over time how some languages were better suited for certain tasks than others.
It reinforced the idea of using the right tool for the job. While a solution was feasible or verbose in some of the languages in others it was simple or concise.
I also remember thinking Java was really nice to use. Lives the automatic garbage collection and not having to think about dangling pointers.
It would be interesting to know why many of their projects are gradually transitioning to other languages. If someone paid me for programing in Haskell I would never voluntarily switch to something more boring.
I could think of two possibilities off the top of my head:
1. It’s easier to find developers who are skilled in the more popular languages.
2. Using a language is more than just its syntax and semantics; the ecosystem of tools and libraries for the language matters a lot, especially for commercial development. Interoperability between the language’s infrastructure and the desired platform the system needs to run on or interact with is also key.
I work in machine learning. I’d love to use Common Lisp or a statically-typed functional programming language like OCaml or Haskell, but I work with colleagues who know Python, and we rely heavily on Python’s extensive numerical computing and machine learning libraries. Promoting functional programming languages in this environment is like promoting Plan 9 to those who need Microsoft Office or the Adobe Creative Suite.
Sounds like the Haskell version of Eric S. Raymond's oft quoted claim about Lisp: "Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot."
> approximately 50-hour training course
Is this really long enough to achieve anything? That's like "FP 101 (one semester)" if you don't take the time to do the homework.