[Haskell-cafe] Market Place for Haskell development teams?

Curt Sampson cjs at starling-software.com
Tue Sep 29 11:35:51 EDT 2009

On 2009-09-29 13:18 +0200 (Tue), Alberto G. Corona  wrote:

> Java is part of the Java platform, that brought OS independence and
> interoperability at the right time. .Download-execution on the client
> was also a reason for the initial success of Java in the Internet era.

I was a die-hard Java hacker from 1999 until some undetermined time in
the early-to-mid-2000s. (I abandoned it more or less completely sometime
around late 2005, if I recall correctly.)

This may be somewhat anecdotal evidence, but I disagree with both
of your statements here. I've rarely known anybody to use Java
cross-platform in a non-trival way, barring a few major GUI-centric
projects such as Eclipse. (I've far more cross-platform use of Haskell
than Java myself.) And I know of nobody who did anything serious with
download-execution of Java.

As an example, Amazon and Google are two fairly large companies that
use Java extensively in their operations, and neither of them make any
significant use of the cross-platform or download-execution abilities of
it. They'd do just as well with a language that had a single compiler
producing only Unix binaries.

> Rubi and Python came with libraries targeted to Rapid development of
> Internet applications.

No, neither originally "came" with that.

Python has never been a big language for web applications (though it's
had a few outstanding successes). It has been the source of some very
good ideas in the web application framework area (Django introduced some
great ideas that were, at best, exceedingly rare when it came out), but
those haven't really caught on. (RoR is still missing a lot of wonderful
stuff from Django. Heck, even my sad Ruby web framework QWeb has more in
certain respects.)

Ruby on Rails arrived more than a decade after Ruby was developed, and
while it's increased the popularity of the language, that's little to
do with Ruby itself. RoR was well described by someone as "the bastard
spawn of a PHP programmer and a Web designer." I posit that "it's
slightly better than PHP, yet still very accessible to PHP programmers"
is the main reason for its popularity.

> What is the vehicle that haskell can use to enter the mainstream?.

That may be the wrong question. "Avoid success at all costs" still
rings true to me. A year or so ago I seemed like one of the few on
the haskell-libraries list voting in favour of fixing API problems in
libraries, rather than etching in stone those problems in the name of
backwards compatibility so that we could "become more popular."

Do you really want, in 2020, to look back at the 2010 revision of the
Haskell standard and think, "we entrenched things that for a decade
everybody agreed was dumb"?

I can tell you, even when you're a Java enthusiast, there's nothing
more depressing than looking at java.util.Date and thinking, "That
should have been immutable, but it's going to be mutable for the rest of
eternity. We will never fix that."

But let's try this again:

> What is the vehicle that haskell can use to enter the mainstream?.

Become more stupid.

Is that a better answer? I'm not just a geek; I do marketing too (this
is what happens when you start your own company), and if you asked me,
using the utmost of my technical knowledge and marketing skills, to make
Haskell popular, this is what I'd recommend. 

(I suppose it's a sign of my professionalism that to do this would
nearly break my heart, but if you wanted me to tell you the best way to
do this, and I couldn't tell you to get lost, that's what I'd say.)

> Many people will play with Haskell in the spare time, and many of them
> will be permitted to develop some non critical applications at work.
> But that is all.

Hm. So I suppose that this options trading system I'm working on, which
is the sole way our business makes money and is entirely written in
Haskell, doesn't actually exist.

> I think that all the current niches are filled, but new niches  are coming.

Haskell already has a good niche. In fact, a brilliant one. We have
a whole bunch of academics doing truly wonderful stuff (imagine the
world without monads!--thank you Philip Wadler (and Eugenio Moggi))
that the rest of us (relatively) dumb idiots can use to make our lives
better. We've got several very good implementations of the language,
one of which is a truly shit-hot compiler[1]. And we can use that to do
commercial applications quite comfortably[2].

My personal opinion is, yes, let's let Haskell stick to the niche where
it's great, but it changes so fast that it's scary to everybody else. To
echo Paul Graham, I'm extremely happy to see my competition use Java.

[1] Like that's so important. Ruby's standard implementation to this day
is an interpreter that implements all the popular extensions and has a
reasonably decent FFI. In Haskell-land, we call that "Hugs." It's only
because we have GHC as well that we can look down on Hugs; in the Ruby
(and Python, and PHP) worlds, they're saying that interpreters are just
fine for all sorts of "enterprise applications."

[2] (Warning: self-promotion): http://www.starling-software.com/misc/icfp-2009-cjs.pdf

> Financial applications are an example of higher level programming
> where tasks usually performed by humans are now automatized and there
> is no or few traditions about that. The need to think at a higher
> level without being worried by side effects and other details are
> specially needed in such kind of areas. That's where haskell could
> have its own niche.

Actually, I think that Haskell has a niche there not because of that
sort of thing, but merely because it's better than Java at doing what
Java does well, but scary enough that only small groups of brave
people who are comfortable with risk would ever attempt to use it. The
financial sector happens to have a lot more of those than many others.

Curt Sampson       <cjs at starling-software.com>        +81 90 7737 2974
           Functional programming in all senses of the word:

More information about the Haskell-Cafe mailing list