The Haskell Elephant in the Room
stephendiehl.com
stephendiehl.com
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 cryptocurrency when it's also used heavily by traditional fintech companies, as well as defense contractors, and even for large retail chains (Target uses it for data analysis). Facebook also uses it for their spam detection system. Why are all of these uses fine and cryptocurrency is not? And if they also aren't fine, then how should we solve this problem? Start non-profits/charities that specifically use Haskell, and somehow make those the majority of the available jobs that use it? That seems pretty infeasible unless you want to solve the broader problem of these jobs existing in the first place.
[1] https://www.reddit.com/r/haskell/comments/6p2x0p/list_of_com... [2] https://en.wikipedia.org/wiki/Lennart_Augustsson, https://www.linkedin.com/in/ekmett/, https://stackoverflow.com/users/83805/don-stewart
> Normally these frauds are recognized for what they are quite quickly and the courts and regulatory bodies can clean up the mess and rectify the damages to those who have been misled
That just comes off as total BS to me. How many regular people were awarded damages after the 2008 meltdown, which was due to massive fraud in the mortgage industry?
That seems true. The system relevant banks got their bailout. Regular people OTOHS are not system relevant. So everything's fine. /s
Capitalism for the poor, socialism for those close to the core developers.
Only if you are very young.
This list is misleading. Sure, there are probably a few people at any of these companies dabbling with Haskell. But the only major financial company where it is mainstream is StanChart.
Also, FTA, Isle of Man, not Mann. How seriously can we take a rant about a place that doesn’t even know how to spell it (source: am in Wales, that Isle is just off our coast).
Fun fact: when Scots say “och aye the noo”, noo is the Manx word for “saint”. English people think noo is “news”. It gives a totally different meaning.
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!
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.
> 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.
Absolutely, it's the organisation /& community that needs to have the moral compass in proper order. In my optics it is about fostering the right sort of positive culture for use of a given tech rather than try to enforce it via totalitarian/legal means - the latter is bound to fail.
Not sure if this counts, but IIRC in one of the talks, Edward Kmett was describing row-polymorphic language they implemented in Scala to be used internally at S&P (or wherever he was working).
The comparisons of crypto that he makes to frontier banks are interesting but IMHO profoundly misguided. Crypto is not a fad; it is here to stay (or at least for some currencies!). He may disagree but it’s hard to imagine bitcoin disappearing in the next decade.
I see the challenge more about what excites the current, established Haskell community (linear types! Freer monads!) vs the corporate community, who want maintainable and forward compatible code. Crypto companies could conceivably resist the traditionally fast pace of GHC development. Indeed, a lot of money rides on there being no exploitable bugs.
For all my respect of Stephen and his tremendous technical expertise, I’m disappointed to see this argument being leveled as an armchair economist condemning his peer’s work on moral grounds. I think a different, equally rational person could look at crypto and see a future in it, and I don’t think we should cast aside people for having different future expectations.
Disclosure: I am an investor in Kadena, a blockchain implemented in Haskell
By comparing cryptocurrencies to wildcat banks, he was not making a statement about cryptocurrency's longevity but about its utility.
Money laundering and child pornography are not fads, and for those two reasons alone there will probably always be value in non-fiat currencies that preserve the user's anonymity. That does not make cryptocurrency something any community or individual should want a long-term association with.
You mean the trade-off between global surveillance and easier life for some sorts of businesses. Is it immediately obvious which of these is more worth supporting?
> and child pornography
Oh yeah, think of the children. Never gets old.
You, as an investor are logically positive about this. Cause you want more poeple on board.
Whether cryptos are a fad or not is based on believe. If we believe cryptos are worthless their value will drop. Same for real currencies. However stable countries have monetary systems to fakely keep the value stable using financial instruments. The question is: is that a good thing?
The value of individual currencies is based on trust in the institutions backing those currencies. The value of cryptocurrency as a technology (and currency in general), is not based on belief but on their real world utility, i.e do they function in some general way to satisfy some real need. (Exchanging value, storing value, and so on).
If crypto-currency can solve all the issues it has concerning speed, stability and so on it might be there to stay, if it can't it's just going to exist on the fringes.
This is about Haskell-the-ecosystem, not Haskell-the-technology. In that way I think it's a valuable contribution.
Stephen is a well known and respected part of the Haskell ecosystem, and has written many popular blog posts about the language and ecosystem.
Pact (a not complete Turing language for blockchain) is also interesting Haskell code to read and to learn from.
Namely Well-typed, FPComplete and Tweag.io who are all consultancy companies working on the Cardano project
An article saying "this sector of our community is bad and scamming retail investors" is already burning MAD BRIDGES and putting an enormous target on your back.
"Bob Smith and Joe Brown, specifically, are scamming retail investors" is going even a little beyond that. It's just not necessary.
EDIT: For the writer of the article, that is. We in the peanut gallery obviously want all the details, which is why a little detective work is often required in these cases.
The author mentions at least three Haskell-related companies, such as FP Complete, and says he wants to avoid naming specific people for the time being.
That's why the author rants about crypto and not about Haskell itself.
I've written enough comments on HN to know that if I don't word it this way, someone will inevitably start arguing with me as if the assertion was mine.
And that would seem to be exactly what Stephen is complaining about.
The question in all of these cases is what specific bad influences the money can have on the software ecosystem and how community standards and governance can mitigate them. I don't really see a lot of answers in this article besides ill-defined ethical compromise of developers. I skimmed the book he mentioned (The Politics of Bitcoin: Software as Right-Wing Extremism) which sounds interesting but it doesn't really make its own case very well: half of the "extremist" citations are from anonymous online commenters and you can't go 2 paragraphs without straight up name-calling and ham-fisted guilt by association.
is an example.
ETA, and here's the discussion thread on the original post: https://www.reddit.com/r/rust/comments/dpakxq/rust_2020_more...
I think this is totally valid to question. To brush it off entirely as a non-issue, unworthy of even a moment's thought, is extremely peculiar.
Everything in the OP article is spot on and the gp argument is a strawman.
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. But it's not confidence-inspiring to see this kind of tribalism, and it speaks to a conflict of interest (at least in R3's case, who were signalling to governments that "private is safer").
The broad brush is FUD. There are any number of crypto efforts that are not fraudulent. Grin and zcash come to mind. Ethereum itself is hardly a criminal effort. The claim that this technology has not advanced the field is simply laughable. Sure, there's a lot of technobabble and money being raised around nothing, what else is new.
Anybody in the fintech industry pointing fingers at crypto need to take a look in the mirror. Crypto is a tiny speck compared to the modern financial system. That's not to excuse fraud and shady stuff, but companies servicing hedge funds, private equity and megabanks have zero moral ground from which to point fingers.
Looks like a database backed web app for connecting financial data feeds.
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...
It seems like a solution for nothing.
I think cryptocurrencies are detrimental to society and I don't care if you program them in Haskel or brainfuck.
Have you ever wanted to send money to someone who wasn't in the same location as you? Alternatively, have you ever wanted to send a large amount of money without dealing with a large volume of cash, gold, or some other physical store of value (making the down payment on a house or car for instance)? Blockchains make it possible for you to do that electronically, and without the enormous and centralized infrastructure of banks, vaults, guards, armored cars, etc.
Regardless of whether centuries-old cultural and social infrastructure evolves to take advantage of this, the fact of the matter is that blockchains do actually enable this kind of electronic value transfer. And they do it in a way that results in a number of properties that are significantly different from our existing value transfer systems.
It remains to be seen how important these differences are and how much of an impact they will have on our society. Will it be huge like the crypto-maximalists preach? Or will it be a passing fad that is not much more than a blip? I don't know. But that doesn't change the fact that blockchains were a genuine technological advance that enabled something that we weren't previously able to do.
https://www.cnbc.com/2017/10/16/bitcoin-is-finally-buying-in...
"Our buyer has evolved, they've moved from mom and pops to young people who want to pay with various forms of payment," said Ben Shaoul, president of Magnum Real Estate Group. "Cryptocurrency is something that has been asked of us — 'Can you take cryptocurrency? Can we pay that way?' — and of course when somebody wants to pay you with a different form of payment, you're going to try to work with them and give them what they want, especially in a very busy real estate market."
On the contrary, drug dealers and criminals stay away from traditional banks precisely because of this. Are you asking is it wrong to work in the foreign banknote management business, or the Western Union style irreversible wire transfer business, or the gift card trading business, or a business that wants to pay you cash in hand? I would say yes. At some point the criminal uses of a given tool are so overwhelmingly more popular than legitimate uses that the tool itself becomes tarred with criminality.
HSBC has a sordid history of associating with criminal or unethical behavior, including active participation in money-laundering - far from "moved money in a legal way".
If you've got concrete facts to the contrary then I'd be happy to be corrected, but I'm convinced it's all just political posturing.
when did we start calling cash transactions seedy? you own a pub, somebody pays in cash is automatically seedy? let's maybe look into offshore banking and US offshore jurisdictions such as New Mexico, Delaware and Nevada first (tax havens in our midst) before bringing out the guns on the little people who have a bad line of credit or are unable to pay by card?
However, crypto-currencies are in reality not like cash, because fat more than being an anonymous medium of exchange, they are in fact mostly an unregulated speculative investment, and unregulated speculative investments are, in fact, quite seedy.
A quick way to make a buck was to look at the dates for crypto roadmap announcement, launch or white paper. Buy crypto a week before, then sell a day before the announcement before everyone else buys in.
This become so popular many coins where created just for this purpose. They would claim the world as the next bitcoin. Then after the announcement, seized to exist.
That brings us to this post. They're using Haskell as the 'new tech' to pump and dump coins.
There's so many scam coins out there. It really shows you how stupid the whole thing is.
Cardano may or may not be the way of the future for who knows what, but the amount of academic work put into it really doesn’t support calling it a pump and dump.
Cash is much more difficult to move across international borders. It opens up exciting new opportunities for international crime and scammers. Further, cash is not a fungible as you suggest, criminal have to incur vast expense in order launder their money. Cash is also difficult to store in large quantities, which imposes a physical constraint on the amount that can be securely stashed by less sophisticated criminals.
Cryptocurrencies have lead to an explosion of pump and dump schemes, ponzi schemes, outright fraud (see: the recent twitter hack), and other financial schemes design to separate the gullible from their money.
Did these things exist prior to Cryptocurrencies? Yes, but cryptocurrencies democratised the ability to conduct them and made it more difficult for authorities to catch criminals.
Cryptocurrencies are an absolutely terrible idea: born from the minds of techno-utopians, fueled by anarcho capitalists, and weaponised by criminals.
If you create neutral open source tool like a programming language, you have to be OK with people using it to do stuff that you don't approve of.
And also, it's OK to have your own opinion about something and share it, but in complex matters you have to admit that there's a possibility that you're wrong. I think TSLA and a some other money losing overhyped companies are a FED-induced bubble, terrible investment etc. but so far it works for people who invest in them, so maybe I am wrong, and who am I to make decisions for other people anyway?
“ When your language is so tiny and unpopular that a growth of couple of small projects in an industry your don't like can overshadow the whole existing community”
So you decide to open your argument with an insult to the community... Not a great showing.
“ If you create neutral open source tool like a programming language, you have to be OK with people using it to do stuff that you don't approve of.”
So I have to be okay with crime and scams? I can’t decide to call attention to it and recommend that people don’t let the bad influence guide the direction of the whole language?
“ I am wrong, and who am I to make decisions for other people anyway?”
Good thing this article didn’t try to do that.
Please don't expect anything too serious from me. :D
> I can’t decide to call attention to it and recommend that people don’t let the bad influence guide the direction of the whole language?
I can't see how even Adolf Hitler and Joseph Stalin teamed up and backed by a lot of money, could break ... let's say... C++ if they got on the design committee. Are they going to make the type system more totalitarian-state friendly? Is memory safety features better for building tools of state oppression? Are they going to introduce new features and libraries that make it more useful as a tool of industrial-level genocide?
> “ I am wrong, and who am I to make decisions for other people anyway?” > Good thing this article didn’t try to do that.
What did it try to do then?
This whole article can be TL;DR with: Some people found Haskell useful to write their software and they support Haskell development now and I don't like what that software is for, so let's do something about it.
Why?
I think there's a lot of people in Open Source community that can't separate technical and free speech (and use) aspects of their work from their moral beliefs and keep conflating the two, trying to use their beloved OS projects as a tool in yet another moral crusade of their choosing.
PS. Come to think of it, maybe Haskell compilers should change the license to some custom non-Open-Source license that says: "only programs that are technically and morally pure can be compiled". ;)
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 ad nauseam, until the whole of the civilization is marked as indecent. Nearly every scientific discovery and techology achievement has been used, or attempted to be used, for some purpose one might find objectionable.
Instead we could realize that tools are outside morals. A knife could be used to cut bread or to cut throats, and it's not the knife's decision, but that of its user. The very same thing applies to everything, from nuclear fission to functional programming.
If you know what's the right, virtuous thing to do in the world, do not hesitate, go and do it. Use the most fitting tool for that job. Do not mind if that tool is used for whatever other, less noble purpose, it's not the tool's fault.
I read it as "A significant portion of jobs and funding in the Haskell ecosystem come from cryptocurrency organizations, giving them a lot of influence over the future of the language and the community." It's about who controls development of the tool right now, not how the tool might be used, or who has been involved in the past.
What kind of taint the current influence of the crypto-currency industry could leave on the technical side of the language?
If these guys are toxic within the development community, then, well, we have to somehow handle it — but again, we've seen highly prolific and highly toxic OSS contributors who wielded very different, "more noble" values, in the past. The problem may be the attitude, not the industry affiliation.
If Haskell became known as "the crypto people's language", many talented computer scientists and engineers would be unwilling to join the community or invest anything in the language. Partly out of a sense of "I don't want to directly help them", and partly just "I don't know those people and I don't really want to go to their conferences, and all my friends in academia are working on <new language x>, what's that all about".
For someone like Stephen Diehl who is deeply embedded in the Haskell community and has invested a lot in it, that would be a personal and professional loss. You're right that the language itself and its technical features would not be nefarious, and would be replicated in 100 other languages.
What happens if the bottom falls out of the cryptocurrency job market? Does Haskell become Scheme, a language used only for language research?
But I would argue that knowledge about something is not necessarily within that thing, but around that thing as well. A handle is a handle because we have hands that can grasp the handle. No system in this world is closed (perhaps the universe itself but still doubtful), so any knowledge pertaining to a system (or a tool) must be dependent on its context. A handle acquires meaning because of humans. Same with mathematics, programming, or otherwise.
So I would argue that yes, mathematics can be developed for nefarious purposes. Anything can be. Just because something is more pure and seemingly neutral than others does not mean that thing will stay independent of its context. The outlier example is the statistical farcity and bias in scientific experiments. Take it a step further in the direction of objectivity, and you could also notice that bias plays a role in mathematical experiments.
Another interesting question might be: is uranium evil? Or are videogames evil? Are these seemingly neutral things, containers of things, evil? Or are common manifestations of them, or the way that the medium encourages its content (and the way that Haskell and its ecosystem encourage their application) relevant to the judgment of that particular “container”?
I believe a lot of this has to do with seemingly emotion-less quality of abstractions (i.e. containers). In the abstractions-land, the mathematics land, the “pure” land, only the relevant essence of the thing at hand is extracted, thus the compression seemingly occurs losslessly. However, in the compression from the real to the abstract, we have also lost the sensual, the tactile, the emotional. We go from a soul to a 4.5 million deaths. We go from the wet texture of water to H2O. By compressing, we gain, but also we lose.
A bit sidetracked, but I think any medium can appreciate being examined in such a way.
The blog post is basically telling us that cryptocurrencies and its leaders are a giant scam and they don't contribute anything of value to society.
Your interpretation is very generous if you ask me. A blog post with that angle would be interesting to read though. It would have more to do with the Haskell ecosystem than this one and it would be good to have that discussion if the cryptocurrency influence on the ecosystem is too big.
I agree it would be great to have more details about how big this influence is and how it manifests itself.
They appear to be funding Haskell development.
Recently a casino was built near me, and they repaved a lot of roads and added bike lanes and stuff as part of the construction. The roads are objectively better now, but I don't want to live next to a casino no matter how good the roads are, and I would have preferred if the city government had funded that work instead, since I trust them more and I have some say in how they spend their money. If you were looking for a neighborhood to move into, the first thing you noticed wouldn't be the smooth bike lanes, it would be the huge casino you can see from anywhere in a 3 mile radius.
Have innumerable script kiddies, scammers, doorway site creators, etc, used PHP for doing bad things? Did / do they constitute a significant part of the user community? Yes.
Has PHP been used to create wonderful and world-changing things, like Wikipedia? Does PHP have great, very nicely designed tools that help people develop good things faster, like Laravel? Has the PHP community done a tremendous work to make the language much better, and its stdlib much nicer? Yes.
Crooks using your favorite tool can be a nuisance in the community, but noble-intentioned people can be jerks, too, which has many times been observed. If the community has a problem with its being nice, welcoming, constructive place, it's usually not because of people's business and even political affiliation.
I'll hazard to link to [1] as a supplementary reading on the topic.
[1]: https://www.lesswrong.com/posts/GLMFmFvXGyAcG25ni/i-can-tole... (It's a copy; unfortunately the author has taken his whole huge blog offline.)
Does PHP have a significant taint to the rest of the development community? Yes. Are its "nicely designed tools" recognized and used outside the PHP community? Not that I've seen.
Wikipedia is a web site I use and sometimes poke at. Am I going to go looking at its code? Nope. In fact, there are several tools that I decided not to fix bugs in, but also not to use myself, when I realized they were PHP.
(Aside: have they ever removed, or even deprecated, any of the layers of hideously broken interfaces in the stdlib? Or are they still lying there as a trap for the unwary?)
The difference between this and the PHP case is one of economics. Economic input gives you influence (usually). If people who's approach to life you don't agree with assume influence over the direction of a project, that can be a source of worry.
I'm not sure I think it would be in this case, I think a source of finance is probably going to outweigh it, but I see the logic.
Reportedly Lisp was hit pretty hard by its association with AI hype collapse ("The AI Winter"). Of course this doesn't change the merits of a language per se, but it can be a blow to the community and investments around it.
Dang it, how come I didn't see this before PG's essay on conformists and individualists?
Look again
https://slatestarcodex.com/2014/09/30/i-can-tolerate-anythin...
I.e., it's a call to the knife makers to stop making their knifes to the specs of mob bosses, not a call to ban knifes.
There are plenty of precedents for this kind of action, e.g. pharmaceutical companies refusing to supply chemicals for executions. (If were already going all life-and-death with the analogies)
Also, do cryptocurrency bosses ask the community to shape Haskell in the way suitable for them, e.g. in the core libraries or extensions? Or do they just produce libraries for their own use?
"More programmers should have the moral fortitude to stand up to the Facebook employees in their communities. This is not a socially acceptable career. Facebook employees have chosen to turn their skills on poisoning the very communities that gave them opportunities to thrive." [0]
"Palantir and Facebook are the largest employers of Rust engineers in the world. Rust Community: What exactly is the point of all of your long codes of conduct and community guidelines if the primary use for your language is the creation of a nightmare surveillance state?" [1]
If that is the case, it seems like Stephen would be just a little less hypocritical than most, trying to convince programmers to actually follow through.
A short while back, I mentioned here that Henry Petroski said that the origin of engineering ethics is that engineers shouldn't compete solely on price. That hasn't been the case for a long time, not since some bridge fell down and killed a bunch of people. Now, engineering ethics involves saying "no" when you boss wants you to do something you feel is unethical, illegal, or just plain stupid. Nobody wants to do that. It hurts. But some people think it's a part of professional behavior.
although this isnt twitter, i sometimes feel like the commenters on HN have spent too much time on twitter. i cant stand opinionated twitter "personalities" that tweet more than they code, and it's been bleeding over to other places as well.
That is a weird point of view, but unfortunately not all that uncommon (when applied as a general worldview) right now. I think it's worth noting that it's generally anti-open source and free software, as it generally boils down to "you should control this thing you created as a group" as opposed to "we all created this and anyone can use it for anything, but maybe we require you to share changes so it's self perpetuating".
In my personal opinion, it's the worst type of small community social pressure taken to unhealthy extremes brought wholesale to the internet age. That is, poorly rationalized, aimed people that associate with the target rather than the target, and in this case "associate" is so tenuous as include the people that made a better hammer because someone used it to build something objectionable.
When I find this I find myself wondering if these people even really believe this, or they just express this as a strategy to influence people? I don't know enough about Dielh to know what I think is more likely.
This is exactly why I find his argument absurd. Programming languages are just tools, there is no moral judgement attached to them. You don't get mad at people who manufacture other tools that are used for nefarious purposes.
The criticisms that are made are:
1) That cryptocurrency's "entire existence is purely predicated on the appeal as a speculative investment first and not on its efficacy to transmit value".
2) That crypto exchanges are "effectively digital gambling sites, in which unsophisticated investors trade unregulated products on markets that are directly manipulated by exchanges with no oversight".
Let's definitely stop using C in weapons control systems.
Crypto uses the academic big-brain alpha-nerd reputation of Haskell to make their platform appear more reputable. „Look, written by 100% organic PHD-certified FP programmers, raised on our free-range Monad Farm. Oh btw our whitepapers are Very Legit and definitely not just decorum for an ICO scam.“
Slot machines are expressly designed to feed on a person's gambling addiction and to take their money. Dirty bombs are designed to murder thousands or millions of innocent civilians. The Nazi gas chambers were designed to slaughter millions of innocent civilians.
Using a programming language benefits that programming language. This is pretty transparently obvious - a larger community means more skilled professionals, more support on stack overflow, more funding for development, and more open-source contributions.
If you strongly believe that the crypto-currency people are doing evil, it makes sense not to aid them. Whether "using Haskell" is worth worrying about is something for individuals to decide on their own. But it's absurd to say that there is no ethical dilemma in incentivizing the development of a tool that is used for evil.
The author's point is the opposite. He's calling out prominent members of the Haskell community for running cryptocurrency schemes.
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.
I remember IBM had to obtain a separate license without this clause, to insure themselves against potential nice funny lawsuits claiming the breach of that clause.
https://github.com/lerna/lerna/pull/1616
https://github.com/jamiebuilds/license
Its proposed license was an extension to MIT which made using it theft for a select list of companies that supported ICE.
What about the global situation? Is it the same?
It also invented PC.
No. Personal computers were around for quite a while before IBM decided to enter the market (with a not very good and very expensive machine, I should add).
The PC mantle probably goes to Processor Technology, or maybe someone a little earlier. I'm counting 8-bit chipsets, the date gets pushed back a LOT farther if you're talking PDP-8s or earlier systems (much less commonly available to the public). Or you could take it forward to 1977/78 and give the title to Apple.
But it's definitely not IBM.
If you're trying to say that IBM was the first to officially name a personal computer "PC", I'll give you that one.
Most other makers, from Apple to Amiga, vigorously protected their small private markets where they dominated. The original Macintosh has explicitly removed all the expansion capabilities that e.g. Apple II had.
Werner von Braun has lead the US space program to launching humans to LEO, and then to the Moon.
Again, technology is morally oblivious. A sword that only serves a noble aim is strictly the stuff of fairy tales, and is not implementable in the real world (no, not even with an AGI, since humans are a reasonably good approximation of an AGI).
I may be the only one who giggles when driving past the Werner von Braun Center on Redstone Arsenal. It a very attractive, very new part of Army Missile Command.
Some technology has only one purpose, and is used only for immoral acts. An example of this would be any device invented for torture.
While those examples are uncommon, more technology is built expressly for evil acts, even if it has the capacity for good. If you are distributing plans and technology to make "dirty bombs" - devices intended to disperse lethal amounts of radiation - it's impossible for a reasonable person to believe that it is not intended to murder people via radiation. Furthermore, in the context of today's world, you know that the most likely users of such a device would be terrorist organizations who will target innocent civilians.
An even greater percentage of technology is developed to support people doing evil acts. If you provide software or hardware to people doing evil acts (in this case, the Holocaust), you are giving them material aid. The software written to tabulate Jewish residents in Germany was developed for the Nazi party. Technical support and sales continued well after Nazi Germany had invaded Poland.
The fact that a man (or company) enriched himself by doing both bad and good things does not mean that his actions were morally neutral. Most people alive have done both bad and good things.
And those would be? I code in Haskell every day and I have no idea what he’s talking about.
I feel like this 'elephant in the room' article doesn't tell me what the elephant is, why it's in the room, or why people don't want it to be in the room.
> Painfully, some of the very founding contributors to Haskell itself are the ones deepest involved in this ring.
> In this new era the Haskell community itself has simply become a tool to buy legitimacy and pump token values. The reputation of our community is now used to defraud the public and convince non-technical users of the soundness of an utterly unsound investment.
> I have avoided names ... however core Haskell companies such as Well-Typed, Tweag and FP Complete have been deeply complicit in building up this crypto industry for years now.
The article isn't easy to skim, and I think that's the point. The author wants to focus more on why cryptocurrency is a scam, and less on who's guilty.
I think it's a shame because if you're going to accuse someone of something, at least make your accusation clear and direct so they can respond to it specifically.
EDIT: didn't want to imply that Cardano is a shady company.
His concern is that if Haskell gets the reputation of being beholden to these interests it will make the Haskell ecosystem undesirable to legitimate actors.
I have difficulty to understand how it is an issue that a programming language is used for a niche that has bad reputation.
When you look further a lot seem to be around smart contracts.
If you are interested in language design smart contracts are an interesting research area, you are basically getting paid well to design and research your own language.
What I fail to see is any viable product on the other end. There’s a few companies I can think off who have been recruiting Haskel developers for smart contracts but I can’t see a product, devs are just taking paid work in a language they like using and these companies are sucking up vc funding.
I refuse to speak to recruiters about a blockchain company heavily recruiting where I am as I am not smart enough for language design/research and more importantly I don’t see a viable product. I know a few other friends/colleagues refuse to speak to the same company due to being blockchain/not seeing a product. When I see things like this it also reaffirms my thoughts, VC backed companies heavily pushing through blockchain but it’s not a ready product https://smallcaps.com.au/asx-delays-launch-blockchain-settle...
- "it's not the tool's fault that it's used for shady stuff"
- "so what, other people are scammers, too!"
- "there are so many warnings against cryptocurrencies, it's getting boring"
- "yes, crypto has scams, but maybe some of them are good scams!"
- "the author is biased!"
- "the author should give more details!"
That's not exactly a confidence-inspiring picture of the crypto community.
* It's not Signal Messenger's fault that it's used for shady stuff.
* There are so many warnings against unbreakable strong encryption, it's getting boring.
* Many people are biased against strong encryption
In the end, like private messaging, cryptocurrency is just a tool that can be used for good or evil. I don't think that the general concept needs to be "defended as not being shady" any more than any other technology that enables scams, e.g. phones, youtube[1], the internet.
[1] https://www.theverge.com/2020/7/23/21335554/steve-wozniak-yo...
Quite the opposite - fights and accusing almost all competing projects of technical and/or moral failures are a bread and butter of crypto.
It's safe to say that most people in crypto space admits that the space is somewhat shady. How else could it be? Money are involved so it attracts people trying to exploit it and brings the worst side of many, otherwise decent participants, and anyone can create yet another crypto project and there's nothing to stop them. And it's always "your word and opinion against mine" kind of thing.
BTW. It's funny how many people on HN, have no problem with "regular" SV companies often based on: praying on dark marketing patterns, human dopamine addiction, data collection, overly optimistic return projections and so many other "sins", but are quick to discredit "crypto" as a whole, to the point where they would ban it from using their favorite programming languages. :D
At the same time I very much think that the idea/technology of crypto currencies has potential.
I also think that language like Haskell, that prides itself in correctness and bug-free code, fits perfectly with developing that idea. I would say that is one of the large problems even more established cryptos has - they might have a bug.
I neither really see the reason why the Haskell community should be scared of having crypto people among them. What is the worst thing they could really do with the language? Fill up youtube with a lot of haskell+crypto speeches? Add crypto - related lib and code to the language? Is that really a bad thing?
Bitcoin is not a scam, and maybe a small number of other "cryptocurrencies", but the same can not be said for any of the zillion products that try to ride on Bitcoin's coattails.
"For a while it has been a public secret the Haskell ecosystem has become increasingly entangled with an unsavoury variety in the cryptocurrency sector as one of primary mechanisms for funding development."
I mean, what exactly is this "unsavoury variety in the cryptocurrency sector" and how is Haskell tied to it?
Is there some kind of (un-)official sponsorship from (supposedly) shady actors?
https://blog.habets.se/2017/11/Why-bitcoin-is-terrible.html
It's about bitcoin, and not everything applies to other cryptocurrencies, but most of these arguments do apply.
Stephen Diehl CTO and Founder at Adjoint
I feel our author may not be entirely impartial here...
so don't agree with the statement or the implication that it's relevant, but I think that's what the person above meant.
"Automate financial controls and processes in your corporate treasury with inter-company loans, virtual account management, powerful APIs and a distributed ledger made for financial audibility & compliance."
There's a pretty big difference between corporate treasury software and cryptocurrency scams? Unless you're trying to argue that anything related to finance is a scam?
I don't see what point you're trying to make, it seems such an irrelevant comment that it makes me question your motive and wonder if you're trying to smear Stephen.
Edit: To be clear, I like his blog posts normally and am not trying to smear him. I'm just saying it's not a fair comparison.
Cryptographic ledger technology has been around since forever (the 70s to be precise): just look at Git, SUNDR, etc.
I believe he's specifically calling out firms working on cryptocurrencies; cryptocurrencies are just one application of cryptographic distributed ledgers.
Edit: In fact I don't know of a single company using Haskell in the crypto space I'd define as a 'scam'
To me this reads less like a smear and more just "this could be why he dislikes crypto that much".
Those seem like entirely different markets to me.
I think our disagreement stems from how vague Stephens post is. By not naming any names he could be accusing any crypto company, including those that might indirectly compete with him, of being fraudulent.
My stance would probably change if someone were to point out one of the "right-wing conspiracy theory cult" Haskell companies that Stephen is alluding to, but as it stands this mainly seems like fearmongering to me.
Having said that, I doubt the impact of Haskell's reputation on cryptocurrency users, technical or otherwise. The myth that Haskell results in more correct programs might still be alive in portions of the Haskell community despite the failure to support the claim with any evidence, but few outside that community have ever heard of that myth, let alone believe it.
Criminals and criminal enterprises operate in a high pressure, high-stakes environment. If criminals are using a tool for something it typically means that tool works and works well. That's why those pictures you see in the news of terrorists in Afghanistan always show a bunch of guys in the back of Toyota pickup with a 50 cal mounted on it. Toyota makes a great vehicle that does the job. I'm sure Toyota is not thrilled about the association, but it speaks to the build quality of their vehicles.
The community opinion is that Haskell is good for building robust and correctly behaving applications. There's some evidence that very strong type systems can help with this.
Financial software is an area where people typically want deep correctness guarantees, another good example area being cryptography.
Between these I think it's probably a good thing that crypto-currency applications and applications like exchanges are being built with "safe" technology like Haskell, rather than technologies that provide much less safety (many Ethereum hacks have boiled down to Solidity contracts being relatively loosely typed).
This is however not an opinion on what crypto is doing to the Haskell ecosystem. I don't know about that.
Seriously, I don't think the readership of HN is in any disagreement about how new cryptocurrencies are "short long con" jobs, but the author teases that the influx of this money is toxic to the Haskell community because... right wing people?
I also wouldn't say the problem is to do with "right wing people". Nobody's born with a political affiliation: we learn and digest information and experience all through our lives, swinging towards and away from different values at different times. This can especially depend on our social circles, our information-bubbles, what benefits us personally, etc.
The crypto-bubble tends to discourage regulation, accountability, etc. which makes it attractive to right-wing politics, whether as a libertarian free-for-all; or money-laundering for the gentry; or whatever. When this sector has an outsized influence on a particular community, the political gradient will be tilted accordingly, and bias people's random walks to the right.
Haskell may be great at solving the technical problems with crypto, but that doesn't solve its ethical or philosophical problems. Yet, as the old saying goes, "It is difficult to get a man to understand something, when his salary depends on his not understanding it".
For instance in Typescript,
const absurd = <A>(): A => absurd()
const unimplemented = <A>(): A => { throw new Error(“Unimplemented”) }
const uninhabited: string & number = absurd()
Intuitively you can think of it like, “Yeah sure, I can build you a term of any possible type, as soon as I get back to you.”, but then the function just ghosts you by looping forever. But it hasn’t lied. However, so long as you’re aware of these gotcha’s they don’t come up much in practice which is why viewing types as proofs is still useful. Just don’t stake your career on one. {-# LANGUAGE GADTs, TypeFamilies #-}
-- Peano arithmetic: these types represent '0' and '1+n'
data Zero
data Succ n
-- We can define 1 as '1+0', 2 as '1+1', and so on
type One = Succ Zero
type Two = Succ One
-- A closed type family is a function at the type level.
-- This function implements addition of the above Peano numbers.
type family Add x y where
Add Zero y = y
Add (Succ x) y = Succ (Add x y)
-- 'Equal a b' is a proof that types 'a' and 'b' are the same.
-- It works by forcing the type variable 'x' in 'Refl' to unify with both.
data Equal a b where
Refl :: Equal x x
-- The type checker will accept this proof that 1 + 1 = 2, giving:
-- >[1 of 1] Compiling Main
-- Ok, one module loaded.
truePositive :: Equal (Add One One) Two
truePositive = Refl
-- The type checker will reject this proof that 1 + 1 = 1, giving:
-- >[1 of 1] Compiling Main
-- x.hs:24:16: error:
-- • Couldn't match type ‘Zero’ with ‘Succ Zero’
-- Expected type: Equal (Add One One) One
-- Actual type: Equal One One
-- • In the expression: Refl
-- In an equation for ‘trueNegative’: trueNegative = Refl
-- |
-- 24 | trueNegative = Refl
-- |
--trueNegative :: Equal (Add One One) One
--trueNegative = Refl
-- However, the type checker will accept this (unsound) proof
-- that 1 + 1 = 1, giving:
-- >[1 of 1] Compiling Main ( x.hs, interpreted )
-- Ok, one module loaded.
falsePositive :: Equal (Add One One) One
falsePositive = falsePositive
The unsound proof works because our type 'Equal a b' doesn't only contain proofs that a = b (AKA 'Refl'); it also contains infinite loops, like 'falsePositive = falsePositive' (AKA "bottom"). We can use this to undermine any guarantee we try to enforce using Haskell's type system. In fact, we can make a generic version, which can be used to satisfy any type constraint: loop :: forall a. a
loop = loop
In theory, any time we actually try to use 'loop' our program will freeze; so we might think we're safe from any bad consequences; e.g. if we have 'launchTheMissiles :: PresidentialApproval -> IO ()' we can trick it with 'launchTheMissiles loop', but we're safe since that program contains an infinite loop, right?Wrong! Haskell is lazy, so it won't bother evaluating arguments which aren't needed. Even if we try forcing the value, we can't be sure that the compiler won't optimise it away! In practice this means that we can't rely on the mere existence of well-typed values as proof of their types; we can be sure that our data dependencies exist (i.e. those values which are forced as part of our computation, which can't be optimised away), but we still won't know that beforehand (i.e. the program may crash or freeze at any point before a particular expression, due to the presence of "bottom" somewhere).
"the Haskell community itself has simply become a tool to buy legitimacy and pump token values."
Add in "and every dev gets dual monitors" and it would have been 1999.
It's like a double-whammy.
Also, another possible reason is that many crypto people tend to confuse complexity with ingenuity. While the bitcoin whitepaper tries to make a complex topic as simple as possible, a great many crypto companies and people purposely use language that is needlessly convoluted and verbose.
Perhaps they're doing it on purpose to seem smarter?
That makes me wonder:
If a language has a large group of what might be seen as unsavory groups, people, or just a lot of folks with a specific ideology / opinion(s). (let's just assume it is true for argument's sake here, I don't know enough / I'm not really saying it is true about Haskell)
DOES that change how the language develops?
Does it change, anything?
Have we ever seen that happen before?
Granted even if not I'm not dismissing the article, just wondering.
First, the Red language (a variant of Rebol) tied itself to blockchain and created a token, though looking at their homepage now this seems less of a central focus.
Second, the Urbit project (which incorporates the Nock and Hoon languages, among other things), was founded by a controversial neo-reactionary figure. The project seems to be moving forward without him, and does not seem to be promoting those ideologies, but still carries that association. In addition to that, the "business model" for Urbit also seems to be tied to cryptocurrency.
Business models on Urbit don't really have to do with sale of ships though—they're finite and not meant for high-frequency trading. Business models that are emerging are more likely to involve providing services to users of the network, just as domain sales are a small fraction of the "business model" for the internet.
Because this article, in my opinion, misidentified the scam, I just don't agree that crypto profit supporting Haskell is a problem. If there are unsavory actors in the community, that's also a different thing, and isn't the fault of crypto.
It seems this piece leaves no room between scammer and victim. It's certainly just an opinion that crypto is a scam, and it seems the author is projecting that opinion on individuals in the Haskell community, but it sounds like those individuals benefit the community more than harm it.
meaning, it more than doesn't matter if a technology finds a unsavory butlucrative market, precisely that lucre is what funds early stage development of the technology to the point where it can grow into commodity markets.
(and this is more "the elephant in the Haskell room" than any type of Haskell elephant)
Is there really no discussion about software as a dual use technology?
> In this new era the Haskell community itself has simply become a tool to buy legitimacy and pump token values. The reputation of our community is now used to defraud the public and convince non-technical users of the soundness of an utterly unsound investment.
So when people realize that 50% of crypto entrepreneurs are scammers and the other 50% are deluded, and the bubble pops, there is a serious concern that Haskell will be publicly understood as a "cryptocurrency" language and will suffer a reputational hit.
But perhaps somebody knows the answer to these questions instead:
- is Cardano itself a scam? (= are the people related immoral?)
- are there more cryptocurrencies developed in haskell and are these scams?
Other than that, I don't really see the influence on the ecosystem - what are some concrete examples here?
Crypto currency is no different for me from other financial products: they have the potential to be very dangerous for the users of such services. Now often this is because of a lack of information (ponzi schemes, sub-prime mortgage packages), but with crypto all the rules of the game are opensource :)
That's not a technical term nor a "term of art" in economics. Google Scholar returns results from management and accounting journals, as well as some pseudo-economics ("heterodox") pamphlets.
There are good reasons to be critical of psychiatry, but it's a red flag if someone tries to pass palmistry off as psychiatry.
The problem here is that economics does have some prestige still, which is why predatory political activists try to pass their "heterodox" writings as belonging to it.
In general something is pseudo-scientific if it operates outside of the formalisms or tools of that particular discipline, especially if it pretends that it does not.
Instead of making formal logical argumentation based on deductive-axiomatic models the message, we are better served by economists who more than anything else try to contribute to solving real problems. "
https://larspsyll.wordpress.com/2020/07/28/why-economics-is-...
The purpose of science is the generation of knowledge, it's to have a formal understanding of a system and essentially a language and methodologies to make inquiries.
Economics as a science does solve real world problems, but it's not the dominant purpose of a science as such. It's the task of problem solvers to take scientific results and then turn those say, into actionable policies. Scientific work does not exist for the purpose of solving 'real problems' in the sense of being subjected to that goal. Scientists are not engineers. When Computer Scientists talk about Big-O complexity they often do so in a way that's not really applicable to real-world software development, but that isn't their job.
That said economic theory actually does very much factor sucessfully into decision making. Be that macro-economic policy, central banking, the design of markets and incentives, and so on.
I'm glad I took econ classes, but it is not a very practical discipline.
And, yes, I think it's a stretch to call it a science when you can't do meaningful experiments.
I object to calling geology a science for the same reason.
I'm generally not in a technological workplace as I once was, but my recollection (from circa 1990) is that the ACM and the software section of the IEEE each had codes of ethics for their members to consult when knotty problems of good vs evil arose. Do current versions of those codes contain anything that might assist a responsible professional addressing the issues that Diehl describes?
"Well… then don’t buy bitcoin Stephen! Nobody is forcing you to hodl bitcoin. Unlike all those people in argentina and tin pot places where you can’t freely convert the currency, and it is jail time if you try.
I roll my emoji eyes…"
According to William Stanley Jevons, Léon Walras, and Carl Menger, the value of every asset is only determined by what other people are willing to pay for it. It seems a good match for cryptocurrencies.
I don't follow the crypto space, but it seems like we might actually want to know which companies are being accused of being shady.
I'm guessing it's the shady exchanges. There are several exchanges that have been around for a few years now, do you take issue with all of them or are you thinking of a specific one?
What's more surprising is it didn't get flagged to death. Maybe because the title isn't attracting attention?
Of course, comparisons such as that are relatively common and has been made many times for the free software movement as well for example.
However, his criticisms of cryptocurrencies are quite off IMO.
> However cryptocurrency companies do not produce anything, instead they offer synthetic financial products which are marketing to the generic public as investments
MakerDAO is basically a decentralized lending facility (i.e. "banks") and Compound is a decentralized money market.
These are actual financial products, they serve real purposes that can also be found in the legacy financial system.
Cryptocurrency engineers are building an alternative, decentralized financial system that cuts out middle men and allows anyone access to financial services (such as accepting money from anywhere in the world, or being able to lend out your capital) that were previously only available to select people.
In one month, July 2020, the Federal Reserve printed more money than the first 200 years of the existence of the USA.
There are serious problems with the legacy financial system, and it's good that people are building systems in parallel.
If the Federal Reserve can't be trusted with USD, surely DAI isn't reliable either.
Pure nonsense.
I love Tezos, personally, and think it's one of the more technically superior blockchains, and can see it having a better chance than other stable coins of having broad applicability to more than one or two industries.
(i know Jane Street isn't actually a hedge fund, but how many people here know what a prop shop is?)
I have no opinion on Cardano,but obviously something from the ML family is useful if you want to build smart contracts.