So Why do I still prefer vb6? - lite weight, easy to use - default variant type and no need to define every variable makes it very flexible and as fast as a scripting language to code in, yet also supports the ability to enforce type checking for larger projects - apps start up extremely quickly, this is important especially during development when you have to start up your app to test it many many many times. - the debugger is great and has all the modern features. It still supersedes whats available in many other languages! - when paused you can edit code in any procedure - in .net edit and continue is limited to current procedure only - when paused the GUI continues to repaint so you can see any visible output you have already added to lists etc. (.net does not) - edit and continue doesnt always work in .net - you can have direct access to memory without having to marshal and pin - automatic type conversions and variable initialization. if you want to append a number onto a string you can just say "result: " & intResult verses having to explicitly cast it to string like intResult.toString() (These add up) - the auto variable initialization is great is you are coming from a language like C - easy integration with the Windows API, standard C dlls, and unparalleled easy access to COM objects and types. - same runtime works from win98 - windows 10 - runtime is only 1mb plus any external dll/ocx's you use - .net runtime is hundreds of mb and there are multiple versions. older versions are no longer installed by default on new machines, older machine dont come with any .net runtime, and it may not even be available for them. so much for compile once run anywhere. - compiles to native machine code and can be run through a standard x86 debugger if problems arise. - can not be decompiled back to source form like .net can. - does not contain metadata about every inner function. - has loads of sample code available - intellisense lists are not burdened with garbage and complexity, just what you add - vb6 provides a natural path for developers to learn about the Windows API and work their way down into C programming, and eventually even COM programming. - vb6 executable size is decently small, its a good tradeoff between executable and runtime size. Also since the runtime hasnt changed in SOOO long, most people already have it as well as the common microsoft activex components. People will say things like vb6 is to simple and its built in tools for things like parsing strings or accessing files is to primitive. They may also balk that it doesnt have the built in functionality to do things like download files or do complex http requests, or even not having access to unsigned long or 64 bit types. All of these things are true, however..those arent really valid arguments. VB6 has been around for a very long time and it has all the primitives you need to build these things. The first thing you did as a new VB6 programmer was to create your own file system class to make access to things like FileExists and ReadFile functions easier to use. Similarly the other issues are easily fixed through the use of various classes which already exist. Yes it would be nice if the same classes were readily available to every and nicely debugged, BUT creating your own is also an important exercise in your development as a programmer. Also I prefer to add in only the functionality i need into a project instead of having to rely on a multi hundred mega byte runtime install. Installing the various activex dependencies you need is also not complicated. Many times your application can actually check for thier existence and install them itself at runtime during startup routines before they are needed. Even if you cant, creating an installer is not all that complex and there are good free tools available such as InnoSetup. Now this is not to say its all rainbows and unicorns. There are things I wish it had. such as a more compact syntax such as C#. Really though everything else you can accomplish through libraries. It is an old language, you cant expect it to have all the modern libraries such as json parsing available to it, but you can surly add them in. The reason I still use it, it because even despite these things, I find it to be the best match for my needs in terms of easy of use, and speed of development. The bottom line is its capabilities still meet all of my needs, and it still has an ideal power to weight ratio. (.net's main downfall in my eyes) All i really want is a stable general purpose language that doesnt have a zillion features that help people write confusing code, is easy to write stable GUIs in, and can integrate with other languages well. |