Last week’s article on the five programming languages you’ll need next year (and beyond) didn’t include two important languages: Python and Objective-C. Python’s exclusion sparked a passionate response from some readers, to say the least, and led us to craft a follow-up to emphasize Python’s importance to the programming world.
Python is mature (the first version, created by a computer scientist named Guido van Rossum, was released in 1991). Google, where van Rossum worked for several years, has embraced Python as one of its main programming languages. Python enjoys a strong presence among Dice job postings: working knowledge of it will allow you to score a job at far more tech firms than Google. So let’s discuss it a bit, and afterwards, we’ll talk about Objective-C and a few other languages that could land you a good gig.
(Python is also a great language for teaching beginners: although it’s powerful enough for large-scale applications, its simplicity allows anyone with a bit of training to easily create programs.)
Nonetheless, a lot of programmers still don’t use it. Why? I suspect it’s a combination of exposure (they haven’t seen enough of it yet to take the plunge) and their companies’ choice of programming language. I’ve also heard some people dismiss it as a “scripting language,” which is incorrect; although it performs quite well for scripting batch processes and whatnot, it’s also a general-purpose programming language. If the Python community wants to change things, they’ll have to do exactly what they did with the original programming-languages article—make their opinion known, loudly. The noise could convince programmers and companies to take a fresh look at it.
Python is unique compared to the “curly brace” languages that have borrowed syntax from the old C languages (such as C++, Java, C#, and more). It uses indented blocks. The language includes built-in types for dictionaries and lists that are easy to manipulate, and it allows for object-oriented programming, as well as a certain amount of functional programming. Here’s an example of Python code that tests if a number (x) is less than ten, and prints out a message if so; otherwise it prints a different message; note how the lines after the if and after the else are indented:
if (x < 10):
print(‘x is less than 10’)
print(‘x is 10 or greater’)
A handy tutorial (with downloads and much more) is available at Python.org.
The old “C” language created in the early 70s didn’t support object-oriented programming. This resulted in computer scientists adding onto the language in different ways. For example, Bjarne Stroustrup created C++ as an extension to C that included object oriented support; the original implementation, called “C with Classes,” was performed through macros in C.
In the early 1980s, another company was implementing a version of C that supported objects and classes; this would become Objective-C. When Steve Jobs left Apple and started Next, the latter used Objective-C. When Jobs returned to Apple by way of Apple’s acquisition of Next, much of the Next technology stack found its way into Apple products, where it continues to live to this day on iOS and other platforms.
In our previous article, we mentioned Swift. Apple suggests that Swift will eventually replace Objective-C. However, because of the huge amount of code “out there” among the millions of iOS apps and Mac software, companies aren’t going to immediately rewrite their code in Swift (if ever). So, while Swift might be the new language, Objective-C is unlikely to go away anytime soon. That means that Objective-C is a great choice if you want to learn iOS and Mac programming.
Objective-C is a superset of C; as such, a simple hello world program in Objective-C could look like this (which is also valid C):
int main (void)
printf (“Hello world!\n”);
If you want to learn more about Objective-C, check out this series of courses offered by Code School. There’s also a very solid rundown available on the Treehouse blog.
In the previous article, one commenter pointed out that the languages under discussion focused primarily on building apps. This is true. My own work involves parallel development, and that extends into embedded programming. Much embedded programming work is done in C or C++, and if you want to contribute to some of the big open-source projects out there (such as Linux itself) much of that work is done in C and C++. These languages might be old, but it’s doubtful that they’re going away anytime soon. (In the meantime, if you want a good overview of C++ basics, take a look at this website.)
It’s hard to list just a few languages that you should learn, especially since so many of those languages have their ups and downs. Programmers need to monitor technology, and carefully weed out the fads that might get big buzz one day, only to be gone the next. Notice that, other than Swift, all the languages listed in these articles are anything but new: once a language establishes itself as vital to programming apps and websites, it’s generally here to stay.
- 5 Programming Languages You’ll Need Next Year (and Beyond)
- New Programming Language Uses Schwarzenegger’s One-Liners
- A First Look at Apple’s Swift Programming Language