views:

3191

answers:

10

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.

+10  A: 

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.

Jim Blizard
I saw the same thing but wasn't sure if maybe the Erlang positions are being advertised outside the big job boards.
When you say, "sharpening the saw", do you mean it makes your resume look better, even if it can't be directly applied to a job your interested in?
I think he's referring to it teaching you different ways of thinking that you can make use of in any job, even if you don't actually end up using that language.
Adam Jaskiewicz
@Kryston - Yes, sharpening the saw refers to building you skill as a developer, or maintaining and improving your tools (the most important one being your brain).
Jim Blizard
I wish people would get over the "Functional languages are only good for learning a new way to think..." frame of mind. :\
Rayne
It's hard to argue with the market.
Jim Blizard
+7  A: 

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.

Charlie Martin
That's a good tip. Thanks.
Wall Street is probably not a great place to be looking for jobs right now :)
Benjol
Actually they're advertising quite a bit.
Charlie Martin
+2  A: 

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.

Pete Kirkham
Orphaned? According to ericcson's own website "It is used in several Ericsson telecom infrastructure products"
Bedwyr Humphreys
Bedwyr, according to Joe Armstrong's paper on the history of Erlang, using Erlang at Ericsson was officially forbidden for some time. (And he ought to know.) So I think this is accurate. Things have changed since then.
Craig Stuntz
I've CW'd it so fix it if you do know better, but of the handful of Ericsson employees I've known, none worked on Erlang systems.
Pete Kirkham
(the only real live Erlang programmer I've met was a house-mate who did his PhD circa 1993 on creating embedded elevator controllers in Erlang; he then switched to Haskell)
Pete Kirkham
You are simply wrong about multi-core. Multiple Erlang VM's on a single computer (whether multiple CPU or multi-core/single CPU's) cluster automatically. So you could always run 4 VM's on a 4-CPU box and get a 'multi-CPU system'. This doesn't scale to 80-core well but that world is yet to arrive.
Gordon Guthrie
Yes, you could always run multiple processes and use the distributed messaging, with associated marshalling costs. But the hype about Erlang for multi-core only came after they announced support for SMP in 2006.
Pete Kirkham
I've got a friend working for Ericsson in Stockholm and they use Erlang just now. I guess it's not forbidden anymore.
finnsson
Good. I mainly work in modelling and simulation, and everything is completely C++ and Fortran dominated (as there are thousands of man-years of existing code), even though actor model would suit many problems better.
Pete Kirkham
Do you have a reference for that OCaml job at ARM?
Jon Harrop
That was back in March (2009); it wast at ARM Cambridge, but doesn't appear in their current listings ( which appear to use cookies so I can't link to a query ).
Pete Kirkham
+3  A: 

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.

Getting Things Done When You're Only a Grunt

The Joel Test: 12 Steps to Better Code

Judge Maygarden
+4  A: 

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.

shapr
+2  A: 

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.

rtperson
Saying Java is better than VB or C++ is an awfully subjective statement to make. Maybe that was the case for your industry, but in the two industries I've worked in we still cannot use Java, though many try...However, I agree with your overall message.
Dr. Watson
Hi Dr. Watson! You're right, of course. I don't think anyone will argue with Java versus VB 6, but versus C++? That *is* controversial. When Java was starting up (circa 1996), I was working on a large C++ project. We routinely lost days of productivity to memory leaks. Our app (a one-time competitor to Quicken) couldn't have used Java, but the prospect of automated garbage collection was *very* enticing. There are a few cases I know of where Java is a bad choice: games/graphics and embedded systems particularly. But finance? Really? I'd be interested to hear more about what you do...
rtperson
C++ has changed over the past fifteen years, partly as compilers moved to implement the standard, and partly as we've learned to use it well. In my opinion, it is functionally a much better language now, while I haven't seen as much improvement in Java, so I'd say C++ is better than it was when compared to Java. It's still a matter of opinion, but I'd lean towards C++ more today and Java in the mid-90s.
David Thornley
+4  A: 

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.

Paul Johnson
+1  A: 

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.)

Curt Sampson
Bullshit. Haskell lacks most of the defining characteristics of other functional languages: macros and EVAL from Lisp and Scheme; higher-order modules from Standard ML; higher-order modules, macros, inferred algebraic data types, structural types, variance, or-patterns from OCaml; classes, objects, variance and mixins from Scala; classes, objects, value types, active patterns and concurrent GC from F#...
Jon Harrop
Looks like somebody who knows Haskell but not (say) Common Lisp. They're very different languages, and it appears to be well worth learning both. (I've used Common Lisp and Scheme, haven't done anything with anything in the ML family, and have picked Haskell to learn this year.)
David Thornley
While I've not done a lot of Common Lisp programming, I'm reasonably familiar with its features. I've read through both Graham's and Seibel's books; do they miss any major features? If not, I stand by my statement.
Curt Sampson
A: 

If you compare Erlang and Haskell to Ruby and Python, you see quite a stark difference.

ski
rtperson
+1  A: 

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."

Patrick