6 ms·
> I could not agree more with your first paragraph. The only other language I've used that I've had that experience with was Haskell, and while there are good a
by yohanatan 12y ago
> I could not agree more with your first paragraph. The only other language I've used that I've had that experience with was Haskell, and while there are good arguments to be made for using Haskell in production, it should be obvious that's not a language that will ever become mainstream.
I don't think it is at all obvious that Haskell won't become mainstream. It's already exerted a tremendous influence over many other mainstream languages and there's only so long that can happen before people just start going directly to the source of the innovations (or one of its direct descendants).
- bjz_ 12y agoI have definitely heard from multiple people that for them Rust was a good stepping stone to Haskell. Hopefully it will be the same way with Swift.
- yohanatan 12y agoI think the same is true for F# and Scala.
- emmanueloga_ 12y agoThat may be true but I find it curious. Without knowing too much about Rust, it looks like a lower level language than Haskell. I'd have thought that someone would pick the higher level language first, and go to the lower lever when in need of more control.
- yohanatan 12y agoRust is not your typical lower-level language though. It supports a lot of the features that functional programmers expect. It is an eagerly evaluated language that lets you drop to 'unsafe' code where necessary but in its natural form, it is surprisingly high level.
- ternaryoperator 12y agoI agree Haskell has had an important influence, but I don't see why people would necessarily "go directly" to it because of that. In fact, I would argue just the reverse. People chose the derivative languages b/c they provide things the original does not. To wit, Lisp never became mainstream despite exerting a huge influence. Likewise Smalltalk.
- pjmlp 12y ago> Likewise Smalltalk Java happened. Business were already in the process of adopting Smalltalk. Hotspot is a Smalltalk JIT compiler reborn. Eclipse is Visual Age for Smalltalk reborn. It still keeps the old Smalltalk code browser.
- LunaSea 12y agoSo his point stands. People preferred Java to Smalltalk and it thus didn't become mainstream.
- pjmlp 12y agos/People/Vendors/g Which is quite different.
- coldtea 12y ago>Hotspot is a Smalltalk JIT compiler reborn. Yeah, but nothing in it is Smalltalk-specific. It's not like Smalltalk survives in the mainstream because of Hotspot (in the way that, say, Algol survives). [edit: survives, not "survices"]
- legulere 12y agoEven worse than the problem of uncommon concepts as monads is that Haskell's memory footprint is extremely hard to reason about. A few years ago it was impossible with the http libraries to download a file without the program consuming several times as much memory as the downloaded file.
- yohanatan 12y ago> Even worse than the problem of uncommon concepts as monads Just go ahead and learn the typeclass hierarchy and such-- it really is quite a useful higher level of abstraction in whatever language you choose. And it definitely will enter the mainstream (even more than is already has [Swift, Scala & C# all have monadic constructs]). > Haskell's memory footprint is extremely hard to reason about. And you'd probably want to also throw runtime in there as well. I think this is relative-- it's not "extremely hard" for everyone. Also, many structured programmers found object orientation "extremely hard" but somehow the industry managed to progress through that era.
- emmanueloga_ 12y agoA common recipe people quote for good software is "a) first make it work, b) then make it fast". Haskell is very good at a), and not bad at all at b). With the help of the profiler it shouldn't be that hard to determine a program's bottlenecks/leaks and fix them, as with any other language. BTW, since you mention http, I have this reading on my back burner [1] but from skimming it found that for certain payloads a haskell http server may perform better than nginx (1.4, circa 2013?), which is an impressive feat. 1: http://aosabook.org/en/posa/warp.html http://aosabook.org/en/posa/warp.html