I know this seems a silly thing to ask about out of the blue, so I guess I should explain a little further.
I am a hard core VB6 programmer.
I've had over ten years to transition to .Net and I've been fighting such a transition all that time.
I have written a little C++.Net and ASP.Net code but mostly I've been successful at avoiding having to rewrite all my VB6 code to .Net.
Now it's 2012, and VS.Net has to be considered a "mature" programming environment.
Recently I got asked by a friend, who is the owner of a small to medium size business, about moving his VB6 code (for a large document repository management software for millions of documents) to .Net.
Of course he knows that I know a lot of VB6 coding (I guess that's why he decided to ask me).
Even though Microsoft's support statement
has promised some level of support for VB6 with the upcoming release of Windows8, he feels, looking down the road a ways, that .Net is the way he wants to go.
The VB6 code has been "massaged" (refactored?) heavily over the years by several VB6 coders and has become quite "brittle".
It is easily tens of thousands of lines of code with many many .bas and .cls modules and even a few .ocx custom controls (I know uisng the legacy COM technology gives little hope of even using InterOp for a smooth transition to a native .Net user control).
He is adamant, though, he wants to keep all the documents (data) on a local hard drive (I've let him know, though, that Server 2008 R2 does have the ability to create a private cloud
, though it probably won't be cheap).
So. this business owner, having been told (by other people, not me) all the difficulties of trying to convert VB6 code to VB.Net code, wants to re-code the whole document management software from scratch.
He said it shouldn't take long if we can find some a whole bunch of sample code online to "jump start" the coding (yeah, I know this really is pretty ridiculous and doesn't really take into consideration the long process that this total re-write is going to take, but anyway..).
Thus the question he asked me (which I didn't really have a good handle on how to answer):
What is the majority percentage of publically available (open source?) code on the Internet written in: VB.Net, C#.Net, and C++.Net?
Here is my break down guesstimate:
1.) C#.Net - 55%
2.) VB.Net - 35%
3.) C++.Net - 10%
However, there is lot of C/C++.Net code that is basically "student projects" - very primitive console application using main.c, int main, and with only console window output.
Eliminating this C/C++ (which could be rolled into a .Net console application - but is otherwise unusable), give a revised estimate of:
1.) C#.Net - 55%
2.) VB.Net - 40%
3.) C++.Net - 5%
..and that 5% is probably being generous.
A lot of such code has licensing issues and there are tons of "Hello World" samples. Of course many commercial software projects are written in unmanaged C++ code but, also of course, don't have open source code available (so really doesn't factor into things).
Of the two languages (C#.Net and VB.Net), not only does C#.Net have stronger support from Microsoft (VB.Net doesn't support GSE and have only has Mango support for XNA - not applicable to what this business man is doing but it sends a message from Microsoft that the "preferred" .Net language is the only one with XNA Xbox360 support),
but also C#.Net is somewhat closer to java
(there are many java programmers out there who have a familiarity with C#.Net and could hopefully help augment C#.Net programmers in supporting this .Net doc management software in the future).
So you can probably guess which way I am leaning, in terms of a recommending a .Net language in which to re-write the VB6 code, (especially since I mentioned the owner saw difficulties in going with a VB.Net rewrite - but didn't rule it out entirely).
I could say "go with unmanaged C/C++ code, because even if you use obfuscators the managed languages of .Net have too high a risk of reverse engineering and intellectual property theft" (I should mention that the doc management software is licensed to other businesses) .
Here's maybe another way of asking the question - after ten years (up-to this point in time), which of the three .Net languages has achieved greater "mind share" in terms of being most embraced by all .Net programmers at large?
I know it's not an easy question to answer, but any thoughts would be appreciated..