smithvoice.com
 Y'herd thisun? 

“The main requirement is for commerce to replace politics as the driving force behind space policy”

from Spaceflight Revolution by David Ashford

VB.Next or bust?

TaggedCoding, VB, Flash

The public face of the smithvoice.com sitelett is just a tiny thing, mostly a place where I put bits that I need to remember myself and see no reason to keep only to myself. Not every single newsgroup answer is copied over just to add bulk (if you want to see those, do a google groups search for "Robert Smith" and "Kirkland, WA" or "www.smithvoice.com") and not everything we do or talk about with close friends goes into the left-hand navigation tree.

Maybe that's wrong. Maybe that's not helping. VB is again under attack and maybe more private things should be openly talked about.

Recently I was speaking with someone about a non-Microsoft programing option and admitting that I was very intrigued by it. They asked "So are you going to be putting those tips on your site?" and I said "No, because I love Visual Basic. If I really wanted to showcase that other tool I'd buy another domain and alias myself so it couldn't come back as a negative on VB."

It's funny, over the years we've bonded to Visual Basic to the point where we consider it a "best practice" to push the good of it and leave out any points against it. We've been doing it for a long time now and we feel that part of what keeps us happy is that not everything is easily done ... and we like the fun of making the tool do even things that MS says it can not.

At least that was the way we all were and what the great fun of VB was in its earlier days.

Visual Basic was considered by the respected C++ managers to be a "toy language", for quickies and one-offs and unimportant little things. And VB people all over the world worked hard and rallied together to prove that VB was more than that. We pushed the tool in word and deed. We were scrappy and committed because it's great to have something to prove and to be part of changing reality.

With .Net Visual Basic got what most everyone said that they wanted. Better access to primary systems, better OOP and easier deployment. To me, .Net was the most excellent evolution of VB. A lot of people scream otherwise but here's the way I look at it:

1) RAD. High level object interfaces with the ability to get finer and deeper control if you want it, helping the developer concentrate on the solution instead of the infrastructure. That's VB. That's all of VB. That's what Delphi tried to do but never made it in numbers. That's what Java tried to do but never made it in numbers. VB defined RAD solution oriented development and VB.Net is just as RAD as ever for form and library development and now has even more power under the hood. For widget users, components come now in managed versions, and if we don't feel like buying new then thanks to Interop we still have our ActiveX drop-ins seemlessly at our disposal.

2) The runtime grew from the 1.3MB VBVM to the 100MB CLR. According to Microsoft that would get incorporated into the operating system soon after 1.0's release so we wouldn't have to think about it. Remember back to when that was going to happen as part of XP ... and it didn't. MS never even made the CLR a required download from Windows Update. Instead the pollination of Windows machines with the CLR was forced upon .Net developers, just like VB always had to do..

No matter how you slice it, .Net is all VB, bigger and badder than ever :)

What of C#? To me, it's little more than a marketing trick. Visual Basic was the most popular programing tool ever created. Users of other tools wanted the basics of it (excuse the pun) but at the same time, being human and prone to ego, they could not condescend to using "B.A.S.I.C." and so while they drooled over the power they for the most part didn't ever look hard enough at the VB product to see that it had in its ten years evolved far beyond its "B.A.S.I.C." roots.

Microsoft figured this out to a point. And they did a very smart thing: they put a wrapper around the VM that let non-VB users feel comfortable. As I see it, that's all they really did; They enhanced the VB runtime to give VB developers what they always said that they wanted and opened the door for others to get what VB was really all about without having to admit that they were using "VB" (The concept of solution-oriented development was what made VB huge, not the syntax).

It seems so incredibly funny to me that back in the classic days of VB4 C++ people all said that it was not a real language because it wasn't compiled to native code - yet they don't see the same issue with C# today? And always there was the laughter at the size of the install packages that VB classic used (even when it made truly compiled exes and dlls as of VB5), but now the 25MBĀ dotnetfx.exe that's required for a virgin machine to run C# is completely ignored.

This is the kind of thing I mean when I say that "ego" and being "human" are a more driving force in technology than bytes and bandwidth. ("Ego" is not used to suggest "egomaniacal", but rather the level of self-assuredness that's required to get a person out of bed every morning.)

There is no significant speed or power difference between VB.Net and C#. There are tiny little IL samples that everyone BLOGS to each other where VB.Net adds 10 lines extra (without Option Strict being turned on) or where C# requires an extra 10 right in the code to get something simple done. In the end it's a wash and a tie.

Why does this silliness continue?

Aren't we the smart ones, we technical people?

Well, like the magicians say, we are the easiest to fool. We are human and very few of us have the strength to get past the little lies we tell ourselves every day. We all bought into whatever tool we use, we convinced ourselves that we were making the right purchase and it takes a real effort to honestly analyze our beliefs after years of investing our own time and money in support of them. Advertisers, Marketers and Organized Religions all bank on the fact that without a major slap in the face we'll all fight to the death to keep warm in our misconceptions.

Jeff Richter is one of the most respected VC++ people in the world, he says the rote line 'All languages are equal' but he also says that 'C# is the better tool'. He said that flat out to me over dinner at a WinDev. Human. He has his followers who hear only the part they want to hear to make themselves feel special. Human.

Founder of APress and Desaware, Dan Appleman is an older C++ veteran, I believe that he has a bit more real-world experience with a lot of different tools than most of us have (including Mr. Richter). And after some analysis he says about the bits and bytes "There is no difference at all" ( see: his new eBook on VS 2005 performance )

The fighting goes on and Microsoft makes money from both sides. But for how long?

I used to work for a mature company that had a cash-cow brand with such a marketshare that it seemed they could bend the rules of focus and get away with it. When I raised the issue that customer loyalty was being damaged by a relaxed attitude towards presentation of pride, a woman I worked with said "Don't worry Bob, this place will survive in spite of itself". Guess what ... that cash-cow long-term market leader whittled its brand away and now it is no more. Who was to blame? Not the competition. It was the insiders. Those who stood the most to lose let it all be lost.

VB has had a glorious history. But like Rome near the end there is a big danger growing and it's growing from within. VB6 developers are not moving to VB.Net in any way as quickly as C++ and Java people are moving to the marketing face called C#.

I don't understand people blaming Microsoft for giving VB what we said it needed. To get the radical new features and options would of course mean having to accept some radical changes that would inevitably have to be made to the language.

I do blame Microsoft for not thinking through their choice of letting their VB support and VB-targetted technical marketing employees publically use C# examples where VB was 100% applicable and fitting the specific audience. I believe they greatly underestimated the amount that non-technical emotion has over technical purchases. (I also believe that they are a very smart company and they know that it's not too late to make a huge difference by making a point to publically show that they not only made VB.Net a real tool, but that they themselves consider VB.Net a real tool.)

But at this point, three years after the release of VB7, I have to mostly blame all upgrade and migration stagnation on the users themselves - those who have the most to lose over the long haul.

The VB newsgroups are still crowded with the whining. What happened to the scrappy group out to take over the world? What happened to the people who said "give us real OOP and windows services and make us officialy equal to everyone else"? We got what we asked for and found ourselves fat and lazy and more interested in crying than getting back to the powerful unified force that made us worth Microsoft's time.

Harsh? Ok. But without any official usage numbers ever being released from Redmond we can only call it as we see it. There are some VB.Net shining stars but mostly the C++ and Java devs whooshed into the trap and with their feeling that they have something completely new (thanks to nothing more than syntax style) they are waving the victory flags. Our sitting back and sticking to VB6 is simply letting them take over what could be our future. VB is the parent to this child and we're to blame for every bit of ground that we're now giving back, ground that was hard won.

I go into groups and forums and sometimes can't help but debating this with VB6 people ... been doing it now for a few years. And y'know what? It's starting to get a little old. So many stick in the muds not seeing the that they're simply spreading FUD. So many people who prove they don't care about VB by their not evolving with it and using it to show those C++ people how best to use a RAD tool. So many people not seeing that Microsoft is watching and planning years ahead based on the level of interest that they're seeing today.

So what was that non-Microsoft option?

Flash MX 2004 with ActionScript 2.0.

Yeah, I'm serious.

I'm not much sold on php/coldfusion back-ends but for front-ends and a good chunk of business logic it's turned into an real consideration. It's like an early VB with its deceptively simple drag & drop IDE and a code engine that's been dramatically growing in power with every release.

If you're laughing then you've let this sneak up on you and you might want to do some research.

Look around, even all over the Microsoft site Flash development and usage is growing. It sure looks like early VB to me, get a VB3 dev in to make prototypes and soon he's making little real apps and then he's got some buddies and then some more. Right now it's lone Flash designers sitting next to VBers and over time, if the VBers don't get back to working on the leading edge, those Flash designers will be allowed more and more to use the code that's sitting under the MX hood. The more it's used the more Macromedia will put into it (just like VB).

Call it what it is: The VB snowball effect.

ActionScript is OOP. Flash MX and MX 2004 do web services and sockets and binary object remoting (2004 Remoting MX even does .Net Datasets). Components can be compiled into drop-in widgets and code libraries and both can be early or latebound.

ActionScript is also very C-like (If I weren't a VB person I'd say it is very Java-like. I'm human too.), so the still-in-power C++ people are more likely to accept it instead of VB.

Is it perfect? Not at all. Neither is the CLR and neither is C++ and neither is Assembly. Is it fast enough for users? How fast is your favorite web-based "application"? Now take out the page_load render time because a Flash app sits locally and just calls for lean data. A lot like Auto-Deploy with Remoting that we've had since .Net 1.0 but in Flash's case it's the norm, not a woefully underused option.

Flash's "Framework" is already on 94-97% of all end-user machines (Windows, Mac, Linux, Solaris, PocketPC, cellphone). Plus, you can simply compile your rich Flash application to a standalone Windows or Mac executable and forget the browser altogether. All from one codebase, not one extra tweak required for your app to run exactly the same way nearly everywhere.

Next time you're in the bookstore flip through the "ActionScript 2004 Bible" and "Flash MX Professional 2004 for Server Geeks". Especially look at the sections on Components (similar to OCXes and DLLS) and Screens (a new interface option specifically targeted at Visual Basic migrators, taking the timeline out of the equation).

Laughter can be a good sign of a coup being well executed. Their infrastructure is in place.

Strip away the misconceptions of what is "best performance." Users really don't care that much about speed any more, they're used to putting up with the web. Compared to the time it takes to sift through all that ViewState and render the same pages from scratch over and over again, do even a hundred extra lines of IL really mean anything? What matters is what works and what works is what developers put their sweat and dedication into.

The biggest concern we should have is that the Flash community is scrappy, out to prove that they are real. VB appears to be letting itself become the weakest enemy and an absolutely wonderful target. Imagine how fast the respect level will go up if Flash takes gigs away from VB ... Flash people are working on that right now.

I love Visual Basic with great passion. Microsoft taking their time to put an obvious and focused excitement back into the product is troubling, but what's astonishing is the complacency of the VB customers who never before let Microsoft's view of the product stop them from learning the latest, pushing it beyond its limits and making it a tool to be reckoned with in the marketplace.

Unless that big chunk of VB6 people starts getting with the program Microsoft might just start looking elsewhere for enthusiastic customers... in fact, if current releases are any indicator, they might already be considering a new non-VB initiative.

Robert Smith
Kirkland, WA



home     who is smith    contact smith     rss feed π
Since 1997 a place for my stuff, and it if helps you too then all the better smithvoice.com