News for hackers. Stuff that matters.
Re:Standardized Ladder of Functional Programming [pdf] by grumpyprole on Wednesday November 30, 2016 @02:03PM (#13073605)
Again, I answered this for you last week. Both Standard Chartered Bank and Barclays have many millions of lines of very successful production Haskell code. Both codebases are solving complex problems not solved at other banks and both make extensive use of types and purity. We do not regard pure functional programming as "aesthetics".
Re:Standardized Ladder of Functional Programming [pdf] by pron on Wednesday November 30, 2016 @02:38PM (#13073912)
You are not addressing my point at all, and millions of lines of code (that include a Haskell compiler) do not necessarily make a large software system. If you are building software that is significantly more complex than could be achieved by other, simpler means, or you're building comparable large software systems for significantly cheaper, you'd only do Haskell and the world a great service by collecting and publishing relevant data. Without it, I have no idea how big your systems are, how complex they are compared to other projects, and how costly they are to build and maintain. I have no doubt you're happy with Haskell, but there are plenty of far more mainstream languages that people are happy with. Without any data, we can't make any comparison, so claims of superiority are nothing more than just claims. I find it puzzling that you don't see my reaction as a reasonable one for a marketing campaign that has been going on for nearly two decades, that has so far produced no evidence and negligible adoption. I truly and honestly want to be convinced. I am familiar with the theory of FP (up to about monad transformers, but not profunctor optics) and have programmed in SML. I just don't see any signs whatsoever that adopting Haskell can improve the bottom line significantly enough to be worth the cost and the risk, so the most logical thing to do is to wait and beg people for data.
Re:Standardized Ladder of Functional Programming [pdf] by grumpyprole on Wednesday November 30, 2016 @03:00PM (#13074178)
You said:

"I would like to challenge that by pointing out that not a single piece of large software ... has ever been written using the skills/concepts of the higher levels of this chart."

To which I gave two counterexamples (today and on other occasions). All software systems should be modular to some degree, so I am not clear exactly what your criteria for a large software system is. In both my examples, the Haskell codebases are monolithic repositories where everything is typed-checked and built together.

You keep asking for quantitative data for a comparison with other languages. But my answer is the same as last week. It's good people that make software efficiently and cheaply. Give engineers PHP and they'll still manage to build something good. Haskell is just a tool, but it's a tool that increasingly good people are asking to use. The system at Barclays and Standard Chartered were built and are currently maintained very cheaply because good people were hired. Haskell just happened to be their preferred tool.

Re:Standardized Ladder of Functional Programming [pdf] by pron on Wednesday November 30, 2016 @03:59PM (#13074633)
> I am not clear exactly what your criteria for a large software system is.

Let a "software system" mean any assembly of processes that communicate to provide some shared functionality, with the components being coupled to one another in some non-trivial way (i.e., there are correctness conditions that cross processes boundaries, so that changes to one program may necessitate changes in others). Excluding the compiler, how many lines of Haskell code do you have in your largest system (using my definition)?

Re:Standardized Ladder of Functional Programming [pdf] by grumpyprole on Wednesday November 30, 2016 @04:12PM (#13074736)
You just described the entire bank! I prefer my single codebase/single build definition. I forget the current figure, but StanChart has at least 3M lines of (dense) Haskell. More details here: https://skillsmatter.com/skillscasts/9098-haskell-in-the-lar...
Re:Standardized Ladder of Functional Programming [pdf] by pron on Thursday December 01, 2016 @01:15AM (#13077568)
> I forget the current figure, but StanChart has at least 3M lines of (dense) Haskell

Oh, thank god, finally we get a number. It turns out that I was completely wrong, and that in its 20 years of hyped existence, someone has built something big with Haskell once. You may think I'm sneering, but only a little bit, because while one is almost nothing, it is much better than actually nothing because at least it is a first anecdote. Now, who do I have pester to get some more metrics?

> More details here:

Sadly, there are no more relevant details in that talk.

Re:Standardized Ladder of Functional Programming [pdf] by willtim on Thursday December 01, 2016 @01:32PM (#13082019)
Just out of interest, are you skeptical of static type systems in general? Because AFAIK there has never been a quantitative study proving their effectiveness, only empirical studies.
Re:Standardized Ladder of Functional Programming [pdf] by pron on Friday December 02, 2016 @03:14AM (#13086996)
I am not skeptical of type systems in general and TBH I've never worked on a large piece of software written in an untyped language (I often program in Clojure, but so far never a large system -- and yeah, I am skeptical about Clojure too even though I love it). But you're mistaken if you think I'm looking for quantitative studies; that's far too high a bar. I am looking for well-researched anecdotes, and there are plenty of them for type systems in general.

I am, however, very skeptical of the interpretation some people, especially in typed FP, give to types and the reasons they believe types provide a benefit. For example, the relationship between useful type systems and software correctness is not direct. I am currently using a formal verification tool that is completely logic based (and it has an interactive theorem prover, a model checker, and is backed by decades of careful mathematical analysis of its soundness) which is completely untyped, and yet it is as powerful as Coq for proving correctness of algorithms. If direct, formal, proofs of correctness is what you're after, types might not be the best solution. Types, however, have other clear benefits that are not related to formal correctness, or, at least, not correctness of global program properties.

Re:Standardized Ladder of Functional Programming [pdf] by sheepmullet on Thursday December 01, 2016 @07:48PM (#13085045)
There is a lot of evidence that "primitive" static type systems add value via enabling better tooling.

Low cost of adoption + clear minor tooling benefits is usually enough evidence to adopt Java/C# style static types.

Haskell style static typing has a very high cost of adoption and so must conclusively show a strong benefit in order to be adopted by industry.

At the moment I feel Haskell companies can get away with using Haskell because PL enthusiasts are willing to absorb the training costs.