The Battle of the Languages: C++ vs. Java vs. Python
If you’re not a programmer, and perhaps your mildly curious about technical details of software, you may be wondering about the various software languages and why there are so many to choose from. What makes one programming language better for writing software than the other? Let’s explore 3 very popular languages to get some answers.
C++: the improved version of C
Years ago, the C language was created in order to aid in writing a very powerful and familiar operating system, UNIX. The creators of C—Kernighan and Ritchie—had a clear view of what they wanted from their new language: portability, power and speed. C fulfilled much of their expectations. UNIX was thus created from the C language, and C soon became the most popular programming language at the time.
Years after the creation of C, a new programming paradigm was born. The computer science community was buzzing about something called “Object Oriented Programming”. OOP enabled software to be built in a more abstract way, often enabling programmers to build large and very complex systems faster, and software maintenance was easier in the long run. C, the most popular language of the day, lacked the features required by a powerful OOP language. Ideas were thrown about to give C these new and powerful OOP facilities. Bjarne Stroustrup effectively morphed the C language into the very powerful C++ language. C++ is essentially everything that the C was, but it was improved: it contained the features needed to write OOP programs with ease.
C++ is great when you need the abstraction of OOP techniques but still need the power and speed of a high/low-level language. C++ can seem a little daunting to novices, as its OOP syntax is highly cryptic, not to mention its STL (standard template library) facilities. C++ once reined supreme, but its popularity is now fading due to newer dynamic languages. C++ still has a place in today’s software market, and it’s still widely used by universities and top software companies.
Sun’s Bright Idea: Java
Sun Microsystems had a good idea: create an OOP language that can run on any platform. It was a good idea in theory, but it was never fully realized in my opinion. Java is a very popular programming language, and it’s widely used and deployed on a multitude of servers worldwide. Its hardcore employment of OOP techniques is simultaneously hailed as a strength and a weakness; a lot of programmers don’t like to be forced to use OOP when the problem at hand can be solved another way, as Java makes the OOP paradigm a requirement, which can become a cumbersome burden to any programmer.
When Sun first introduced Java, one of its selling points was its ability to create something called “Java Applets”. Applets are programs that are written to run in any web browser with the Java runtime installed. The idea is rather ingenious. If a program can run in any browser window, it becomes truly portable, and it opens up a new sector of deployable software. Java applets never quite caught on; they were slow to load, slow to execute and a pain to write.
For some reason—probably Sun’s clout in the industry—most computer science courses in universities exclusively use Java as their official language for their students. Java’s not the worst programming language in use today, but many feel it’s severely over hyped.
Python saves the day
I’m an avid Python coder. I try to write all my software in Python. Of all the coding languages I’ve experimented with, Python just seems to work every single time. Python’s creator, Guido van Rossum, has the know-how to bring forth a truly awesome language; he has the knowledge and foresight to actualize a truly efficient and easy-to-use language that is the perfect solution to any problem.
Most newcomers to Python find its strange way of indenting code blocks—white space is used instead of the familiar curly braces—off-putting. They can’t get past this hurdle. It may seem odd and unfamiliar at first, but when you get right down to it, it makes for less coding, and Python code remains clean and clear to all that wish to read your source code.
Python’s extensive standard library of modules has a “batteries included” feel. There’s basically a solution around every corner when you choose Python. From email facilities to regular expression parsing, Python has it all.
There is a multitude of programming languages to choose from. In the end, one needs to experiment to find which language fits their mentality and style. One language might be one person’s cup of tea and may be an absolute nightmare to another; it’s all relative.