Why are OCaml and Haskell being used at these companies?

Hello, Using http://www.indeed.com with the search phrase "Haskell functional", I found several Haskell positions inclusing Quantitative Functional Programmer (Analyst - Level)http://www.indeed.com/rc/clk?jk=950afd03471e43cb&from=ja&cd=0B84_stXHsQIi--kqgcAtwkqfEFNHwdDbrS1x6sG6qd6vVd2F9lWGMmpcNKZhUl4vYoq6CxBPHbov0Iq1E7i0I280wysegJY2TsQ1uFW7W_5TT4m0Zj94dTxgyQTopT3S0sT8XXLFkgUNtb7Vnd-g90KjCOBR8L3-j4DDe5C5IWB90L0VOIkMXvl8vqDEnzncPVLYuVLwWSceCP4ZHmZ3460UPeMcjpKVyHhxzB4j1RctniY18yLwC5uX2r9d7cvhgE9HBp5fU9Mwl9IHrzlc5G6Snh7h8t7rIdr7Jgu3cE&qd=RnZhMybXSk4M3QtTVGXWoYOKTPFCbzpm8jWESW0p0eMKASM0UIjh16lawXYVmI3Pl-Bs_tBXR8fwdr6b7g8zZmd1JbykUrZLXGO6H03JYDQ&rd=i9i5wxAjTH4MK5Gz0qo8FA Credit Suisse - New York, NY Specific *Language* (embedded in *Haskell*) that will be... of competence in either *Haskell* or another statically-typed functional *language*. The ability to build...
From Credit Suisse - November 11, 3:32 PM
I am looking for (objective.. i.e. not juts FPL cheerleading) opinions as to why Wall Street ( http://www.janestcapital.com/) and banking are now using OCaml and Haskell. I really want to understand what industrial markets are adopting FPLs and why in order to help push FPLs penetration into industry. Another company is http://www.galois.com Kind regards, Vasya

vigalchin:
I am looking for (objective.. i.e. not juts FPL cheerleading) opinions as to why Wall Street ( [3]http://www.janestcapital.com/) and banking are now using OCaml and Haskell. I really want to understand what industrial markets are adopting FPLs and why in order to help push FPLs penetration into industry. Another company is [4]http://www.galois.com
Perhaps start at http://cufp.galois.com/. A quick summary: small differences in productivity show up as real dollar amounts to banking/wall street types, and faults are less tolerated than in some industries. Galois, in particular, is in it for the the high assurance/correctness aspects. So: * productivity * correctness -- Don

I am looking for (objective.. i.e. not juts FPL cheerleading) opinions as to why Wall Street ( http://www.janestcapital.com/) and banking are now using OCaml and Haskell. I really want to understand what industrial markets are adopting FPLs and why in order to help push FPLs penetration into industry. I wouldn't know about that, but incidentally, the first I heard of a distinct Wall Street software world, in the 90's, they were looking for Smalltalk
On Nov 12, 2007, at 12:00 PM, Galchin Vasili wrote: programmers. Who knows what those crazy guys will be doing next. Donn Cave, donn@drizzle.com

On Mon, 2007-11-12 at 15:51 -0800, Donn Cave wrote:
I am looking for (objective.. i.e. not juts FPL cheerleading) opinions as to why Wall Street ( http://www.janestcapital.com/) and banking are now using OCaml and Haskell. I really want to understand what industrial markets are adopting FPLs and why in order to help push FPLs penetration into industry. I wouldn't know about that, but incidentally, the first I heard of a distinct Wall Street software world, in the 90's, they were looking for Smalltalk
On Nov 12, 2007, at 12:00 PM, Galchin Vasili wrote: programmers. Who knows what those crazy guys will be doing next.
Epigram?

On Mon, 12 Nov 2007, Derek Elkins wrote:
On Mon, 2007-11-12 at 15:51 -0800, Donn Cave wrote:
I am looking for (objective.. i.e. not juts FPL cheerleading) opinions as to why Wall Street ( http://www.janestcapital.com/) and banking are now using OCaml and Haskell. I really want to understand what industrial markets are adopting FPLs and why in order to help push FPLs penetration into industry. I wouldn't know about that, but incidentally, the first I heard of a distinct Wall Street software world, in the 90's, they were looking for Smalltalk
On Nov 12, 2007, at 12:00 PM, Galchin Vasili wrote: programmers. Who knows what those crazy guys will be doing next.
Epigram?
From a cooperation with a financial institution I got the impression, that they have just enough money to try various things. Those guys e.g. believe that if you throw enough mathematics (supported by their money, of course) on their curves you can predict everything.

On Monday 12 November 2007 20:00, Galchin Vasili wrote:
I am looking for (objective.. i.e. not juts FPL cheerleading) opinions as to why Wall Street ( http://www.janestcapital.com/) and banking are now using OCaml and Haskell.
They have been using OCaml and Haskell for many years now. They were among the first industrial adopters of modern statically-typed functional programming languages along with companies like Intel and Microsoft who use them to write verification software.
I really want to understand what industrial markets are adopting FPLs and why in order to help push FPLs penetration into industry. Another company is http://www.galois.com Kind regards, Vasya
For the old examples that you gave, reliability was a major concern. Functional programming languages are now much more widely used in industry, primarily because they offer substantial productivity improvements (roughly 10x) over C++ and Java and, consequently, are much more cost effective. Penetration is highest in parts of industry where small groups of talented programmers get together, most notably startups. Look at XenSource, Wolfram Research, The MathWorks, Wink, Merjis, Red Hat, Linspire and Skydeck for example. -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/products/?e

On Tue, 13 Nov 2007, Jon Harrop wrote:
Penetration is highest in parts of industry where small groups of talented programmers get together, most notably startups. Look at XenSource, Wolfram Research, The MathWorks,
?? Mathematica and MatLab are just the opposite of statically safe programming.

On Tue, 13 Nov 2007 jerzy.karczmarczuk@info.unicaen.fr wrote:
Henning Thielemann writes:
?? Mathematica and MatLab are just the opposite of statically safe programming.
Is this a religious statement, quite popular in our Church of Functionalism, or you mean something concrete by that, and if yes, then what?
I meant that these languages, which are the main products of Wolfram and MathWorks, respectively, are untyped or at least dynamically typed, and thus are certainly not the appropriate tools for reliable development and maintenance. However, I see that Jon Harrop claimed statical type safety only for OCaml and Haskell, and functional design and high productivity for Mathematica and MatLab et.al.

Henning Thielemann writes:
jerzy.karczmarczuk@info.unicaen.fr wrote:
Henning Thielemann writes:
?? Mathematica and MatLab are just the opposite of statically safe programming.
Is this a religious statement, quite popular in our Church of Functionalism, or you mean something concrete by that, and if yes, then what?
I meant that these languages, which are the main products of Wolfram and MathWorks, respectively, are untyped or at least dynamically typed, and thus are certainly not the appropriate tools for reliable development and maintenance. However, I see that Jon Harrop claimed statical type safety only for OCaml and Haskell, and functional design and high productivity for Mathematica and MatLab et.al.
Well, Henning, it is quite a statement: "certainly not the appropriate tools for reliable development and maintenance". Tell that to those legions of people who made dozens of thousands of programs in Lisp (or Scheme), in Smalltalk, etc. And now in Erlang... I believe, and I teach that static typing is a good thing, but, please, you are too young yet for sectarism... Jerzy Karczmarczuk

Hello jerzy, Tuesday, November 13, 2007, 3:03:16 PM, you wrote:
Well, Henning, it is quite a statement: "certainly not the appropriate tools for reliable development and maintenance". Tell that to those legions of people who made dozens of thousands of programs in Lisp (or Scheme), in Smalltalk, etc. And now in Erlang...
don't forget about million of assemblers programmers. this can't prove anything -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com

On Tue, 13 Nov 2007 jerzy.karczmarczuk@info.unicaen.fr wrote:
Henning Thielemann writes:
jerzy.karczmarczuk@info.unicaen.fr wrote:
Henning Thielemann writes:
?? Mathematica and MatLab are just the opposite of statically safe programming.
Is this a religious statement, quite popular in our Church of Functionalism, or you mean something concrete by that, and if yes, then what?
I meant that these languages, which are the main products of Wolfram and MathWorks, respectively, are untyped or at least dynamically typed, and thus are certainly not the appropriate tools for reliable development and maintenance. However, I see that Jon Harrop claimed statical type safety only for OCaml and Haskell, and functional design and high productivity for Mathematica and MatLab et.al.
Well, Henning, it is quite a statement: "certainly not the appropriate tools for reliable development and maintenance". Tell that to those legions of people who made dozens of thousands of programs in Lisp (or Scheme), in Smalltalk, etc. And now in Erlang...
I think there is a difference between 'many people have done it this way' and 'it was an appropriate choice to do so'.

Henning Thielemann writes:
On Tue, 13 Nov 2007 jerzy.karczmarczuk@info.unicaen.fr wrote:
Well, Henning, it is quite a statement: "certainly not the appropriate tools for reliable development and maintenance". Tell that to those legions of people who made dozens of thousands of programs in Lisp (or Scheme), in Smalltalk, etc. And now in Erlang...
I think there is a difference between 'many people have done it this way' and 'it was an appropriate choice to do so'.
You are absolutely RIGHT. The point is that I don't acknowledge the right, I don't give myself either, to say that something is or is not *appropriate* - at the long term, in this context. The only absolute truth seems to be that *all* becomes obsolete sooner or later. We as well. So, I just appeal for a bit of modesty. You know what happens when people start to claim that all done until now, concerning, say, the interpretation of Bible, or our understanding of Democracy was inappropriate for reliable development, etc. The sectarism is the lesser evil. The bigger one is the totalitarism. The dynamic typing niche seems quite stable, and developed by serious people. They may become obsolete one day, but playing Cassandras with respect to them is, perhaps, not very promising. Well, I acknowledge to everybody the right - of course - to bear some religious beliefs. I have mine, sometimes very strong... But I have quite a mileage to go before I feel ready to issue prophecies. Jerzy Karczmarczuk

On Tuesday 13 November 2007 08:41, Henning Thielemann wrote:
On Tue, 13 Nov 2007, Jon Harrop wrote:
Penetration is highest in parts of industry where small groups of talented programmers get together, most notably startups. Look at XenSource, Wolfram Research, The MathWorks,
?? Mathematica and MatLab are just the opposite of statically safe programming.
Absolutely. I was referring to a prototype Mathematica JIT compiler (developed in OCaml), the FFT routines in MATLAB (FFTW: written in OCaml) and the SML software that The MathWorks sell. I was not referring to the Mathematica and MATLAB languages themselves. -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/products/?e

On Tue, 13 Nov 2007, Jon Harrop wrote:
On Tuesday 13 November 2007 08:41, Henning Thielemann wrote:
On Tue, 13 Nov 2007, Jon Harrop wrote:
Penetration is highest in parts of industry where small groups of talented programmers get together, most notably startups. Look at XenSource, Wolfram Research, The MathWorks,
?? Mathematica and MatLab are just the opposite of statically safe programming.
Absolutely. I was referring to a prototype Mathematica JIT compiler (developed in OCaml),
interesting
the FFT routines in MATLAB (FFTW: written in OCaml) and the SML software that The MathWorks sell.
I see, but FFTW was not developed by MathWorks, but by Matteo Frigo and Steven G. Johnson (says fftw.org), and MathWorks continues to ignore functional programming as such, isn't it?

Henning Thielemann wrote:
On Tue, 13 Nov 2007, Jon Harrop wrote:
On Tuesday 13 November 2007 08:41, Henning Thielemann wrote:
Penetration is highest in parts of industry where small groups of talented programmers get together, most notably startups. Look at XenSource, Wolfram Research, The MathWorks, ?? Mathematica and MatLab are just the opposite of statically safe
On Tue, 13 Nov 2007, Jon Harrop wrote: programming. Absolutely. I was referring to a prototype Mathematica JIT compiler (developed in OCaml),
interesting
the FFT routines in MATLAB (FFTW: written in OCaml) and the SML software that The MathWorks sell.
I see, but FFTW was not developed by MathWorks, but by Matteo Frigo and Steven G. Johnson (says fftw.org),
Right, and it is not written in OCaml but in C. The OCaml code _generates_ optimized C code for the arch where it matters. a+, ld.

Laurent Deniau wrote:
Henning Thielemann wrote:
On Tue, 13 Nov 2007, Jon Harrop wrote:
On Tuesday 13 November 2007 08:41, Henning Thielemann wrote:
Penetration is highest in parts of industry where small groups of talented programmers get together, most notably startups. Look at XenSource, Wolfram Research, The MathWorks, ?? Mathematica and MatLab are just the opposite of statically safe
On Tue, 13 Nov 2007, Jon Harrop wrote: programming. Absolutely. I was referring to a prototype Mathematica JIT compiler (developed in OCaml),
interesting
the FFT routines in MATLAB (FFTW: written in OCaml) and the SML software that The MathWorks sell.
I see, but FFTW was not developed by MathWorks, but by Matteo Frigo and Steven G. Johnson (says fftw.org),
Right, and it is not written in OCaml but in C. The OCaml code _generates_ optimized C code for the arch where it matters.
That sounds like 'written in ocaml' to me. That's no more written in C than java code is written in assembly, just because the JIT generates optimised assembly code... I would say it's "written in" the language which the authors wrote it. The fact that they wrote it to generate some C code and then compile it: well, they're just a clever bunch :-) Jules

Jules Bean wrote:
Laurent Deniau wrote:
Henning Thielemann wrote:
On Tue, 13 Nov 2007, Jon Harrop wrote:
the FFT routines in MATLAB (FFTW: written in OCaml) and the SML software that The MathWorks sell.
I see, but FFTW was not developed by MathWorks, but by Matteo Frigo and Steven G. Johnson (says fftw.org),
Right, and it is not written in OCaml but in C. The OCaml code _generates_ optimized C code for the arch where it matters.
That sounds like 'written in ocaml' to me.
OCaml was used to write a meta-program which applies heuristics to minimize the runtime of the critical C code (i.e. the butterflies). This has nothing to do with FFT computation and it is optional. FFTW doesn't need any OCaml compiler or lib to be compiled and installed.
That's no more written in C than java code is written in assembly, just because the JIT generates optimised assembly code...
If your program is written in Java (resp. C) but the JIT is written in C (resp. OCaml), in which language is your code?
I would say it's "written in" the language which the authors wrote it. The fact that they wrote it to generate some C code and then compile it: well, they're just a clever bunch :-)
Effectively, they have used the right language for the right thing. a+, ld.

On Tuesday 13 November 2007 16:03, Laurent Deniau wrote:
OCaml was used to write a meta-program which applies heuristics to minimize the runtime of the critical C code (i.e. the butterflies). This has nothing to do with FFT computation
No. The sole purpose of the OCaml code is to symbolically simplify the FFT computations and generate C code implementing the best results.
FFTW doesn't need any OCaml compiler or lib to be compiled and installed.
No. FFTW contains around 13,000 lines of OCaml source code and you need the OCaml compiler to compile that. If you don't believe me, perhaps you will believe Steven G. Johnson (one of the authors of FFTW) when someone tried to tell him that he hadn't written his software in OCaml: http://groups.google.co.uk/group/fa.caml/msg/cfd08423c22ccff5 That OCaml code has millions of industrial users worldwide and is one of the most widely used pieces of software written in a statically typed functional programming language. -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/products/?e

On Tuesday 13 November 2007 16:03, Laurent Deniau wrote:
OCaml was used to write a meta-program which applies heuristics to minimize the runtime of the critical C code (i.e. the butterflies). This has nothing to do with FFT computation
No. The sole purpose of the OCaml code is to symbolically simplify
Jon Harrop wrote: the FFT computations and generate C code implementing the best results. Which is not needed by default. 'Standard' codelets are already present in the source distribution and far enough for most uses. I have been installing FFTW on a dozen of archs over the past 10 years and I have never used the OCaml code (in fact I did it once to play with it).
FFTW doesn't need any OCaml compiler or lib to be compiled and installed.
No. FFTW contains around 13,000 lines of OCaml source code and you need the OCaml compiler to compile that.
Yes you need a OCaml compiler to compile the OCaml code. But you don't need the OCaml code to install FFTW, except if you want to generate your own codelets which remains an exceptional case.
If you don't believe me, perhaps you will believe Steven G. Johnson (one of the authors of FFTW) when someone tried to tell him that he hadn't written his software in OCaml:
http://groups.google.co.uk/group/fa.caml/msg/cfd08423c22ccff5
I am not saying that the FFTW distribution doesn't have OCaml code nor this code is negligeable/useless! I just say that it is useful to build the codelet for unsupported size or to tune them for a given arch. The libfftw itself, the only part meaningful for your program performance and used by MATLAB, is entirely made of compiled C and asm code. Just to quote the doc: [ section 8.4 "Generating your own code" The directory genfft contains the programs that were used to generate FFTW’s “codelets,” which are hard-coded transforms of small sizes. We do not expect casual users to employ the generator, which is a rather sophisticated program that generates directed acyclic graphs of FFT algorithms and performs algebraic simplifications on them. It was written in Objective Caml, a dialect of ML, which is available at http://pauillac.inria.fr/ocaml/. ] So your assertion "the FFT routines in MATLAB (FFTW: written in OCaml)" is simply wrong or at least an ambiguous shortcut. MATLAB doesn't run OCaml code in its FFT routines.
That OCaml code has millions of industrial users worldwide and is one of the most widely used pieces of software written in a statically typed functional programming language.
And OCaml was (still is?) the language learnt by French students in the 90's in the 'classes preparatoires'. At least when I was teaching scientific computing. I am not a language fanatic, so this kind of argument is simply meaningless for me. It is important only if am developing projects with long lifetime, high portability or sparse resources. a+, ld.

On Nov 13, 2007 5:03 PM, Laurent Deniau
If your program is written in Java (resp. C) but the JIT is written in C (resp. OCaml), in which language is your code? I'd say it's written in Java. If you have a bug where would you correct it? If someone would like to see the code of your program what would you show him/her? Your Java program is a code that is executed by a (virtual) machine that just happens to delegate most work to another machine.

Functional programming languages are now much more widely used in industry, primarily because they offer substantial productivity improvements (roughly 10x) over C++ and Java and, consequently, are much more cost effective.
Do you have any references for this?
Dr Jon D Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/products/?e
Tim Newsham http://www.thenewsh.com/~newsham/

On Tuesday 13 November 2007 18:38, Tim Newsham wrote:
Functional programming languages are now much more widely used in industry, primarily because they offer substantial productivity improvements (roughly 10x) over C++ and Java and, consequently, are much more cost effective.
Do you have any references for this?
I'm compiling dozens of detailed case studies for a business management report about the use of modern statically typed functional programming languages in industry, designed to inform key decision-makers in industry. If anyone using Haskell in industry would like some free publicity in this report, please e-mail me. -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/products/?e

Galchin Vasili wrote:
I am looking for (objective.. i.e. not juts FPL cheerleading) opinions as to why Wall Street ( http://www.janestcapital.com/)
For Jane St Capital read the article by Yaron Minsky in issue 7 of the Monad Reader: http://www.haskell.org/sitewiki/images/0/03/TMR-Issue7.pdf Erik -- ----------------------------------------------------------------- Erik de Castro Lopo ----------------------------------------------------------------- "... a discussion of C++'s strengths and flaws always sounds like an argument about whether one should face north or east when one is sacrificing one's goat to the rain god." -- Thant Tessman

well, I generally read more than post on the list, but being in investment banking ( for 20 years), this one is too hard to resist... The kind of job these guys do is highly mathematical ( quantitative analysis) as opposed to traditional banking or Back Offices where th job is (not so clever) record crunching... buying software packge also make little sense for them, because the very nature of the job is to develop new models to play around market inefficiencies, or just against competitors models... if everybody would have the same ( model, package), they would be out of business... time to market is key, reliability too , and the kind of guy they hire ( quant analyst) have the brain to learn new languages , so this is not the same problem as turning an army of cobolist into java. also, the very expressive nature of functiunal programming blends very wells with maths, better than record crunching... if you add on top grid computing and parralelism... ( monte carlo is not only a casino in the south of france. for these guys...) so they are small elite teams..that fits well with visionary products... do not expect it to be a lead to mass expansion for tommorow, these people are already living in a ivory tower compared to their peers retail-bankers... -- View this message in context: http://www.nabble.com/Why-are-OCaml-and-Haskell-being-used-at-these-companie... Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

On Wednesday 14 November 2007 10:55, luc.taesch wrote:
do not expect it to be a lead to mass expansion for tommorow...
I think the functional programming market is far from saturated though: there are still many inroads to make into areas like technical computing that stand to benefit a lot from functional languages but require unconventional characteristics (like complex literals, vector and matrix routines, visualization etc.). When functional languages achieve these goals I believe the total number of users will increase dramatically as scientists and engineers adopt them alongside their standard tools. Bioinformaticians are among the first to adopt functional programming languages but I believe more mainstream natural sciences will follow. -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/products/?e

Jon Harrop wrote:
When functional languages achieve these goals I believe the total number of users will increase dramatically as scientists and engineers adopt them alongside their standard tools. Bioinformaticians are among the first to adopt functional programming languages but I believe more mainstream natural sciences will follow.
FWIW, a few years ago, when I was stubbornly unemployed[*], I wrangled a fifteen-minute informational interview with Kenan Sahin[**]. He advised me to look for work related to medical devices, on the grounds that as the US population got older there would be greater and greater demand for medical equipment, and software is becoming a more and more important component of these devices. [*] I had been working for Whitehead on the Human Genome Project, thinking that an academic job would be the perfect place to ride out the dot-com crash. Then they finished sequencing the human genome and didn't need so many programmers. So much for academic job security. [**] Sahin had founded of a company that I had worked for, which he had sold to Lucent for 1.5 gigabucks shortly *before* the dot-com crash.

Seth Gordon
Bioinformaticians are among the first to adopt functional programming languages
From my experience, Bioinformatics use a mixture of langauges - C to implement various algorithms, a bit of Java for UI-oriented stuff, and Perl to tie it all together. (You can use Python instead, of course, but expect to be considered something of a rebel.)
I think Haskell works nicely to combine at least the C and Perl aspects, but as far as I can tell, I'm about the only one who does this. There isn't a lot of comp.sci. in bioinformatics, beyond a handful of relatively standard algorithms. I guess it's one of those "practical" fields. I guess the important difference to the financial sector is that the competitive advantage is in exclusive data, not exclusive algorithms or analytical methods. Thus, programmer productivity isn't quite so important, you're just going to script togehter some pre-packaged tools, often ten or fifteen year old software.
FWIW, a few years ago, when I was stubbornly unemployed[*], I wrangled a fifteen-minute informational interview with Kenan Sahin[**]. He advised me to look for work related to medical devices
Sounds like good advice to me - pharmaceuticals seem to have enough money, at least. -k -- If I haven't seen further, it is by standing in the footprints of giants
participants (16)
-
Bulat Ziganshin
-
Derek Elkins
-
Don Stewart
-
Donn Cave
-
Erik de Castro Lopo
-
Galchin Vasili
-
Henning Thielemann
-
jerzy.karczmarczuk@info.unicaen.fr
-
Jon Harrop
-
Jules Bean
-
Ketil Malde
-
Laurent Deniau
-
luc.taesch
-
Roel van Dijk
-
Seth Gordon
-
Tim Newsham