Slashdot Mirror


Little-Known Programming Languages That Actually Pay

Nerval's Lobster writes There is no shortage of programming languages, from the well-known ones (Java and C++) to the outright esoteric (intended just for research or even humor). While the vast majority of people learn to program the most-popular ones, the lesser-known programming languages can also secure you a good gig in a specific industry. Which languages? Client-server programming with Opa, Salesforce's APEX language, Mathematica and MATLAB, ASN.1, and even MIT's App Inventor 2 all belong on that list, according to developer Jeff Cogswell. On the other hand, none of these languages really have broad adoption; ASN.1 and SMI, for example, are primarily used in telecommunications and network management. So is it really worth taking the time to learn a new, little-used language for anything other than the thrills?

18 of 242 comments (clear)

  1. C++ by Anonymous Coward · · Score: 5, Insightful

    No one knows it, really.

    1. Re:C++ by serviscope_minor · · Score: 3, Insightful

      The STL isn't a mess.

      For general algorithmic code, it's the nicest library in any imperative language, bar none. I challenge you to find a better one.

      --
      SJW n. One who posts facts.
  2. Once you know ASN.1.. by TechyImmigrant · · Score: 4, Insightful

    .. you understand why it must die.

    --
    I should use this sig to advertise my book ISBN-13 : 978-1501515132.
  3. I would say yes, it is worth it by erp_consultant · · Score: 4, Insightful

    Here's why:

    1) If your skills are limited to commonly used languages then a potential employer has a large pool of people to choose from. That means that you have to compete against a lot of people for a given position. It also means that your rate will be lower because a larger labor pool will tend to drive down prices. If, OTOH, you choose to focus on niche markets it will have the exact opposite effect. Fewer people to choose from and, therefore, higher hourly rate. Essentially it puts you (as an employee or contractor) more in the drivers seat.

    2) It gives you something else to add to your resume.

    3) It might give you exposure to industries that you might not have had otherwise.

    4) It's fun :-)

    Having said all of that, I still think that it is important to have a solid grounding in Java or C/C++. Why? Well, for one thing it gives you a good foundation for tackling other languages. It also gives you something else to fall back on if the esoteric thing doesn't quite pan out ;-)

  4. Re:No thanks by PRMan · · Score: 5, Insightful

    Plus, you run the risk of steering your career into a corner from which it's hard to escape. I did C# for 5 years and then a custom Pascal scripting language for 2 years. What did I hear? "You're not a C# developer, you're a xxxxx developer." Um, it's not like I forgot everything I knew or even didn't use it during that time, but it's a resume-killer, so be careful.

    --
    Peter predicted that you would "deliberately forget" creation 2000 years ago...
  5. SNOBOL/SPITBOL . . . JCL . . .? by PolygamousRanchKid+ · · Score: 4, Insightful

    Is anyone here old enough to remember those languages . . . ?

    I don't think anyone ever started from scratch, writing a JCL program . . . you always just took an example, and fiddled around with it.

    . . . but then, when I needed to write a IP driver for ATM, the folks told me: Just look at the Ethernet driver, and follow that

    --
    Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
  6. Re:No thanks by Anonymous Coward · · Score: 2, Insightful

    Indeed.

    A lot of these "guy making 100k a year writing software in something you've never heard of" are more about that guy's domain knowledge than their programming chops or unique skill sets.

    It's one thing to know COBOL. It's another to understand what that massive payroll system is actually doing.

  7. Re: No thanks by Anrego · · Score: 5, Insightful

    Language, maybe. The tool stack around that language though, I call BS.

    Sure, a c++ guy can pick up java itself fairly quickly, but it takes time to come up to speed on the various widely used libraries and tools. General programming concepts transfer, the specific workings of something like EJB or OSGI don't.

  8. Re:wut? by Marginal+Coward · · Score: 4, Insightful

    I actually read a post from the main Matlab guy about one-based arrays once. Basically, his point of view was that mathematics uses one-based matrix notation, and Matlab was intended to solve mathematical problems. That's a different design criteria than programming languages like C and its progeny, which are designed to run fast on a machine.

    So, maybe they're both right, though for those of us who do a lot of zero-based programming, it's a bit of a gear shift to do a little Matlab every now and then.

    And being one-based isn't the worst of Matlab's sins. It's badly designed up and down the line, except that as a system - that is, a combination of its language, toyboxes, and IDE - it's better for solving certain kinds of problems than anything else out there. So, I depend on it, but I only use it when it's advantages are compelling for what I need to do. [sigh]

  9. Symptom of thinking vocabulary is the key by raymorris · · Score: 4, Insightful

    Just another symptom of thinking that software architecture and development is mostly about a language. Yes, knowing the language used in your field is important - that's why lower-level college classes have plenty of vocabulary. A developer should know the words, abbreviations, and symbols used in software development, just like an archeologists should know the words, abbreviations, and symbols used in archeology, and a fire marshall should know the words, abbreviations, and symbols used in fire protection. None of these fields is ABOUT the vocabulary, though. The words and symbols are used to record what you've done, but they are ancillary to the field.

    Really, saying "C# developer" is like saying "Spanish anthropologist" or "English physicist". Maybe Stephen Hawking only speaks English - a certain German guy named Al Einstein showed how much language matters when he came to the US.

    Sometimes I forget what language I'm writing in, and end up with excellent, reliable code written in two languages at once. Sometimes, most of my functions will compile and run in two or three different languages = X + 3 is x + 3 in most languages.

    1. Re:Symptom of thinking vocabulary is the key by Roger+W+Moore · · Score: 5, Insightful
      You are absolutely correct. I laughed when I read the line in the article which said:

      For example, if you master a couple math and science programming languages, you might find opportunities as a programmer working at a scientific research center.

      since it shows how clueless the author is about programming languages in science. When I am hiring a postdoc I could not care less which programming language they have used: if I am looking for someone with technical skills all I care about is that they have experience programming. The delay in learning whatever specific languages and packages we use is minimal so long as they have a strong technical background.

    2. Re:Symptom of thinking vocabulary is the key by Roger+W+Moore · · Score: 3, Insightful

      Then, he will have very hard time getting proficient in, let's say, Mathematica.

      Why do you assume that? I would agree that it is hard to imagine anyone with a strong technical background only knowing Fortran in this day and age but, should such an individual exist, I would not see it as a barrier to hiring them. During my time as a student and a postdoc I taught myself Matlab, Perl, C, C++, Python, Alpha CPU assembler, SQL, ROOT and an interesting variation of BASIC which ran on an old Caviar CAMAC crate controller from the late 1980s! Learning a new language when you already know how to program probably takes a day for basic proficiency and a bit longer to get fully up to speed. It's far more important that you have someone who understands the science and has a strong technical background: if you have that the language is easy to add, if it isn't then you do not have someone with a strong technical background.

  10. Re:No thanks by RavenLrD20k · · Score: 4, Insightful

    Unfortunately, C# suffers from a sort of fragmentation where every year there's something new and fresh with it. Even though you and I, as developers in the wild, understand that this "fragmentation" is a bunch of hype and circumstance where the underlying base and syntax hasn't necessarily changed much over the past 3 years, the technologies around it have changed significantly.

    To give an example, just today we ported an in-house app that is a tool to help with debugging that was updated at the very end of 2013 and ran on Server 2008 no problem to a new environment running Server 2012. Just about 2 weeks over a year after its last rewrite, it took about 20 minutes to install "legacy" packages on the server where it could be shoehorned in as Network Service .NET 2.0. Our other option was to take another 2 weeks (minimum) to completely rewrite (average 2 days writing and testing) and implement (the remaining time satisfying the red tape of the business) the application where it could run as Network Service .NET 4.0. Not something economical for what is essentially an R&D prototype system at this step.

    Other examples are abound... Such as our desire to update several of our apps to take advantage of new features in MVC 6... but other features that we relied on in MVC 4 and MVC 5 broke, so there's a heavy need to develop work arounds or find "the new way to do it" (tm). Also, management wants us to implement Entity Framework 6 for our new database connections rather than use LINQ as we had been...and as we have time, update some of our older and more critical applications to make use of these new frameworks as well. And just wait for the next round of "Oooh Shiny" that we are going to want to make use of this year.

    The technologies packed around C# and .NET in general are targets that move so fast that if you're out of the game for 2 years, even though you could probably pick up and run with the new stuff within a week or less, you're likely going to be competing with hundreds of applicants that are fresh and in the game with the current tech already and will (in theory) be off and running on the first day at their desk.

    If you want to have a language background where you can take 2-5 year hiatuses from it and still maintain a decent demand with it, learn straight C/C++ and COBOL. Where I work I command among the highest programmer salaries in my department not because I'm good with the current tech and keeping up with it (my perf reviews have always indicated this to be true), but because I save my team from having to submit a WorkRequest to the Mainframe Developers for quick batches. My team can tell me what they need and I can submit my time bid and process to the Datacenter Operators in half the time with only one sheet of paper used for signoffs and approvals(instead of 5)... just because I can actually write COBOL (apparently hard to find in anyone younger than 40 these days, and our last COBOL Programmer is slated to retire in 2018).

  11. Re:No thanks by __aaclcg7560 · · Score: 4, Insightful

    The real problem regarding resumes is what you done in your last three positions. While I was unemployed for two years (2009-10), recruiters looked at my help desk resume, assumed that I wanted to do help desk, and told me that they had no help desk jobs available. Never mind that I wasn't applying for a help desk job. After I worked six months as a part-time PC technician for a moving company, recruiters figured out that I could do other jobs not related to help desk.

  12. Re:Not just flash in the pan by Darinbob · · Score: 4, Insightful

    True. I'd hardly call MATLAB a little known language, it's very commonly used in EE circles, and I've seen it other places doing engineering or science. I've worked on a product that included lengthy MATLAB computations as a part of the build. MATLAB also has the problem of being a one-vendor proprietary product.

    But this is a Dice story after all. They seem to just love stories about "hey, here are some languages that aren't Java or C!" They forget that Slashdot is for nerds who actually know stuff and is not a site for job seekers.

  13. ...now this again. Learning programming languages? by Mirar · · Score: 3, Insightful

    This is brought up now and then on Slashdot. Treating programming languages like something actually hard to learn.

    Specific programming languages are irrelevant.

    Programming paradigms and levels are relevant. But if you know a language in one paradigm, it's easy to learn another one. If you know C, the step to Python is fairly close. Lisp or Erlang is a little more distant, but it's not impossible far to learn in a few weeks.

    If you can't pick up the basics of any computer language in a few weeks, I get the impression you're not really sure of what you're doing.

    So it's irrelevant if you already know the language. Except for very confused recruiters. The question is, can you get good at the skills needed at the job within a few weeks? You wont know the projects or the libraries in the new company anyway, picking up a new computing language isn't going to be the hard part.

    But then again, ASN.1 isn't a programming language more then TCP/IP is a programming language, so maybe the question is more confused than that.

    (Languages I have encountered in my professional career: V2 BASIC, 6510 assembler, ABC8* BASIC, dBase 4, x86 assembler, 680x0 assembler, Batch files, Pascal, C, C++, Shellscripts, Pike, ECMAscript, Java, Flash, ARM assembler, and Python. In that order. I have done ASN.1 in the form of SNMP, but I really don't think I would call it a programming language.)

  14. Re:Skip MATLAB, Learn R by Anonymous Coward · · Score: 2, Insightful

    Nobody does signal processing in R - it's all done in Matlab.

    Nobody does statistics in Matlab - it's all done in R or SAS or SSPS.

  15. Re:Skip MATLAB, Learn R by ishmaelflood · · Score: 3, Insightful

    matlab programmer here. $130k+super+6 weeks leave +18 sick days per year. So, as dead ends go, not too shabby

    In parts of the automotive world matlab is used for algorithm development (for example for image recognition for anti collision systems) which can then be automagically cross compiled for the target embedded processor.