Live data from Hacker News

The Haskell Elephant in the Room

stephendiehl.com

321–330 of 341 posts

Re: The Haskell Elephant in the Room

#321

Earlier quoted context omitted.

is that worth however many percent of the worlds energy usage?

Author does not mention energy usage at all. Main problem is that he thinks that crypto is a scam where a lot of people are being tricked. Would you like your language development to be funded by drug cartels or from blood diamonds profits?

i agree crypto is a scam, and it's also a scam that's a giant waste of a huge chunk of the global generated electricity.

Re: The Haskell Elephant in the Room

#322
post #260

Earlier quoted context omitted.

If you build a language that is based around doing everything with stateless data transformations but doesn't address state and branching, it will eventually be a problem, because the reality is that the vast majority of non trivial software needs to deal with plenty of state and branching, not to mention the state and branching that will go in to managing resources. There are a lot of domain specific tools that are…

> If you build a language that is based around doing everything with stateless data transformations but doesn't address state and branching, it will eventually be a problem I'm assuming you are referring to Haskell? It's a general purpose programming language so of course it handles state, branching, etc... data Tree a = Empty | Leaf a | Node a [Tree a] deriving stock (Show, Functor, Foldable, Traversable) label :: T…

That's not state or branching on a high level of a program. It is in some ways the opposite of what I was talking about and a good representation of the problem.

This looks like it is lazily evaluating parts of a tree, which means that you aren't controlling that state, you are hoping that everything works out when you query it with regards to resources, caching, memory layout, memory freeing, etc.

In a non-trivial program that either will need to optimize memory and cpu usage to scale or be careful about how things are structured to maintain interactivity, something like this is likely to be a big problem if that tree gets big.

Re: The Haskell Elephant in the Room

#323
post #86

I think this is a rather strange way of thinking. Fortran has been extensively used for nuclear weapons development. Let's stay away from Fortran! C was and is widely used in weapons control systems. Let's stop using C! Computers themselves were initially designed for artillery fire control, with an explicit intention of killing people. Let's not touch the technology with such a foul pedigree. This can be continued a…

`Computers themselves were initially designed for artillery fire control, with an explicit intention of killing people.` any citation for this?

In addition to the digital computers in the 2nd half, analog computers for naval guns were commonly fielded in the early parts of the 20th century.[1]

[1] https://en.wikipedia.org/wiki/Rangekeeper

Re: The Haskell Elephant in the Room

#324
post #31

There are also a lot of traditional finance companies using Haskell[1]. And, historically some of the people who created the language itself and have worked on GHC (and other compilers), or contributed heavily to the ecosystem have worked for traditional banks[2]. I don't mention them to encourage people to attack these people, but it comes off as a bit selective to focus on the people using your language for cryptoc…

It may well be "pretty infeasible" in the short run but having a morally* solid background for technological development is paramount for it's long-term well-being.

Otherwise the foundations will rot while the establishment thrive and the creative driving forces will find new "cleaner" playgrounds within which to express themselves.

*not talking about absolutist "this must have equal outcome for everyone" style morals but rather the harder kind that deals with the long term societal impact of a given thing. And in this context I totally believe the discussion brought up by Stephen Diehl is exceptionally important!

Re: The Haskell Elephant in the Room

#325
post #318
post #168

I have great respect for Stephen Diehl and love his writing. But I must respectfully disagree. I think it’s fantastic that Haskell is seeing more paying jobs and corporate sponsored development thanks to crypto, and indeed Haskell can help reduce fraud in cryptocurrency, like what happened with the Ethereum’s DAO. The comparisons of crypto that he makes to frontier banks are interesting but IMHO profoundly misguided.…

Maybe I'm a bit silly about this, but can't linear or affine types be actually useful for blockchain? To represent something which can be used (spent) only once?

Possibly, but linear types only describe the rules that have to be followed by a program. Enforcing those rules has to be done by something somewhere -- typically for most software by a compiler at compile-time or by a runtime at execution time. In blockchain these rules are enforced by the consensus and validation algorithms.

Re: The Haskell Elephant in the Room

#326
post #86

I think this is a rather strange way of thinking. Fortran has been extensively used for nuclear weapons development. Let's stay away from Fortran! C was and is widely used in weapons control systems. Let's stop using C! Computers themselves were initially designed for artillery fire control, with an explicit intention of killing people. Let's not touch the technology with such a foul pedigree. This can be continued a…

These examples are not similar to what is being discussed. Each of those were more commonly used in areas other than the cited ones.

The current discussion is more similar to how Python has become strongly associated with machine learning.

Anyone who cares about the Haskell language and ecosystem should do what they can to avoid it gaining a strong association with questionable crypto or other areas that will negatively impact wider adoption. This will also become a personal association whether warranted or not. This can be through promoting use in those wider areas or as this post does call attention to specific ones that the community should carefully consider rather than participate, because hey Haskell. It's like Haskell's Manhattan Project--choose wisely with eyes open.

Re: The Haskell Elephant in the Room

#327
post #40

I've been concerned about this for Rust too, as a lot of the published jobs and high profile projects (including Libra) are in the cryptocurrency sector. For example, one of the most promising rival GUI toolkits, iced, is being sponsored by Cryptowatch. Fortunately, the growth of other sectors is robust enough that if all cryptocurrency were to fall into the ocean, Rust would be impacted but not massively so.

Rust's adoption in the cryptocurrency sector is massive indeed. Parity Technologies and OpenEthereum is the most well known, but both Stellar Development Foundation and Zcash Foundation (both are among top 30 cryptocurrencies) are rewriting their main node implementation in Rust. I'd say at this point Rust has more adoption than both Haskell (Cardano) and OCaml (Tezos).

There is an ongoing effort to implement a Tezos node in Rust

Re: The Haskell Elephant in the Room

#328

Earlier quoted context omitted.

It's worth noting that the author's company is in the private blockchain field, complete with a smart contract language under their belt, in Haskell. Indeed, it's not the first time that a private blockchain partisan has attempted to tar all of "public" blockchain/crypto as a lawless amoral cesspool. R3 made similar claims in years past. In truth, there's been equal or more FUD thrown at private by public zealots too…

What private block chain? Looks like a database backed web app for connecting financial data feeds. https://www.adjoint.io/connect/

It's a recent pivot/rebrand. As of May 2019 their hero copy was "Adjoint empowers enterprises to achieve new levels of efficiency and control by delivering blockchain technology built specifically for the needs of the financial industry."[1]

Also, Stephen Diehl was actively promoting smart contracts and blockchain technology in Haskell until recently. [2]

1- https://web.archive.org/web/20190513032812/https://www.adjoi...

2 - http://internetofagreements.com/2017/12/18/stephen-diehl-adj...

Re: The Haskell Elephant in the Room

#329

Earlier quoted context omitted.

> A large part of Julia, a pragmatic language for technical computing, is written in Scheme. No, not really. The parser is written in FemtoLisp (a Scheme dialect), but that's it. It's not actually doing anything other than the parsing, and there's actually work being done to replace that with a pure julia parser.

In the first paper¹ describing the language design, by its creators, they state that: “Our implementation of Julia consists of 11000 lines of C, 4000 lines of C++, and 3500 lines of Scheme”. [1] https://julialang.org/blog/2012/08/design-and-implementation...

That's from 2012 when the language was in version 0.1. We're now in version 1.4 (1.5 launching soon!). At this point, 3.1% of the julia git repo is femptlisp (scheme), but I can assure you that is not being used for any heavy lifting or scientific computations. It's for the parser.

Re: The Haskell Elephant in the Room

#330
post #31

There are also a lot of traditional finance companies using Haskell[1]. And, historically some of the people who created the language itself and have worked on GHC (and other compilers), or contributed heavily to the ecosystem have worked for traditional banks[2]. I don't mention them to encourage people to attack these people, but it comes off as a bit selective to focus on the people using your language for cryptoc…

It may well be "pretty infeasible" in the short run but having a morally* solid background for technological development is paramount for it's long-term well-being. Otherwise the foundations will rot while the establishment thrive and the creative driving forces will find new "cleaner" playgrounds within which to express themselves. *not talking about absolutist "this must have equal outcome for everyone" style moral…

I agree with your premise. I think we should divest from scammy cryptocurrency companies. I also think we should divest from scammy banks, and companies that supply weapons to be used for killing people overseas as well (specifically referring there to companies like Raytheon), and companies that violate our privacy and manipulate our society negatively (i.e. Facebook).

Obviously if you release something with an open source or FOSS license, then anyone is free to use it though. I'm against any kind of morality clause for free software.

Post reply on HN