I disagree with the presentation a lot. * There's no widely used successful system written in Haskell. Yes, there's GHC, Agda, Idris and other research tools but they are marginal. * It's untrue that mutable state is the main reason of problems with code. You can manage state in Java and C# in any other language. * Haskell programmers are usually smarter than Java programmers, but they often don't want to work on tas…
> There’s no widely used successful system written in Haskell. All writes to Facebook—on the order of billions per day—go through the Sigma site integrity service, whose rules are written in Haskell.
How to Sell Excellence
71–80 of 124 posts
Re: How to Sell Excellence
#72Earlier quoted context omitted.
Those aren't the only two known projects, those are just two examples of open source projects that are, in addition, used in key infrastructure by the major solutions provider that is the original source of the project, and so widely, if indirectly, used. More Haskell use in production: https://wiki.haskell.org/Haskell_in_industry
Compare this list to Java/C#/C++ used in the industry. Or even to Scala/Clojure/Erlang used in industry. There will be several orders of magnitude difference.
Re: How to Sell Excellence
#73Earlier quoted context omitted.
Given that not even basic functional programming has become popular yet, I can't see dependent types being widely adopted for decades. The learning curve for using dependent types is incredibly steep and capturing interesting properties in types inevitably requires you to understand and write tricky maths proofs.
>Given that not even basic functional programming has become popular yet. It's already popular. All the mainstream programming languages already support it.
I wouldn't say that was the case until there is wide support for algebraic data types, type inference, pattern matching and immutable data. I see more languages allowing functions as parameters, basic type inference and encouraging immutable data, but they're still missing out on a lot of benefits offered by functional languages like Haskell and OCaml by ignoring these features.
I do see functional programming features making their way in to imperative languages but most people are still coding in an imperative way. Mutable data is still the default rather than immutable data for example.
Re: How to Sell Excellence
#74Michael, big fan of your work here. Can you talk a bit more about how to avoid subordinating or dominating?
My main point is to recognize that: (a) there are good business people out there, (b) the fact that they trust idiots on tech is our fault as much as theirs (we get too arrogant or too submissive and fail to convince them), (c) we need to recognize that we and they have orthogonal skill sets and aren't *prima facie* smarter, (d) and this requires understanding certain cultural differences. It's a long road, though. W…
IMO, good business people are people who are doing good for their business not using technology which their developers want them to use. They should consider things such as: ability to find developers, availability of training and books, availability well supported libraries, maturity of tools, code maintainability, etc.
>(b) the fact that they trust idiots on tech is our fault as much as theirs (we get too arrogant or too submissive and fail to convince them)
So, you are calling people who recommend to use technologies different from Haskell idiots, right? Or at least you pointing at them in your presentation. IMO, it's not the things which a professional should do. We have a lot of opinions, and it should be ok to have a different opinion. We shouldn't bash people who don't agree with us, otherwise, we will have (and I feel we already have) haskell cult.
Re: How to Sell Excellence
#75At the risk of sounding inflammatory... I would be willing to believe that purely functional languages are the "one true way" if there were even the slightest bit of empirical evidence to support it. But where are all the successful large scale projects built with Haskell (or Clojure or whatever)? The biggest FP project I was aware of was Twitter using Scala and they ended up completely backing away from it. Yikes. T…
> Twitter using Scala and they ended up completely backing away from it. Yikes. What are you talking about, I just searched and found zero supporting sources
Re: How to Sell Excellence
#76Earlier quoted context omitted.
Compare this list to Java/C#/C++ used in the industry. Or even to Scala/Clojure/Erlang used in industry. There will be several orders of magnitude difference.
And, so what? Sure, Haskell is less popular in industry many other languages. That was true of all the currently popular industrial languages before they became popular. But its certainly not the case that there are no succesfull uses of Haskell in significant systems.
The most popular language, namely C#, Java and C++ became popular quite quickly.
>But its certainly not the case that there are no succesfull uses of Haskell in significant systems.
I didn't say that. I am sure there are successful uses for Haskell, but there're no killer apps for it.
Re: How to Sell Excellence
#77Earlier quoted context omitted.
> There’s no widely used successful system written in Haskell. All writes to Facebook—on the order of billions per day—go through the Sigma site integrity service, whose rules are written in Haskell.
Site integrity service is minor compared to such things used at facebook as, Cassandra (Java), React (JS). Haskell might be used efficiently in some cases, but we don't see any killer applications created with it.
Re: How to Sell Excellence
#78Earlier quoted context omitted.
Do you have a link for the Oil & Gas DSL? A search for "Haskell oil gas dsl" didn't turn up much.
I work for a stealth mode startup that writes DSLs in Haskell and Scheme for the O&G industry. We aren't the only outfits doing this https://angel.co/tachyus/jobs/26411-junior-software-engineer
Re: How to Sell Excellence
#79Earlier quoted context omitted.
My main point is to recognize that: (a) there are good business people out there, (b) the fact that they trust idiots on tech is our fault as much as theirs (we get too arrogant or too submissive and fail to convince them), (c) we need to recognize that we and they have orthogonal skill sets and aren't *prima facie* smarter, (d) and this requires understanding certain cultural differences. It's a long road, though. W…
>(a) there are good business people out there IMO, good business people are people who are doing good for their business not using technology which their developers want them to use. They should consider things such as: ability to find developers, availability of training and books, availability well supported libraries, maturity of tools, code maintainability, etc. >(b) the fact that they trust idiots on tech is our…
I agree. The ethical problem I have is with the short-termism. The next-quarter culture is absolutely horrible and that's what I hate. It's not directly related to choice of language, but often it gets tied up in that. The fact that Haskell requires some investment (and not a lot of it) is a deal-breaker, because so many business leaders are short-sighted.
They should consider things such as: ability to find developers
Java wins on quantity. It's probably easier to find good developers in Haskell. Even though there are probably more good Java engineers than good Haskell engineers, Java has a much lower percentage so your interviewing costs are a lot higher.
availability of training and books
Both Haskell and Java have enough.
availability well supported libraries, maturity of tools
Haskell is getting there, and Java has a lot of "enterprise standard" libraries (e.g. Spring and Hibernate) that will take you in the wrong direction.
code maintainability
Haskell wins.
So, you are calling people who recommend to use technologies different from Haskell idiots, right?
No. If, for example, you're doing low-latency trading, you're not going to use Haskell. Sometimes you want to use C or assembly. And while I prefer static typing, I think highly of Clojure and its community.
I think that there are a lot of idiotic reasons for using Java that get a lot of play. That doesn't mean that everyone who uses Java is an idiot.
When I point out that businesspeople trust idiots when it comes to technology, that's not to single them out. Realistically, I can't always tell a good car mechanic or lawyer from a bad one. You find that out over years, because there are plenty of people who can talk a good game but don't deliver the goods.
Re: How to Sell Excellence
#80At the risk of sounding inflammatory... I would be willing to believe that purely functional languages are the "one true way" if there were even the slightest bit of empirical evidence to support it. But where are all the successful large scale projects built with Haskell (or Clojure or whatever)? The biggest FP project I was aware of was Twitter using Scala and they ended up completely backing away from it. Yikes. T…
> Java, Python, Ruby, or JavaScript You mean .NET, PHP, and Java?[0] [0] - http://trends.builtwith.com/framework ps - For the record, I'm a rails/js guy