tags:

views:

1262

answers:

16

Having spent time on Reddit and (gasp) Digg, I hear a lot of trash-talk on .NET and MS products, and a lot of interesting talk about other languages. As a (second gasp) Project Manager at a small software company utilizing VB/.NET extensively, I'm not sure what's so bad about it.

Can someone tell me where it falls short, what would be a better platform for a software needing high-reliability, simple and intuitive GUI, since most of our clients are used to DOS interfaces, and scalability between let's say 5 to 100 users depending on the configuration? Currently SQL Server in the background.

PS - Feel free to ask followup questions for more info? Also no I am not the type of PM you read about on these sites, and no I won't ask you to build an OS for $10-$100

Thanks!

+9  A: 

There's nothing wrong with VB.net -- it's a perfectly cromulent language. It's all CLR in the end.

The reasons I've seen some of my clients switch from VB.net to C# is that there are a lot more samples, community documentation, etc. for C# than VB.net. The usual flow I've seen is:

VB 6.0 -> VB.net (because of the body of experience on the dev team) VB.net -> C# (once they know the framework, and realize it's not a big jump)

Danimal
vb.net developer here. I think if c# is the third or higher language you learn then it is not a big jump. I think if c# is the second language it is a big jump. I am planning on taking the plunge soon by doing a self-imposed c# project. But I am not looking forward to the requisite brain re-wiring. Seth
Seth Spearman
The "It's all CLR" in the end argument has always bugged me. It's like saying, it's all object code in the end.JavaScript.NET also produces CLR, but the resulting language is 200 times slower than C#.
zumalifeguard
A: 

Hate to bring this up, but...

What kind of questions should I not ask here?

Avoid asking questions that are subjective, argumentative, or require extended discussion.

Loren Segal
Hate to bring this up, but.. what kind of answers shoud I not give here? ... This should have been a comment.
petr k.
-1: Not a very useful answer.
Cameron MacFarland
+3  A: 

Having worked in shops with mainframe, java and .NET . It has been my experience that .NET is by far the most productive and cost effective technology.

VB.NET and C# are the way to go imo,

Bob Dizzle
+4  A: 

It comes down to religion. Some people just hate the Microsoft stack in general. They start from there, and then they make their judgments. There is a great religious debate between VB.Net and C#. I have worked with both, and both are fine. I prefer C#, but I am not a zealot about it and I don't want t work on a team with anyone who is. They both use the .Net framework, and any differences are minor, especially in the later versions.

Here is the question. Why did you choose VB.Net? What are your goals? Does your team like it/accept it? Do you know of any goals that the .Net framework in general might not be ideal for? If your team is fine with it and it works for you, then Rock On! And don't feed language/platform religious trolls.

Charles Graham
+1  A: 

I love VB.NET's XML Literals in the newest version of it.

Thomas Danecker
+1  A: 

The biggest problem I have seen is the name.

Old VB had garnered a reputation over the years as a sub-standard language that was aimed at beginner coders, and when Microsoft named the new language VB.NET - that rep leaked right over with the name.

Even though VB.NET is just as robust as the other .NET languages, it got slandered because of the name.

Unfair perhaps. Marketing plays those tricks sometimes.

MikeL
+1  A: 

I don't think there's anything wrong with VB.NET. VB got a bad rep because of bad VB coders, which were a product of the time (mid to late 90's), so people carry that with them when thinking about VB.NET.

Giovanni Galbo
A: 

It may simply not be "bad" for your needs. In my opinion, VB.NET definitely has its uses, and is a far better language for RAD purposes than VB 6 was. It has solid OOP support, a rich class library, and is very well supported on the Windows platform, if that is all you need to develop for. It's even getting cross-platform support recently thanks to the Mono project.

It all boils down to your needs, and your history. A VB.NET developer transitioning from VB 6 would likely be more efficient than doing the same thing in C#. But on the other hand, the language may be disqualified entirely if what you need is performance on the level only e.g. C can provide, if you need to do development closer to the system, or if you want more reliable cross-platform support, not having to trust a third party for that.

Jonas
+2  A: 

I believe a lot of the criticism on VB.NET stems from the developer culture in Visual Basic in general. I.e. VB programmers don't know any OO-programming, are relying on wizards or whatever. But then again, Reddit and Digg is probably not a reliable source for criticism (fanboyism). I'm sure there might be a good VB-developer around... unfortunately I've never met one IRL.

I find it to be a real shame because the .NET-framework does have some interesting features and things, especially if you look at C# and other languages supported in the framework.

Regarding clients "used to DOS interfaces", the only clients that I know of that use a terminal-like interface nowadays is either banking or the military. Other than that, a text-filled interface is not the way to go in this century and age (talking from a usability point of view). Simple and intuitive GUI only comes from good planning and exhaustive usability testing (which is not as common as you may think) and that is regardless of any platform you use.

Spoike
thanks for the answer. regarding text-interface, a lot of the requirements are driven by transcription, rapid data-entry. this is why many are on text interface software solutions, even in 2008.
leemy
A: 

VB.NET scales just as well as any of the CLR languages so many of the arguments that you may have heard are about classic VB. VB.NET is enterprise strength, classic VB is what got it the bad and undeserved reputation.
VB.NET is a very good, robust, powerful modern language (much like java and C#) and I have taught several new developers how to program in it. The discussion that is left comes down to it being about preference of flavor.

The preference problem is in reading code. Different developers read code with different visual cues. Many developers don't like the symbols such as { or } or the order of how objects are declared. VB.NET is slightly more conversational and uses full words and excludes many symbols.
Having programmed in C++, C#, Java, and VB.NET. They are all really pretty close and many things come down to preference. The discussions that are a fair comparison would be to compare .NET languages and JAVA to other languages that are more on the fringe such as Python, Squeak, Ruby, and LISP.

Stradas
Off-Topic: We call it "Lisp" (notice the lower-case) since about two decades now ;-)
gimpf
No argument. It is in caps on the cover of the Lisp book in my office.
Stradas
+1  A: 

For me the only thing VB.Net is lacking is the Yield Keyword and it more than makes up for that with XML Literals

Rory Becker
+5  A: 

VB.net gets a bad wrap because of it's relationship to VB6, and the derision VB6 got for it's half-hearted attempt at object-oriented-ness. In practice, VB.Net is very capable.

Joel Coehoorn
A: 

I'm currently converting a VB.NET project into C# 3.0 and i'm really shocked by what i'm seeing. I know the developer who originally wrote the VB code did some obvious errors. But what is shocking is how the C# compiler is more strict then the Vb.net compiler. here is a simble example.

You store a house object in your asp.net session variable. Then in VB.NET it is perfectly allowed to assigned this Session["House"] to say an integer NumberOfHouse as example.

Well this was shocking to me because despite having more then 10 year of commercial programming experience, i never did anything serious in VB.

I also saw many other similar things but this particular example really shocked me. I'm i just overreacting or did i misunderstood something?

Cheers

K

I don't think that Session["House"] example would occur if Option Strict was on.
cdmckay
Yeah there are ways to make the VB compiler more strict, but most people don't use them. This is one of the ways VB gets a bad rep. If a decent dev writes decent code in VB.NET it's just as good as decent code in C#, regardless of the compiler options. Also you can still write atrocious code in C# so it really comes down to the developer.
Cameron MacFarland
A: 

For me its the type casting that made me switch. In one project there was much casting involved, and soon I became sick of the Convert class and longed for Java style casting. At that point, i switched to c# for my .net programming

Midhat
+2  A: 

VB.Net is often disparaged because of the typical developer working with VB.

Microsoft internally divides developers into 3 personas:

  • Mort (VB), a "cut & paste" dev who only cares to get the immediate assignment done and doesn't care at all to understand what is happening or expand their skills.
  • Elvis (C#), focusing on getting the job done but also interested in learning and quality of the overall product. Happy to use libraries as black boxes without deep understanding.
  • Einstein (C++/assembler), eager to understand the whole system from hardware onwards, not happy with black boxes.

Of course, there is a plenty of overlap and exceptions, but these are the dev personas MS targets their products to. A typical VB.Net developer comes from a VB background, and does their learning through semi-coercion (threat of losing their job) -- I'm sure there are exceptions, but this is a common perception. On the other hand, C# people are perceived to come come from a (perhaps not strong) C/C++ background, moving to a more productive platform.

With VB.Net, watch the quality of your job applicants and proportion of Elvises vs. Morts.

As far as language itself goes, VB is at least as good as C#, they both use .Net.

dbkk
A: 

I prefer C#, but only because I was familiar with C and was never a VB6 programmer. C# is also slightly more concise and as others have said there are more examples out there in C#.

Nothing wrong with VB.Net though, except tiny niggling doubts about Microsoft's long-term commitment to it.

Alan B