This article is “Part 2” of the series: “How To Become A Productive Computer Programmer“.
In today’s article we are going to review three (3) of the most popular programming languages: Java, C#, Visual Basic, C/C++ using their speed of execution, level of difficulty and portability of code.
After reading today’s article, you will be able to determine the suitability, usefulness or productivity of these programming languages for today’s computer programmers!
Is C/C++ the Best Programming Language?
The C programming language was standardized in the early 70s for the UNIX operating system (and not Windows) by Dennis Ritchie.
In the early 80s Bjarne Stroustrup at Bell Labs invented the C++ programming language as classes that extend the C language.
The C/C++ programming language is primarily used in writing operating systems, video games, device drivers, embedded systems and commercial, shrink-wrapped windows based software programs.
In the MS-DOS or Windows 3.1 era, C/C++ was probably the most capable programming language for developing windows based software programs.
Is Visual Basic the Best Programming Language?
The folks at Microsoft who were the sharpest minds in the software development business at that time realized that they were not catering enough to hobby or beginner programmers … keeping in mind that Bill Gates started his career as a hobby programmer without any formal computer science college education.
The issue was that working with C/C++ or most of the programming languages in existence at that time, required a strong computer science background or a formal computer science college education and lots of tedious, coding hours.
At that time, programmers had to repetitively code for mundane windows features or behaviors like detecting or responding to keyboard clicks or mouse movements.
So, in keeping with their founder’s (Bill Gates) history, Microsoft decided to do away with a lot of the repetitious, boring coding by developing Visual Basic (VB) 1.0 as a Drag and Drop, User Interface Driven, Rapid Application Development Environment.
VB 1.0 was introduced in 1991 to make computer programming accessible to everyone including hobby programmers, inexperienced software developers, beginners or anyone without a strong, formal, computer science background.
Visual Basic succeeded at making programming fun, less tedious or less expensive by giving programmers an easier, more productive coding environment.
A Paradigm Shift in Computing
Because of Visual Basic, millions of professionals without a formal computer science college education or background could learn how to program or get fun jobs without experiencing the drudgery or pain traditionally associated with programming languages.
Because of this paradigm shift, business owners could bring their windows software projects more quickly to market because the amount of time that programmers spend writing code had been dramatically reduced.
This paradigm shift also separated systems programming for which the C/C++ programming language was best suited from windows-based business software development for which Visual Basic was better suited.
What differentiated Visual Basic was its graphical, windows development environment which allowed inexperienced programmers to quickly write code by dragging or dropping pre-built windows features from a toolbox!
This meant that programmers no longer had to write thousands of lines of code before their software programs could receive user input from data entry forms, interact with back-end databases or detect and respond to mouse or keyboard actions from end users.
Is Java the Best Programming Language?
While Microsoft was busy at work, the Internet appeared as if from nowhere and pulled the rug from other programming languages like Visual Basic and C/C++ which were not designed with the Web in mind.
The question no longer was “can you program in visual basic” but rather “can you program for the web or build a website?“
Sun Microsystems answered that question by releasing Java in 1995 with the intention that unlike Microsoft software, Java programs will run easily on all web browsers, operating systems and most hardware or software environments.
Java was designed specifically with the intention that: quite unlike C/C++ or even Visual Basic (at that time), a Java program was wrtiten will be able to run on most major hardware / software environments without re-writing the code again from scratch.
Java became very popular for many reasons. It was a superior object oriented programming language to Visual Basic which at that time was not object oriented and was easier to code with than C/C++.
However,though Java became popular in the late 90s with experienced programmers, it still lacked Rapid Application Development features just like its cousin C/C++.
Today, Java still does not appeal to inexperienced software developers, beginner programmers or web developers or folks without a strong, formal computer science education.
Java is also not the language of choice for writing web applications or designing websites! Keep in mind that this is a big deal because web application development skills are currently more in demand than windows, systems, hardware programming skills.
Is C# the Best Programming Language?
Microsoft had another brainwave and released Microsoft CSharp (C#) on February 13th 2002 which changed the web and windows programming industry again.
Here was a programming language that incorporated the object oriented programming capabilities of Java or C/C+ and the Rapid Application Development environment of classic Visual Basic and at the same time, provided a first-class web programming environment!
With all the facts in this article in mind, here are my recommendations for choosing a programming language.
Lower Learning Curves Is Good For You
C/C++ has the highest learning curve (level of difficulty) followed by Java. C# / VB.NET is the easiest of the three (3) programming languages to learn because of its visual / graphical programming features and language intellisense, which explains the meaning of programming commands as you type!
C# also offers a large set of pre-built classes that save you from writing thousands of repetitious lines of code before you read, write or update databases or accept user input for example.
Acing Programming Interviews or Finding A Job
The facts are that mastering C# is easier than learning Java which in turn is easier than learning C/C++.
So, if you are interested in a computer programming career, you are better of learning a programming language like Microsoft C# which you can interview and get jobs more easily than a language like Java or C/C++ which requires several times the investment of time or effort of C#.
Also, C# is preferred to either C/C++ or Java for building web applications. This also means that if you want a web development career, you will do better to choose C# over Java or C/C++! because that is more likely the language of choice for developing a serious / commercial website.
Bringing It To Market
The speed or ease with which one writes code determines the time, money or effort required to complete a software development project.
Since it takes longer to develop websites in C/C++ and/or Java compared to Charp (C#) for example, C# is a more productive programming language for building web or windows applications compared to C/C++ or Java.
Finally, software development managers are typically more concerned about the ease or speed with which ya website is coded because the faster or easier the code is … the less expensive the project will be.
The Speed Of Your Code Is Irrelevant
The amount of processing power available to Computer power has been dramatically boosted since the 90s.
Software programs now run in 4GB to 8GB of memory instead of the earlier 256MB of memory avaialble to computers.
Furthermore, computer processing power has grown from an earlier 16MHZ to QUAD CORE 2GHZ CPUs.
So, the speed of your compiled software code is no longer a determining or driving business factor for most software development projects because their today’s computer is equipped with more than enough CPU / memory resources for today’s processing needs.
The Portability of your Code Is Not Relevant
So, though C/C++ may be a faster language when executed than either C# or Java, the execution speed is irrelevant for web / business development projects. And though Java may be more portable than either C/C++ or CSharp, code portability is irrelevant in today’s web-based / internet age.
A Little Homework For You!
Today, we live in a digital, information rich, mobile, internet era … in your own words: “how relevant is C/C++, Java, C# to the Web / Internet Age?“
What is the difference between Operating Systems / Hardware programming and Business Software Application programming?
No one programming language is best suited for every project. With this in mind, “what sort of software development project will each of these programming languages be best suited for: Java, C#, C/C++?“
This post answers a question posted by Josh on the quickest way to get into a computer programmer career..
This article is “Part 2” of the series: “How To Become A Productive Computer Programmer“. You may read “Part 1″ of the series: here … The Suitability of Java As A Programming Language