I've heard that Telecoms are the big source of Erlang jobs but I'm not sure how much of a market there is. How likely is it that someone could find a job in Erlang/Haskell if they decided to learn it? In my case I have a lot of programming experience in Java but am tired of Java and want to try something different.
I asked myself the same question several months ago. A search on Dice just now for Erlang showed 7 jobs. For none of those Jobs was Erlang the primary skill required. The results were exactly the same for Haskall.
C# returned 3000+ jobs and Java returned 8000+. I realize this isn't terribly scientific, but it is a pretty good ball park indicator of the market.
I decided some time ago that from a "finding the next gig" point of view neither of these languages was going to be a major plus. From a "sharpening the saw" point of view I think they probably have a great deal of value.
I know of at least two Erlang startups, so things are looking up.
If you want a Haskell job, the first place to look is Microsoft itself. Also, there's a relative lot of functional programming work done, of all places, in the Wall Street financials world. Try looking for "functional programming" instead of Erlang and Haskell, as they often advertise for anyone with functional background instead of a specific language.
None of the telecom software engineer's I've met had even heard of Erlang, so it's not exactly current. Some were Ericcson employees. It was designed for distributed, concurrent telecoms systems, and saw some use before being orphaned a decade or two ago. Recently it has seen a bit of a resurgence outside of telecoms as it caught up with modern computing platforms (it only started supporting multi-core in 2006, whereas Java, which has a much higher share of recent telecoms software supported parallelism a decade before that).
A couple of the job adverts I've read recently have wanted functional programming in general as one of many skills - for example, ARM were advertising for software engineers to work on C++0x compilers, and the required skills included OcaML.
Aside from starting your own company or freelancing, alternatives to finding an Erlang/Haskell position would be to convince management at your current job to let you use it. Take a look at these Joel on Software articles for ideas on how to change your current environment or what to look for in jobs that may give you this leeway.
There are five or six Haskell companies here in the Boston area, including BlueSpec, Peerium, Nokia Research Labs, and others that don't come to mind immediately.
You can look at the Jobs page on the HaskellWiki, but that does not include all the jobs that are actually available. The best way to get a Haskell job is to be actively producing code in the community.
As for Erlang jobs, I saw several three or so years ago when I lived in Stockholm, but I don't know about the US.
If you're looking for a job tomorrow, then I agree with many of the answers here: opportunities are few and far between. But if you're learning either Haskell or Erlang, the proper time frame is really the next five years.
Think about it: in the mid-90s, Java programmers were similarly frustrated. They had this language that they just knew was better than what was out there (which was true, considering that the competition was mainly VB and C++). But management was tentative. Java wasn't gaining traction. There were rumors that it was slow. Yes, believe it or not, once upon a time, today's answer to COBOL had trouble finding a foothold in the business world.
Functional languages like Haskell and Erlang (and their ilk: OCaml, Scala, ML, etc.) are in the same boat today. They face some pretty steep barriers to acceptance -- namely learning curve and performance -- but they also benefit from a lot of programmer love and advocacy. So while they're not mainstream yet, they probably will be in the next five years, so you're future-proofing your resume by learning one now.
Meanwhile, I agree with shapr -- try sneaking functional development into your own work. Build utilities in Haskell (or in Scala, if you need to run in the JVM), just stuff that you need for your own work. It'll keep your head out of the Java doldrums.
From what I've heard, a job advert for a Haskell developer will gather 20 to 30 applications. On the other hand a Java job may gather ten times that number. So in purely numerical terms the competition is much less. However the odds are that many of those Java developers will be just 9-5 programmers, so knowing a functional language helps you stand out. The Haskell applicants are all going to be the kind of people who learn languages for fun and interest, not profit. This is the Python Paradox all over again.
The real problem with the Haskell and Erlang job market at the moment is lack of liquidity. You can find lots of Java jobs, and conversely people hiring in Java can find lots of developers. Functional languages are more sporadic.
I recommend going ahead and learning Haskell anyway; it covers pretty much everything you're likely to see in functional programming, and you will have no difficulty picking up another functional language, such as Erlang or OCaml, should the opportunity arise. (The converse is not so true; Haskell has a number of things in it that are little-used in other functional languages.)
If you compare Erlang and Haskell to Ruby and Python, you see quite a stark difference.
I highly recommend learning Erlang. More and more companies are moving in that direction. If anyone wants a job programming Erlang in San Francisco, feel free to send your resume to: [email protected]. We (and many others) are always on the search for more quality Erlang programmers. Feel free to email us even if you want to just talk to other Erlang'ers and get their opinions on your projects.
http://www.youtube.com/watch?v=uKfKtXYLG78 "Hello Mike." "Hello Joe."