13 ms·
Developing GHC for a Living
- kossae 7y agoFor reference, as I wasn't aware myself, GHC stands for Glasgow Haskell Compiler.
- nurettin 7y ago(.) is now a valid type operator. Is this the boob operator?
- samprotas 7y agoI believe it’s a reference to the dot operator: . The parens around it are Haskell notation for using an operator in prefix position, which is often how operators are displayed in a “standalone” context such as this.
- hopia 7y agoIn terms of GHC's evolution, this looks really promising to me: http://www.well-typed.com/blog/2019/10/nonmoving-gc-merge/ http://www.well-typed.com/blog/2019/10/nonmoving-gc-merge/
- whateveracct 7y agoYeah that is a monumental addition imo. You can find forum posts from just a few years ago with this on their wishlist. Cool to see it finally happen.
- hopia 7y agoHave you tried this yet in practice? I'm expecting it makes Haskell more suitable for web stuff since that's where low latency is often more important than computational performance is.
- whateveracct 7y agoNot yet since it's only on the bleeding edge of GHC. I have some games I've been building that I'll probably try it with though.
- chowells 7y agoIn what way do you think Haskell is bad for web use? I can't think of any runtime performance metric in which it doesn't crush Ruby or Python, and those are pretty popular for web apps.
- _bxg1 7y ago> I’m an idealist, and I believe that a perfect programming language with perfect tooling (or, at least, Pareto-optimal language and tooling) can exist. This is in contrast to people who just see languages as tools to get the job done. For them, a language is probably as good as the libraries available for their tasks. I used to think that way. But it only took me half a decade of professional development (and reading/discussing in circles like HN) to see that it's a fallacy. A programming language cannot be perfect because it's made for humans, who are not perfect (and runs on computers, which arguably are not perfect). Accepting the fact that there's no singular, perfect way to express a given idea has been freeing, actually. I used to constantly chase the dragon, getting hung up on refactoring and refactoring and refactoring, trying to attain that perfect description. I still get caught up in it sometimes. A little bit of that spirit makes for better code. But you have to be able to pull yourself away.
- dustingetz 7y agoThere are a lot of unacknowledged tradeoffs in tools like Haskell. For example the value of Haskell is balanced against ecosystem value of having 10M people using the same tools. Getting 10M people to choose Haskell is actually a goto market strategy problem that could be solved by a charismatic leader, but I don't hear anybody from that community talking about that.
- _bxg1 7y agoTo be clear: I'm not making any statements about Haskell itself (though I think you make a good point). A certain amount of idealism can be a good thing. It's perfectionism that's dangerous, and there's a fine line between the two.
- Ericson2314 7y ago> ecosystem value of having 10M people using the same tools That is I think one of the fairer criticisms of Haskell. I don't personally mind, but I respect others that do so. That said, I wouldn't want 10M more users right now. The Haskell ecosystem right now has tons of breaking changes, and I think that is important. More users would freeze things in place until we have the tooling to both have breaking changes and tool-assisted migrations. Only then would I want rapid growth in popularity. (Compare Rust's "backwards compat is really important", ....as if they they could get everything right the first time ....as if that won't lead the way of C++. Thank god they relented a bit with "editions".)
- goofballlogic 7y agoWhat happened to Idris? As someone who knows absolutely nothing about Haskell, I thought Idris was essentially Haskell+dependent types?
- saityi 7y agoIt is, and it still exists... it's also a brand new compiler, instead of one with nearly 30 years of development on it, and a brand new ecosystem, instead of having the massive amount of hours that Haskell has in it. Idris is really nice imo, but Haskell+Dependent Types will likely be usable sooner. There is an 'Idris 2' being developed, too (https://github.com/edwinb/Idris2 https://github.com/edwinb/Idris2), which is an entirely new compiler with a new type theory (although not entirely dissimilar), which just makes it even harder to use for real things (again, IMO).
- yingw787 7y agoI would say I have a beginners understanding of Haskell (proof: https://bytes.yingw787.com/posts/2020/01/30/a_review_of_haskell/ https://bytes.yingw787.com/posts/2020/01/30/a_review_of_hask...) and IMHE Haskell is an academic research language for good reason. For most software, the SDLC is a stream, not tightly scoped like a library or utility. I haven’t seen migration or upgrade plans, docs aren’t really there, links rot extensively, and the strangeness budget is a blank check. It’s not for most developers and it’s not because most developers are “lazy” or “dumb”. I would have loved to use Haskell for my personal projects, but it didn’t satisfy my requirements and I’m sticking to Python. For starters, in Haskell Stack, there’s no uninstall option. You use shell to rm a package. https://github.com/commercialhaskell/stack/issues/361 https://github.com/commercialhaskell/stack/issues/361 That’s nope territory for most developers.
- aratakareigen 7y agoYep, Stack has an atrocious UX that does nothing but cause progressively increasing amounts of pain. I wish someone would just write the Cargo or NPM of Haskell already.
- Brave-Steak 7y agoHow hard is it to start working on a compiler like this?