How to get functional software engineering experience?
Claus Reinke
claus.reinke@talk21.com
Wed, 15 May 2002 12:53:30 +0100
> > However, it appears that the only place (short of Ericsson) I can actually
> > work on a complex functional system is in academia. Unfortunately, this is
> > not an option, as I have no Ph.D., and going back to school is probably not
> > realistic.
The latter depends on your background. With a first degree and solid
experience in FP and software engineering, you might be just the right fit for
some research associate positions (if you are willing to think about academic
salaries for the serious work involved in getting a PhD..).
Academia is investigating the implications of FP being put to practical use, and
for that, we need input from people with strong practical background. A few
weeks ago, we at UKC were looking for someone to investigate refactoring
in functional languages (now taken). Heriot-Watt is looking for someone to pit
Glasgow distributed Haskell against Erlang in a Motorola-sponsored project
(see recent Haskell Communities Report for info and links).
> There are other companies using Erlang, if not on as large a scale. The
> Erlang User Conference (proceedings online at erlang.org) is a good
> starting point to find out which. Some of the best stories, though, are
> from very small Erlang groups in companies mainly using something else...
If we can trust the recent download statistics, there have been 10.000 (!)
downloads of the newest Erlang opensource release (that is, not counting
the paying customers). And yes, Erlang has been used by other companies,
see, e.g.:
http://dmoz.org/Computers/Programming/Languages/Erlang/Products/
> I would guess the biggest Haskell company is Galois Connections Inc
> (galois.com), although I know there are others. Funny there's no "Haskell
> in Industry" section on haskell.org -- it might be small, but it wouldn't
> be empty, if people using Haskell were willing to stand up and be counted.
As you say, there are lots of others, they just need to be willing to stand
up and be counted (repeating a good suggestion sometimes helps;-).
Meanwhile, we have made a start in the Haskell Communities Reports.
http://www.haskell.org/communities/
The first edition had a longer section on Galois, this edition has a longer
section on Xilinx. Both editions list Haskellers who have come forward
to tell us what non-Haskell-related things they do with Haskell in the
applications chapter. We only have a small sample, but the variety of
applications is as encouraging as the confidence displayed in applying
Haskell to complex problems.
I've been trying to suggest to other fpl communities (Clean, Erlang, ML,..)
that they produce similar activity reports. Joe Armstrong has just this week
volunteered to organize such an effort for the Erlang community.
Such reports help to document what, IMHO, has been a significant change
in FP programmers attitude: we no longer wonder why "they in industry"
don't take up FP, more and more of us simply start to use FP where it
helps us.
Btw, I wouldn't subscribe to Andrew's opinion that "there isn't a lot of
functional (or even declarative) software engineering experience out
there.". FP has been in the making for quite some time now, and all the
time it didn't make it into mainstream, we have been "losing" FP people
to industry. A few decades ago, universities had to send some of their
lecturers on courses if they wanted them to teach FP; nowadays
FP-aware students leave academia in the 100s (well, 1000s in some
parts of Australia;-). Even if you assume that most of them forget what
they learned in less than a year, and even if you completely ignore the
LP figures, those numbers keep adding up.
The ground is better prepared than ever. It remains up to you to decide
whether you're confident enough to use FP, without needless hype, and
just for the many things you know it can do well.
Cheers,
Claus