5 programming languages you need to learn and 5 you should avoid
From the incredibly useful to the unspeakably weird, we run down the programming languages that will help your web development career and the ones that will stop you dead in your tracks.
Having a wide knowledge of programming languages is a great way to land a job. Or, if you already have one, to get arrays. Awful wordplay aside, multilinguals do always look a bit more impressive on a resume.
But if you are thinking of broadening your horizons, why in the name of Pascal would you dive into the commitment of learning a new language without first checking how useful it is? That and there's always the concern of your new coding tongue becoming obsolete, like the digital equivalent of Latin.
This is where we come in. We've identified some of the most popular and powerful programming instructions in use today. We've also bashed our heads against some of the most infuriating language offshoots since some 1920s proto-troll invented scat singing.
The immense popularity of Python has coiled around the Internet, and it shows no signs of releasing up and coming programmers from its clutches. This is a powerful language that can be made to wear many skins – expect to find it slithering away in desktop apps, web apps, network servers, media tools and machine learning (which is becoming increasingly important).
The good news is that Python is remarkably beginner-friendly, too. Novices will be able to build their coding skills quickly as the syntax is straightforward and non-verbose. More capable programmers will find this high-level language particularly handy for APIs and back-end services, or used in a general role for object-oriented, scripting, or functional programming.
Side bonus worth mentioning: rival language Ruby shares similar syntax to Python. Know one of them, and the other isn't very difficult to pick up.
Inspired by the equally ridiculous invention that is lolspeak, LOLCODE is a programming language that's about as esoteric as you can get. Created in 2007 by Adam Lindsay, researcher at the Computing Department of Lancaster University, to achieve anything in LOLCODE your intent must be expressed in examples of the lolcat Internet meme. That's right, folks. Meme syntax.
Here are a few basic things you ought to know before getting started. All code must begin with "HAI language version" and end with "KTHXBYE." Calling for a library involves "CAN HAS library" while strings are read into variables via "GIMMEH." Also, looping initiates with "IM IN YR LOOP" and exits when "IM OUTTA YR LOOP."
For those of you keeping closer score at home, LOLCODE is viewed as 'weirdlang' by many. It's not esoteric enough as behind its syntax sits a normal procedural language. If you want weirder offerings, just keep reading.
An offshoot from the aforementioned LOLCODE, this programming language replaces lolspeak with quotes from different Arnold Schwarzenegger movies. Full disclosure: we had hoped that this syntax would also include those nonsensical noises this Austrian born actor makes when he's in on-screen distress. No such luck.
Basically, to use this, you just really need to be up on your cool, dry witty one-liners and then all parsing will be done with Parboiled and ASM used to generate the Java bytecode. For an example, let's wrap your head around some key command(o)s.
When it comes to main methods, the form is "IT'S SHOWTIME" statements "YOU HAVE BEEN TERMINATED." We also love the basic arithmetic operations of plus, minus, multiple and divide (GET UP, GET DOWN, YOU'RE FIRED and HE HAD TO SPLIT, respectively).
Likewise, the logical operations of Equal To, And, Greater Than, and Or are also pretty great (YOU ARE NOT YOU YOU ARE ME, KNOCK KNOCK, LET OFF SOME STEAM BENNET and CONSIDER THAT A DIVORCE).
Novelty aside, we think ARNOLDC will be abandoned by all but the most uber fans when they realise that a simple ReadInteger call is now: "I WANT TO ASK YOU A BUNCH OF QUESTIONS AND I WANT TO HAVE THEM ANSWERED IMMEDIATELY." Time-wise, it's a problemo.
Let's dive into something a little less complex shall we? A gem of a language that finds an even balance between approachability and power. Dig up Ruby, spend a modest amount of time polishing up your skills with it, and it'll allow you to produce executable programs quickly.
What we have here is more or less a modern and rather streamlined take on PHP; an interpreted, high-level, general-purpose language that supports paradigms that including procedural, object-oriented, and functional programming. It also has a real purty name.
But seriously, it's nice to take a holiday with something that focuses on simplicity and productivity, thanks to an elegant syntax that is a cinch to read and easy to write. Think natural, not lacking in complexity. Despite the shallow learning curve, Ruby is still a scripting language that's more powerful than Perl, and more object-oriented than Python. Nervous code virgins couldn't hope for a better partner.
Invented by Ben Olmstead in 1998, this public domain esoteric programming was named after the eighth circle of hell in Dante’s Inferno. You know the place – that next-to-worst area focused on punishing counterfeiters, hypocrites, grafters, seducers and sorcerers with various forms of dismemberment and human excrement-based beauty treatments.
This is your first and last clue as to how user-friendly this programming language is. Essentially, Malbolge has been built from the ground up (or ground down, as is our understanding of the infernal) to be the most difficult and esoteric programming language ever. For example, here's a…uh, simple “Hello World”: (=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc.
We're not even going to try to explain this language here today. It would require multiple articles and, frankly, more brainpower than we possess. All you really need to know is that Malbolge was so difficult it took two years for its first useable program to appear. And an algorithm had to achieve that, not a human mind.
So yeah, while the potential for using this to write obfuscating code (possibly for software protection) is high, best of luck with that.
C# is used everywhere. Mobile applications that run on your handheld devices, ultra-realistic 3D video games, or server applications as seen on websites like this one you're eyeballing now. You name it and chances are the code symphony has been composed in the key of C#.
If your potential client is a sizeable company that has legitimate concerns about the open source options on this list, chances are they'll want to deal in a “Microsoft approved” option like C#. That and a competent user can whip up some pretty impressive results with a programming language that encompasses lexically scoped, strong typing, declarative, imperative, generic, functional, component and/or object oriented programming disciplines.
One other side benefit for novices: to learn C# is to lay the groundwork for a decent understanding of Java. These languages are two peas in a pod when it comes to runtime and architectural philosophies, plus they share some syntax.
Here's one for the MasterChef and Hell's Kitchen fans.
Chef is designed to make your programs look like cooking recipes. To foodies this may sound like a wonderful solution, a butter way to do things, but we can assure you there's still no margarine for error (sorry).
Served up by David Morgan-Mar in 2002, the design goals of this stack-based language are to generate valid output and recipes that are "easy to prepare and delicious".
Sadly, we haven't the word space or prep area to show you a full “Hello World” as an example. All you need to know is that the code also works as an actual recipe for a chocolate cake that you can physically bake and eat. We only have time to doggy-bag you up a few concepts for takeaway purposes.
Essentially, you have Ingredients (variables) and these are held in Mixing Bowls and Baking Dishes (integer storage that can be...stacked). Your loops might be "CHOP"/"UNTIL CHOPPED" or "MASH"/"UNTIL MASHED."
Sadly, the cooking time and oven temperature syntax you'll see are just optional (salad) dressing, used to make the recipe more natural-looking. And to prevent user food poisoning, presumably.
If you want to ride the wave that is iOS/mobile development (and the high paying gigs that seem to appear around it) you really ought to acquaint yourself with this.
Designed to supplant Objective-C, Apple Swift is a general-purpose language that thoroughly outclasses its predecessor in terms of usability. Apple pitches its latest incarnation (Swift5) as both interactive and fun, with concise syntax that produces lightning-fast software. Creature comforts include a move away from hated semicolons as inferred types make code cleaner and less prone to screw ups.
Meanwhile, memory is automatically and tightly managed via deterministic reference counting. So say goodbye to the overhead of garbage collection.
And as expected of anything related to the iOS environment, entire classes of unsafe code are taken out of your hands. Everything is auto-checked for overflow and these kid gloves can simply head off any programming mistakes before they can even manifest in your code.
Be those training wheels as they may, Apple Swift is an ideal first-timer choice. A true 'My First Code Monkeying' experience that could pay off in the long run.
To C or not to C – if that is your question, because you wonder if there are easier programming alternatives, perhaps you need Shakespeare Programming Language (SPL).
Play-written into existent by Karl Hesselstörm and Jon Aslund, the basic goal here was to pen a coding language that doesn't appear to be one, to the layman observer at least. Is the end result functional and easy to use for the absolute diehard thespian? Let's just say the course of true love never did run smooth.
For starters, your constants are governed by positive or negative nouns and all stacks must bear the moniker of a Shakespearian character and be announced in a character list. These variables interact with one another in goto labeled Acts and Scenes. You're basically looking at assembly language that is needlessly verbose as characters ask one another questions (read: conditional statements). No fancy data or control structures, just basic arithmetic and gotos.
That being said, don't go in with dreams of coding anything of great substance. Expectation is the root of all heartache, after all.