Ask HN: Career opportunities with Haskell?
How valued are Haskell programmers in the "real world"? How do you think this will change?
How valued are Haskell programmers in the "real world"? How do you think this will change?
Haskell is perfectly suited for critical systems: I've seen job postings for C++ programmers for air traffic control systems which I think could really do with haskell's type safety.
In recent years however haskell performance and library availability has made it suitable for general high level programming like web development for example[2][3].
[1]http://thread.gmane.org/gmane.comp.lang.haskell.cafe/78651
[2]http://haskell.org/haskellwiki/Web
[3]http://haskell.org/haskellwiki/Applications_and_libraries/We...
http://www.haskell.org/haskellwiki/Haskell_in_industry
Haskell is used for quantitative analysis and especially in the finance market. OCaml is also used in various "finance" companies.
http://cufp.org/jobs/haskellerlangc-developers-high-frequenc...
module Comment where
import Control.Exception (assert)
class Loveable thing where
loves :: Person -> thing -> Bool
instance Loveable ScrewDriver where
_ `loves` PhillipsHead = False
instance Loveable ProgrammingLanguage where
Me `loves` Haskell = True
TheOtherGuy `loves` Haskell = True
_ `loves` _ = False
data ScrewDriver = FlatHead | PhillipsHead | Torx
data ProgrammingLanguage = Haskell | Lisp | Scheme
data Person = You | Me | TheOtherGuy
implies a b = if a then assert True b else assert True True
argument person = (not (person `loves` PhillipsHead)) `implies` (not (person `loves` Haskell))
check a = mapM (print . a) [You, Me, TheOtherGuy]
Comment> check argument
True
False
FalseBut no, programming languages must be like screwdrivers. You just mindlessly turn them clockwise all day and you've created Google. Right?
It all depends on if the goal is to make as much money as fast as possible or to have fun and satisfy yourself intellectually.
There's nothing wrong with loving programming language X, but I wouldn't make career or project decisions based on enjoying the syntax of one vs the other.
imho the difficult part is figuring out the logic of the program, determining which libraries to commit to, writing any novel algorithms and engineering the system so it runs efficiently and doesn't fall over.