6 ms·
> the number of extensions which aren't standardized but widely used. Actually, I think this is something that Haskell did right. It allows experimentation w
by mightybyte 12y ago
> the number of extensions which aren't standardized but widely used.
Actually, I think this is something that Haskell did right. It allows experimentation with new language ideas in a way that allows them to be tested safely with existing codebases. Edward Kmett recently had this to say about it:
> I appreciate Haskell's willingness to take a very very long view, and explore the design options, before committing to a path. In many ways, it is this feature of our community and our language that keeps other programming languages looking to us for features and designs to steal.
> The language is already obsolete.
By that argument so are C, C++, Java, etc. But it's about the existence of a mature ecosystem, not about what is theoretically known.
> Pure script
PureScript is great, but its compile to JS basis makes it inappropriate as a general purpose language.
> Idris
Idris looks promising, but it doesn't have a large enough ecosystem yet. I would certainly be willing to switch from Haskell to Idris in the future, but Haskell already is at least a little bit dependently typed [1] and as hinted at above I wouldn't be surprised if Haskell is able to continue improving its dependent typing capability as research advances.
[1] https://www.youtube.com/watch?v=OZWYohmLKuU https://www.youtube.com/watch?v=OZWYohmLKuU
- seanwilson 12y agoGiven that not even basic functional programming has become popular yet, I can't see dependent types being widely adopted for decades. The learning curve for using dependent types is incredibly steep and capturing interesting properties in types inevitably requires you to understand and write tricky maths proofs.
- solomatov 12y ago>Given that not even basic functional programming has become popular yet. It's already popular. All the mainstream programming languages already support it.
- seanwilson 12y agoWhich languages would you say this was true for? I wouldn't say that was the case until there is wide support for algebraic data types, type inference, pattern matching and immutable data. I see more languages allowing functions as parameters, basic type inference and encouraging immutable data, but they're still missing out on a lot of benefits offered by functional languages like Haskell and OCaml by ignoring these features. I do see functional programming features making their way in to imperative languages but most people are still coding in an imperative way. Mutable data is still the default rather than immutable data for example.
- watmough 12y agoLinq in C#.
- jaggederest 12y ago> PureScript is great, but its compile to JS basis makes it inappropriate as a general purpose language. Except that Javascript is rapidly making inroads on everything except systems programming. If Java is a general purpose language (can't be used for systems without translation due to the JVM), then so is anything-which-compiles-to-JS. I think the really important thing is that, while I've been enthusiastic and interested in Haskell for a long time now (~8 years?), the vast majority of people will never understand even a comparatively simple concept like monads, let alone anything higher level than that. Until you can 'get work done' without the equivalent of graduate-level math classes, there's simply no way to develop that 'mature ecosystem' that everyone is hoping for. People have been using 'better if you understand the complication' languages for a long time now, and there's a good reason they're still niche, unfortunately. Erlang is a great language, but it's very definitely not of the same scale of difficulty to understand as Haskell. You can noodle around with Erlang and end up with something that works reasonably well - in my experience with Haskell, if you can't mathematically formalize what you're talking about, you're going to have a bad time, unless you do go the 'embedded scheme interpreter' route, which is a fun project, but why not just use Racket to begin with?
- mightybyte 12y ago> If Java is a general purpose language (can't be used for systems without translation due to the JVM), then so is anything-which-compiles-to-JS. Fair point. I guess my thinking here is that PureScript is unlikely to replace Haskell. It is possible, but I think there are a few reasons that probably won't happen. The first is that it's mission statement "PureScript is a small strongly typed programming language that compiles to JavaScript" points it in the wrong direction. Maybe Javascript is the counter to this, but that feels like an anomaly. Second is that it is way behind Haskell in terms of infrastructure, ecosystem, and a lot of core language/compiler features that enable general purpose programming. Could swarms of people come in and change this? Sure. But if they did, it seems to me that PureScript is similar enough to Haskell that people could just switch to Haskell and avoid that work. > Until you can 'get work done' without the equivalent of graduate-level math classes This is a big misconception that is demonstrably untrue. I know many people who have developed a solid working grasp of monads without doing graduate-level math.