Fog Creek Software
Discussion Board




Visual Basic on the decline...

http://zdnet.com.com/2100-1104_2-1000011.html

Apology in advance if this was posted already...

KenB
Wednesday, May 07, 2003

"Microsoft's popular Visual Basic development language--used by about half of all professional programmers..."

And used by nearly all of the untalented hacks.

Lets hope the article is right.  A lot of the dummies may be forced out

Mike
Wednesday, May 07, 2003

I agree with you. I have used VB for awhile now and if you read my other threads VB6 and all previous was bad cause a lot of bad code was written.

VB.net will force these devs to learn OOP or be forced out!!!!!!!!!!!

KenB
Wednesday, May 07, 2003

You can still write C-style code with C++.  I wouldn't imagine VB.NET will be any different.

Rick (www25.brinkster.com/rchildress)
Wednesday, May 07, 2003

Rick,

While you can write C code in C++, you will be hard pressed to write VB 6.0 code in VB.NET. It's just totally different. A VB 6.0 author will be forced to learn at least a little about the .NET Framework and understand the basics of OOP.

It's still possible to write abysmal code, they won't be able to merely cut their VB 6.0 code into VB.NET.

Mark Hoffman
Wednesday, May 07, 2003

While I partially agree, I don't think that's entirely true.  The concept of object-based (if not object-oriented) programming has been visible in VB for years.  I would say that most of the vb programmers that you're talking about will 'get it' enough to get by.


In vb.net...
* You can still create 'floating' routines in modules (I know under the covers the module becomes a class and the subs and routines become static methods), but you can't tell the difference.

* You don't _have_ to use inheritance (in a meaningful way) or polymorphism (the two features of OO that VB was previously lacking).

* You still have access to most (all?) of the intrinsic funtions that you always had except now they're static members of some class somewhere.


They will raise to the level of expertise they have now, learning just enough to get by just like they did when they introduced classes (version 4, right?).  Will they be good vb.net programmers?  No, but they weren't good vb6 programmers either.

Rick (www25.brinkster.com/rchildress)
Wednesday, May 07, 2003

>>And used by nearly all of the untalented hacks...

While Visual Basic is the home of an especially large number of incompetent programmers. Over the years I've met more than my fair share of incompetent C, FORTRAN, COBOL and C++ programmers. And I suspect if I used Java I'd meet plenty of incompetent Java programmers. So I highly doubt VB can account for more than about 50% to 60% of untalented hacks - by no means 'nearly all'.

The other side of it is that a large number of those 'untalented hacks' provide significant business value to their employers. Something that can't necessarily be said for every talented developer.

Stephen Martin
Wednesday, May 07, 2003

>Lets hope the article is right.  A lot of the dummies may >be forced out

All the worse for VB.NET.
- so somebody else will produce a RAD tool that allows
you to do object based and not object oriented programs.

Huge opportunity for Borland (if they were werent soo stupid

http://www.borland.com/csharpbuilder/
- a joke, really ;-)

Michael Moser
Wednesday, May 07, 2003

This is an article about survey results.

Show me decreasing purchases of VB, then I'll believe that VB is on the decline.  Until then, this is pure conjecture.

Brent P. Newhall
Wednesday, May 07, 2003

That only mean VB will be a maintenance language like COBOL. Old application that don't need to upgrade to .NET will be maintained in VB6. New applications will be done in .NET. At least that's my plan here.

Application Specialist
Wednesday, May 07, 2003

Which is the problem with VB some 'serious coders' seem to have? VB is too much 'easy'? Too much 'friendly user'? Too much high level lang. + liraries so you do not need the real working of windows and other hard suff?

Come on!! All those things are pretty good ones. You create a simple windows app. in minutes. Is it so so so so BAD?

PS I. Come on! Let's get things complicated so only nice coders could make software. Let's go ASM!

PS II. Oh, and let's quit the macros from Excel too. Users are users.

PS III. I am not any VB fan.

Ross
Wednesday, May 07, 2003

http://www.joelonsoftware.com/articles/Our.NetStrategy.html


Wednesday, May 07, 2003

In my experience the worst VB programs tend to be written by the more experienced developers....

When a new programmer enters an organisation, every line of code he writes will be reviewed by someone with more experience than them. Any faults are found, corrected and hopefully never made again. They will improve and none of their code makes it into a production system without being thoroughly checked.

An experienced, say, C++ programmer on the otherhand with 10+ years of experience, may be viewed as so senior that perhaps no review of code they write is performed (or perhaps only a cursory review). When dropping to the 'simpler' language of VB they hack out a program, complaining that VB doesn't let them do X, when perhaps they shouldn't be trying to do X as it's a weak point and they should try to do Y instead. The end result is a workable program (they're experienced people, they'll get a result), poorly designed (or perhaps worse: over-designed), with a lot of the simplest kinds of errors newbies get thrashed out of in week 1 of their employment.

I saw this just this week:
dim intX, intY as integer
(variables weren't X/Y but they were both intended to be integers, there were a few dozen other silly little errors like that too and some worse. In this case VB should probably work as this guy expected too, or not support this style of declaration at all as it's a little ambigous ... )

or my favourite from a few months ago:
centralised error handling method:
on error resume next
'some code
if err.number <> xx then
  err.raise x,y,z 'etc
endif

This was in a class of part of a framework that the (insert title of most senior progs in company) had written, which us (two ranks down) progs use to develop solutions... how reliably can you code when the framework has fundamental problems?

To summarise:
You may be the best English speaker in the world, but memorising a few french verbs and nouns doesn't mean you can speak french...

right tool for the right job
Wednesday, May 07, 2003

So who will win the market share?  Java, or C#?

50/50 split maybe?


Wednesday, May 07, 2003

uh! Mmm, with this post the subject to discuss is an interesting other one: why a experienced guy in lang X may be considered like if he was an expert in lang Y, when it is not ?

Note. Y is ''''easier'''' lang. than X.
Ex. X= C++ Y=VB

PS. Those example errors are scary. No code reviews for those guys? Uhh!

Ross
Wednesday, May 07, 2003

Office is still using VBA, which is VB6 in all but name.

These apps won't just be maintained, they'll be extended.

And what will the VBA programmers do when they want to right programs unrelated to Office? Previously they would use VB because they already knew it.

But if they are going to have to learn VB.Net, and get all confused with VBA, then they may decide to give VB.NET and miss and use C#, or Java, or Python.

Stephen Jones
Wednesday, May 07, 2003

Spaghetti is language neutral.

And just because something is written in VB it doesn't make it or the developer bad or unstructured just uncool.  VB used to be cool for some.  VB.Net might become cool.

Coolness is entirely arbitrary, I seem to be able to avoid it with consummate ease.

Simon Lucy
Wednesday, May 07, 2003

I think the point is that *demand* for VB programmers is on the decline.

fool for python
Wednesday, May 07, 2003

I think we are being a little unfair to VB.  While MS may have wanted it to be a 4GL to the existing languages at the time, it is a good utility and departmental solution tool. 

Can it be beautiful? Of course, but many (most?) of what I have seen is someone throwing something together to get something done in a hurry.  It then becomes significant.  Is that the fault of the original writer? 

Look at VB like scripting in Unix, you use it for the light weight or down and dirty applications.  When you start extending it to enterprise applications you are probably asking for trouble or at least need a very experienced person to make that jump.

-- The problem with a penny for your thoughts is the need to put your two cents in.

Mike Gamerland
Wednesday, May 07, 2003

I'd just like to point out for the shred of street cred that I still have that I'm not nor have ever been a VB programmer, oh except for that one time when...

Simon Lucy
Wednesday, May 07, 2003

VB got its reputation for crappy code and crappy developers because it is so much easier to program than many other languages, that it attracted many of the Teach Yourself in 24 Hours type of "programmers" who flooded into the industry in the late 90s.  Those types would have wet their pants if they had to do anything like C++, but VB made it possible for them to write something that worked.  Or rather, something that worked for now.

So while spaghetti is language- and platform-independent, VB attracted herds of "spaghetti chefs" who had no intention of learning to cook a gourmet meal.  So it's not that VB itself is that bad, it's just that it attracted a higher percentage of the untalented masses than other languages.

T. Norman
Wednesday, May 07, 2003

If you think a new IDE and a different framwork is going to make everybody a better developer, you've lost the plot.

Realist
Wednesday, May 07, 2003

I've found the most vitriolic attackers of VB are actually people who encountered serious problems when they themselves tried to do something with it.

Generally those problems arose because those people had no understanding of Windows software engineering, or actually had poor coding practices themselves. This is ironic because the thrust of their attacks is generally to condemn VB programmers for this.

e
Wednesday, May 07, 2003

Might the fact be that VB developers are on the decline whilst VB.NET and C# developers are on the incline?

I have first had evidence of language neutral spaghetti. A certain person in this office (a couple actually) have demonstrated that their ability to create poor procedurally based code in VB is almost perfectly transportable to VB.NET.

Geoff Bennett
Wednesday, May 07, 2003

Unix sys admins are the worst. I guess they're usually not programmers anyway.

By the way, Visual Basic developers tend to have a very good understanding of Windows and thus the paradigms in .NET. They are clearly one of the two main targets of .NET,along with Java programmers.

e
Wednesday, May 07, 2003

e,

I think most developers have a problem with VB because they've used/inherited an app writen in it that was needlessly slow and buggy.

This most likely was because it was writen by an incompetent, (most likely) inexpirenced or overworked programmer for a small task. Then because it worked, it grew and grew with no initial design with regards to scalability.

Why does this most likely happen with VB? Well becasue in my humble expirence these apps 80% of the time are front-ends to Access and they were 'forced' into multi-user network enviroments by file-sharing the .mdl file.

Can this happen with Java/Perl/PHP/C++ etc etc... most likely no, because for the most part there are no Java/Perl/PHP and a C++ developer should know better hooks into Access.

johnboy
Wednesday, May 07, 2003

"While you can write C code in C++, you will be hard pressed to write VB 6.0 code in VB.NET. It's just totally different. A VB 6.0 author will be forced to learn at least a little about the .NET Framework and understand the basics of OOP."

You can write procedural code in java (make everything static) NOTHING can stop bad code

Daniel Shchyokin
Thursday, May 08, 2003

For skilled VB developers, the natural choice in .Net is C#. Why would I want to use a fubar'ed language which is barely easier to learn than C#, when knowing C# makes the leap to Java much easier should that be an option. VB.NET is nothing but a C# clone. Every essence of VB is gone.

Why didn't Microsoft just kill VB instead of wasting money on such a poor substitute?

Thomas Eyde (done VB since -97)
Thursday, May 08, 2003

Hey, would it not be extremely weird to read "Visual Basic on the uptake" at this time?
Sounds like "Dog bites man" to me.

Just me (Sir to you)
Thursday, May 08, 2003

Hi Thomas,

>> VB.NET is nothing but a C# clone. Every essence of VB is gone. <<

The defining difference between the two languages currently is the IDE. VB has incremental compilation, and will have Edit & Continue in version 2. C# has neither, and I understand that won't change in version 2. How much you value these two features depends on your experience and inclinations.

There are also some language differences. For example, if you investigate the way that each language handles method overload resolution, you might see a couple of interesting surprises.

>> Why didn't Microsoft just kill VB instead of wasting money on such a poor substitute? <<

There are something like 3 million VB developers (according to Gartner) who are familiar with VB syntax and the VB culture. You cannot expect MS to leave this legion of developers with no .NET alternative other than C#.

Regards,

Mark

Author of "Comprehensive VB .NET Debugging"
http://www.apress.com/book/bookDisplay.html?bID=128

Mark Pearce
Thursday, May 08, 2003

With .NET the framework is by and large the biggest chunk you'll have to learn.  I already knew VB, so I chose to use VB.Net for my current (admittedly small) windows project.  I don't want the hassle of learning another syntax while I'm busy getting aquanted with the framework.

But I did end up dropping a form subclass done in C# into the project from an example I found on the internet, in order to make the application behave as an app bar.

I was floored at how well it worked. It was seamless.

So the question is, with .Net what point does language choice make? A little maybe, but not enough to get your panties in a knot about.

Steve Barbour
Thursday, May 08, 2003

Hi Mark,

I certainly felt Microsoft left me with their VB language changes. The different overload resolution on the same framework/runtime also indicates a flawed language. Certainly, the same design in C# and VB.NET will sometimes not behave the same. Bad.

Thomas Eyde (done VB since -97)
Thursday, May 08, 2003

"So the question is, with .Net what point does language choice make?"

It makes a difference when yor ace cobol.NET programmer quits and you cant find anyone to maintain their code.

Daniel Shchyokin
Thursday, May 08, 2003

Right now, Microsoft basically ships .NET with one language (C#) and several different skins, all of which I expect to drift into obsolescence sooner or later.  J# and JScript.NET were basically DOA, and VB.NET will hardly survive without the "protection" of an isolated superior IDE.

However, not all .NET languages are made by Microsoft. For instance, there are several Fortran compilers for .NET available or under development that come with the unparalleled math features of the Fortran 90/95/2000 standards.  Also, .NET has this famous "tail-call" support which is currently unused but should allow for efficient Lisp/Scheme implementations in the future.

Or maybe a language other than Managed C++ comes up and makes use of .NET's ability to put native and managed code in the same assembly.  Ada-95 (IIRC, or was it Modula-3?) natively supports both garbage-collected and traditional memory allocation, so that would be an ideal choice.

So while Microsoft didn't do much with the multi-language capability of the .NET Framework, I do expect this potential to be realized in the future. I also think that a couple of languages that have more or less fallen by the wayside compared to C/C++/Java/VB will get another chance to reach a bigger audience, which strikes me as a good thing in the present curly braces monoculture.

Chris Nahr
Friday, May 09, 2003

Hi Thomas,

>> The different overload resolution on the same framework/runtime also indicates a flawed language. Certainly, the same design in C# and VB.NET will sometimes not behave the same. Bad.  <<

The overload resolution difference only kicks in if your design is ambiguous - so it would be the design itself that is flawed, not either of the method overload resolution algorithms.

VB uses what many developers might consider to be the most intuitive algorithm. C# uses the algorithm that would be most familiar to C++ developers.

A .NET language is far more than just syntax. It involves an IDE, a culture, a way of working, a gestalt. Giving developers more language choices seems to me like a very good thing. Your mileage, of course, may vary.

Regards,

Mark

Author of "Comprehensive VB .NET Debugging"
http://www.apress.com/book/bookDisplay.html?bID=128

Mark Pearce
Friday, May 09, 2003

Quote:
For skilled VB developers, the natural choice in .Net is C#.

hehehehe.
C# and VB.net are for those programmers that can understand OOP. All others, good luck.

drazen
Friday, May 09, 2003

*  Recent Topics

*  Fog Creek Home