
On Tuesday 17 July 2007 23:26:08 Hugh Perkins wrote:
Am I the only person who finds it interesting/worrying that there are few to no people in the group who are ex-C# programmers. I mean, you could argue that C# programmers are simply too stupid to do Haskell, but ... you know, there is another explanation ;-)
To understand this, I think you must look at the number of technical users for each language. There are a huge number of technical C++ and Java programmers but a tiny number of technical C# programmers in comparison. The few technical C# programmers are migrating to F# because it is next door and F# programmers are better looking. You can find evidence of this simply by searching for mundane numerical libraries like Fast Fourier Transform (FFT) implementations. If you do this for C++ or Java you find hundreds of implementations, some of which will work. For OCaml, you find a handful of libraries all bundled with automated proofs of their correctness. When I did this for all .NET languages a couple of months ago, there was nothing worth having (even among expensive commercial solutions). So I wrote my own and productized it. Our FFT library in C# is an order of magnitude less popular than our technical libraries for OCaml but this is offset by the fact that people using C# have an order of magnitude more money. So I would say that the Haskell community can expect immigrants who are technical (or they wouldn't consider a fringe language) and that means they will be migrating primarily from C++ and Java. If you want to attract the maximum number of users then target your educational material at those people. The C++ programmers will know that coding to the metal is always essential and will demand proof that Haskell is as fast as C. They will also need to know how to unravel low-dimensional vector and matrix routines at compile time. The Java programmers will know that performance (particularly startup time) is completely irrelevant but being cross-platform and having extreme interoperability is pivotal. They will be particularly impressed by Haskell's brevity and the disappearance of some of Java's keywords like public, static, void and Factory. -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. OCaml for Scientists http://www.ffconsultancy.com/products/ocaml_for_scientists/?e