Java, C/C++ or C#, Which Is Better?

Part 2 - How To Become A Productive Computer Programmer
Part 2 – How To Become A Productive Computer Programmer

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

    Acing a programming interview or finding a job depends on your mastery of the programming language in question.

    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

    The web / internet removes the need to address the question of code portability because web browsers have now been standardized to run on HTML, XHTML, CSS and Javascript.

    So, a website built with CSharp is just as portable as another website built with Java as long as they both emit pure or valid HTML, XHTML, HTML5, JavaScript or CSS.

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!

  1. Take a moment to read this article titled: “Is Learning C/C++ Programming Language Good For You?

  2. 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?

  3. What is the difference between Operating Systems / Hardware programming and Business Software Application programming?

  4. 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

6 Responses to "Java, C/C++ or C#, Which Is Better?"

  1. Shyam Vyas   June 11, 2012 at 6:27 am

    Hi, How are you?

    I am a graduate of Economics and Finance from University and am very interested in programming in C++ and other programming languages.

    I am unsure as to which career I am willing to pursue and so C++ is a good start.

    What is your opinion? Also, if I wanted to be a consultant in IT, what steps can I take?

  2. Koustuv   February 2, 2012 at 8:28 am

    What Is The Future of PHP Developers

    I am a PHP Developer with 3 years experience and earning 3L (about $600) P.A.

    I often hear from others that PHP doesn’t have a good future as big MNCs (multi-nationals) do not work in PHP.

    Also, I always get calls from small and mid level companies not big MNCs.

    Many people suggested me to shift domain, ie learn .net or Java. But here is two problem I am facing

    1. I cannot leave my present job.

    2. If I manage to learn .net or java in weekends also it will require lots of effort, time to be really productive in the new language.

    3. Also I will again be a fresher in the new platform and salary will also be low.

  3. Tahir   January 16, 2012 at 12:47 pm

    I would like to become a java developer, do you have any courses and is there a demand for java dvelopers ?

    • Marsha   January 30, 2012 at 3:29 pm

      One of the reasons Java conitnues to be the number 1 language as shown by the Tiobe index at
      is because Android uses Java primarily to develop mobile applications. Alternatively, you can use the Android NDK to develop Android apps in C++.

      If you want to develop mobile applications for Apple’s iOS devices, then you must use Objective-C which is a superset of C with object-oriented features.

      Andoird and iOS are the two top mobile operating systems on the market.

  4. Sachin Mehta   December 19, 2011 at 1:22 am

    I am a B.Tech. (IT) Fresher.

    I got a job in C/C++ Protocol Programming.

    They are giving me 3lakh ($6,750 approx.) per annum.

    But I love Java and I wanna know which side has more opportunities c/c++ or Java and If I gain experience in c/c++ then can I switch to Java Later.


    ,Please give me a suggestion its all about my career.

    Thanks & Regards

    • ITCareerCoach   January 14, 2012 at 8:23 pm

      Before you start worrying about the next career move, take some time to appreciate the opportunity provided to you by this job offer … any job offer!

      There are lots of folks out there who can’t get jobs and some of them have college degrees or even advanced college degrees … so, Be Grateful!

      Now that is out of the way, you have nothing to worry about …

      Spend the next w years learning everything you can about C/C++. Get you hands wet on every challenging C/C++ project you can find … and then only after that should you begin to consider the question … “what Next”


Leave a Reply

Your email address will not be published.