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.
> 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!- https://www.aosabook.org/en/posa/warp.html
- https://morpheusgraphql.com/
- https://higherkindness.io/mu-haskell/
- https://github.com/hasura/graphql-engine
- https://postgrest.org/en/stable/
- https://github.com/jgm/gitit
- https://jaspervdj.be/hakyll/
- https://github.com/IHaskell/IHaskell
- https://tweag.github.io/HaskellR/ (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.
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.
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). 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
[2] https://michaelspangler.io/posts/statically-linking-on-macos...
We're happy.
Looks out at SBF, Liz Holmes, Voting Controversies, etc.
Nahhhh, this is working well!
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.
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.