Reformation of a Visual Basic programmer II

Reformation of a Visual Basic programmer II


Last week I mentioned that I enjoy programming in Visual Basic and suggested that people shouldn't act so superior and look down at dweebs like me who program in dweeby languages. Today let's talk about why Visual Basic is an awful programming language and anyone using it should run kicking-and-screaming away. (I'll admit that kicking and running may be difficult to do at the same time.) Run away, not because it's lame, but because it's so horribly unfree.

Who owns this thing?

People sometimes question free software projects because very often no single organization stands behind them. Who are you going to hold responsible for Program X when it is causing a problem for Corporation Y? We've seen there are many support models to be had with free software, yet still there is this concern about ownership and responsibility.

It's so much better if a company stands behind a product. Take Visual Basic, for instance, backed by the full faith and credit of the Microsoft Corporation. No one ever got fired for buying Microsoft, I think the modified saying goes. Except of course Microsoft can really stick it to you when they change the game and you have no alternative. (Or an unattractive one.) Which they did with the move from VB6 to VB.NET. Here they had a thriving language with millions of users and they made significant changes that broke compatibility in important ways. Cries of outrage were heard from around the community. But did it do any good? Not that I'm aware of.

The lesson is that with a programming language/environment like VB, you're at Microsoft's mercy. It sounds obvious, probably, but it still surprises me that Microsoft would make such a boneheaded move and make it so glaringly obvious how much this can hurt you. Companies have made huge investments in previous versions of VB up to 6, and now they are faced with a very expensive migration. In a comparably free software project, with so many people unhappy about the change, it's virtually certain that compatibility would be maintained.

(Parenthetically, I think VB6 and applications made from it will work for a long, long time. No doubt they will work in Vista. The villagers would march on Redmond with torches and pitchforks if not. And then I suspect it will take 8-15 years for the next version of Windows to be released, if Microsoft is even pursuing the same business plan at that time. But still, how many people want to travel on an evolutionary dead end?)

Sharing (who doesn't own this thing?)

Even if Microsoft hadn't demonstrated so clearly how little they value the investment made by their customers in VB6 applications, I would have had to eventually ditch VB in favor of free software. Because the more I followed the free/open source software movement, the more I wanted to take part in it, to make contributions whether in code or documentation or promotion. And it would be silly to work on GPL'ed VB code. A non-free language on a non-free platform. Maybe there are people doing it, and I don't want to belittle their efforts, but it seems pointless.

My experience in mining for VB help and sample code also highlights a difference that pulls me to the free software side. There are a lot of helpful people in the VB community. Great forums and web sites, filled with useful suggestions and code. But as often as not, the samples you find have all these niggling restrictions on them. You can use this code in your compiled application, but you can't share the source code. Or it's for noncommercial use only. And so on.

Not to be ungrateful, since these little snippets and classes and utilities teach me and save me time, but come on. Why are they putting out these samples? Probably to help people. Very admirable. But does the person that makes a handy CRC32 class really think they're going to get rich off of it? Or are they afraid someone else is going to use it and by doing so make a million bucks?

If you're going to put source code on the net for all to see, make it free.

I do sound ungrateful, don't I? It's just that it seems so petty to put restrictions on relatively small bits of code when you look at the free software movement and all the great code out there that is freely available. It feels so right to make software this way. I want to work as part of a community that explicitly defines the freedom we have to work with software. That values and encourages sharing, with no strings attached. Except that you must share in turn. Which I'll do. Gladly.

In other venues: free culture

For a tale of software licensing, patents, and DRM gone awry, please visit the Moving to Freedom web site at http://www.movingtofreedom.org for my science fiction story, Picnic. Sure, it was rejected by print magazines, but it was rejected nicely.

License

Reusable with this attribution, and please note if modifications are made: Copyright © Scott Carpenter, 2006. Originally published in Free Software Magazine. Creative Commons Attribution-ShareAlike License (CC-BY-SA-2.5).

Category: 

Comments

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

This is what I also feel about Microsoft technologies, like VB and .NET ... very friendly languages, very nice tools ... but I migrated to Python, C++ and Java and I couldn't be more happy.

I am finally in control of the platform on which I spend my time and with which I make money.

thlinux's picture
Submitted by thlinux on

Ahem... [GARGLE]... COUGH!

These are the sounds of an application created in VB6 as we migrate to Windows Vista. I'm not saying this will happen to all VB6 applications, but Vista RC1 has thoroughly trashed our company's flagship application. I don't think I've seen a greater parade of Runtime errors. They are colorful to look at but spell the death of our application. My concern is we are moving to development in .NET. What will happen in 4-5 years when Vista has a new baby brother?

Vista 2 infant stages: WAAAAAAAAAAAAAHHHHHHHHHH!!!!! (followed by the sound of chewing up .NET and spitting it out.)

I'm not bitter.

Scott Carpenter's picture

Oops, maybe I made a bad assumption about Vista there :-) I guess we'll see with the final release. I suspect some companies will take this opportunity to move away from Microsoft, but most are probably migrating to .NET. And then on to baby brother/sister/puppy as they each arrive in turn...

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

I wouldn't assume anything written in .Net is automatically Vista-proof (or Vista ready) either. You might want to start looking at all of the new hoops to jump like UAC and other changes.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Learning VB6 was a pinnacle in my life 5 years ago. Up until 2004, I loved using VB6, specially the fact that I use VBScript for my ASP's. But, after working for a couple of projects which specifically had to be in PHP and MySQL, I felt that in the long run it would be more practical for me as a developer.

After a year and a half, the web application I created needed a major over-haul and a lot more functionalities. I developed the internal user application with VB6 and the website in PHP4. This time around, PHP was already in version 5 and I had a couple of little hiccups upgrading the PHP side. However, upgrading my VB6 application was a bit more tricky, VB.NET was already out and it needed a lot of scouring into the seemingly endless abyss, the internet, to get some help on my codes.

I now work with PHP and MySQL on most of my projects.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Visual Basic community had about 6 millions programmers. Enterprises have millions of code lines in Visual Basic that represents billions dollars.

Microsoft had broken Visual Basic 6, VB.NET is not compatible with VB6, so enterprises have a big problem, they have to switch to another language (costing billion dollars) or they have to keep working with VB6 (a not maintained, killed language.)

What will happen with those million programmers and with those billion dollars invested in software by these companies?

This is a very big opportunity for Linux and free software community. If they support VB6, many people abandoned by Microsoft would migrate to Linux.

How can be done?

First, making high quality and powerful controls (OCX) and DLLs for the Visual Basic environment, modernizing and enhancing the tools for the VB6 programmer. These objects will prepare the migration for Linux (see below.)

Second, making a VB6 compatible compiler. The compiler will be free and will work on Windows environment. It will have full backward compatibility, full OOP paradigm, code folding, etc. The Visual Basic programmer will be able to migrate the existing code easily and will have the benefits of a modern language and development environment.

Third, making the compiler to work on Linux. The Visual Basic programmer won't be able to translate all the code to Linux if he or she uses Windows specific code (Windows APIs, controls, etc), but it will be able to translated code easily if he or she use controls, DLLs, etc, developed in the first step, so it is very important to develop a rich set of objects for the programmer.

Terry Hancock's picture

If it's worth billions to industry, then industry should probably pay for its development. That'd be a really cheap solution (what you ask for is probably less than a million $ of work, if I had to guess).

OTOH, if you just wait for free software developers to develop such a thing on their own time, they generally won't bother.

Why? Because too many of them regard VB as a fundamentally flawed, inferior system, and they don't want to waste time on elaborate development projects for something that's fundamentally flawed (I could be wrong of course -- there may be a group of free software programmers out there who love VB and want it implemented badly enough to spend the time on it, I just haven't encountered any).

It's like asking expert craftsmen to build a beautiful Victorian mansion on a cracked foundation. They'll build "for the fun of it", but only if it's cool, and a cracked foundation isn't. So the only way they're going to do that, is if you pay them.

Scott Carpenter's picture

Wow -- a million dollars to replicate VB on Linux? You're pretty optimistic, Terry. :-)

Instead of the cracked foundation metaphor, can we instead suggest VB can build you a nice dollhouse or playhouse or maybe even a decent tree house, but not a Victorian mansion or even a skyscraper?

I agree that the people who would be able to implement a free VB already have all the tools they need so why bother.

Terry Hancock's picture

This might be an interesting starting point for anybody interested in doing this:

Mono VisualBasic.NET

Somebody wanting to translate VB code to Linux in a more direct way, might be interested in:

VB to Glade

(converts VB GUI to Glade GUI -- I suspect combining this with an existing free BASIC interpreter might be a good start?)

Terry Hancock's picture

"Wow -- a million dollars to replicate VB on Linux? You're pretty optimistic, Terry." :-)

Given that Guido van Rossum knocked together Python in his spare time, Linus Torvalds wrote the first versions of Linux in his house, and Larry Wall basically wrote Perl while he was working on something else at JPL, and each of these projects took only a few years to get started, why not a million dollars?

That's a lot of money if you think of it as salary for one or two people (if you have two programmers employed fulltime for, say, $100,000/yr (which I think is pretty high), that's funding for 5 years to develop what is basically just a new interpreted language -- except it isn't new, there's a fully-developed prototype which provides a fully-tested spec).

But who cares? If it's going to save "billions", they could budget $25 million or $50 million and still be happy. You're talking about comparing ludicrous amounts of code redevelopment to port to a new platform instead of just making the platform compatible. And the only reason is because the platform is "unchangeable". That's the absurdity of proprietary software development -- constant reinvention of the wheel.

As for the metaphors, I wasn't talking about what one can build with VB, I was talking about building a VB interpreter. Many programmers view the language design as fundamentally flawed, so they'd want to "improve" it -- or rather create a whole new language, rather than just writing a program to run VB code. (It's also not my opinion of VB -- because I haven't got one, never having used it myself. I am merely relaying the hostility to the language I have heard from others.).

Also, I didn't necessarily mean VB on Linux. Could be on Windows, for that matter. Of course, there's the whole question of how much environment the typical application will need. Obviously this could become an excercise in replicating Windows (but then again, there's Wine and ReactOS already).

Remember that we are positing that this is a free software interpreter, so we don't have to re-invent everything. We basically need to provide the basic syntax, and any libraries etc that the typical VB programmer expects (or that typical VB applications rely on).

I imagine there'd be enough interest to contribute to such a thing once it got started, but if the "industry" actually cares this much about VB, it should fund a project to create a free software VB interpreter. Should be a real bargain.

Heck, if I had somebody paying for it, I'd probably be willing to work on it (not that I'm a good choice -- I don't even know VB), so I feel certain there's somebody out there who could do it.

Scott Carpenter's picture

I agree that if it's worth so much to business than it would be worth funding an open alternative for a few/several million dollars. (Are there copyright/patent issues, I wonder?)

Even though it's just porting to something that already exists, I think it would be a huge effort to make all the existing code work. It's wouldn't be something that would grow more organically like Perl.

It would definitely have to be paid -- there wouldn't be a lot of "itch scratching" incentive for free software developers to bail out the corporate users that would most benefit.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

"...It would definitely have to be paid -- there wouldn't be a lot of "itch scratching" incentive for free software developers to bail out the corporate users that would most benefit."

One incentive:

A Free Visual Basic, with true OOP and many other improvements, that work on Windows and Linux could attract a huge market. hundred thousand Visual Basic developers and thousand bussineses that have a lot invested on Visual Basic applications. This could fuel Linux market share and erode Microsoft market.

Terry Hancock's picture

Frankly, in my experience, developers don't care about "Linux market share". I mean, in a "Hooray for our team" way, yes they do, but as a motivating factor? No, not really.

Their main concern is more selfish: will Linux do what I need? Will the hardware manufacturers respect the platform enough to provide specs? And so on. Yes, there are a few idealistic developers who would take an interest in freeing an application in order to "support the revolution", but most of those would be the ones who don't use VB, if you think about it.

Whether Linux has 5% of the desktop or 95% doesn't make a huge difference to most of them. They're always going to be on marginal, bleeding-edge systems anyway, whether the distinction is due to the O/S, the hardware, or some other factor. So the stigma of being a Linux user that bothers so many end users just doesn't have much bite for developers.

The point is, developers are pretty busy people, usually with dozens of ideas of their own to pursue. Odds are pretty good they have something else more interesting they'd rather be doing than this.

Also, not to sound cynical, but you know those billions of dollars spent on re-engineering enterprise applications? Who do you think will get that money? Some may even be able to convince the management that the smart thing is to port the application to Python (or Ruby, or Scheme, or whatever).

Any way you slice it, the people who save money by having a VB clone would be the management in those enterprise-level corporations. So if they want it, they really should just hire programmers to write it. They should do it as an open source project, for maximum efficiency, but there should be a fairly traditional core developer group deployed to solve the problem.

Not having a VB clone is probably a marginally win for the average free software developer, in a game-theoretic way of thinking. Paying for a development program is a logical alternative, because it would change that dynamic by giving a direct incentive to some programmers to solve the problem.

The thing you have to realize is that developers are great at doing what they want to do, but they're pretty hard to herd. If you really want to control what interests them -- well, the smell of cash does help. ;-)

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

But can it be an incentive for some enterprises like Novel, IBM, Sun,...? (To take market share from Microsoft?)

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Some links:

...The Disaster Known As Visual Basic

Should Microsoft be sued for dropping support for VB 6?

VB Classic Petition

Classic VB

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

I totally do believe that money could be made this way.

But: VB6 is still proprietary software and M$ won't let anyone near it because they want everyone to migrate towards VB.NYET.

That's the way they earn their money: Use brute market force to create quasi-standards, wait until people have gotten used to it, then invent some new standard and have them all migrate for lots of $$$.

Or as Akio Morita said (founder of Sony): "If the market for the product isn't there, we'll make one."

BitShifter's picture
Submitted by BitShifter on

I am one of those dweebs who use Visual Basic. And yes, I do have the same gripes about it. Free software is available everywhere with numerous updates and upgrades available. BUt, can anyone tell me the best program? I just recently got tired of ol' VB. Any suggestions?

Scott Carpenter's picture

Java is looking good to me since I've been using it for several years now, and with this week's news it's looking even better. I haven't really programmed GUIs with it, though, and I need to learn how to do that.

Was also thinking about trying out Python for something new to try.

----
http://www.movingtofreedom.org/

Author information

Scott Carpenter's picture

Biography

Scott Carpenter has been lurking around the fringe of the free software movement since 1998 and in 2006 started a more concentrated effort to "move to freedom." (Chronicled at the Moving to Freedom blog: http://www.movingtofreedom.org/.)

He has worked as a professional software developer/analyst since 1997, currently in enterprise application integration.

(Views expressed here and at movingtofreedom.org are strictly his own and do not represent those of his employer. Nor of miscellaneous associates including friends and family. Nor of his dog. It's possible they're representative of his cats' opinions, but unlikely. Void where prohibited. Local sales tax applies.)