Wiki Home

VBCompatability Changes


Namespace: Wiki

A list of fundamental changes to VB which MS has made in vb dotnet.

A very nice list is available at http://home.earthlink.net/~butlerbob/VBNet.htm

Here we go:

  • Changing the number of bits referenced by Int etc. - they can add Long64 or ReallyLong or whatever. That wouldn't break anything. (perhaps utilizing the CLR names of Int16, Int32, Int64)
  • The ugliest and most bizzare syntax I've ever seen for creating arrays - they can and should handle that in the compiler.
  • Overridden methods not auto-recognized - One would think that an intelligent compiler (IL-compiler?) would be able to automatically sense an overridden method without a keyword.
  • Bitwise vs. Logical boolean operators - it seems reasonable to me to ask that MS come up with a solution which doesn't break a single line of existing code.
  • Changing "Type" to "Struct" was simply unnecessary. Might as well change the rest of the syntax, include curly-braces, and so on. Languages are supposed to be different from one another.
  • Vs.net resources are stored as XML. There is apparently no editor and not even a tool to translate existing res files to XML.
  • Changes to property declarations. Click on VBCompat Prop Decl for details.

    Below is a list of items that would GREATLY increase the backward compatibility of VB.NET with previous versions of VB. The changes in VB.NET fall into three primary categories: (1) Changes imposed by the CLR (common language runtime) (2) Redefinition of existing syntax (3) Removal of language elements.

    There are a (relatively small) number of items that should be fairly easy to implement that would GREATLY enhance the backward compatibility issue.  These are not CLR issues as they would need to be handled (in the language compiler) before the JIT compiler ever saw the code.  Note that the one of the main issues with backward compatibility is not the "one-time" conversion of existing code, but rather that people will be working in both environments (VB6/VB.NET) for quite some time and when existing syntax changes it will be more difficult to switch back & forth. This promotes the argument that it is great to add functionality, acceptable even to remove functionality, but the existing keywords should still do what they have always done.

    Array Definition
    Short Description of Issue [Insert Comments Here]
    Publicly Available Documentation VBDotNet Arrays
    Description of Impact [Insert Comments Here]
    Subjective Classification The ugliest and most bizzare syntax I've ever seen for creating arrays - they can and should handle that in the compiler.
    Preparing For Change
    • Don't use Option Base
    • Don't create arrays that have anything other than a zero lower bound (even if it does make the code cleaner, easier to work with, and more readable
    Number of bits in numeric data types (integers/longs)
    Short Description of Issue [Insert Comments Here]
    Publicly Available Documentation [Insert Comments Here]
    Description of Impact [Insert Comments Here]
    Subjective Classification [Insert Comments Here]
    Preparing For Change [Insert Comments Here]
    Short-circuiting If / Then evaluation
    Short Description of Issue [Insert Comments Here]
    Publicly Available Documentation [Insert Comments Here]
    Description of Impact [Insert Comments Here]
    Subjective Classification [Insert Comments Here]
    Preparing For Change [Insert Comments Here]
    Mixed Property Declarations
    Short Description of Issue [Insert Comments Here]
    Publicly Available Documentation [Insert Comments Here]
    Description of Impact [Insert Comments Here]
    Subjective Classification [Insert Comments Here]
    Preparing For Change [Insert Comments Here]

    Contributors: ZaneThomas, DPatrickHoerter
    See also VBDotNet
    Category DotNet Category VBDotNet
  • ( Topic last updated: 2000.10.18 02:34:38 PM )