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