3 ms·
> I think the really theoretical stuff (Haskell, Prolog, Lisp) should only be briefly introduced in undergrad and expanded upon in grad school. Or you have spec
by aranchelk 5y ago
> I think the really theoretical stuff (Haskell, Prolog, Lisp) should only be briefly introduced in undergrad and expanded upon in grad school. Or you have specific academic or industry based programs.
My experience is Haskell actually is highly practical for many tasks. So I think it’s misleading to call it “really theoretical”. It’s the reason you see FP in areas as diverse as spam filtering, distributed computing, smart contracts, various financial services, etc.
While less common, there absolutely are areas in industry that do tend to use FP, and I don’t think you should cut students off from easily entering those specialties (or having to plan to enter them ahead of time).
Additionally, there are concepts used in imperative languages which are not as easy to understand or express in those languages, e.g. promises, are more clearly expressed as monads in a language like Haskell.
- 7thaccount 5y agoI think your view of Haskell's use in industry is skewed by HN. Yes there are SOME Haskell jobs, but it's not even in the top 50 languages last I checked (or if it is, it is still far down the list). A student getting a job doing spam filtering in Haskell for FB would be a nearly zero probability event in comparison to something in Java. Just go look for Haskell job postings. I bet it's 0.0001% of something like C#. So when you say uncommon, I see exceedingly rare. Every hour of student time is precious, so a single course covering PL theory in undergrad that introduces the concepts should be plenty. If someone really needs to learn Haskell in industry (a unicorn case), they can do it there. Otherwise the focus should be on practical experience and theory relevant to 95% of computer science and related jobs (object oriented programming, SQL or NoSQL databases, algorithms, web development, networks, operating systems, cloud computing...etc).
- aranchelk 5y ago> I think your view of Haskell's use in industry is skewed by HN It’s really funny you say that, I view HN as being frequently anti-FP. I guess when you split the difference everyone is a bit unhappy. In my case I’ve been programming for over 30 years and only on HN for a few months, so I don’t feel like it’s swayed me much, you never know. I’ve read Graham for years and he certainly has been an influence. Overall Haskell alone isn’t that big in industry, but it most clearly illustrates many FP concepts and is the originating point (or an early adopter) of new tech that makes it into other languages. If you look at all the jobs in Scala, Haskell, Clojure, F#, OCaml, Elm, Erlang, and PureScript. Then you throw in all the jobs in multi-paradigm languages Python, JS, etc. with managers or coding standards that dictate functional techniques, then subtract the particularly awful soul crushing dead-end jobs (that regardless of paradigm or language) probably none of us want, I think you may be underestimating the representation of FP. Ultimately when I hire someone with a 4 year degree from a research university, I’m not expecting them to have 100% vocational training, they should be literate in at least a couple languages, but I’m much more interested in knowledge of concepts and adaptability. The best Python programmer I’ve worked with described his junior year as being almost entirely Standard ML. I think he was better for it.