Should You Learn a Little-Known Programming Language?

Ask a group of developers to rattle off the world’s most popular programming languages, and they’ll likely name the usual suspects: JavaScript, Java, Python, Ruby, C++, PHP, and so on.

Ask which programming languages pay the best, and they’ll probably list the same ones, which makes sense: By definition, popular languages are in high demand from employers, which can translate into hefty salaries and perks for developers.

But what about the little-known languages and skill sets, which don’t leap to mind but nonetheless support some vital IT infrastructure? As detailed by last month’s Dice Report, there’s a lengthy list of well-paying skills that you’ve probably never heard of; or if you did, you didn’t pay them much mind. Take Ansible, for instance: this open-source tool, which system administrators use to configure and manage PCs, pays an average of $124,860 per year. Or OnCue, a video-streaming platform currently owned by Verizon, and a core requirement of jobs that pay as much as $125,067 annually.

Other (relatively) obscure languages and skill sets that have climbed the Dice rankings over the past few years include Object Pascal (a derivative of Pascal), Apache Kafka (an open-source tool for maintaining real-time data feeds), and Lavavel (an open-source PHP Web application framework).

At the heart of these platforms’ rising popularity, however, lies a bit of a conundrum. Dice ranks skills by the number of job postings in which they appear. It only takes a handful of job postings to send an extremely low-ranked skill skyrocketing up the rankings; contrast that with a popular skill set such as JavaScript, which needs hundreds of added or subtracted job postings in order to barely budge its ultra-high rank.

So is it worth learning a relatively obscure language or skill set, on the hope that you can score one of a handful of well-paying jobs that require it? The answer is a qualified yes—so long as the language or skill set in question is clearly on the rise. Go, Swift, Rust, Julia and CoffeeScript have all enjoyed rising popularity, for example, which increases the odds that they’ll remain relevant for at least the next few years. But a language without momentum behind it probably isn’t worth your time.

I agree it can in some cases add up to big bucks. I have heard of some people learning smalltalk for instance and doing really well.

Theres another reason to learn a lesser known language. If its tied to a great product. For instance, there is a great installation builder called NSIS for Windows. It has its own NSIS scripting language which is well worth learning because of the usefulness and versatility of the package itself.

I am not a tech person, but have many years in HR. I think an excellent reason to learn an obscure langauge would be if it was used in an industry or organization you were targeting for a job search. So if you were looking to join PG&E, they maight be looking for all the modern skills, but if you had some skill in Cobalt or Pascal that might cathch their eye, because there are all sorts of quirky systems in established companies that were early into tech, like PG&E was, and there are some legacy systems still operating. Just might be worth it for a foot in the door if you are targeting a specific company or industry, like QNX for the auto industry.

I agree with you, but adequate research into the niche language is required first. Someone mentioned Smalltalk, which I’ve been using since the early 1990’s. Smalltalk is stilled used by banks, Wall Street, insurance companies and many new projects. Besides the potential for landing a great paying job in such a niche, Smalltalk is rated as the highest productivity language (see page 46 in this report http://namcookanalytics.com/wp-content/uploads/2013/07/Function-Points-as-a-Universal-Software-Metric2013.pdf ). A caution about these niche languages, significant experience is required to actually land the high paying projects or jobs.

As JavaScript is trending and at the top of the language popularity charts, here’s a Smalltalk tool that lets you develop in the productive Smalltalk language AND compile to JavaScript. It’s the best of both worlds. Check out Amber Smalltalk http://amber-lang.net/

All programmers should learn Forth, just to learn it, because nothing else works that way, and it’ll open your mind to a way of thinking you won’t otherwise encounter. I’d never suggest that you could (these days) write anything serious with it; it’s more just for the mental exercise of the thing, and to round out your mindset as a programmer.

The programming language is not as important as how you use it.
I am a Computer Programmer.
After taking a course in how to program a 1401 in assembler I set out to get a job. I couldn’t find anyone to hire me as a programmer but I did get a offer for operation a Burroughs system. So I took that.
I had to keep a log of the jobs run and this was written on blank paper. That sucks. So I wrote a program in machine language and punched out on a key punch machine. Great!
Eventually they had a need for another Programmer because the experienced one had to make changes on the banking programs used that we used on our Banking customers. These were banks that could not afford their own systems.
For the first program I was to work on, they had be write a program to print labels for a non banking customer.
I suggested that I should make changes to the existing program, but they said no, they wanted to write an entirely new program obviously to see How I would do as a Programmer.
The first time ti ran it finished the job in 40 minutes. Great! But they were upset. They wanted to get the program to continue printing. There was not way. Finally I asked them how many labels should have been printed,
The last label form had this count. I appeared to be correct. How could this be? The program it replaced took 90 minutes on the same machine and had be written by an experienced programmer.
Eventually they realized that all the labels had been printed and in less than half the time on the exact same hardware.

So which programming language is best?
Don’t worry about it. It is more important to hire a programmer who think about what he is doing and comes up with the best solution for the job. Unfortunately there are very few of these.

@Aydin – Yes: MSIL definitely does a lot of thinking about stacks and so on: I think whoever put it together realized that you can boil pretty much anything down to processing and stacks if you want to, and FORTH is, of course, the epitome of that type of thing.

@Paul Thomann: Object-oriented extensions to FORTH? Interesting: I wonder how that would work, and still be FORTH-y when it’s done: that whole “my language has no syntax at all”

Enough of this madness! I’m old enough to be your father, maybe even your grandfather.

The only thing you really have in life, is time. Why waste your life on such folly? Nothing better to do? Read to your kids, build something, learn to cook, chasing the language of the month is the most useless thing I can think of.

Somewhere programming took a ‘left turn’ and this notion of knowing all took hold. A false religion.

If you want to be able to write programs to do anything you can imagine, then you have to know everything you can imagine… it’s not a false religion: the end is in the journey… unless, of course, you think your brain has limited space in it. You can also read, build, cook, fix cars, build engines, drive rally cars, play musical instruments, speak multiple languages, write books, etc: I do. All of it is part of the same learning process. The end is in the journey, and other such aphorisms…

@Dan Sutton,
Agreed it is good to read, build, cook, fix cars, play musical instruments and speak foreign languages. But included in that mix is also learning new programming languages (which is very close to learning a foreign language). The most accomplished pianist I know programs for a living as at a certain point he discovered that he was not going to play Carnage Hall. Myself I discovered that I didn’t have the ability to found a new mathematics and if I couldn’t be as creative as possible I’d rather not do it, so I program in Forth and R and am learning Python.

FORTH and R? Wow – definitely an abstruse way into programming. I like it! I actually did sing at Carnegie Hall, but I was 12 at the time (part of a choir) so I guess after that, I was done, so I program for a living instead…!

@Dan Sutton,
The choice of FORTH & R was determined by the fact that I want to do analysis on the stock market (specifically the options market). R because of needing some machine learning and FORTH in order to translate text data into a DBMS.

In that case, the following will be of some interest: this summer, Microsoft are releasing the preview version of SQL Server 2016, and it has R built into it: apparently, they acquired the parent company. One imagines they’ll do something about the fact that it’s slow on large datasets… strangely, I was just talking about this very thing yesterday, in connection with the idea of software involved in the stock market.

You’re kidding, right? Someone in HR giving career advice, and to a technical field no less? I’m sorry but the ONLY function of HR is to placate employees, maintain a legally defensible position for the employer, and above all do everything with the interests of the EMPLOYER in mind… NOT the employees. THAT is their function. And to further illustrate my point, it’s COBOL, not “cobalt”, and learning a “quirky” language such as “cobalt” or “pascal” just to “catch their eye” because “some” legacy systems are still operating??? Seriously? 3rd gen languages are not “quirky”. They STILL run the world and are the languages that do all the heavy lifting behind java and 4th GL’s. And ANY large company has MOST if not ALL of their “legacy” systems still operating today, by the way. And finally… you won’t “catch their eye” by doing this. Employers advertise for an extremely specific set of skills and experience. They will hire a 20-yr mainframe programmer over someone who “dabbles” in COBOL. You are completely the reason why I believe HR only serves the interests of the EMPLOYER and never the employee.

@Frannie P: Yes it will – it’s not going to get you that job programming in the language, necessarily, but I can’t even count how many times I’ve noticed that programmers who know large numbers of languages are simply more rounded and more competent as programmers.

A glaring example of this is machine code / assembly language: although you’re hardly ever going to get a job programming in machine code these days, machine code programmers tend to be better programmers, no matter what language they’re using, simply because they understand what the compiled code is doing: they have an insight other programmers lack.

If you’re programming in, say, C# or Java, the ability to think in C and machine code helps: for example: take two integers (a and b): now:
a^=b; b^=a; a^=b;

What happens? A machine code programmer could tell you immediately: the values in a and b are swapped.

Interestingly, in C, you can write a^=b^=a^=b; but that doesn’t work in C# because the expression handler uses the initial values of the variables (i.e. the values at the endpoints of the pointers to the initial a and b objects) throughout the expression, as opposed to C, which uses the values as they are at any point in the evaluation, and as they change.

And a C programmer will understand that last paragraph better than a pure C# programmer, even though it’s mainly about C#.

Look into ABAP. I think SAP is the next big thing coming out. Learn this and Java. Learn Linux and SAP HANA. Companies can really use these skills. Colleges don’t teach these, so those who learn it are valuable to large companies.

YOUR CAREER. YOUR PATH.

Author Bio

Nick Kolakowski has written for The Washington Post, Slashdot, eWeek, McSweeney's, Thrillist, WebMD, Trader Monthly, and other venues. He's also the author of "A Brutal Bunch of Heartbroken Saps" and "Slaughterhouse Blues," a pair of noir thrillers.