The Uncommon Advantage from Training in Unpopular Programming Languages
stackbuilders.com
stackbuilders.com
> 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.
Source: I worked there.
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.
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.)
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.
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.
Also that Perl was frustrating.
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.