Saturday, July 02, 2005
« MIT blog research paper - do your part! | Main | Microsoft Names Magenic Worldwide Partne... »

In a reply to a previous entry on the Mort persona, Dan B makes this comment:

 

I've written about this before, but I'll say it again - I think the dilemma VB faces is the dichotomy between being taken seriously as a modern OO language and the need to carry along the Morts. It's the challenge of balancing the need to distance itself from some of those VB6 carryovers with the need to keep those millions of high-school, hobbyist, etc. developers buying the product.

 

My previous post wasn't really about VB as such, but more about the "Mort" persona. That persona exists and isn't going anywhere. There are a whole lot of Morts out there, and more entering the industry all the time. Most developers are professional business developers and thus most developers fit the Mort persona. That's just fact.

 

Whether this large group of people chooses to congregate around VB, C#, Java, Powerbuilder or some other tool doesn't matter in the slightest.

 

What does matter from a vendor's perspective (such as Microsoft) is that this is the single largest developer demographic, and so it makes a hell of a lot of sense to have a tool that caters to the pragmatic and practical focus of the Mort persona.

 

If this is VB that's awesome and I am happy. But if enough Morts move to C#, then C# will be forced to accommodate the priorities and requirements of the Mort persona. Microsoft has proven time and time again that they are very good at listening to their user base, and so whatever tool attracts the overwhelming population of Morts will ultimately conform to their desires.

 

Don’t believe me? Why does C# 2005 have edit-and-continue? Because so many Morts went from VB to C# and they voted very loudly and publicly to get e&c put into their new adopted language. I know a great many Elvis/Einstein people who think the whole e&c thing was a waste of time and money – but they’ve already lost control. And this is just the beginning.

 

In other words, for those Elvis and Einstein personas who evangelize C# my words are cautionary. You are outnumbered 5 to 1, and if Mort comes a-calling you will almost instantly lose control of C# and you'll probably feel like you need a new home.

 

The irony is that you’ll have brought this doom on yourselves by telling the vast majority of developers that the only way to get your respect is to use semi-colons, when the reality is that the only way to get your respect is a fundamental change in worldview from pragmatic and practical to elegant and engineered - and frankly that's just not going to happen.

 

Most people are in this industry only partially because of technology. They are driven by the desire to solve business problems and to help their organizations be better and stronger. It is a small subset that are primarily driven by the love of technology.

 

If this ratio is changing at all, it is changing away from technology. Tools like Biztalk and concepts like software factories and domain-specific languages are all about abstracting the technology to further enable people who are primarily driven by the business issues and the passion to solve them.

 

But I don’t see this as hopeless. As one of my fellow RDs mentioned to me a few weeks ago, in Visual Studio 2005 C++ is finally a first-class .NET language. To paraphrase her view, Mort can have VB or C# or both, because the real geeks (the Elvis/Einstein types) can and will just go back to C++ and be happy. But the truly wise will geeks will use both where appropriate.

Tuesday, July 05, 2005 1:48:47 PM (Central Standard Time, UTC-06:00)
Rockford,

Don't you think the process goes both ways? If Mort's are forcing certain changes in C#, it is more so that the C# is changing the habits of Mort's. True OO, for instance, is not going away, and as more former VB developers discover its benefits they'll naturally embrace it. I also believe that not all of Mort's existing habits are purely due to business imperatives; the evolutionary constrains of VB, as well as the peculiarities of COM that fundamentally affected the implementation of object orientation in VB6, also played a crucial part in forming Mort's world view. When these technological constraints are lifted, few Morts will fail to take advantage of the new possibilities in code sharing and performance enhancements, and modify their practices accordingly if needed.

The interaction between technology and business needs is bi-directional. Just as business needs dictate the development of technology, the limitations of existing technology also affect the way business needs are satisfied.

I agree that in the coming years Mort will have an increasingly important voice in the development of the C# language. But the changes that we'll see will mainly be convenience-related features. C# will be enriched, but not dumbed down. The fundamental ethos of the language will remain intact--its keepers will make sure of that.
Tony Chow
Tuesday, July 05, 2005 7:04:04 PM (Central Standard Time, UTC-06:00)
I think you are correct Tony, but only within limits. If you look at VS 2005 for instance, the serious Mort-focused improvements aren't so much in C#, but rather are in both VB and the BCL. VB, because it gained a host of productivity improvements and the BCL because of the massive productivity improvements in Windows Forms, Web Forms, data binding and ADO.NET.

The primary area of productivity gain for C# are the IDE improvements. Things like decent Intellisense, auto-correction and edit-and-continue. And those are awesome improvements!

But when you look at iterators or anonymous delegates, they pale in daily utility compared to the things that would be REALLY nice. Specifically an equivalent to WithEvents and explicit interface implementation syntax similar to VB.NET. The current C# interface approach is much more comparable to VB6 - it sucked then and it sucks now...

My point being that you are right to a point, but the massive numbers of Morts will have a bigger impact on C# than C# will ever have on business developers. And honestly I wouldn't put nearly as much faith in the keepers of C# as I would in Microsoft's marketing drive to satisfy their customer base.

Today that latter drive is tempered by the existance of VB, because hard-core productivity enhancements can be diverted to VB rather than C#, and the misplace Morts that are using the wrong language can suffer by their own hand. But if some "C# revolution" does occur then C# will have no choice but to accomodate its primary constituency - the business developer.
Tuesday, July 05, 2005 10:28:53 PM (Central Standard Time, UTC-06:00)
There has been a substantial Mort influence in the ASP.NET 2.0 runtime, too. Just witness the "project-less" web project and the special folders like App_Code. Throw anything in and the runtime will figure out how to compile it and bring up a site.
Thursday, July 07, 2005 1:12:00 PM (Central Standard Time, UTC-06:00)
Rocky, you make excellent points here. I don't disagree with anything you say per se.

But we must remember that Microsoft cares about only about making money, as is the rightful purpose of any corporation. C# doesn't have WithEvents because it HAD to be more java-like and less VB-like. It had to - that was its purpose. For the same reason there will be SQL Server Express 2005. (Hint - Don't think for a minute that Gates doesn't shake in his boots at the thought of what Linux, MySql, java, etc. could mean to the MS empire)

So, while what you say is true, there is another side - namely that C# had to be, and must remain, very UN-VB-like. Before .NET, in the general sense there was just C++, java, and everything else. Not that there weren't millions of VB developers writing great applications and solving business needs - but what was being taught in universities? What was spreading to embedded apps, mobile devices, etc? (Hint - nothing from Microsoft). C# was clearly aimed squarely at stopping that juggernaut, or better yet at becoming part of it.

Daniel Billingsley
Friday, July 08, 2005 7:36:01 AM (Central Standard Time, UTC-06:00)
Yes Dan, but times change. C# was what it was because it is in the C family, just like C++ and Java. The C-style development community is very important to Microsoft as well. While the business developer is the primary focus, to be successful overall Microsoft needs to also have people who work on operating systems, device drivers, embedded systems and other C-style specialties.

But now in 2005 C++ has finally become a first-class .NET language. Now there's a clear home for the "real programmers". A hard-core language and environment that has a barrier to entry that is much higher than the fluffy world of VB/C#.

Even today C# is 99% equivalent to VB. It is only lacking a couple features to achieve full parity with VB. The reverse is true as well. Any pretense of superiority by users of either language is woefully misguided.

Now C# _could_ become geekier, but only if it isn't a Mort-focused language. And VB could become more Mort-focused, but only if Mort remains the primary user. Personally I think it is more likely that VB and C# will remain in lock-step, with immaterial differences between them at each release point. Much like a DNA strand, they'll each try 2-3 new features in each release and the features people like will go into the other language at the next release. They'll be inseparable.

And the "real programmers", the ones who need to be different to feel elite, can go back to C++ and be happy.
Tuesday, July 12, 2005 3:08:05 PM (Central Standard Time, UTC-06:00)
I would agree with all that - except that any such feature that makes C# less a player compared to java won't make the cut. WithEvents for example will never be a C# feature. (Please don't tell me it's in 2.0 and prove me wrong! LOL) That is to say, I think C# must move in lockstep with java, like the C compilers have done over the decades. I still say everything else, as accurate as your predictions may turn out to be, is secondary.

In the end, we may both be right, and we're probably not really disagreeing that much.
Daniel Billingsley
Friday, July 15, 2005 2:00:07 PM (Central Standard Time, UTC-06:00)
Rocky,

I'm looking forward to the next release of Expert Bus. Objects (CSLA) for C# 2.0

Will the VB and C# versions be coming out at the same time?

I'm curious as to how version 2.0 of .NET will change your security and databinding models of business objects.
Friday, August 12, 2005 3:03:24 PM (Central Standard Time, UTC-06:00)
I really enjoy your Mort articles. There are few things about .Net that bug me as much as the endless C# VB bickering. I think the "Mort" personna really nails it. In my own view, most of the people who throw stones at Mort, often in the C# vs VB mode, don't seem to realize that they themselves are Mort. It is difficult to imagine a real Elvis or Einstein failing to recognize the fundamental identity of C# and VB. But, as a Mort, the thinking processes of Elvis/Einstein may be above my understanding.

Using "Mort" in the third person (as in "the Morts") is akin to the universal belief that "I am an above-average driver".

John Brown
Comments are closed.