You link to a page with a bunch of differences? Not just that, the page pretty much sums up everything that people have been arguing about for the last 3 years, and thats that there’s good and bad points for each. There’s definitely a difference though, seeing nothing is like shooting blanks, you lose either way.
This page pretty much encapsulates is the reason I’m getting out of IT… the vast majority of my peers are arrogant and infantile to the point that they turn on each other.
I am a C# developer, mostly due to my years of experience in C++. However, I now have a manager who is coercing me to VB.Net just because most of the enigneers that might support my code know VB 6. No one knows VB.Net. So I am trolling the net looking for arguments to support my choice of programming language.
I’m angling for productivity. I spend too much time writing syntax errors into my VB.Net code by preceding variable declarations with the type, adding semi-colons, continuing lines without underscores, and digging through the help looking for type conversion functions. I’m furious every time I discover something else that the VB IDE has “helpfully” hidden from me, and am increasingly frustrated that Intellisense works very differently than it does in C#. I suppose that a developer with a VB 6 background would be just as annoyed by case-sensitivity and curly braces, things that are second-nature to me now.
It has been mentioned that C# has an advantage in large projects since there is no continuous background compile.
But continuous background compile is a HUGE advantage for VB.Net, at least in the projects I have participated in: Syntax errors are immediatively highlighted. This results in much more “RAD-feeling”, and simply faster development: When I press the run-button (F5), there are seldom any debug-errors I need to find look into, since I don’t write any (or at least very few), since VB immediatively tells me if I do.
In my .Net projects (up to some 10.000 lines of code on 4 year old PC), time consumption for the continous background compile has not been a problem at all.
You know, in almost every arguement I’ve read on here saying C# is easier to read, they’re comparing it to VB6 or an early version of VB.NET. Why are you Dim-ing m_car as car? I have several pieces of code that work just fine with the following line :
Dim car as new car
The compiler is smart enough to know the difference between the object and the type. At first glance, it might seem as though it’d be a nightmare to keep up with which is which, but then you realize that you’re smart enough to realize the difference as well.
As for the guy who was talking about serial IO in VB.NET being a pain, .NET has it’s own namespace for things like that. Check out My.Computer.Ports.
Tell you what. Get yourself a copy of VB.NET 2008 Express, give it a shot. You’ll see that there have been many, many changes since VB6 and .NET 1.1. If you still don’t like it, eh, what have you lost but a little time?
Oh, byt the way, all of you VB.NET coders out there, please STOP breaking lines with _'s. It makes it 10 times more difficult to read than if I had to scroll over.
I’ve no doubt that C# is syntactically a better language that VB.Net. I think there’s a bit of conflict between the overall architecture of using an intermediate approach and having a standardized language. After all, if you’ve got a standardized language that’s easy enough to understand - which C# is - why bother with anything else? Why have vb.net at all?
This is the point, though. .Net, from Microsoft’s perspective, is about making profit. It would be commercial suicide to not have Basic feature somewhere in there because of its history and popularity. Basic has been successful and has been around for decades. It has gone through changes and updates but ultimately, it has endured.
I believe one of the main reasons for this has been the keep it simple approach. VB has always been easier to use and develop with that many other languages. In the real world, this translates into two key points. First, it is an enabler; it makes is simpler just to get things done, which is usually more important to businesses and users than code efficiency (you can see this in around the globe and is evidenced further by VBA). Second, for businesses and companies, anything that simplifies something in any type project helps to reduce risk and improve predictability.
It can be hard getting GOOD freelance and contract C# developers of a high standard that have solid experience in software development. But that’s what needed very often if you have a C# project. Conversely, it is arguable that you perhaps don’t have to put the bar so high if you are using VB.Net. In addition, generally there does seem to be more choice of vb.net developers available.
For all commercial .Net projects now, I use VB.Net. I personally prefer C# by a long way. But getting good C# developers is hard and we have had more risks and problems with C# developments than with vb.net. Overall, this risks to a project are lower with vb.net and it works better in the real world, and for businesses.
DB said in regards to VB:
“it makes is simpler just to get things done, which is usually more important to businesses and users than code efficiency”
Bad coding practices have nothing to do with the language being used. I’m not sure if your making a slight at VB developers in general here, or what exactly your angle was, so if I’m misinterpreting that I apologize.
Regardless of that, I don’t see why this thread has persisted for so long. C#. VB. It doesn’t matter. They both compile to the SAME THING.
I want to be recognised as a serious developer.
The only way I can do this is to code in c#.
I’m a contractor, the only way I can procure a contract is to code in c#, people simply laugh you off if you tell them that you’ll write their software in vb. I don’t care which language I use but I think it’s time to retire vb.net, it’s time, let’s get over it and move on.
I’ve programmed in both (last job C# current one VB) and I personally would take C# any day of the week.
Yeah it is all personal preference, and personally, when I need to skim over 400 lines of a file I didn’t write to try to pick apart what’s happening where I prefer to have the syntax of non english characters such as the {} because visually that stands out to me more than words amoungst words…and before anyone says it, yes I know the equivalent VB to the {} will be an “end if” or something ergo coloured blue, but then you end up with so much blue everywhere it doesn’t stand out enough.
Also, goto lines are evil and should be shot - to support such a structure is a clear sign of a language that is catering for those you can’t follow a logical path - more readable to say “oh i then goto line blah” but not more technically evolved.
However - it’s just a language, I prefer German but I’m english, I don’t speak German in a room of English…so you just use the language that you have to at the time. As for programming, the dictation of that language will often depend upon who started programming the system or site in the first place, and company precedence etc.
A little yoke …
Someone is replay that C# sounds much powerful instead of “BASIC”.
If Vb.net is consider as toy language, because of name,
maybe we can call C# a “baby C” (in comparison with C++ …)
In that way we can solve that part of problem
This whole thread is pretty childish. Both compile both run and run well. It’s all a matter of preference. I can’t believe I wasted time reading part of this thread.