4 ms·
I'll respect your opinion but sign up for the "not what other people want" crowd. I started learning Haskell last week. I have a small rest service I need to w
by travisgriggs 6y ago
I'll respect your opinion but sign up for the "not what other people want" crowd.
I started learning Haskell last week. I have a small rest service I need to write and I want to try something new. Why Haskell?
Because I miss seeing excellence/purity in computer languages. Nearly 10 years ago I jumped out of the Smalltalk balloon. It was one of the only languages where Object Oriented felt like a paradigm shift (CLOS and Self were also purist and paradigmy). It was sadly headed for the pile of lost languages.
I have spent the last many years polyglotting, learning and plying Python, Ruby, Objective C, some C++, Kotlin, Swift, Dart (both 1 and 2), Lua, Go, and even a smattering of JavaScript (plus coffee script). It's been a journey through language populism. Language features pulled from multiple disciplines and mashed together with no real rhyme or reason other than what crowd or favorite feature the steering committees cater to at any given point. Consistency and guiding principles seem to be a thing of the past.
I'm too new/naive on the Haskell journey to know what lies ahead. I've discerned that it seems to be one of the golden standards of "pure functional" paradigm. And at 49, I may be too old to be enlightened by another paradigm shift.
But what I yearn for is computer languages that feel like the design elements all work together so that the whole is greater than the sum of the parts, instead of languages with a checklist of "good ideas" that thrown together create a whole that is lesser than the sums of their features.
Will Haskell take me there? Time will tell. Wish me luck.
- acomar 6y agothere's a moment with the language where you go from trying to do things the way you would have done them in another language and instead, your brain adapts, and you learn to do them the functional way. because it's Haskell, you learn that you can quickly simplify things -- a little glue, a better understanding of the various functions you can pull out from the standard library, etc. -- and something that seemed incredibly complex reduces (like, for a very strong definition of like, algebra) to a few simple terms. many parts of the language come together and make it all click in this way: the syntax, the automatic currying of functions, the purity, and the type system. you start to look at all code differently. you start to see it as a bunch of puzzle pieces that can be fit together just so. and when you go back to try and use something else, you find yourself reflexively reaching for tools that aren't there, or that, removed from their original context, no longer have the support that made them quite so useful or so pleasant in Haskell. you even feel it going to other functional languages -- sticking all these parantheses into this lisp is obscuring the simple details, the puzzle pieces extended with decoration that makes them fit together less well. i don't mean to suggest Haskell is without flaws. but i do think you'll experience the paradigm shift as something concrete. there are almost no languages like it, after all.
- domlebo70 6y agoI am interested to hear what you think in 6mo time. For me, it definitely lives up to your expectations. But it's not without its warts.
- nvarsj 6y agoHaskell is probably the exact opposite of what you are looking for. It's basically a pile of every academic's pet language feature. I would suggest you try Common Lisp or Clojure, which will probably be closer to what you are looking for.
- piercebot 6y agoGoing to throw my weight behind the Clojure recommendation. For more information about the language, there was a great PDF published about the history of the language recently: https://download.clojure.org/papers/clojure-hopl-iv-final.pdf https://download.clojure.org/papers/clojure-hopl-iv-final.pd...
- platz 6y agoLanguage extensions do not prose a problem for the best-in-class composability that OP is interested in, for practitioners of the language, that haskell offers. Are you absolutely sure these language extensions are as bad as you think they are? Lets look at what they asked for: > But what I yearn for is computer languages that feel like the design elements all work together so that the whole is greater than the sum of the parts, instead of languages with a checklist of "good ideas" that thrown together create a whole that is lesser than the sums of their features. - computer languages that feel like the design elements all work together so that the whole is greater than the sum of the parts + check - instead of languages with a checklist of "good ideas" that thrown together create a whole that is lesser than the sums of their features + the key here is making sure that you have "a whole that is lesser than the sums of their features". Haskell's Language Extensions do not prevent composability that the language offers, so this is not as big a problem as you make out here that said, I think it does require a bit of a 'paradigm shift' to learn haskell well, and if you're not up do it, clojure might be a better fit. But i don't think that would be motivated for the OP by the language extensions, but more from learning about laziness and lambda calculus.
- nvarsj 6y agoDon't get me wrong - I really do love Haskell. And I don't think the language extensions are bad. I just mean that Haskell doesn't feel like a coherent, commercial language to me. It is basically a bunch of PhD thesis's strung together on top of a research language - with some of these being very interesting and incredibly useful. This is perfectly fine for what it is - but it also means the overall language and standard library have not been designed with a "batteries included" mentality that let people get going easily and quickly in a commercial setting. I suggested CL/Clojure because those are both interesting, lambda-calculus based languages similar to Haskell (without the typing, unfortunately), with great, mature libraries for building any commercial project possible.