Live data from Hacker News

Haskell Is Exceptionally Unsafe (2012)

existentialtype.wordpress.com

111–120 of 125 posts

Re: Haskell Is Exceptionally Unsafe (2012)

#111
post #108
post #100

Earlier quoted context omitted.

Hmm, really? I just read a couple of papers linked from his website, but I'm still not feeling enlightened.

I may write a blog post. Hm.

That would be great! I'm currently reading "Bridging the gulf: a common intermediate language for ML and Haskell" (Peyton Jones, Shields, Launchbury, Tolmach) which was one of Paul Levy's references for CBPV and it seems likely it was a main inspiration.

Re: Haskell Is Exceptionally Unsafe (2012)

#112
post #94

Earlier quoted context omitted.

Rare language has both .Net and JVM support, probably only Clojure now. On the upside you can build iOS and Android apps using F# plus many other gaming platforms.

Clojure is far from the only language that supports both the JVM and CLR. I had a long reply ready, but I lost it. Off the top of my head the languages that have support on both (aside from Clojure) are; Python, Ruby, JavaScript, Java (though J# is being depreciated), Scheme, Common Lisp, PHP, Perl 6, Prolog, Pascal, Ada. I might be missing some.

That's impressive, but I kind of dismissed some of them as scripting languages.

Re: Haskell Is Exceptionally Unsafe (2012)

#113
post #101

Earlier quoted context omitted.

I think a big part of the issue is that - because of the way Haskell's cross-module inlining works - you need to generate different artifacts not just for each version you use but for each set of dependencies chosen for each set of flags set for version you use. I think this strips away much of the benefit of the second approach.

This sounds like something Backpack might be able to help with! (I don't actually know. I'm speculating. And hoping ...)

Interesting. I hope you're right. I've been waiting for the finished version to pay Backpack much attention, so I also don't know whether you are.

Re: Haskell Is Exceptionally Unsafe (2012)

#114
post #101

Earlier quoted context omitted.

This sounds like something Backpack might be able to help with! (I don't actually know. I'm speculating. And hoping ...)

Interesting. I hope you're right. I've been waiting for the finished version to pay Backpack much attention, so I also don't know whether you are.

Part of the benefit of backpack seems to be that you can compile modules separately from their dependencies and if this is correct it should go some way to addressing the issue you raise.

Re: Haskell Is Exceptionally Unsafe (2012)

#115
post #102

Earlier quoted context omitted.

Yes, that's close! I also think that we'll need a better treatment of effects than either ML or Haskell can give us, but I hope to have something that has been carefully thought about, rather than bolted on like Haskell's effects. It sounds like call-by-push-value gives a nice unifying approach to CBN/CBV and also effects. I am hoping that something interesting will come out of that work.

It's been about 15 years since CBPV was proposed. Has there been any work on actually making a practical language along those lines?

Conor McBride & friends have been working on Frank (here's a recent draft paper: http://homepages.inf.ed.ac.uk/slindley/papers/frankly-draft-...).

Frank's basically based on an extension of the CBPV calculus. As far as I know, Conor's also working on extending the core Frank calculus to the dependently-typed case, though this might take a bit.

Re: Haskell Is Exceptionally Unsafe (2012)

#116
post #114

Earlier quoted context omitted.

Interesting. I hope you're right. I've been waiting for the finished version to pay Backpack much attention, so I also don't know whether you are.

Part of the benefit of backpack seems to be that you can compile modules separately from their dependencies and if this is correct it should go some way to addressing the issue you raise.

That does sound promising.

Re: Haskell Is Exceptionally Unsafe (2012)

#117
post #111
post #108

Earlier quoted context omitted.

I may write a blog post. Hm.

That would be great! I'm currently reading "Bridging the gulf: a common intermediate language for ML and Haskell" (Peyton Jones, Shields, Launchbury, Tolmach) which was one of Paul Levy's references for CBPV and it seems likely it was a main inspiration.

I usually think of Filinski's Declarative Continuations and Categorical Duality... but it's such a dense paper I can't recommend it offhand.

Re: Haskell Is Exceptionally Unsafe (2012)

#118

Earlier quoted context omitted.

That there is no game-plan for doing anything any better than Coq presently does is why I'm a bit skeptical. The trimmings are nicer - nothing else as of yet.

The elephant in the room in these discussions is that the cost of bringing a function compiler to fruition is so high that too much of the discussion gets muddled in the semantics of these hypothetical Haskell-successor languages while no one is actually working on said language. Academia simply isn't set up to incentivize large engineering projects, and industry would never invest in building such a thing either sin…

This is more or less where I stand as well. Haskell has an efficient RTS, well designed compiler, best-in-industry concurrency, good-enough type-safety that is light-years ahead of even things like Scala, and a good library ecosystem.

It's ready now and I'd like to begin work with Haskell in the hopes that industry wakes up to the utility of future successors to Haskell by seeing Haskell itself in action.

Re: Haskell Is Exceptionally Unsafe (2012)

#119
post #88

Earlier quoted context omitted.

1. Call-by-value gives us both the ability reason by induction. It also typically results in the presence of non-pointed types, whereas Haskell only has pointed types. 2. Call-by-value gives us the ability to safely interleave effects. Now, I know you all think we should not be doing that at all, but I would say that this is only true in some cases. The point of reifying an effect in a monad is not because "effects a…

The best argument for John's thesis is the proliferation of ML derivatives in industry: Swift, Rust and Facebook's Hack. I'm really looking to Facebook's Flow which adds an ML style type system to Javascript.

I'd probably add Scala, too.

Syntactically it's a bit different, but from a modularity POV it is much closer to ML than Swift, Rust or Hack.

Re: Haskell Is Exceptionally Unsafe (2012)

#120

Earlier quoted context omitted.

Could you expand on why you think the next "great thing" will be more like ML than like Haskell?

1. Call-by-value gives us both the ability reason by induction. It also typically results in the presence of non-pointed types, whereas Haskell only has pointed types. 2. Call-by-value gives us the ability to safely interleave effects. Now, I know you all think we should not be doing that at all, but I would say that this is only true in some cases. The point of reifying an effect in a monad is not because "effects a…

> Modularity is something which Haskell people simply do not take seriously

Plus, the build/module/packaging/dependency resolution story, even when doing all the recommended best practices involving sandboxing Cabal and leveraging Nix are just plain embarrassing.

There are so many smart Haskell people. I don't understand how any of them could consider this clusterf*ck to be remotely acceptable.

Post reply on HN