Hello,
I am currently studying C#. I presumed that C# is much better than VB.NET and so started studying it. But it seems to me that most everyone related to microsoft is always pushing for VB.NET and not having much to say about C#, so what is going on
Id Est;
- I now regularly catch the Dot NET Rocks radio show, which seems to be based, or at least biased toward VB.NET.
- I stumbled upon the VB.NET PDC05 disk online at http://msdn.microsoft.com/vbasic/pdc05/default.aspx which I was quite impressed with, so I thought I'd find the C# equivalent, to no avail. Please let me know if there is one available on or offline.
From looking at the number of resources available for both VB.NET and C#, I estimate a 3:1 ratio in favour of VB.NET.
Please tell me what if anything C# has over VB.NET so I don't look stumped when a friend asks me.
Thankyou for your time.

Is C# the best language to learn/know?
com100h
With .NET everything changes because the capability to do something mainly lies within the .NET Framework class library and this is common to both C# and Visual Basic. While this is true, there are a few differences between languages - in most cases you do not need to depend on a particular feature of a language but you simply consume the rich class library provided by the .NET Framework.
Your comparison is true more from the perspective of a programmer moving to one of these languages from the other. For example, it would be easier for C/C++ programmer to move to C# and a VB programmer to move to VB.NET since the syntax is similar.
Regards,
Vikram
Azra
Having untyped pointers is especially dangerous and leads to bad readability for code. Ever try looking back at some C code and trying to figure out what they are passing around with a null pointer, since by its nature it is untyped C# is a very simple and complex language. If you don't want to get deep into C# there are a great many things you can do, but a great many things you miss. Just the fact that they allow you to declare that you're doing something "unsafe" (without certain checks, circumventing GC, etc) shows their mindset to discourage but not completely disallow. C# is a very typesafe, checked language because of this is why they avoid null pointers. Also pointers always exist, it's just how much access you get to them (references are pointers by concept).
Those things are more or less un-safe depending on how people use them. The problem with pointers and dynamic memory arrays is that unless done properly they become memory holes, and could have other problems because of poor implementation.
C# and VB.Net are different, there are great many differences just based on their lineage and well as their design. Granted, because they both compile to MSIL, they are by that very nature similar. By that argument, we should program in MSIL and avoid this language confusion. However C# and VB.Net give you different syntactic styles, slightly different IDEs, and manages certain aspects differently.
Scott Snyder
C# is a good way to acclimatize to the C/Java/C++ syntax style, but be prepared for a steep learning curve if you move to C++. If you can do what you need to do in C#, then stay with C#.
js-mueller
Is it not true that C is to C# as VB is to VB.NET, which would make C# the far more developed language Or would that only apply to C++
johnny wisconsin
Hi,
I dont think it matters much which language you use as long as you learn the Framework well and use it well with any language that u choose. And like I have already said, the power of .NET lies in the .NET Framework and not in the languages...
Then again, there are people who prefer J# ...
Regards,
Vikram
zhili
From the point of feature-set, there's pretty much nothing that you can do with VB.Net that you cannot achieve via C#. Microsoft strives hard to have feature-parity between these two. While VB is geared towards beginners, C# leans more on the professional development side (although some argue that this line doesn't exist anymore).
Since VB (not VB.Net) has been around for much longer than C#, it's natural that you find more resources on the net. VB resources have been updated to VB.Net.
As for trial Visual Studio, you can find a C# express edition here: http://lab.msdn.microsoft.com/express/vcsharp/default.aspx.
wx
The C# PDC version would most likely be this http://msdn.microsoft.com/vcsharp/community/events/pdc05/default.aspx
The Dot NET Rocks radio show is owned by one of the VB guys which is probably why it's more VB focused. :)
As most others have said, VB and C# have similar capabilities, so I'd go with what kind of background you have. If you have a C/C++/Java background, you'll probably be more comfortable with C#. Or if you ever want to pick up any of those languages, you'd also probably want to go with C#.
Language aside, there are also subtle differences in the editor tool you'd use to develop in C# or VB. For instance, the C# IDE has integrated code refactorings vs VB which has refactoring through an add-in, type colorization, metadata as source (for go to definition and browsing framework metadata), snippet functions (for more extensible snippets), code gen based on snippets (so you can customize what you want to be generated) , and 24-7 IntelliSense. This is the link to the free download of C# Express:(http://lab.msdn.microsoft.com/express/vcsharp/default.aspx)
The VB 2005 IDE contains a much larger set of task-based snippets that C# does (although C# will ship these on the web), a common/all filtering model for their IntelliSense, and background compilation though. Both IDE's are great choices though. :)
HTH,
Karen
ooodi
I guess your right. Microsoft is really pushing VB.Net. But its not beacause VB.Net is far more better than C# but because of one thing, market, the VB6 community is bery large and they are trying to convince these lot to port their apps to VB.Net. And I very much agree with vikram, its in the framework, the language is just a tool to access the framework...
cheers,
Paul June A. Domag
ranganathanmca
As far as your other post about C# being a follow-up to C++. No way - C# has same syntax route as C/C++/Java, but C++ is an order of magnitude more complex that either C# or Java. C# is very close to VB.NET as far as capability - it's more accurate to say that C# is VB with C-style syntax. That's a pretty good combination - like VB, a lot of complexity is hidden from you, but with the elegant sparse syntax of the C-based languages.
David Anton
www.tangiblesoftwaresolutions.com
Instant C#: VB.NET to C# Converter
Instant VB: C# to VB.NET Converter
Instant J#: VB.NET to J# Converter
Clear VB: Cleans up outdated VB.NET code
Amadeus156553
C# is the language with which the .NET Framework is built. C# is just in v2.0(Beta) while Visual Basic(VB2005) is in v8.0(Beta) currently - hence there are more developers on VB than on C#.
With .NET Microsoft has been saying that the programming language is a "matter of lifestyle" or "personal preference" and does not recommend one language over the other.
There are some differences in the current versions between the languages. For example C# supports operator overloading while VB does not. But this feature has been added in v8.0(Beta) of VB.
Also, C# supports Pointers while VB does not:
http://www.csharphelp.com/archives/archive77.html
http://www.codeproject.com/csharp/csunsafeintro01.asp
You may want to read this as well:
http://msdn.microsoft.com/msdnmag/issues/0900/csharp/
Regards,
Vikram
Golgot13
I believe the VB.Net PDC is actually the entire CD given out at PDC, surely the C# equivalent cannot be the link you supplied Once again, a demonstration of MS pushing VB.NET over C#.
Another point I was very dismayed to find was that the 36 C# snippets are only command structures, but the estimated 300 plus VB.NET snippets, are complete routines. Once again, a demonstration of MS pushing VB.NET over C#.
Another point I was dismayed to find is the ratio of C# to VB.NET chat transcripts at http://msdn.microsoft.com/chats/transcripts/vstudio/default.aspx. Once again, a demonstration of MS pushing VB.NET over C#.
It is completely obvious that either C# is not being promoted to the extent that VB.NET is, or C# features are being with held from us users, or the C# development team need a good kick in the arse.
To my dismay none of the above posts truly explain this weird phenomenon sufficiently and I am left with not one reason to develop Windows/Web based software in anything other than VB.NET. I mean really, learn C# if you want to learn other languages in the future Surely one would learn another language straight up if that was the only reason for learning C#. I just want to learn to program on, and for windows, the most popular OS in the world.
So please, tell me, what is the real point of C# and why on earth would anyone choose to learn it to use with todays Windows architecture I have really lost faith in C#. Please give me reason to stick with it, or get rid of the B in VB.NET.
Thankyou for your time.
Kind regards,
Criminet.
Nilesh Rade
Hope this helps,
Josh Lindenmuth
gs2006
this clears up some major misconceptions of mine :)
And as for a C# forum may not be the best place to get an objective answer to this question, i plan to ask a similar question in a VB.NET forum.
once again, thankyou, I am enlightened!!!
Could I then assume C# would be a good stepping stone toward C++
MattiasO
Pointers in C#...
Just a moment. I thought microsoft was trying to do away with pointers, and null point identifiers, and dynamic memory arrays because they were un-safe... Huh