Live data from Hacker News

Simon Peyton Jones interview

haskell.foundation

11–20 of 49 posts

Re: Simon Peyton Jones interview

#12

Why is Haskell, a comparatively obscure language (to Python, C++, etc.), so popular with topics in the orbit of "web3" (blockchain, crypto, metaverse, etc.)?

The usual argument is that purity and the type system help you write correct code and finance is a domain where correctness is important.

The applications I’ve heard for Idris also have to do with finance (although not blockchain stuff).

Re: Simon Peyton Jones interview

#13
post #3

Around 7:50 in Jones says this: “So, one of the great things about Haskell actually, that is spoken about and I think it’s the sort of killer app for Haskell, is that it’s so refactorable, right? You can do a heart or lung transplant on GHC and make truly major changes and the type checker just guides you to do all the right things.” Freely refactoring the code with worrying about unit tests, etc seems quite appealin…

> You can do a heart or lung transplant on GHC and make truly major changes and the type checker just guides you to do all the right things.

I thought GHC was famously a nightmare to work in?

> GHC is not exemplary of good large scale system design in a pure function language. Rather ironically, it violates the properties that draw people to functional programming in the first place: immutability, modularity, and composability

> many new features have been force-fitted into the existing code without proper redesign

> While the current design isn’t glorious, it works

https://hsyl20.fr/home/files/papers/2022-ghc-modularity.pdf

Re: Simon Peyton Jones interview

#14
post #12

Why is Haskell, a comparatively obscure language (to Python, C++, etc.), so popular with topics in the orbit of "web3" (blockchain, crypto, metaverse, etc.)?

The usual argument is that purity and the type system help you write correct code and finance is a domain where correctness is important. The applications I’ve heard for Idris also have to do with finance (although not blockchain stuff).

Part of my confusion is also the social/community aspect, especially with Haskell hackers' frequent and negative attitude toward the enterprise, like Stephen Diehl who has become a sort of spokesperson for the "web3 is a farce (and worse)" narrative. It seems like such a stark juxtaposition, especially with SPJ and Lennart Augustsson, two research giants of the community, taking part in it in a serious capacity.

(To be abundantly clear and uncontroversial, as it pertains to this comment, I'm not interested in discussing "is web3/metaverse {good,bad}", but rather in discussing the purely functional programming community-of-community's interests or anti-interests in it.)

Re: Simon Peyton Jones interview

#15
post #3

Around 7:50 in Jones says this: “So, one of the great things about Haskell actually, that is spoken about and I think it’s the sort of killer app for Haskell, is that it’s so refactorable, right? You can do a heart or lung transplant on GHC and make truly major changes and the type checker just guides you to do all the right things.” Freely refactoring the code with worrying about unit tests, etc seems quite appealin…

> You can do a heart or lung transplant on GHC and make truly major changes and the type checker just guides you to do all the right things. I thought GHC was famously a nightmare to work in? > GHC is not exemplary of good large scale system design in a pure function language. Rather ironically, it violates the properties that draw people to functional programming in the first place: immutability, modularity, and com…

I guess that's two different things. One person says "You can give GHC a heart transplant" and the other says "GHC needs a heart transplant: Here is our proposal". In fact, the very text you quote as saying GHC was famously a nightmare says:

> On the bright side, GHC is written in Haskell, and this language is particularly well suited to performing massive refactorings with confidence that nothing breaks. Thus, it should be possible to refactor the GHC library towards a more robust and versatile design

and in fact Simon Peyton Jones continued by saying exactly that:

> You can do a heart or lung transplant on GHC and make truly major changes and the type checker just guides you to do all the right things. The difficult stuff is envisioning and being very clear about what you’re trying to do. Actually doing it is often not that hard.

So the two texts and the two opinions are completely in alignment. GHC is famously bad insofar as it has a poor design. But once a better design is designed, you can give it the heart transplant it needs without excess stress.

I have no idea how the heart transplant proposed by Sylvain Henry, John Ericson and Jeffrey M. Young is going. I suppose at some point there should be something checked in and a report about how painful or painless it was (and, potentially, if it's really completely wrong, perhaps a series of bug reports in the next seven releases of GHC).

Re: Simon Peyton Jones interview

#16

Why is Haskell, a comparatively obscure language (to Python, C++, etc.), so popular with topics in the orbit of "web3" (blockchain, crypto, metaverse, etc.)?

OCaml also has some of that, with Tezos, and Rust with Solana. I think it's because functional languages are thought as producing safer code, which is important in this industry.

Re: Simon Peyton Jones interview

#17

Earlier quoted context omitted.

> You can do a heart or lung transplant on GHC and make truly major changes and the type checker just guides you to do all the right things. I thought GHC was famously a nightmare to work in? > GHC is not exemplary of good large scale system design in a pure function language. Rather ironically, it violates the properties that draw people to functional programming in the first place: immutability, modularity, and com…

I guess that's two different things. One person says "You can give GHC a heart transplant" and the other says "GHC needs a heart transplant: Here is our proposal". In fact, the very text you quote as saying GHC was famously a nightmare says: > On the bright side, GHC is written in Haskell, and this language is particularly well suited to performing massive refactorings with confidence that nothing breaks. Thus, it sh…

I guess I wonder if it's easy to refactor then why haven't people done it when they added things in the past?

Re: Simon Peyton Jones interview

#18

Earlier quoted context omitted.

Could someone explain why refactoring is so much easier in functional languages?

I don't think it's a universal property of functional languages. Haskell is also strongly (excessively) typed, down to the level of modeling computation itself, and it's lazy. See, when you are defining a Haskell program, you are conceptually creating a tree of thunks that eventually get executed by the GHC runtime. Those thunks are typed, meaning they have typed inputs and outputs, and are either side-effect-free or…

> Because side effects are controlled, you are forced by the type checker to handle runtime errors (or crash).

This is generally true in idiomatic Haskell code, but in fact even pure functions in Haskell can throw runtime exceptions, and you are not forced to handle these.

Re: Simon Peyton Jones interview

#19

Why is Haskell, a comparatively obscure language (to Python, C++, etc.), so popular with topics in the orbit of "web3" (blockchain, crypto, metaverse, etc.)?

Functional programming lends itself well to finance through correctness and also the fact everything you do is basically data in -> data out. Versus other domains where using stateful objects to model things is easier.

Re: Simon Peyton Jones interview

#20

Earlier quoted context omitted.

I guess that's two different things. One person says "You can give GHC a heart transplant" and the other says "GHC needs a heart transplant: Here is our proposal". In fact, the very text you quote as saying GHC was famously a nightmare says: > On the bright side, GHC is written in Haskell, and this language is particularly well suited to performing massive refactorings with confidence that nothing breaks. Thus, it sh…

I guess I wonder if it's easy to refactor then why haven't people done it when they added things in the past?

I don't know. But - and this is my interpretation, not some summary of another talk - it sounds like Simon Peyton Jones, who is one of the people who are responsible for the poor state of the code, already answered that: "The difficult stuff is envisioning and being very clear about what you’re trying to do." Presumably, wherever his skills lie, they don't lie in envisioning a better state and refactoring the code towards that goal (to him, it was "difficult stuff", and left aside as he implemented changes that had a greater impact on its users). Afaik, for a long time GHC was maintained by the same two or three people so it probably shows the imprint of individual developers much more than your average compiler of similar size. Now development is much more open and this kind of technical debt is getting paid off.
Post reply on HN