Novice VS.NET: Helpful or Hurtful?

Does VS.NET need a novice version to ease the transition for VB6 developers? Some say it would help; others assert it would hurt the respectability of a language finally coming into its own.

Letters to Visual Studio Magazine are welcome. Letters must include your name, address, and daytime phone number to be considered for publication. Letters might be edited for form, fit, and style. Please send them to Letters to the Editor, c/o Visual Studio Magazine, 2600 El Camino Real, Suite 300, San Mateo, CA 94403; fax them to 650-570-6307; or e-mail them to [email protected].

Novice VS.NET: Helpful or Hurtful?
I loved VB versions 1 through 6 and wrote many productive apps, from simple utilities to complex multilayered systems, but I take issue with the concept that enabling non-programming business types with some technical skills to program on their own is a benefit of VB [Editor's Note, "VS.NET Needs a Novice Version," by Patrick Meader, June 2004]. It is not a benefit—it is the bane.

Programming and software design or development is a profession, not an administrative task. Unfortunately, when VB came on the scene and many non-programmers began writing their own solutions to business problems, managers began thinking, "Why do we need programmers anymore? Let the users write their own code." This fostered a whole breed of pseudo-programmers who were looked upon by management as administrators or low-level techies with no formal training or experience in engineering business applications. At first, they just wrote little utilities to update databases and so on. But then they were asked to create increasingly complex and difficult applications without the benefit of computer science courses or engineering methodologies. Some went out on their own and attempted to gain the knowledge needed, but most just hacked their way through. A few became good or even excellent developers, but most created the plethora of poorly written code that eventually caused the whole house of cards they created to come tumbling down. Then the managers blamed VB and Microsoft for writing a bad operating system and programming language. They tried hiring real programmers to come in and "fix" the mess. When told that the mess couldn't be "fixed" but had to rebuilt from the ground up, they flew into rages and tantrums, further blaming the operating system and "computers."

I, for one, am glad there is no "novice" version of .NET. I hope the pseudo-programmers gradually fade away, and the profession can be restored to the respectability and prestige it once had.

Besides, there are the Standard Editions of VB.NET and C# for those who want a low-cost, entry-level version to learn on. But you better have a good programming or CS background first. Otherwise, get some books on basic programming theory and start learning. If you can't get it, get out and let the professionals handle it.

Bob Howell, Farmingdale, N.Y.

What a great idea! For years, I made a fortune as a consultant going into businesses where self-taught "programmers" developed some in-house tool with Excel macros, Access, and/or VB. These apps had become mission-critical, but were full of bugs, were unstable, had corrupted data, and creaked along once they outgrew three to five users. Typically, I could spend three months or less rewriting the application completely and walk out looking like a genius along with a hefty paycheck (and an occasional bonus for completing the work ahead of schedule and under budget).

By all means, let's return to that model. With all the "good" jobs being off-shored, we need a means of recovering our lost lifestyle.

Michael Wells, Cornelius, N.C.

I have to agree that the simplicity of Visual Basic had a lot to do with my success as a programmer. I wouldn't have been as productive as I am today without my VB roots. The best and worst part of Visual Basic is that anyone can develop real Windows programs quickly. The good part is it helps the developer community grow by allowing those more computer-savvy end users to develop. The bad part is when those end users think they can quit their regular jobs and become programmers.

From personal experience, the most frustrating task I've ever had to complete was supporting a VB application my company purchased from a small vendor. This vendor understood how to program in VB, but didn't understand things such as designing user interfaces, creating relational databases, or writing good documentation. I believe this vendor was once an end user who found out programming in VB was easy and thought he could be a developer, without really knowing all that is involved.

The shift to .NET is a good move. It forces all the VB developers to learn concepts that are instilled already in most other development languages. If Microsoft does produce a slimmed-down version of .NET, it will mean that the VB spaghetti code of the past will just become .NET spaghetti code of the future.

Frank Wisniewski, Houston

Microsoft has failed to provide a clear learning path for the average developer. I know several software people who are still using Visual Basic 6 and classic ASP, because they simply don't know how to jump into .NET. I remember my first time using Visual Studio. I felt like it was my first day of pilot training school, and they were putting me in a Boeing 747 instead of a single-engine Cesna.

I also think it's silly to find books touting "Learn C# in 24 Hours." If you can learn C# or VB fully in 24 weeks, that is more than impressive. For new programmers, using Notepad and a command-line compiler is the best way to start, so they can grasp the fundamentals.

We need books that teach you how to learn .NET in a clear, step-by-step manner. It's great to know all the cool things we can do with Visual Studio to save time and make a great-looking application, but there is little out there to help someone new to .NET get the foundation he needs to create quality applications.

There needs to be a more definitive learning path established for all types of programmers new to .NET. I see many programmers reluctantly moving to .NET and quickly using the RAD tools to create an application released in debug mode that is vulnerable to SQL injection. With a clear learning path, we'll have more developers moving to .NET and writing better quality code.

Doug Kent, Fort Collins, Colo.

You're right on in your analysis of where Microsoft is with VB and where it's going with .NET. It's about to make the same mistake (albeit on a much larger scale) that Borland made with Delphi and Paradox.

What has made Microsoft so successful is the support it gives to us "small guys." And in return, our insignificant little apps, which are the critical link in many organizations to getting the job done, create a "pull" market for Microsoft's Office and Windows OS.

Why force me to re-evaluate the tools I use when I'm locked in already? But Microsoft seems hell-bent-for-leather on doing just that. And in making that decision, it needlessly opens the door to losing not only good customers for its programming tool, but the apps we have yet to develop that depend on Windows and Office products.

John Lee, San Jose, Calif.

Absolutely! A novice version would be an outstanding migration mechanism. It would be better if Microsoft could include a fairly hefty protected area of memory with the ability to build machine code routines in it and call them with an EXEC like back in BASIC-A.

One thing I hate with a passion is Microsoft's continued intent to protect me from myself. Playing with the machine (and, yes, crashing it once in awhile) is part of the fun. Of course, I can still do that with my old version of MASM 6.1, but having GUI RAD to go with it would be a dream come true.

Of course, I wouldn't allow it on any of my users' machines. What am I, a fool?

M. David Johnson, Glenview, Ill.

My experience with VB6 is rather broad and deep. I've created sophisticated, complex applications, frequently with COM DLLs, sometimes using the Windows API, and frequently utilizing SQL Server, to provide specific functionality not intrinsic to VB. Anyone who's created similar apps would agree that VB is powerful and can do 90 percent of jobs without having to resort to a more "structured" or "object-oriented" language such as VB.NET or, more traditionally, C++. But unfortunately (or fortunately, depending on your perspective on change), time marches on and things change for a reason.

Having said that, anyone using VB6 seriously would have to agree with the statement that VB6, with all its shortfalls and issues, is not a toy language, as so many C and C++ programmers have asserted. Such criticisms arise because, as you know, VB6 isn't "truly" object-oriented and doesn't support polymorphism. And, of course, the ability to write "spaghetti code" still carries over from the original VB 1.0. However, as you also know, these shortcomings haven't prevented professional applications from being written using VB6 and have in fact allowed a cottage industry to rise around VB6 to fill in gaps. But there's no question that VB6, for all its power, cannot compete with the capabilities of C++—but at what cost and at what amount of time to produce tangible results?

As a VB user from version 2 through 6 and now .NET, I've noticed a trend, whether intentional or not, in Microsoft's tools and particularly in the way it presents help and information. When QuickBasic was first introduced, there was a clear methodology in presenting both technical information and more importantly, conceptual information, in a way that was easy to follow and digest. This approach facilitated learning the concepts of the language and the syntax and structures possible with it.

VB.NET, it appears, was designed to deflect some of the previous charges made at VB, and in doing so, Microsoft has indeed raised the bar on the language and what it can do. But the more complicated the language becomes, the less readily it's understood—and the less readily it can be utilized. But the inability to understand how to use VB.NET is not the result of current VB developers lacking the smarts. To the contrary, it's the result of a monumental failure by Microsoft to provide the kind of instructional information necessary for anyone learning what is really a new language. It's probably better if one does not know the old VB or ASP.

The other problem is that there doesn't appear to be any third-party instructional material about which you can say, "Read this book if you're a VB programmer, and you'll walk away with a good understanding and be able to create apps with VB.NET." I've looked high and low for such books, and I can't seem to find them. That missing "something" in many of these books is a result of lots of "something" missing in Microsoft's instructional and other material on VB.NET. Learning is a solitary process and depends on working with simple examples and clear, straightforward instructional material—all of which is lacking from Microsoft.

I think the issue is one of education on the part of Microsoft, and how it collects, categorizes, and presents information. When was the last time you were able to find, all in one place, an answer to a simple question from the MSDN library without having to go through hoops to find what you wanted ... if you finally did? Yes, one can argue that things have become more complicated and interrelated, but it's really no excuse for sloppy presumptions and "fuzzy" organization.

As far as a "novice" version becoming a reality, I doubt Microsoft will produce such a product. I don't think it would serve well the "professional" VB developers trying to make the transition if they remain under the cloud of working with a pseudo-professional programming language.

Microsoft must face the fact that it has to do a much better job of getting more VB6 developers on board than it has to date. And frankly, I don't think it really cares. Magazines also need to alter their myopic focus on VB.NET apps and realize that there are lots of VB6 developers being left behind as a result of this major shift. Tutorials starting with the basics wouldn't hurt, but they need to be in-depth and not one-pagers. Unfortunately, though, many VB6 developers will be left behind nonetheless.

Peter Sarro, New York

Up Next: Outsourcing CEOs
Outsourcing, inevitable as it might be, begs the question of where our middle and senior analysts and managers will come from in the future [Editor's Note, "Offshoring Stirs Reader Passions," by Patrick Meader, May 2004]. If there's no place left in America for beginning programmers and analysts to practice and hone their skills, the number of candidates for senior positions will dry up. Will we then outsource those jobs too? Before long, John Ferrara's suggestion to offshore CEOs might become a reality out of necessity.

M. David Johnson, Glenview, Ill.

About the Author

This story was written or compiled based on feedback from the readers of Visual Studio Magazine.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube