Classic VB6 vs VB .Net


DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Results 1 to 15 of 17

Thread: Classic VB6 vs VB .Net

Hybrid View

  1. #1
    Join Date
    Apr 2004
    Location
    Hawaii
    Posts
    220

    Question Classic VB6 vs VB .Net

    I'm using VB6 and writing apps that will work across the internet, directly connecting two or more people to play simple games. I was wondering where "Classic VB6" will be in say 5-10 years. Will Classic VB apps still run on Windows, or is it a 'must-do' eventual upgrade to VB .Net just to keep my apps operable? I have no interest in establishing website code, just direct connect software.

    Any comments appreciated.

    Shannon


    BTW: Is VB .Net a similar prgramming language to VB6? Is it very difficult to make the transition (in the basics)? Will I even recognize it?

  2. #2
    Join Date
    Nov 2003
    Location
    Portland, OR
    Posts
    8,387
    Windows Vista (formerly Longhorn) is scheduled to ship next year; it includes the VB6 runtime, so presumably VB6 applications will run on it. Beyond that, it's anybody's guess. Based on the fact that DOS and 16-bit Windows apps still run on current versions of Windows, I'm confident that VB6 apps will run as long as any other 32-bit apps (say, MS Office 12) do. Whether they will still run on Windows 2016 (or whether Windows will even exist in 10 years!), nobody knows.

    In my opinion, VB.NET -- the language -- is very similar to VB6. For example, take a look at these QuickSort implementations on my Web site: http://www.philweber.com/2005/03/17.htm#a138 . The VB6 and VB.NET implementations are identical. .NET Windows Forms controls, however, are quite different from VB6 controls, and there are numerous differences between VB6 runtime functions and the corresponding .NET Framework functions. So, you're in for a learning curve -- you'll probably feel some frustration for the first week or two -- but it's not insurmountable.
    Phil Weber
    http://www.philweber.com

    Please post questions to the forums, where others may benefit.
    I do not offer free assistance by e-mail. Thank you!

  3. #3
    Join Date
    Feb 2004
    Location
    Indianapolis, IN
    Posts
    425
    You can download the Express version of VB 2005 from http://lab.msdn.microsoft.com/expres...c/default.aspx

    This is a beta program, so it can have some problems. However, since you can freely download this, it is an excellent way to take a quick look at where VB has gone since version 6.

    Brad!
    -------------------------------------------------
    Bradley L. Jones
    Author, and more.
    QuinStreet Enterprise Network / Developer.com Network
    (Developer.com, CodeGuru.com, DevX, jGuru, and more!)

    -------------------------------------------------

  4. #4
    Join Date
    Apr 2004
    Location
    Hawaii
    Posts
    220

    Thanks!

    A pep talk? Thanks, Phil for the insight! I've never seen you give a pep talk, nor have I seen you actually express outright humor. "Windows 2016?" LOL. I almost fell out of my chair. That was meant to be funny, yes?

    Thanks very much for the info, I do realize this subject was beat to heck for a long time but my head began spinning so I had to stop reading about it. I appreciate you taking the time to write me a summary.

    Thanks to you as well, Brad! I will definitely download the express version--what a great idea to get a quick peek. Much appreciated!

    DevX saves the day again!

    Shannon

  5. #5
    Join Date
    Apr 2004
    Location
    UK
    Posts
    3

    Pain

    "you'll probably feel some frustration for the first week or two -- but it's not insurmountable."

    As someone who has made the transition from VB6 to .NET over the last two years I think the "two weeks" part of Phils post is a little optimistic. In reality this learning curve time should be measured in months,. True VB.NET follows more or less the same syntax as VB6 but the underlying differences in the framework are large and the more importantly the .NET way of doing things is often very different and more involved.

    To give you an example early on in the conversion process I had to write a TCP/IP listener and client for some simple messaging. Microsoft put some example code up showing how to do it but it was a lot more involved than the corresponding VB6 way of doing it. Doing things the VB6 way in .NET is not necessarily the best way of doing things in .NET.

    Still as Phil says it's not insurmountable. I just think the learning curve is steeper
    Pryderi

  6. #6
    Join Date
    Apr 2004
    Posts
    23

    VB6 to VB.NET

    I agree with Pryderi; the learning curve is, for any project of substance, more than 2 weeks.
    The most significant difference, in my view, is that VB6 was a RAD tool while VB.NET is an OOP tool. While these two have some similarities in terms of syntax (with enough differences and new pieces to be confusing, even a bit frustrating, at times) they sometimes require a different approach. I tend to think that VB.NET is to VB6 what VB was to old DOS BASIC - similar in name, but requiring new skills and approaches to really use the new features.
    And I also agree with Phil in that Windows is likely to support VB6 apps for some time to come. Vista does, after all, still support DOS apps. I would guess 5 years more, minimum, but ten years is a very long time in the world of technology to hazard any guesses.
    Certainly, the learning curve is not insurmountable, but it takes some effort. The .NET environment is very rich, and very deep;much more so than VB6. How far you go with it will be really up to you! Good luck!
    Last edited by Sigid; 10-14-2005 at 11:18 AM. Reason: Additional point

  7. #7
    Join Date
    Oct 2005
    Posts
    6
    Not hard to compare , new .NET will make the difference more clear !

  8. #8
    Join Date
    Jan 2005
    Posts
    2

    VB .net Mathematics

    I'm an old fashioned guy. I still don't program for the internet or even (gasp) databases! Most of my programs use mathematics intensive nested loops. VB6 treats basic math type variables (Integer, Long, Single, Double, and such) pretty much as simple memory locations. VB .net treats ALL variables as objects. That one little point has a drastic effect on the speed of all mathematic operations, slowing them to (in some cases) less than one tenth the speed of VB6 math operations. That is a tragedy, but I don't see that we have any choice but to find some other language to handle intensive mathematical tasks.

    Jeff

  9. #9
    Join Date
    Nov 2003
    Location
    Portland, OR
    Posts
    8,387
    Jeff: I'm sorry, but that's not correct. Unless your code requires .NET to convert value to types to objects (such as assigning them to a collection or passing them to a method that accepts an object argument), VB.NET treats value types exactly the same way that VB6 does. If you'd care to post some VB6 code that demonstrates the performance difference, I'd be happy to convert it to VB.NET and run some benchmarks. VB.NET may indeed be slower than VB6, but if so, it's not because it treats value types differently.
    Phil Weber
    http://www.philweber.com

    Please post questions to the forums, where others may benefit.
    I do not offer free assistance by e-mail. Thank you!

  10. #10
    Join Date
    Jan 2006
    Posts
    34
    Interesting discussion, but I still haven't seen the advantage of using VB.net compare to classic VB. Anybody can give me idea why should we move to VB.net (or if we should not) ?

    Btw, for calculating stuff, in my opinion, no high level language can beat C. Sounds old fashioned, but use the classic C, if you need speed

  11. #11
    Join Date
    Dec 2003
    Location
    Swiss Alps - a strange place for building aeroplanes
    Posts
    55
    Quote Originally Posted by hprasetya
    Interesting discussion, but I still haven't seen the advantage of using VB.net compare to classic VB. Anybody can give me idea why should we move to VB.net (or if we should not) ?

    BTW, for calculating stuff, in my opinion, no high level language can beat C. Sounds old fashioned, but use the classic C, if you need speed
    I still havent made the trip to .NET - I'll probably try again this year more out of curiosity then a requirement. Any requirements I have can still be adressed easily and rapidly in VB6. Glad to see its not just me who couldnt do it quickly.

    As for calulating stuff I find your comment interesting. For me nothing beats god ol' FORTRAN and the progress they've made there in 90/95/2003 is good stuff indeed.


    Eddie

  12. #12
    Join Date
    Nov 2003
    Location
    Portland, OR
    Posts
    8,387
    prasetya: In my opinion, .NET allows developers to be far more productive (after the learning curve, obviously). Visual Studio .NET has a great many usability improvements over the VB6 IDE, and the .NET Framework provides hundreds of classes that you, the developer, no longer need to write yourself.

    From a practical standpoint, you can buy VB.NET; try buying a new copy of VB6 today. You can get tech support for VB.NET if you need it. And there is a large, healthy market of add-on products for .NET (like there once was for VB6, but no longer is).
    Phil Weber
    http://www.philweber.com

    Please post questions to the forums, where others may benefit.
    I do not offer free assistance by e-mail. Thank you!

  13. #13
    Join Date
    Dec 2005
    Location
    South of Nowhere, Maine
    Posts
    309
    If you want speed, why not ASM? You can include inline ASM with VB Classic if you use some special tools. Just google for it.

    As for switching? If you have new apps, write them in .Net (C# or VB or J# or C++). If you have existing apps, keep them in VB Classic. If they need to be moved to .NET, write them over from scratch. Most of the upgrading process is bunk.

    You can mix .Net and Classic in some instances. VB Run ( http://msdn.microsoft.com/VBRun/ ) has some good examples.

  14. #14
    Join Date
    Apr 2004
    Posts
    23

    Thumbs down

    - Just as an update to my comment above, I have since tried to use the newer VS2005. "VB" is even less like BASIC than VS2003 was, and the IDE is, bluntly, miserable (s-l-o-w, given to crashes which lose your work, etc ad nauseam). Not suitable for my work at all.
    - My impression (sans becnhmarks) is that the resulting EXE from VS2005 are so slow and uncertain that I cannot risk my professional rep by delivering them to an actual paying customer (and we are not even talking about the massive .NET 2.0 framework install issues here!).
    - If it is speed and "real" BASIC syntax you want, I would suggest the PowerBASIC product - however, be advised that for Windows programming you will need to become very familiar with Win32 programming techniques, API calls, etc. Not as easy, but MUCH faster than .NET and even much faster than VB6.
    - And the PowerBASIC allows you to freely mix inline Assembler with BASIC to fine tune your apps to a high degree!
    Last edited by Sigid; 01-17-2006 at 09:59 AM. Reason: add content

  15. #15
    Join Date
    Sep 2005
    Posts
    10
    I guess it really depends on what type of project you are designing. Since most of my programs are desktop applications for home users, I've been using .NET now since it is much simpler and intuitive (from a multi-language perspective) and faster than VB6 for my typical application. However, I keep VB6 just in case. Each one seems better than the other at some thing or another. The part I appreciate the most in .NET, though, has to be the addition of "real" OO programming concepts... like inheritance and overloading. And, oh, if you've got VS2005 you have to check out overloading operators if you're not familiar with it. But despite my googly-eyes for that kind of stuff, I think it really just comes down to picking the right tool for the job... even if you think it's outdated or too complex or whatever.

    One thing, though, is that I've only noticed a speed increase so far. Someone posted earlier that their math-based code ran slower in .NET. However, I took an octree quantizer module from VB6 and converted it to .NET... it actually takes about 1/5 the time it used to. Of course, this speed increase could be due to the fact that .NET accesses structure and class members much more efficiently--including arrays--and my octree quantizer uses a single 1-dimensional array of node structures.

    While I'm at it, I have to mention the "learning curve" thing. If you're coming from a VB-only perspective, then it'll be really awkward at first. However, if you're familiar with Java or similar languages, then it'll be a breeze and you'll probably appreciate the changes more than the VB-only programmer... particularly if you dig initializers and assignment operators as much as I do =)

    Just my thoughts. =)

Similar Threads

  1. Speaking of strings...
    By Harlow in forum .NET
    Replies: 246
    Last Post: 10-26-2002, 12:30 AM
  2. YAG's status report - Feb 14, 2002
    By Seth Grossman [MSFT] in forum .NET
    Replies: 1
    Last Post: 02-15-2002, 12:35 AM
  3. More on Visual J#.Net
    By Jim Pragit in forum .NET
    Replies: 64
    Last Post: 10-20-2001, 08:06 PM
  4. VB Classic Destroyed (was Re: Truce?)
    By Patrice Scribe in forum .NET
    Replies: 11
    Last Post: 10-07-2001, 06:15 AM
  5. Re: Will VB hurt .NET? Instead of .NET helping VB?
    By Jonathan Allen in forum .NET
    Replies: 55
    Last Post: 02-20-2001, 05:18 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center