5 ms·
I spent years wasting time on Haskell and wouldn’t recommend it unless you find joy in the purely academic. I’ve never found a practical application for my know
by ilovecaching 4y ago
I spent years wasting time on Haskell and wouldn’t recommend it unless you find joy in the purely academic. I’ve never found a practical application for my knowledge and no one has ever paid me to write it. I suppose if I were willing to take a huge pay cut I could have found something, but you’re far better off completely mastering Go, C++, Python, gaining systems knowledge, etc. which people will pay you good money for. The “it teaches you to think a certain way” is IMO a really weak argument. It’s extremely difficult to master one language and you’re far better off going deep in something useful than exposing yourself at a surface level to every technology and paradigm.
- nequo 4y agoGiven the similarities in their type systems, languages like Rust or Scala might be easier to pick up with some Haskell knowledge than without. Has that not been your experience?
- wiseowise 4y agoYou know what would make easier pick up languages like Rust and Scala? Actually using them, and not making a detour into the language that has different goals.
- nequo 4y agoYou have a point. The best way to learn is to do. I am lucky because I can use Haskell simply because I enjoy it and don’t need to worry who will pay me for it as long as I produce the output.
- JadeNB 4y ago> You know what would make easier pick up languages like Rust and Scala? Actually using them, and not making a detour into the language that has different goals. While this is pithily said, I think it is not unreasonable to disagree. It may be that a language that makes unrealistic assumptions and sacrifices almost everything to maintaining a theoretical vision may make it easier to understand that vision, on top of which understanding you can then layer the necessary compromises more easily than you could by learning both theory and compromises at the same time.
- ParetoOptimal 4y ago> I spent years wasting time on Haskell and wouldn’t recommend it unless you find joy in the purely academic. You must have chose to do academic things then because I was able to use it for simple real world applications the first day. > The “it teaches you to think a certain way” is IMO a really weak argument Not when it can be used with all other languages. > no one has ever paid me to write it. I suppose if I were willing to take a huge pay cut I could have found something, I got a pay raise and suspect many others would as well.
- dotancohen 4y ago> I was able to use it for simple real world applications the first day. Considering GP's complaint was a common known idiosyncracy of Haskell, examples of your real world applications (first day or otherwise) would be appreciated!
- ghostwriter 4y agoplenty of projects that use either of the following on a regular basis: - https://www.aosabook.org/en/posa/warp.html https://www.aosabook.org/en/posa/warp.html - https://morpheusgraphql.com/ https://morpheusgraphql.com/ - https://higherkindness.io/mu-haskell/ https://higherkindness.io/mu-haskell/ - https://github.com/hasura/graphql-engine https://github.com/hasura/graphql-engine - https://postgrest.org/en/stable/ https://postgrest.org/en/stable/ - https://www.shellcheck.net/ https://www.shellcheck.net/ - https://dhall-lang.org/ https://dhall-lang.org/ - https://haskell-miso.org/ https://haskell-miso.org/ - https://github.com/jgm/gitit https://github.com/jgm/gitit - https://jaspervdj.be/hakyll/ https://jaspervdj.be/hakyll/ - https://github.com/IHaskell/IHaskell https://github.com/IHaskell/IHaskell - https://tweag.github.io/HaskellR/ https://tweag.github.io/HaskellR/ (https://idontgetoutmuch.wordpress.com/2018/05/19/cartography-in-haskell/ https://idontgetoutmuch.wordpress.com/2018/05/19/cartography...) The list can go on, it really depends on what level of "real-worldness" you consider to be real.
- dotancohen 4y agoGreat, thanks.
- ypeterholmes 4y agoQuite a few well capitalized projects launching on the Cardano blockchain looking for Haskell devs right now.
- xrisk 4y agoEee hardly a practical use… blockchain things.
- ypeterholmes 4y agoThat's what they used to say about the internet. But maybe, just maybe a layer of verifiable truth that disintermediates the need to "trust" someone could be useful? Looks out at SBF, Liz Holmes, Voting Controversies, etc. Nahhhh, this is working well!
- lupire 4y agoYes a lot of smart people like crypto and like Haskell. That "lot" is still miniscule compared to the other languages people have jobs using.
- yakshaving_jgt 4y agoI am paid to write Haskell and I pay several people to write Haskell. We're happy.
- lupire 4y agoYou can learn the new way to think really quickly, long before mastering the language, which most never do.
- sshine 4y agoHaskell was my favourite language for a decade. Now it’s Rust. I’ve not spent anywhere as much time getting only moderately good at any other language as I have with Haskell. > The “it teaches you to think a certain way” is IMO a really weak argument. I disagree. It has changed how I write in every other language. Haskell has many principles that are not enforced in other languages, but are good to follow. I’ve learned a lot from reading open space Haskell code because it’s a language where authors care about the details. > you’re far better off completely mastering Go, C++, Python Probably! You could say you’re better off mastering any other language, but you have to define “better”. Certainly, you can get profitable faster with most other languages. Ten years in, I still don’t know how to make a statically linked executable with Haskell.
- ghostwriter 4y ago> Haskell was my favourite language for a decade. Now it’s Rust. Sigh... > Ten years in, I still don’t know how to make a statically linked executable with Haskell. 0) I hope you're targeting Linux 1) Install host (system) GHC 2) Build a new GHC by using the host GHC and Musl Libc, and depending on license restrictions choose either bignum-native or GNU GMP (flags of https://hackage.haskell.org/package/ghc-bignum https://hackage.haskell.org/package/ghc-bignum). This is needed because the compiler will later inject some portions of the GHC components into user applications to support their awesome runtime system. 3) Use the newly built custom GHC to compile your projects with GHC's `-static` flag (needed for pure haskell libs) AND `--ghc-options='-optl-static -optl-pthread'` (needed for non-haskell stuff). 4) Profit Note that on certain platforms it's not possible (without much of a low-level trouble) to statically link their libc implementations to the user applications. Apple in particular does everything to discourage developers from pursuing this goal[1][2]. [1] https://stackoverflow.com/a/5259427 https://stackoverflow.com/a/5259427 [2] https://michaelspangler.io/posts/statically-linking-on-macos.html https://michaelspangler.io/posts/statically-linking-on-macos...