Need high level comparison VB2005 vs VB.NET vs VB6 vs C# vs C++ vs Java

Posted on 2006-03-22
Last Modified: 2008-03-06

Thanks in advance
Question by:AlexF777
    LVL 85

    Assisted Solution

    by:Mike Tomlinson
    I'll start the imminent flood of flames and comments on how we have all misrepresented the capabilities of each language and misinterpreted each others statements...

    How high level do you want?  Some of these are apples and oranges do you want to compare these languages?  With respect to what?  Such a broad question topic...

    VB6 is a partially OOP language that is no longer in Microsoft mainstream support and is considered by some to be "dead" to new programmers.  Very rapid development but sometimes can be hard to scale if the data to be modeled would be better suited to full OOP implementations.

    VB.Net is NOT the next version of VB6.  The two are significantly different under the hood but the SYNTAX of VB.Net is similar to that of VB6.

    VB.Net 2003 and C# 2003 are based on .Net 1.1 are full OOP languages
    VB.Net 2005 and C# 2005 are based on .Net 2.0 (also full OOP languages)
    There are some significant differences between .Net 1.1 and .Net 2.0

    C++ is full OOP language often used with the Microsoft Foundation Classes (MFC) to make WinApps.  The combination is what is usually referred to as VC++.
    There is a C++.Net "version" which allows you mix .Net syntax with native C++ syntax allowing the use of the .Net frameworks managed approach.

    Java is a full OOP language that was not created/dominated by Microsoft.  This is a good or bad thing depending on who you ask...

    VB6, VB.Net, C# and Java are considered "managed" languages.  This means that NATIVE code will track your objects and "garbage collect" them automatically for you when necessary.  These languages use "references" instead of "pointers".

    C++ uses "pointers" not "references" and is "unmanaged".  You need to manually track your objects that you allocate and dispose (deallocate) of them yourself or you will create memory leaks on your system.

    C++.Net allows you to mix "managed" and "unmanaged" code.

    The other .Net languages technically allow "unmanaged" code but not thru native calls.  You get the unmanaged pointers from external sources (such as API calls, etc...)

    Let the flood begin...
    LVL 52

    Assisted Solution

    by:Carl Tawn
    Personally, I think that explanation pretty much covers everything.

    Just one small correction - C++ can use pointers AND references.

    And one small expansion - C++ and Java have the benefit of being cross-platform, meaning they can be compiled and executed on different operating systems.
    VB6 is solely Windows based, .Net (at the moment) is predominantly Windows based but there are various implementations appearing on different platforms, although none of them fully replicate the framework yet.

    Author Comment

    may I ask your opinion, what language is better for what task

    if you had a choice between VB2005, VB.NET, VB6, C#, C++ or Java which would
    you use and why

    LVL 85

    Assisted Solution

    by:Mike Tomlinson
    It's impossible to intelligently answer that question without first knowing WHAT you are programming.

    There is no single language that can do everything ~better~ than any other language.

    You need to pick the best language based on the requirements of the application taking into consideration things such as the target hardware/operating system....
    LVL 52

    Accepted Solution

    Totally agree with Idle_Mind, horses for courses and all that.

    But putting my personal slant on it, basing this on a very simplified choice of a day to day tool for web/desktop apps (no specialised areas or platform dependence implied in any way shape or form), i'd go with C#.

    This is based purely on personal preference, but heres a quick rundown on why:

    VB         -     Legacy language, not officialy supported by MS anymore. Have to delve into the WinAPI for anything "out of the ordinary".
    C++       -     Incredible powerful and fast, gives ultimate flexibility. However, difficult to learn and generally has a longer development time than with other languages.
    Java       -     Uuugh, the less we say about Java the better.................only my personal opinion (although shared by a lot of people).
    VB.Net    -    Is .Net but based on 1.0/1.1

    VB 2005  vs C# - Both are, as of VS2005, based on .Net 2.0. Both offer fairly rapid development. Both will compile (in most cases) to the exact same MSIL.

    My choice of C# over VB is purely based on a personal preference of the C++ like syntax.

    As I said, this is just my humble opinion, and there will be plenty of people who disagree.

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    Highfive + Dolby Voice = No More Audio Complaints!

    Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

    Introduction This article makes the case for using two modules in your VBA/VB6 applications to provide both case-sensitive and case-insensitive text comparison operations.  Recently, I solved an EE question using the LIKE function.  In order for th…
    Have you ever wanted to restrict the users input in a textbox to numbers, and while doing that make sure that they can't 'cheat' by pasting in non-numeric text? Of course you can do that with code you write yourself but it's tedious and error-prone …
    Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
    Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

    759 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    11 Experts available now in Live!

    Get 1:1 Help Now