Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 192
  • Last Modified:

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

Thanks in advance
  • 2
  • 2
4 Solutions
Mike TomlinsonMiddle School Assistant TeacherCommented:
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 comparisons...how 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...
Carl TawnSystems and Integration DeveloperCommented:
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.
AlexF777Author Commented:
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

Mike TomlinsonMiddle School Assistant TeacherCommented:
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....
Carl TawnSystems and Integration DeveloperCommented:
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.

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now