Herfried K. Wagner said:
Jim,
Jim Hubbard said:
I don't know anyone who still programs in VB6 and even if I did, I
certainly wouldn't want to do anything that would encourage them to sign
the VB.COM petition. I personally think that the petition is a bad idea.
And even if I thought it was a good thing, I don't see Microsoft
following the recommendation.
[...]
Whether Microsoft backs down or not, I think it would be good for us and
Microsoft to get as good a count of the classic VB users that are
disappointed in .Net. Then we'd know if we are just a vocal few or if
Microsoft really pissed off millions of VB users.
I agree that there are lots of customers who fell really pissed off by
what Microsoft did with VB6, but I doubt that most of them are
disappointed by .NET. .NET has its right to exist, but so does Classic
VB.
I agree. I should've been more clear in my response. The dissappointments
in .Net that I see are 3-fold.
1) .Net is not backwards compatible with my VB6 programs and offers no real
migration tool. At best, the migration tool supplied simply tells you why
(anything but a VERY simple application ) will not run in VB.Net. In larger
applications, a complete re-write takes less time than upgrading.
2) The RAD feel/ability to develop applications is gone. Edit and continue
was great - and should be back in VB.Net 2005. Make it simple! Our jobs
are already hard enough. We want a tool that helps us make making a living
easier - not a tool that demands we become a .Net framework expert to create
a simple IM application.
3) The .Net framework distribution. Do we really have to lug this beast
everywhere we distribute applications? Thinstall can wrap all needed .Net
framework components into a single exe with no external dependencies - sure
it lareger, but it will never be missing a component or get broken because a
component or portion of .Net was upgraded. You'd have to make fundamental
changes to the OS to screw Thinstall apps up. (Not that that couldn't
happen, but it is more unlikely than a change to the .Net framework.)
The FAQ to the petition lists the reason why the MVPs who initiated the
petition did this step into the public instead of talking to Microsoft
about this issue again.
It should also be the core of the letter I suggested.
No, that's not too much. I think it's a customer's right to give the
manufacturer feedback about products and product lifecycles.
Full ACK. But this doesn't solve the VB6 issue.
True.
Neither does it answer the question of why Microsoft have spent more time
and energy keeping C/C++ backwards compatibility than it has done with
Visual Basic 6.
Microsoft themselves acknowledged Visual Basic as the world's most popular
programming language. They even realized that the majority of the
programmers in the world (Visual Basic programmers) were "task-oriented
developers" whereas C++ developers are "power-oriented".
Taken from
http://msdn.microsoft.com/vstudio/productinfo/whitepapers/default.aspx .....
---------
For its part, Microsoft offers four programming languages and associated
development environments, each designed to appeal to a particular school of
programmer:
a.. Visual Basic .NET, the latest version of the world's most popular
development tool and language. Visual Basic .NET delivers unsurpassed
productivity and unique language features for task-oriented developers
building solutions with the .NET Framework.
b.. Visual C++ .NET, the tool of maximum power and control. With the C++
language, power-oriented developers can bridge platform technologies and
build both native Windows-based and .NET-connected solutions with maximum
performance characteristics and enhanced functionality.
c.. Visual C# .NET, the modern and innovative programming language and
tool. Introduced in 2001, C# offers a familiar syntax, that is attractive to
C++ and Java developers, along with unique language constructs that offer
code-focused developers a more elegant experience when developing
applications for the .NET Framework.
-------
......it continues.....
-------
Visual Basic .NET
http://msdn.microsoft.com/vbasic
Visual Basic 1.0 revolutionized Windows development by lowering the barrier
to entry and making a broad audience of developers more productive than
ever. Building on this rich history, Visual Basic .NET offers task-oriented
programmers a human readable syntax, an intuitive user interface, and tools
and upgrade wizards that speed the development of Microsoft .NET-connected
applications. Visual Basic .NET takes advantage of the ease of development
espoused by its exceedingly popular predecessors, while adding new
capabilities that enable all manner of programmers, from the beginner to the
experienced corporate developer, to build applications for Windows, the Web,
and mobile devices.
Task-Oriented Development
Deadlines are nothing new to the software industry. For a large group of
programmers, deadlines are a daily fact of life. These programmers are often
charged with building opportunistic applications that address a specific
business need and require a modicum of planning and a fast track to
deployment. Sometimes such solutions will be tested rigorously, while other
times the application will be built and immediately deployed, freeing the
programmer for the next assignment. These task-oriented developers are
focused on delivering solutions quickly. Task-oriented development tools,
therefore, must place such a premium on productivity that it is acceptable
to abstract programmers from the nuances of the underlying platform and
empower them to conceive of an application, build it from scratch, and
quickly disseminate it across a business group.
Programmer Constituency
Visual Basic .NET is ideal for the following types of programmers who are
looking to use the .NET Framework to construct the next generation of
applications and services:
a.. Programmers looking for a fast and productive development tool for the
..NET Framework. Visual Basic .NET offers an easy-to-understand syntax and an
intuitive development environment to help programmers construct applications
quickly. Further, with a large and established community of programmers,
Visual Basic .NET programmers have a wealth of resources at their disposal
to help them get up to speed with Microsoft .NET.
b.. Programmers with existing Visual Basic skills or code assets. Visual
Basic .NET builds on the keywords, syntax, and nuances of the Visual Basic
language. Its case-insensitivity will be immediately familiar to traditional
Visual Basic developers, as will the human-readable syntax. Programmers with
a significant code investment in earlier versions of Visual Basic can move
their code forward using the built-in upgrade technology. Additionally, most
existing ActiveX® controls can continue to be used with Visual Basic .NET.
c.. Developers looking for familiar design-time and code editor paradigms.
Many of the principles of designing applications and writing code are
carried forward from the Visual Basic .NET predecessors, including
drag-and-drop design of applications, IntelliSense® for assistance in
writing code, and automatic code formatting for easier readability.
d.. Programmers looking to build applications with a more intuitive and
accessible language. Visual Basic .NET is designed to be accessible to a
full range of developers, from beginners to experts. Beginners will find
many unique features of the Visual Basic language as useful as the key
productivity enhancements of the Visual Basic environment.
Unique Language Features
Visual Basic .NET contains several unique language features that lend it an
aspect of productivity not found in the other Microsoft-supplied .NET
languages, including:
a.. Default variable initialization. Visual Basic .NET does not require
variables and members to be initialized prior to use, so beginning
programmers may not be frustrated by seemingly arcane use requirements as
found in other .NET languages.
b.. Implicit typing and late binding. Visual Basic .NET code need not
specify the type of a variable before it is used, helping programmers write
useful code with a minimum of training.
c.. Enumeration behavior. Visual Basic .NET offers more intuitive behavior
when using enumerated types.
d.. Default public access. By default, members of a Visual Basic .NET
class are declared to be public, which offers programmers a more intuitive
syntax.
e.. Use of shared members. Shared members may be accessed in Visual Basic
..NET through both the class name and an instance variable of the type to
which they belong, helping programmers write intuitive code. For example:
Dim x as new MyClassx.SharedMethod() ' works just as well as...
MyClass.SharedMethod()a.. Optional parameters. Visual Basic .NET supports
optional parameters, affording class designers more flexibility in designing
their libraries and giving programmers the ability to write useful code
without having to learn all the nuances of object-oriented programming.
b.. Filtered catch blocks. Visual Basic .NET offers flexible structured
exception handling errors. Filtered catch blocks enable developers to filter
errors based on the class of the exception, any conditional expression, or
an explicit error number.
c.. Parameterized properties. Properties in Visual Basic .NET may contain
parameters, making them more flexible than their C# counterparts.
d.. Declarative event handlers. Visual Basic .NET event handlers may
declare the events to which they are subscribed using the Handles keyword.
e.. Interface member redeclaration. Visual Basic .NET enables programmers
to rename a member of an interface when it is implemented in a class.
Unique Environment Features
Visual Basic .NET also includes a number of key environment enhancements
that enable programmers to more productively design and write compelling
applications and services. These enhancements are above and beyond the
Visual Studio® .NET features shared among all .NET languages:
a.. Background compilation. Background compilation works behind the
scenes, silently compiling your code while you are working. Visual Basic
..NET developers should be able to know immediately if they have errors in
their code.
b.. Pretty listing. The Visual Basic .NET code editor can (optionally)
automatically format your code as you type, saving you time. Pretty listing
can automatically align your code to the correct tab position, recase
keywords and variables, add a missing then to an if statement, and more.
Performance
A final area of great importance is performance. The Visual Basic .NET
compiler generates Intermediate Language (IL) code that is equal in
performance to the code generated by the C# compiler.
-------
So, what happened? It sounded like they knew what was needed, but VB.Net
(up to 2003) is a miserable failure at delivering on the requirements
Microsoft mentioned above. The only thing they needed to think about each
day, before they started work on VB.Net is "My users are task-oriented
developers." Maybe they should have a morning yoga session in which this is
their mantra.
Whatever it takes.....so far, thorough VS.Net 2003, VB.Net has definitely
NOT lived up to the "task oriented" language that was classic VB. I hope
that VB.Net will get us closer to that RAD environment that made classic VB
the #1 used development language in the world.
But, I think that Microsoft has severely screwed their chance of having such
a large following in the future. It's a matter of trust, and Microsoft has
trampled on that trust with no regard for the consequences to it's customer
base. At the same time, they went out of their way to incorporate VB-like
features and backwards compatibility into the C++, C and C# .Net
implementations.
Why not do the same for VB? There has still been no legitimate answer to
that question from Microsoft because there is no legitimate answer.
Plainly put. They spit in our faces.
I think Microsoft began listening to powerVB programmers and not so much to
the everyday (millions of them) VB programmers. Perhaps more feedback from
everyday programmers and less from (no offense intended) professional
developers, who make up the minority of classic Visual Basic programmers.
Jim Hubbard