Roy Osherove

View Original

Am I the stereotypical VB programmer?

Oisin responds to my requests regarding VS.Net IDE enhancements:
"Roy, if there ever was a stereotypical VB programmer to be singled out as an example, it would be you.
Absolutely no understanding of why things aren't all like VB.
This post was enough to put me off reading your blog for good. Unsubscribed."

 
It seems I have succumbed to the stereotype of the VB programmer:

" Absolutely no understanding of why things aren't all like VB. "
 
m_readers-1.
I fail to see how you could have figured that out from my post. As a long time programmer I've used more than one language, and am involved in C# and VB.NET development for quite some time now.  It is not uncommon for a programmer who is versatile in more than one language to compare between the two, and even ask questions that might seem obvious to someone who is looking from deep down inside the trenches, or that has only "done" one language for most of his life, or is set on a particular style.
Want an example? How many C and C++ programmers, after learning the intricacies of C#, would take the trouble to learn VB.NET?
Does that question seem irrelevant? Funny? Stupid?
 
Why? VB6/VB.NET developers will most likely do this in regards to C#. This will mostly be due to job constraints, though, and they'll have a hard time adjusting, but a lot of VB.NET programmers realize that they need to learn it or they will be left behind in the job market(and I'm saying this as a guy who loved VB.Net).

C# folks feel less of that pressure, and so feel less obliged to do the opposite, but because they won't try this new "thing", they'll only have the point of view from "their" side of the street.
That VB.Net to C# move will likely yield tons of questions that might seem irrelevant/stupid/unknowing, but those are *exactly* the kinds of questions that C-syntaxers should watch out for. Their bringing a whole new way of thinking, a RAD way, into what was once the fort of the hardcore programmers. C# is more RAD than hardcore in its current incarnation, but many C#'ers don’t see it that way.
 
Now, the issues I've raised were mostly productivity issues, that could benefit *any* of .net's language's IDE.  If you're a hardcore C# fanatic who will have it no other way than "this is how it should be" – you've been warned – there's no real place in this profession for old,stale and unmovable thinking. If you can’t take a few questions that ponder "why" everything couldn’t be different, you're not open minded.
Hey, at least if you're gonna defend why some of these things cannot be changed, you might as well give out some good reasons, or explain why things are irrelevant to ponder on.
 
You know what? I know that I have a lot to learn. I know that there are lots of things with which you could 'enlighten' me about these subjects. Why not do the more sensible thing and instead of signing off with anger and fury – you could help the world out by helping one misguided stereotypical VB programmer "get" it.
I promise to listen carefully. But hey, you have to promise to listen carefully as well.

Going through what I suggested to be added to the C# IDE:

  • Background compile  - Should there be no background compile in C#? Why?
  • Case-insensitivity  - Why is Case sensitivty important? If its so needed, how could other languages do without it?
  • VB.NET-like Intellisense for enums and namespaces writing  - Why should this not be?
  • Automatic creation of "()" braces on method calls -  meaning that writing the following: MyMethod myParameter Turns into: MyMethod(myParameter) automatically.(VB.NET does this very nicely - saving lots of typing time)  - OK - how is this productivity enhancement "not meant" to be in C#?
  • With like functionality VB.NET - jeez - this is the part I miss the most.... - And this is bad beacause?

Can you exaplin to me each item - one by one - and why it's shouldn't be like VB.Net?

(I've just noticed that in that list - I wrote far more things that are missing in VB.Net that the C# list - just a thought)