Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming Businesses The Almighty Buck IT

Little-Known Programming Languages That Actually Pay 242

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?
This discussion has been archived. No new comments can be posted.

Little-Known Programming Languages That Actually Pay

Comments Filter:
  • by Anonymous Coward

    Plenty of jobs in the bread-and-butter languages. I could also rehash older languages if I wanted to maintain legacy systems. Not wasting my time with flash-in-the-pan languages though.

    • Re:No thanks (Score:5, Insightful)

      by PRMan ( 959735 ) on Tuesday January 06, 2015 @02:40PM (#48747665)
      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.
      • by raymorris ( 2726007 ) on Tuesday January 06, 2015 @03:55PM (#48748477) Journal

        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.

        • by Roger W Moore ( 538166 ) on Tuesday January 06, 2015 @05:09PM (#48749409) Journal
          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.

        • I said:

          > X + 3 is x + 3 in most languages.

          Uhm, no. But x + 3 is x + 3 in many different languages. If x=4, then X + 3 is a compiler error in sane languages, and a PITA in silly languages.

      • Re:No thanks (Score:5, Insightful)

        by RavenLrD20k ( 311488 ) on Tuesday January 06, 2015 @03:56PM (#48748487) Journal

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

      • by CODiNE ( 27417 )

        The trick is to have a continuously running project in the previous language or framework while working on the newer one. Send a patch in to an open source project once in a while, or even keep a little toy program for trying experimental stuff on.

        That way instead if "5 years C#, 2 years Pascal" you have "7 years C#, 2 years Pascal"

    • by sycodon ( 149926 )

      And just because you learn the language used by Networking and telecom doesn't mean you really know anything about networking and telecom.

      • Re: (Score:2, Insightful)

        by Anonymous Coward

        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.

      • by jythie ( 914043 )
        That was what leapt out at me about the list. At least when it comes things like matlab and mathmatica, it is not the language that gets you the job, it just happens to be the language used by the people who have the skills the job is looking for. Go into one of those interviews without the appropriate scientific background and 'do you know matlab' is not going to be their main question.
    • Easy enough to pick up a new language if you need it. No big deal. Nowadays it takes me a few minutes to get up and running and coding in a language I've never used before.
      • Re: No thanks (Score:5, Insightful)

        by Anrego ( 830717 ) * on Tuesday January 06, 2015 @02:56PM (#48747833)

        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.

    • by mwvdlee ( 775178 )

      Nothing flash-in-the-pan about domain-specific languages.
      In fact, it's generally considered a smart thing to create domain-specific languages.
      You might well have unknowingly created your own, while expanding your configuration file format.
      There's no point in learning any of them unless you actually need them, though.

  • by Anonymous Coward on Tuesday January 06, 2015 @02:14PM (#48747339)

    You haven't lived until you've ported a 3-D shooter like crysis over to R!!!

    • Re: (Score:2, Informative)

      by Anonymous Coward

      You haven't lived until you've ported a 3-D shooter like crysis over to R!!!

      This [r-project.org] is a collection of R games and other funny stuff, such as the classical Mine sweeper and sliding puzzles.

    • by Anonymous Coward on Tuesday January 06, 2015 @02:29PM (#48747527)

      i would think a pirate themed game would be better suited to that language

  • C++ (Score:5, Insightful)

    by Anonymous Coward on Tuesday January 06, 2015 @02:18PM (#48747385)

    No one knows it, really.

    • ADA

  • by Dimwit ( 36756 ) on Tuesday January 06, 2015 @02:19PM (#48747401)

    That is all.

    • by hax4bux ( 209237 )

      I spit coffee when I read the summary. I have a long background in network management and ASN.1 (by itself) won't get you anywhere.

      • Neither will Matlab or Mathematica. If you don't know the mathematics behind whatever the hypothetical employer needs, knowing those languages is pointless. On the other hand, if you do understand the mathematics (e.g. finite differences, finite elements, etc.) but don't know Matlab or Mathematica, but instead know C++ or Python or Fortran, then picking up Matlab or Mathematica shouldn't be a problem. This is just another example of overly-specific job requrements.
  • ASN.1/SMI (Score:5, Informative)

    by adturner ( 6453 ) on Tuesday January 06, 2015 @02:21PM (#48747419) Homepage

    Maybe ASN.1 and SMI are so little known as a programming language because... they're not a programming language? Don't get me wrong, it's good to know if you're reading/writing RFC's or dealing with network protocols (especially in the telco space), but they're not programming languages.

    • Re: (Score:3, Informative)

      They are not turing complete programming languages, but they are domain specific programming languages. This is the same as making the argument that SQL is not a programming language since you only use it to define/insert/update/delete data in a database and cannot write general purpose programs without another tool that does provide a turing complete function set. ASN.1 and SMI are formats to describe messages and message data types to be used by another higher level protocol like SNMP, LDAP, X.509, etc.
      • Re:ASN.1/SMI (Score:4, Interesting)

        by Carewolf ( 581105 ) on Tuesday January 06, 2015 @02:43PM (#48747699) Homepage

        They are not turing complete programming languages, but they are domain specific programming languages. This is the same as making the argument that SQL is not a programming language since you only use it to define/insert/update/delete data in a database and cannot write general purpose programs without another tool that does provide a turing complete function set. ASN.1 and SMI are formats to describe messages and message data types to be used by another higher level protocol like SNMP, LDAP, X.509, etc.

        No, ASN.1 is a syntax like XML is, except more abstract, as it is never used it directly, it is not a programming language. That would be like saying digital numbers is a programming language.. You can stretch it and say they are forms of languages, syntax languages, but that still doesn't make them programming languages.

        • ASN.1 has a syntax like Pascal or Ada, mixed with some gimmicks from EBNF. No idea where your XML is coming from, it certainly has nothing to do with ASN.1.

          • ASN.1 has a syntax like Pascal or Ada, mixed with some gimmicks from EBNF. No idea where your XML is coming from, it certainly has nothing to do with ASN.1.

            That is has a syntax is not what defines a programming language. A programming language is something you program in, ASN.1 is something you define binary data in, the same way you can declare data in XML.

      • Re: (Score:2, Funny)

        by Anonymous Coward

        I see you are an HTML programmer.

      • Re:ASN.1/SMI (Score:5, Interesting)

        by lgw ( 121541 ) on Tuesday January 06, 2015 @04:21PM (#48748827) Journal

        SQL is actually Turing complete, oddly enough (or is with the common extensions that all the major DBs support). The C++ template definition language is also, frighteningly enough, Turing complete. But a "programming language" doesn't have to be Turing complete to be such, instead it has to be a way of specifying algorithms.

        What you're describing are formal languages. They are not programming languages because they don't define algorithms. Much like Boolean algebra is a formal language, but not a programming language.

      • by Rob Riggs ( 6418 )
        Well, they are not languages that you will be paid to program in either. The are domain-specific knowledge that a programmer in a common language (C++, Java) may need to know for a specific job. Companies may be looking for a "C++ programmer for network development that preferably knows ASN.1". If they are hiring an "ASN.1 programmer for network development that preferably knows C++", run away fast.
    • by T.E.D. ( 34228 )

      Maybe ASN.1 and SMI are so little known as a programming language because... they're not a programming language

      Obviously not so little-known either. I came in this story to post this same comment, and saw that no less than 2 people had beaten me there. Probably more.

      I'm surprised its supposed to be some kind of skill that pays big too. ASN.1 essentially attacks the same problem XML does (platform independent data representation), but in a binary rather than textual way. Saying you are familiar with ASN.1 is no more (really less) useful than saying you are familiar with XML, because what is important is what subset

  • Meh (Score:5, Informative)

    by Anrego ( 830717 ) * on Tuesday January 06, 2015 @02:23PM (#48747449)

    There's tonnes of niche technologies, though people don't tend to specifically target them so much as just kind fall into them and get lucky.

    I know someone that does pretty well maintaining stuff made with foxpro. In her words: "laugh all you want, it paid for my house". Doesn't mean it's a good idea to learn it at this point, but if you happened to luck out by sticking with a dying technology that never actually died, and are now one of a few people around who can call themselves experts in it, enjoy the benefits.

  • Also WTF (Score:5, Informative)

    by Anrego ( 830717 ) * on Tuesday January 06, 2015 @02:25PM (#48747465)

    Also, wtf dice.

    I get that you want to shitpost your own articles here, but throwing a campaign ID in the URL to track the success of your shitposting is going a bit far.

  • by TechyImmigrant ( 175943 ) on Tuesday January 06, 2015 @02:26PM (#48747483) Homepage Journal

    .. you understand why it must die.

    • What needs to die are the network equipment manufacturers who change the meaning of OIDs on minor firmware version updates (because they're autogenerated from some XML somewhere and someone deleted an element in the middle of a list).
  • >lesser-known

    >MATLAB

    Really?

    • Matlab just isn't used that much by the IT workforce. Mostly non-software engineering. Sure it's pretty well known, but not that many programming jobs require or even mention it. Not to mention, what's all this "arrays' start at one... this isn't FORTRAN.
      • Re:wut? (Score:5, Insightful)

        by Marginal Coward ( 3557951 ) on Tuesday January 06, 2015 @03:06PM (#48747927)

        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]

  • I thought ASN.1 was just a data representation, not a programming language. Went and googled a bit...um,.... seems to be right; but I only skimmed the Wiki. Of course you could represent code in any good data representation language; but why? I've heard people say that data is passed using ASN.1, but never "I wrote that application in ASN.1". That just sounds wrong.

  • by fhic ( 214533 ) on Tuesday January 06, 2015 @02:31PM (#48747557)

    Or M as it's usually known now.

    You haven't suffered enough until you've had to debug someone else's "clever" M code.

  • by 50000BTU_barbecue ( 588132 ) on Tuesday January 06, 2015 @02:31PM (#48747567) Journal

    For some reason I start playing with that. :)

    Any jobs out there?

  • Source... (Score:4, Interesting)

    by gunner_von_diamond ( 3461783 ) on Tuesday January 06, 2015 @02:39PM (#48747641) Journal
    An article from Dice.com. On a site owned by Dice.com. How about that. According to a Dice job search, there are not ASN.1 jobs out there. Learning ASN.1 will not

    secure you a good gig in a specific industry.

    Therefore,

    So is it really worth taking the time to learn a new, little-used language for anything other than the thrills?

    No.

    • Exactly. If I'm looking to learn a new language, it's because I want to learn something interesting about programming.

      A language that doesn't affect the way you think about programming is not worth knowing. — Alan Perlis

      Learning obscure languages to improve your employability is the wrong way to find a job.

  • by erp_consultant ( 2614861 ) on Tuesday January 06, 2015 @02:39PM (#48747647)

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

    • by DarkOx ( 621550 )

      The driver seat is a nice place to be but there isn't always car to ride in. I know a few guys who do things like RPG and PL/I and you know what they set they own rate and make a tonne of bank when someone needs them. The operative clause is 'when someone needs them' most of the time, they are out looking for someone who needs them.

      • That's a fair point and it's why I suggest keeping some C++ or such in your back pocket so you can ride out the ups and downs.

      • by Megane ( 129182 )
        It would also probably be good if you enjoy moving to other parts of the country. The chance of finding a niche job in any particular city is probably rather low. When you're in the driver's seat, expect to do some driving.
  • by PolygamousRanchKid ( 1290638 ) on Tuesday January 06, 2015 @02:42PM (#48747683)

    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

    • by plopez ( 54068 )

      Yes. The dynamic binding of operations in SNOBOL was fun, in a funny sort of way. JCL however, despite its inverted logic, is not a programming language in the strict sense of the word.

    • by steveha ( 103154 )

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

      For a brief period I worked with SNOBOL. I was reading old SNOBOL programs and re-writing them in AWK.

      The AWK programs were smaller and simple to understand. The SNOBOL programs were hard to figure out... I would describe the process almost as "reverse-engineering".

      SNOBOL's design dates back to the bad old days. It has "goto" hard-wired into the language; it has "fields" where you put certain things in certain places on the line, and then the c

  • LOGO (Score:5, Funny)

    by h4ck7h3p14n37 ( 926070 ) on Tuesday January 06, 2015 @02:46PM (#48747735) Homepage
    I'm currently working on my LOGO certification. I hear the pay can be good, especially if you've also got a background in Spirograph.
  • I can not even begin to describe goodness of the syntax. It's forever etched in my mind, right along goatse and tubgirl.

    • by Megane ( 129182 )

      Then you were doing it wrong. You should have been editing the .m4 files to generate sendmail.cf, not editing sendmail.cf directly.

      Not that m4 isn't its own can of brain worms, but you can describe the typical mail site in a 15-20 line file, which is a lot easier to maintain than a 2000 line file with 15-20 lines changed from the default. And even much easier than trying to merge in updates to the "standard" sendmail.cf when upgrading to a new version.

  • $130,000 average salary. q language, an array language / database used for time series analysis http://www.timestored.com/b/fo... [timestored.com]
  • Used in many legacy apps of big corporations

    https://en.wikipedia.org/wiki/SAS_language [wikipedia.org]

  • Coming from the IT/systems side of the fence, this isn't just limited to programming languages. There are tons of little niches in industries and technologies. The key to not letting a niche define you is to stay flexible. For example, I do systems work for airline industry customers. Think of every niche, legacy, arcane, backward standard, and it's there. Any one of these niches can be followed down so far into the expert level that you can build a career out of them. But, these things can change, and if y

  • >> learn a new, little-used language for ... the thrills?

    Thirills? wow. You kids of today... ...but It does make me all teary-eyed to remember when I was actually that enthusiastic about such stuff too.

  • by technomom ( 444378 ) on Tuesday January 06, 2015 @03:36PM (#48748295)
    Around here, knowing R can pay some bills. I'm surprised it isn't listed among the Math languages.
  • Skip MATLAB, Learn R (Score:5, Interesting)

    by Kagato ( 116051 ) on Tuesday January 06, 2015 @03:52PM (#48748457)

    IMHO Matlab is a dead end. R is a similar language in the statistics and big data fields and the base spec and sample programs are open source. If you're a Math or Stats major you're likely getting a sample of R in school already because the tools are free. In the paid space big data tools like HP's Vertica will split up complicated R functions across it's cluster and crunch the data much faster than Matlab.

    • Matlab is a dead end if you use it for statistics.

      Matlab is not a dead end if you use it for a ton of other stuff that there are toolboxes for.

      I've used matlab at work for almost a decade and never come close to using it for something R was good at.

    • Different languages are good for different things.
      At SLAC we use Matlab extensively for accelerator modeling and control, It has a lot of very nice features (with add-ins) for signal processing, feedback design, linera algegra and general numerical analysis (numerical integration etc.). It has some nice parallel processing tool boxes and can be very high performance for vector applications. I also has excellent graphical and debugging capabilities.

      I've used Matlab and Python (Pylab, numpy) and find Matlab t

    • by ishmaelflood ( 643277 ) on Tuesday January 06, 2015 @08:20PM (#48750883)

      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.

  • There is no language called Mathematica. Mathematica is an implementation of Wolfram language. At least that's what they want you to call it now. :p

  • by Mirar ( 264502 ) on Tuesday January 06, 2015 @04:37PM (#48749043) Homepage

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

    • Basic syntax and paradigm of a new programming langugae are easy. It's running into all of the corner cases and figuring out how to work around them that takes time. Not to mention the plethora of "value add" third-party libraries and frameworks, all of which have their own corner cases to bump into.

    • If you know only C, you aren't going to be a good Lisp programmer in two weeks, or a good C++ programmer for that matter. Different languages work better with different ways of thinking about problems, and it's a lot harder to learn that than to learn syntax.

      Sure, you can learn the basics in a couple of weeks, but that doesn't tell you how to use the language. You'll just keep writing C with funny syntax (or, in the case of C++, just keep writing C), and your programs are going to suck. In two or thre

  • ASN.1 is certainly not a "programming" language. It is a type of domain-specific language, I suppose, similar to how a web programmer has to know HTML and CSS, while writing programs in some other language. I guess in our modern world where XML is used to bludgeon every problem to death, I can see why some people might call ASN.1 with a programming language, though like XML, ASN.1 is not turing complete. ASN.1 is pretty cool, though. It is a binary, self-describing data encoding scheme, and forms the bas

Beware of Programmers who carry screwdrivers. -- Leonard Brandwein

Working...