‘What? Haskell??? Eddie Haskell?’

Actually, no. This is not a post about that snarky kid named Eddie Haskell on the mid-20th-century TV sitcom “Leave It to Beaver.” (But I did watch “the Beave” and “Eddie” back then on a black-and-white television set with a rabbit-ears antenna.)

The topic this time is Haskell, the not-so-popular software development language named for an American mathematician, Haskell Brooks Curry, who died in 1982. The digital Haskell, a “purely functional programming language,” has been around for more than 30 years. Yet, in one recent survey of the “top ten” popular programming languages, Haskell finished 26th. In a more recent poll from TIOBE Index spotlighting the “top 20” programming languages, Haskell finished 49th. It’s the also-ran’s also-ran in many software developers’ eyes.

The software development world, meanwhile, keeps evolving into a wider jungle and taller Tower of Babel when it comes to programming languages, software development frameworks, programming styles (object-oriented vs. functional vs. scripted vs. yada, yada, yada, (Zzzzz), and other factors. You literally can spend months or years of your young life getting really good at several programming languages, or “front-end web frameworks,” or whatever, and they suddenly fall out of favor because something new and shiny has shown up and caught fire. Oh, and someone has raised a hundred million speculative megabucks to start a company using that software package, and they’ve started hiring–while you were out skateboarding or wiggling your thumbs on your iPhone.

Of course, working at the new company where there’ll be a $150,000+ entry-level salary for non-degreed software developers likely will require convincing its Human Resources inquisitors that you not only are a genius at coding with HotNewLavaScript 0.1 (released just last week), but you also have experience with a disparate array of other languages, including Java, JavaScript, PHP, C++ (pronounced exactly as it looks), Sweden’s aging Erlang (possibly with a shot of Elixir on the side), and maybe a few other digital tongues that you’ll never actually use at your new workplace. Haskell, for example?

With the right credentials, you can even completely ignore HotNewLavaScript and Haskell and keep clinging to things “mainframe” and “ancient,” such as COBOL (Common Business Oriented Language), created in about 1960, or FORTRAN ( Formula Translation, recently rebranded as “Fortran”), developed by IBM in the 1950s. If you know these languages, you likely can continue finding good-paying jobs or contract positions in finance, government, and science data centers long after your hair has turned white.

Periodically, articles and advertisements appear with headlines such as: “COBOL and Fortran Programmers Are in Demand Again!” In the previously cited TIOBE Index poll, COBOL finished 22nd and Fortran rolled in at 30th, well above Haskell. Many massive and aging mainframe computers still require COBOL or FORTRAN/Fortran to keep storing data and producing computations. Yet not many young or young-ish programmers want to touch something so moldy and oldie. Why tie your future to 20th-century boat anchors?

This brings us again to Haskell. I recently saw a post online claiming that Haskell developers suddenly are in demand but in short supply because not enough coders have been interested in learning such a cellar-dweller language. In another post, I also saw: “Haskell is particularly awkward for beginners.” Yes, it can be.

Yet it turns out that some new Haskell jobs are appearing within the rapidly expanding and spooky worlds of cryptocurrency and blockchain. So there could be solid new reason$$$ why a few software developers might want to give Haskell a second, third, or fourth consideration.

When I got my first computer in the 1980s, I learned how to do some simple programming in BASIC, Pascal, and C, and began imagining a brilliant, lucrative future ahead. But I soon discovered a distressing fact: good programming requires logical thinking. I have never been much of a logical thinker.

Fast-forward a few decades. During my convoluted career as a journalist, technical writer, and book reviewer, I’ve managed to learn how to work within more than a half dozen computer languages at a beginner’s level and have figured out how to modify and debug a few programs. But I’ve written very little code used by anyone else, and I’ve helped only a few people debug their code. Coding requires focus and patience; I tend to be underqualified in those categories, as well.

Nonetheless, I remain hardheaded, sympathetic toward underdogs, and always open to out-of-my-league digital challenges. Therefore, at age 78, I recently have dived headfirst into learning Haskell, and I’m actually having fun floundering around in a programming language totally unlike others I have tried. There are many free or inexpensive sources on the Web for learning Haskell. To highlight just a few: the official Haskell language site has an impressive compilation of how-to resources; FutureLearn offers a Haskell class online; and public libraries occasionally have Haskell how-to books from major tech publishers such as Manning, Apress, No Starch, and others.

One of the funniest tech book titles I have encountered is Learn You a Haskell for Great Good: A Beginner’s Guide. Also, one of the goofiest tech book covers I have seen belongs to a 2016 Haskell how-to guide that I enthusiastically recommend to others: Get Programming with Haskell by Will Kurt (Manning Publications, ISBN 9781617293764). Kurt’s book is well structured, nicely written, and heavily illustrated with compact code listings that demonstrate specific points. The author proves himself to be an excellent ambassador for Haskell and a good teacher.

But be prepared to go through this book page by page, front to back. Treat it much like a college textbook in a hard class where the professor keeps warning: “Anything in this book may show up on the final exam.”

One approach to learning Haskell is to try to attack it from all angles at once. There are better ways.

Essentially, I’m now doing everything at once: learning from several more books, including Practical Haskell by Alejandro Serrano Mena, taking online classes, monitoring discussion groups, checking online sites such as Stack Overflow, and watching out for helpful individuals.

I’m not expecting anyone to hire “age-overqualified” individuals to be Haskell coders. But, hey, if a genuine senior citizen can learn some Haskell for great or modest good, or expand a weird retirement hobby, or at least flush out some aging brain plumbing, how can that hurt? It might even encourage a few younger developers to step up to the plate and help bat Haskell out of the league cellar and into the pennant race as one of software development’s major-league leaders.

And if they–if we–Haskellers just happen to do some actual great good along the way, so much the better for the world.

main :: IO ()
main = putStrLn “Hello, world. Anyone out there???

Si Dunn

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: