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?
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.
You haven't lived until you've ported a 3-D shooter like crysis over to R!!!
No one knows it, really.
That is all.
...but it's being eaten...by some...Linux or something...
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.
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.
I am sorry - this was meant for another thread. (I am so embarrassed!)
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.
.. you understand why it must die.
I should use this sig to advertise my book ISBN-13 : 978-1501515132.
>lesser-known
>MATLAB
Really?
Most linux users don't know this, but the man pages were named after Chuck Norris. Chuck Norris fsck'ing hates noobs!
I'd like to see AES256 encryption implemented in Brainfuck myself!
The world's burning. Moped Jesus spotted on I50. Details at 11.
Congratulations, you've been selected to be an editor at Slashdot!
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.
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
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.
For some reason I start playing with that. :)
Any jobs out there?
Mostly random stuff.
Some of those listed languages have been around for a while BUT they are specific to one vendor and even one product.
Which means, if you get tired of your current employer, it will be very hard to find another job. It also works both ways; who wants to learn a language where there aren't that many opportunities? I was stuck at one such shop and it was a BITCH to get out of. I taught myself C++, found a way to use it on the job* and I was able to talk my way into another job - this was in the 90s, BTW. Why does the decade matter?
*Back then, you could do a little utility program on the job in something you are learning - like C++ - so that you can claim that you have "on the job experience". See, taking a class or learning on your own does not matter to employers - especially in 2015. Now, even that doesn't work so well.
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.
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 ;-)
ADA
If you want news from today, you have to come back tomorrow.
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!
Well, look at it this way: your comment is very well encrypted from the point of view of the other thread.
Mostly random stuff.
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.
$130,000 average salary. q language, an array language / database used for time series analysis http://www.timestored.com/b/fo...
Used in many legacy apps of big corporations
https://en.wikipedia.org/wiki/SAS_language
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 you get too mired in the details and never pick your head up above the water, you can get lost. You wouldn't believe how complex something like tracking lost luggage or managing passenger data is once you peel off the covers...and a lot of that complexity is because of the massive layers of legacy stuff that have been built up over the years.
My approach to my career has worked well so far: (1) be willing to learn a lot about a particular subject so you can do good work on it, (2) keep sharp by slightly changing the things you work on every once in a while, and (3) keep your eyes/ears open so you can figure out which trends to hop on just in case the current job dries up. It's difficult to do this, but not so bad if you really like learning all the time. If I ever get sick of working in my little corner of the world, I'm pretty confident that I would be able to pick up a job in another little corner pretty easily.
Niches are everywhere, and often that translates into knowing about how an industry works at the insider level. Treating exposure like this as a learning opportunity is a good way to keep yourself marketable, and not just in your specialty field. Not being able to do this is a good way to brand yourself as a permanent generalist who doesn't have the desire/ability to dig in and find answers. Not trying to sound like a jerk, but there is a big difference between someone who can really dig into a problem and someone who just does what's in the manual.
I'm not a programmer, that is, I never took any university classes on algorithms, discrete logic, etc. I'm a hardware guy.
I don't know why I took on LO, it's a very simplistic IDE and quite frustrating, and the online help is useless.
I picked up a french book on LO oooBasic and I'm getting along nicely, I think.
Mostly random stuff.
>> 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.
Black hats everywhere would rejoice at the most exploitable timing oracles ever.
Around here, knowing R can pay some bills. I'm surprised it isn't listed among the Math languages.
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.
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.
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
"Sum Ergo Cogito"
Oh, it's from dice. Where the fuck did we hire that moron from? Oh, it's from dice.
Well, shit.
Folks, this is why you shouldn't dog food.
Copyright (c) 1990 - 2014 Dice. All rights reserved. Use of this comment is subject to certain Terms and Conditions.
I can't has career.
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.)
Matlab is hardly a "little known" language. It is universally used by engineers of all stripes. Pretty much any EE, ME, or AE graduate will have at least a passing familiarity with Matlab. I've taken quite a few engineering courses where Matlab knowledge was more or less a prerequisite. Knowledge of Matlab and Simulink is mandatory in the controls and structural dynamics fields.
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 basis of a number of core protocols we use all the time, including LDAP (which uses a form of ASN.1 called BER). ASN.1 has been around for far longer than XML, and if you're working with network protocols at the software level, is worth knowing.
I once wrote an LDAP proxy server that spoke LDAP wire protocol natively, and I had to implement ASN.1 encoding and decoding. My code at the time was written in C using the wonderful glib library (which minus gobject should be made part of the standard c library someday). It has since been rewritten in Python using Twisted which nicely abstractly all the ASN.1 stuff away in the nice Twisted LDAP adapter classes.
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.
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.
That is all.
Nothing wrong with Excel. For some types of problems it is a very efficient tool. It takes quite a bit of skill to write a complex spreadsheet that can be used effectively by other people.
Excel and other spread sheets are good tools where the user is entering a variety of data in different fields, and the looking at the results. You could of course write the functionality in another language, but Excel provides the user interface for free.
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 three weeks, you won't learn how to write good Lisp macros or when you should. You won't learn to use C++ exceptions safely. I went from C/Pascal/assembler/etc. to ARM C++, and it took me years to internalize everything I needed to consider about object orientation. I was able to do useful things pretty well from the start, but it took a long time to be fully functional.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
I used to be a Pick programmer, but was fortunate enough to switch over to system administration just in time to survive the dotcom bust and remain employed, while some of my former coworkers who had jumped ship to various start-ups were now out looking for work. Then I discovered Python, which, unlike perl, java, or php, has gotten me to consider jumping back into being a full-time programmer again.
Used in a heck of a lot of high schools, colleges and universities in the US and Canada.
Don't know why you'd say they're "not in much use".
But, hey, keep telling yourselves you'll make a mint coding Java at Amazon ...
-- Tigger warning: This post may contain tiggers! --
Outside of the RDBMS, pretty much everything Oracle makes or buys is crap. The funny thing is, PHB's suck that stuff up like us DBA's drink beer. Then when The Shit Don't Work (TSDW), they need someone to fix it. If you can make the shit work, you can make some good money. Just be prepared to switch to the next crappy Oracle technology when the original falls out of fashion.
"Be grateful for what you have. You may never know when you may lose it."
If the phrase "Your mom's first child node is not a text node", then you probably know AXL and I probably worked with you at some point in the last six years.
Colin Dean Go a year without DRM
That's often true, but it may well mean the difference between eating table scraps and not eating at all.
Laugh all you want. Believe all the negative propaganda if you listen to everything people tell you. But Flash is incredible to produce Android,Ipad/iPhone aps. Its soooo easy compared with any language I ever used. If you know C/C++ or Java, you can pick up Flash in a week. It also ports to Web, and Windows/Linux/Mac without modifying code.
Flash gets a bad rap, but I've never been so impressed with a language for producing modern software. The only downside is that it can be slow, but you can generally render 1,000+ graphics on the screen before you notice any slowdown. It isn't meant for the leanest and meanest modern 3d games, but if you want to get into the ap stores, its one of the best roads. It is far superior than picking Android or IOS specific programming languages.
Now I typically get buried for saying this for some reason. I'm not sure if people are bent out of shape because they hate Flash or if the Flash developers don't want their well kept secret to get out.
God spoke to me
speaking as someone who specialized in snmp for over 25 years and who works for a whos-who of netmgt and networking companies, snmp is mostly DEAD for hiring. its all done in india and china, now (and very VERY poorly, too, I might add).
I made a living being really good at mibs and snmp - but there is no pay in it anymore, no one in the US hires for this and its all commodity 'good enough for the stupid customer' stuff. customers don't push hard enough for snmp/mib quality and vendors staff with the most entry level garbage programmers (sorry if the truth hurts) and so you get what you get. crap.
I hate having to say this as I invested many years in being an expert in my field; but the bottom dropped out and there's no resurge in this field that I can see.
I can't speak to the other 'languages' but I found it funny to see asn.1 listed. it did, once, make a very nice living for me and got me quite a lot of opps in great companies; but after about 10 yrs ago, things pretty much dried up here in the US (for netmgt) and its all outsourced to the lowest bidder, now.
shit, you can even do snmpwalks on some cisco boxes, juniper boxes (etc) and find glaring bugs, cycles (loops; should never happen in a treewalk!), data type errors and laughable encodings (yeah, sure, store floating points as strings. if you have to ask, you clearly don't get it). and no one cares anymore, either! ;(
--
"It is now safe to switch off your computer."
Actually no.
Both Scratch and App Inventor provide a visual programming environment. Whereas Scratch is self contained (you run your programs "in Scratch"), with App Inventor you create Android Applications which you can package and distribute as any other Android program.
-Jeff
Disclaimer: I am a member of the MIT App Inventor development team.
Well, you were never fully functional because you were using C++.
I saw MATLAB mentioned here quite a bit. I cut my teeth on MATLAB in the 90s to prototype DSP algorithms, but LabVIEW has become my replacement workhorse for that sort of stuff since Y2K. Even through the dot-com bust there was no shortage of LabVIEW work. I'm mostly a C/C++ embedded guy these days, but LabVIEW is still in my grab bag for rapid app development.
I had an aunt that regularly tried to get me to come to her firm to code in MUMPS.
I wonder why I never did it.
I'm a tech in a finance firm. We use math tools a lot. Octave too.
Though not quite a language, you can get a lot of jobs knowing Excel spreadsheets,
Yes. I constantly have problems with libraries, especially overcoming bugs and limitations. Most of the time I have to (sadly) reinvent the wheel, because it didn't have spokes or someone thought triangular wheels were the best thing ever.
This is true. But I don't think you can be a good programmer if you only know one single language in one single paradigm.
I usually program in a mix of functional, object-oriented and iterative; whichever solves just this problem the best at the moment. (Bonus if it also creates the most readable code. Which is, of course, part of 'best'.) I don't think I could do that as well if I hadn't programmed in both assembler, lisp, C, C++ and LPC.
(I'm not sure what ARM C++ is; I write C for ARM but except the hardware registers that I hide away in hardware layers, there's nothing special over the C. Well, it doesn't have things like printf, signal or exit. But it really isn't a different programming language than say C for DOS.)
I wrote a C compiler in interlisp once. That was fun. (To lisp.) (As a project.) (After learning LISP for about three weeks. It could probably have been much better LISP, but the principles in LISP and functional programming are actually really easy to understand. Easier than being able to read all the parenthesis...)
Writing such projects - as well as doing things like implementing a scheduler or a TCP/IP stack - makes you understand things a little bit better. :)
It shouldn't be impossible to go fully functional using only C++. Is it a challenge? :)
I think that you have to use functional programming to write arbitrary programs as templates.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
I think I'm showing my age there.
The base document for the C++ standards effort was the Annotated Reference Manual, named like K&R C. ARM C++ is pre-Standard.
As far as learning different languages for single paradigms, I suspect it's most needed in object-oriented programming. Many people seem to think it's supposed to work like it does in the single O-O language they know.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes