VB vs. C# Culture, Take 2

Scott Greenberger defends the CLR6Coders to Scott Belware in an involving story about culture, Microsoft coding standards, and the developer Bell Curve. Before you read Greenberger's response, I warn you to skip the first half - as it's mostly a passionate response instead of an enlightened one. The second half is much more civilized, and thus useful to this evolving story. For the most part, I side with Scott Belware, but Scott Greenberger has some good points. I've snipped a few of the good ones for your (my one loyal reader, a VB coder) benefit.

What exactly is "VB6 styled work"? If you're referring to bas modules and design time data binding, I'd call that VB3 style work. VB4 introduced class modules, we used them. We read the patterns books and the anti-patterns books. We hung on the words of experts like Dan Appleman. We used "the other inheritance" and learned the value of encapsulation. We were not all point-click-and-ship developers.

It is my firm belief that language does not dictate culture. Culture is created and perpetuated by groups of like minded individuals. The cultural difference here is not between C# and VB developers, it's between serious professionals and hobbyists. I'll put serious VB developers in with serious C# developers any day. I'm not approaching this question as a question of language, I'm asserting that the language is largely independent of the culture, and that denigrating those who choose a language is merely a way of keeping them in their places and out of one's own precious world. Responsible leaders in the .NET community welcome all to the fold, and encourage enlightenment rather than sit atop the proverbial Mt. Olympus, looking down on the "Morts" with pity and disdain. Cultural sectarianism is learned, and often further exacerbated by those who feel that they must create and preserve their own identity by dehumanizing others. Based on your cultural experience, I'm surprised that you have not found it in your heart to separate the language of VB from the bad practices of some of its users.

By your own admission, the language constraints are practically the same in C# and VB. I reiterate that culture in the .NET community is NOT language based. Semicolons don't make you think differently. Problem solving skills are developed through exposure to a variety of problems and solutions coupled with unyielding critical thinking. Language does not constrain one's ability to think so much as it constrains one's ability to communicate their thoughts. I'm no less capable of feeling love of many different kinds because the English language only gives us one word to describe this group of feelings.

...to say that there are more VB developers that have not made the leap into this world than C# developers is not exactly the same as using the term "Visual Babytalk".

It's not that I don't believe the bell curve exists, I just believe that the curve is largely language independent. The opinions that you express are mimicked by a bunch of newbies who decided to take up C# based on the idea that they'll be better developers. I wish I had a nickel for every time I read "can someone post this in C#?" on a message board. An average developer is an average developer regardless of his or her language choice.

I always wondered about that... why can't they just convert it themselves? I have the O'Reilly book as a quick and dirty guide to tell me use static where they use shared. It's really not that hard. Sometimes I run into some interesting fun when the VB6 code uses IsNumeric, IsDate, etc. Depending on time constraints... sometimes I'll just use the Microsoft.VisualBasic.Information namespace (Is that the one? I forget). Anyway, I suspect that some people just don't have the time to do the conversion... but yes, some probably can't do it at all (thus representing the C# coder's to which Greenberger refers).

Scrolling down to the comments of Greenberger's post reveals a reply from Belware:

I want to clarify that I’m not trying to lump all VB developers into one group. I think that’s what Microsoft succeeded in doing when it created the Mort, Elvis, and Einstein personas. The original intent was probably not to describe developers of particular languages, but that’s ultimately the conventional understanding that evolved. I do want to sate clearly that I don’t think that VB is bad and C# is good in an as absolute way that you expressed in your post. I think you’ve taken a bit of license here. My position is that the CLR6Coder is a burden.

You can certainly argue against my position that the skills mean in the C# population is positioned further to the right on a curve that the skills mean in the VB population. I remain stead-fast to my position that due to the absence of the CLR6Coders in the C# population, the C# skills mean necessarily benefits relative to the VB skills mean. And of course, we have to measure the same set of skills across both populations. I’m culturally biased to giving application and code design skills more precedence knowing full well that the CLR6Coder might not pay application and code design as much consideration.

“B” is for “Beginner”, as in Beginner's All Purpose Symbolic Instruction Code (BASIC). BASIC and its derivatives are where many new programmers enter the fray. The VB population has a greater number of beginners because of its standing heritage and conventional perception as a starting point. This is going to have an affect the measurement of the median point of software development skills across the VB population. I’m not saying that you have to abandon VB once you become an intermediate or advanced software developer – VB on .NET more or less puts that to rest to a great extent. I am asserting that the VB population has a greater number of newbies in its ranks than the C# population, and I think this is reflected in the tools and techniques employed _on average_ by VB and C# programmers.

Awesome. I feel like a midget among giants. Well thought out all around.

posted @ Monday, February 14, 2005 6:08 AM

Print

Comments on this entry:

# re: VB vs. C# Culture, Take 2

Left by mike at 9/11/2006 6:23 AM
Gravatar
Dear Friends,

I have been reading a lot about which language is better-
VB vs C# ?

Most techies have strong view points, but they are all based on 'geeky emotions' rather than logic or even common sense.

People say they should use C# because Microsoft is using it, or because it looks complex, or they have to type less, or that C# looks like a computer language and VB does not, or that C# programmers are smarter or that C# programmers are generally C++ programmers and hence they must be good because they can understand all that ridiculous code.

Well, if writing cryptic code = smarter people, then the richest people in business would all be C++ programmers or the leaders of this world would all be ex-programmers. I am not sure if that IS the case.

How many CEOs of medium/large companies are ex-programmers (except for a few CEOs of tech companies)? How many presidents,prime ministers are ex-programmers? None.

By the way I am a programmer myself, and have been for 20 years, and probably a geek too, in many ways.

What is the point? It is simply that we, the programmers, often enjoy writing and looking at cryptic stuff. It gives us a feeling that no one else can read it, and hence we must be smarter. And in doing so we fail to look at the 'big picture'. Big picture could mean many things- What works better? How to save time? What is better for the business? Why are we developing this application? Is there a better and simpler way? And so on.

I think a 'good' development language is one, which allows us to perform the most common (needed) functions in the shortest possible time, and offers a short learning curve, and is relatively easier for another programmer to comprehend.

Based on that- VB is much better, for ALL business needs. May be or may be not for systems programming-- I do not know.

Here is a link from Microsoft. They do not say, one is better than another, but read and decide for yourself, which is easier AND better for business-- the most common use for programming languages.

http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q308470

I have neither programmed in VB or C# before, but one need not be a rocket scientist to realize which offers shorter development lifecycles. It is certainly VB.

I am not saying C# is 'bad', it is just that it still contains most of the 'primitive' stuff- bad syntax, confusing pointers which are probably never needed in 99% of the applications, hard to read, etc. etc. Remember, C was developed for controlling telephone switches, and at least to me, it still looks that way!

Thank you for reading this long note.







# re: VB vs. C# Culture, Take 2

Left by Steven Landers at 11/19/2009 12:25 AM
Gravatar
The above article wasn't a C# vs VB article...it was a 50th percentile VB programmer vs a 50th percentile C# programmer.

Interestingly - "Business," in and of itself, has a use for Computer Science, but it's fairly limited. Analyzing small sets of structured data, digital filing cabinets, and online forms make up a lot of it, no? We need computers for more than this...actually.

If the programmer can't quite figure out why you'd ever need strong typing or case sensitivity, then sure...I reckon VB would feel like the best option.

Honestly, try writing something with a million lines and integrates with OpenGL-integration in VB. Holy crap.

The "simpler" argument doesn't actually hold as much water as we give it credit for. Consider the difference between "Empty", "Null", and "Nothing". A While ends with Wend, a For ends with Next, and a If ends with End If. Where is "End For", "End While"?

Why doesn't a while statement require a "do" if an if statement requires a "then"? It doesn't....because it just arbitrarily doesn't.

Now consider the concept of "Null" alone....and the { and } alone. Simpler, no? Yes it may require a 5 second explanation - but is that really a hurdle? Isn't it a hurdle you'd WANT your programmer to be able to overcome?

Sure, C# isn't straight-english....but neither is Mathematical notation - and for good reason. It's because not everything is 2+2....sometimes you need something a bit more syntactically flexible and powerful to describe something very complex very concisely. Take Integrals, for instance.

What if you want to control just how much memory your program is using? Say a short makes better sense than an Integer? Perhaps we want to make sure that a List object is being passed to our publicly-available method? Not sure what I mean? Yep, I recommend VB for you. In fact, I'd argue that's why the language exists.

It comes down to: If you had to hire 50 capable programmers...who would you hire? If you need someone who could quickly learn Perl, Java, Javascript, Actionscript, Objective-C, or C++, who would you go to?

Have we ever searched for VB examples on the web? Take a quick sample of the forum topics and discussions that appear. Where are the rich communities? Where are the bleeding-edge/technically-passionate VBers? There are a few ferociously-defensive ones - rest assured. Programmers should "like to learn", no?

The "It's easier to read without knowing the language" argument doesn't deserve a lot of credit. How often do you have non-programmers tackling your code? Yikes.

There are trends in programming, and VB hasn't followed them for years. Unless VB provides something in return for that, I'd say it has some explaining to do. Luckily, it speaks English.

Salaries are also a valid metric in this arena.

Your comment:



 (will not be displayed)


 
 
 
 
 

Live Comment Preview:

 
«November»
SunMonTueWedThuFriSat
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345