5 ms·
JS runs natively on the web, it embraces multiple paradigms, it has a huge community, and you can get a job in almost any city on earth if you know how to use i
by Dr_tldr 10y ago
JS runs natively on the web, it embraces multiple paradigms, it has a huge community, and you can get a job in almost any city on earth if you know how to use it. Haskell may be "better" as a language, (just as Esperanto may be superior to English) but if you want the widest range of opportunities in your life and not just in your language, Javascript/English beats Haskell/Esperanto.
Why not help bring some of Haskell's concepts to a more relevant language instead of bemoaning the entirely rational decisions made by millions of junior and senior developers?
Edit: the rabid insularity of the Haskell community definitely doesn't help. The Python community was dissatisfied with JS and created Coffeescript, and as of ES6 now everyone can enjoy the fat arrow syntax. Less pleasantly, the Java community got class syntax added to ES6, but at least they're trying to contribute. I'm sure Haskell has plenty of really cool things to bring to the table, but I've never heard of any of them, because all the Haskell community wants do is talk about how JavaScript sucks instead of embracing the functional side of it.
- sotojuan 10y agoI don't know where they came from, but these projects and libraries seem to be influenced by Haskell (maybe?): https://github.com/folktale https://github.com/folktale https://github.com/sanctuary-js/sanctuary https://github.com/sanctuary-js/sanctuary
- PeCaN 10y agoFirstly, poor analogy—English is a much superior language to Esperanto in terms information density over seconds per syllable in addition to being more expressive (it's easier to talk about a wide variety of topics and abstractions). Possibly more importantly than that, it takes a lot of people to make a spoken language useful for doing business but far far fewer for a computer language. > instead of bemoaning the entirely rational decisions made by millions of junior and senior developers I think people are bemoaning the stupid shit and not the entirely rational decisions. JS makes the former a bit easy. > Python community was dissatisfied with JS and created Coffeescript Nitpicking, but the first CoffeeScript compiler was written in Ruby and the language was largely inspired by Ruby. > the Java community got class syntax added to ES6 Huh that's a new one pretty sure that's not just the Java community, given that JS developers have been independently inventing class libraries (starting with Prototype, if not earlier) for ages. > I'm sure Haskell has plenty of really cool things to bring to the table, but I've never heard of any of them Underscore, lazy.js, other popular JavaScript libraries have some Haskellisms; LiveScript is a fork of CoffeeScript that used to be moderately popular and very Haskelly; React takes a lot of ideas from Haskell; immutable.js is quite Haskellian…. I think you're just not looking. > all the Haskell community wants do is talk about how JavaScript sucks You can drive a go cart on the highway, and you can keep modding your go cart, but at some point you might want to not be driving a fucking go cart on the highway.
- bitwize 10y agoRamda is arguably the most Haskelly JS library.
- splintercell 10y agoI am loving Ramda. I started integrating it for my React project, and I love how my code started collapsing.
- Dr_tldr 10y agoPedantic, arrogant, and self-contradictory combined with poor reading comprehension and even worse social skills is the stereotype of the Haskell fanatic, and you're living up to it perfectly. No examples, no evidence, just bridge-burning and nitpicking. Whenever you ask people what Haskell can do that other languages can't, their answer usually reveals that they simply don't know many other languages very well. For instance, you're very confident about English being better than Esperanto, but you don't speak Esperanto, you've never studied it, and you're just repeating what you were told second-hand and combining it with a made up heuristic of value. All of that lying and shoddy thinking, just to undermine an analogy that could've been any language. Russian and Arawak are far more expressive than English, but you don't speak Russian, you speak English, because it's the popular choice. Anything else you say is post-hoc justification, since you don't know much about the alternatives. you're just rationalizing your contingent decision. Node and npm are superior to Haskell as an ecosystem for the backend, you can't run Haskell in browsers at all, and C++ is way more powerful for offline applications. So what is it you do again, other than have inadequate toolchains presided over by socially inept individuals? Name something vanilla React takes from Haskell that isn't in Lisp, Clojure, Elm, etc. I don't think you'll be able to do it, because A) you don't know much about React and B) Haskell just isn't that special. There's nothing wrong with that since good programmers care about concepts, not syntax, but you seem to be really threatened by the idea that Haskell at this point is little more than an oddity, like learning brainfuck or assembly. Functional programming is finally showing what it can accomplish, and the only people unhappy about that are people in the FP community who neither understand nor care what's happening beyond their fetid little pond.
- hibikir 10y agoWhile I can't say that I am a big fan of the Haskell community, I fully understand why they see how extending Javascript is never going to work out: You can't just bolt Hindley-Milner to a language with prototypical inheritance, so the functional part of Javascript just doesn't help at all. This is why instead, for the web, they have Purescript, which compiles down to Javascript, but it doesn't look like Javascript. Not quite coming from the Haskell community, but heavily inspired by parts of Haskell is Elm, which you might have heard about. It has the best compiler errors ever, it takes immutability seriously, and is far nicer IMO than either Purescript or Javascript for web development. It's really an issue of types. Languages like Java, Python and Javascript don't have quite the same approach to types, but their worldviews there are not that different. Anything coming from the ML family just isn't going to translate, and that is going to happen regardless of how insular the communities might be. Existing Javascript features actively make most of the things a Haskell programmer would want just not work at all. This is why you hear them talk about how Javascript sucks: Everything they'd want involves taking things out first, and that is never going to happen. So don't blame in on the community here, bad as some elements might be: The differences just cannot be negotiated away. You might as well ask people to open their mind and breathe carbon dioxide and sulfur so they can go visit you in Venus: It's a barrier that is too hard to be worth crossing in either direction. Trying to add Javascript or Python features to Haskell would get you in a similar boat.
- tome 10y ago> Not quite coming from the Haskell community, but heavily inspired by parts of Haskell is Elm It's written in Haskell. How much more "coming from the Haskell community" could it be?
- spion 10y agoThere is also PureScript, which is basically a "Haskell community's CoffeeScript"
- nilkn 10y ago> the rabid insularity of the Haskell community definitely doesn't help. The Python community was dissatisfied with JS and created Coffeescript, and as of ES6 now everyone can enjoy the fat arrow syntax. Less pleasantly, the Java community got class syntax added to ES6, but at least they're trying to contribute. I'm sure Haskell has plenty of really cool things to bring to the table, but I've never heard of any of them, because all the Haskell community wants do is talk about how JavaScript sucks instead of embracing the functional side of it. Since you mentioned CoffeeScript, Elm seems like a particularly relevant example of something that came out of the Haskell community and which compiles to JavaScript. I think you have a negative impression of both Haskell and its community which isn't necessarily justified. It's a little insular, but not to the extent that you're suggesting here. PureScript is another language that Haskell has almost directly spawned. It's a lot more complex than Elm, like Haskell itself, but has quite a few brilliant insights of its own.
- axlprose 10y ago> Since you mentioned CoffeeScript, Elm seems like a particularly relevant example of something that came out of the Haskell community and which compiles to JavaScript. Let's not forget Purescript[0], which is looking to be the spiritual successor to Haskell, and runs on node. [0] http://www.purescript.org/ http://www.purescript.org/
- bennofs 10y agoNot that I know much about it, but http://www.purescript.org http://www.purescript.org certainly looks like a kind of "Coffeescript for Haskell”? Or is that language too different from JS for that purpose? The that might just be because Haskell is quite different from JS.