Saturday, February 20, 2016

There are limits to what could be done without breaking a lot of things people expect from VB6 now (Dilettante wrote)

There are limits to what could be done without breaking a lot of things people expect from VB6 now.
Anything that requires a new runtime will become a disaster for many. People have come to rely on a stable VB6 runtime being preinstalled as part of Windows. That precludes any changes to the set of instrinsic controls, native I/O, and other built in classes and functions.
What could be done includes things like an updated IDE, a new C2.EXE aware of newer CPUs to generate more optimal code, more OCXs containing Unicode as well as ANSI controls, and new OCXs and DLLs that follow the shift from 1998 to now. In many cases all that is needed for the latter are some wrapper-OCXs or even just some typelibs for things already implemented in Windows... and then some more VB-friendly documentation. The main "shifts" I'm referring to include less need for ANSI support, more need for Unicode including UTF-8, prevalence of HTTP and web services, and things like that.
Most of that could be done piecemeal, i.e. they might leave the IDE alone except to add a few compiler options to be passed through to C2 - if even that. Or they might just ship a "libraries add-on pack" with those new OCXs, DLLs, and typelibs.
Any or all of that could be part of a new Service Pack.
More radical changes that actually resulted in a real VB7 (not VFred7) would mean the runtime deployment requirement returns. I don't really care for that unless it made things that I need possible, and most of what I want or need could be accomplished through that "service pack" approach I already described.
In a UAC/least-privilege world being able to package VB6 programs as "portable apps" using reg-free COM has been important. With a "new VB6" we would lose that because of the new runtime requirement... unless they found a way to make the runtime libraries portable as well.
I might have to take some of that back.
With a new IDE/compiler and C2.EXE pass 2 I suppose they could add to native I/O syntax and even add new Unicode pseudo-intrinsic controls by compiling them as calls into a statically-linked extender library. Then the existing Earth Standard VB6 runtime that is preinstalled in Windows could still be used.
This would bloat compiled programs, but how much depends on how many things they put into the extender library. I suppose that could be an optional DLL though instead.
But that's still a minor update, not a "new VB6" at all. Call it "VB6.1" maybe?

by Dilettante

Best NFS 3D Game made in Visual Basic 6.0 in 2016

This Visual Basic 6.0 open source project is one of the most advanced NFS-like games I have seen.

Download source code

The movie from below is at 10 fps, the game has more than 100 FPS, faster than anything I have seen before.

A 3D car model made in Visual Basic 6.0

A 3D car model made in Visual Basic 6.0:

A visual basic source for 3D madels. The source code (Visual Basic 6.0) ca be downloaded from here:

or here:!&daysprune=365

or here:

Tuesday, February 16, 2016

Debuggy V2.0 disassembler made in Visual Basic 6.0

Debuggy v2 is a Windows (any Windows platform) debugger, disassembler, Windows resource extractor, file hex editor, window sniffer and API spy all rolled into one. This is made in the great Visual Basic 6.0 language:


Debuggy disassembler made in Visual Basic 6.0

Debuggy v1 is a Windows (any Windows platform) debugger, disassembler, Windows resource extractor, file hex editor, window sniffer and API spy all rolled into one. This is made in the great Visual Basic 6.0 language:

Download the VB6 source code

More here:

VB6 vs .NET

So .NET is now almost 11 yrs old (Feb 2002). VB6 is almost 15, (1998). 

I tinker in C#. There is allot of existing code now for it that can save me time. The .NET framework and having large debugged libraries available is nice, but there are still tradeoffs. 

Vb6 is a dead language according to some definitions. In reality though, since it still works, its actually one of the most stable languages you will find. No break neck innovation, no one is whipping up new features that keep your head spinning. Its a stable environment. We know what it does, we know what it doesnt do, and there is a load of public code available for it. 

If you aren't familiar with the VB6 IDE, here is a quick video:

One gripe with vb6 was that it needs the 1mb vb runtime installed in order to run on a system. Also if you wanted other features such as listviews, or progress bars you had to include references to external ocx or dll files which made distributions harder. 

.NET actually took that mess to a whole new level. At the present moment I have 4 seperate versions of the .NET runtimes installed on my system each taking up hundreds of MB of disk space, and each requiring at least 20-30 minutes to download and install. 

How about all of the fancy features of .NET compared to the basic class structures of vb6? Honestly I find vb6 simpler and more direct. Typing in .NET code is very verbose, as you walk your way through the different classes and enums. Also all of the advanced object oriented class features such as polymorphism. They are stressed allot, but in reality you can write an awful lot of code without having to use such features. Complexity and error are closely related. 

Granted there is some liability in using VB6 for new products. There may come a day when it will cease to operate or bugs crop up in future operating systems, or more likely, that you will need some capability that cant be done in VB6 cleanly. 

How is it that a decade latter, I still find myself reminiscing, and ranting on the new architecture? I guess to me, VB6 is still my perfect "get shit done quick" language due to its directness and simplicity. I am also lucky that I only really write research applications. 

A danger of new technologies is that they tend to thrash about in the evolution process. Thank god i didnt start developing any code for windows phone! They have had several complete incompatible shifts in technology over the years and the phone still has poor market share. 

Its amazing how many boutique programming languages are out there. This even extends to corners of the .NET framework such as WPF. 

Mastery is being able to obtain a simple elegant answer even while interfacing with a complex (or even chaotic) system. Stability is virtuous.

Author: Dave

Read more here: Visual Basic 6.0 superiority over .NET and the anger towards Microsoft

The .NET Fiasco

If you have looked around my site, you have probably noticed a lack of .NET code. Here is my little long overdue rant on .NET 

First, let me say i love VB6. It has a great IDE, great debugging tools, very extensible, has enough power for most tasks, easy to add more horsepower in teh form in C dlls or COM objects, and makes GUI stuff an absolute breeze. 

Sure i wish it had the capability of linking in C obj files, inline asm, directly linked in VB runtime, and some more default libraries like php has access to by default...but .NET was .NOT the answer. 

In the early days of Java, everyone was all hot to trot on platform independance and web integration. The marketers went nuts pushing wares. MS hopped on board with J# until they got sued and lost. Now we have .NET which i consider to be MSs old J# retooled and reworked in their own flavor of poo. 

I understand the .NET good debugging capabilities and a powerful IDE, and addresses some of the shortfalls i find with vb6, however they turned it into even a greater pile of bloatware. Everyone used to complain about the 1mb vb runtime that installed in seconds. So they turned around and created a 25mb runtime for .NET that takes tens of minutes to download and then tens of minutes to install. 

What sparks this post is me looking at my add remove programs list. Right now I have 3 versions of that blasted runtime installed on my machine, each taking up close to 200mb a piece. Its just bloated crap. 

Honestly i guess I am also a little peeved that VB.NET has very little in common with VB6. You cant realistically covert the code over. You can use old code as COM objects but still. Also I hate the class layout of Java and .NET. Its academic in design. Overly long and nested classes and object encapsulation. Makes all your code lines needlessly long. 

I do understand its powerful to use .NET on embedded devices. To have one programming model across different processors and memory models, but for desktop development .NET is garbage in my book no matter how much they hype it. I wont even begin to talk about their web forms mess. ASP and PHP are still better solutions in my book. 

Part of me also cant help but feel that their desire to incite the new language of the day isnt driven by their need to ship more product and refresh their IDE sales. 

As a developer i dont need mindless break neck innovation just because you need more sales volume. I need a stable workable tool that lets me earn a living without having to go back and learn the ABCs of your language du jour. 

If these are the choice we must make, then i would much rather pay a subscription yearly for continued license to my development IDE and operating system so that both of us have a stable operating base and tool set. Most of the innovations in VISTA are garbage also. 

Mindless "innovation" and media hype for home users and fluff to sell the next sales unit.

Author: Dave