Click here to Skip to main content
12,075,542 members (64,764 online)
Click here to Skip to main content
Add your own
alternative version


50 bookmarked

Visual Basic 6.0: A giant more powerful than ever

, 14 Jan 2014 CPOL
Rate this:
Please Sign up or sign in to vote.
When discussing VB6, we should look at the reality of the situation and not on preconceived opinions. New source code projects are made daily in Visual Basic 6.0. The paper proposes the reintroduction of Visual Basic 6.0 on the market, in parallel with Visual Studio line.


Released on the market in mid 1998, Visual Basic 6.0 (abbreviated VB6) has been and it still is the most successful version in the history of Visual Basic. The VB6 compiler has been designed to satisfy the slow processors of the late 90’s (800MHz – 1300MHz). Fortunately, compilers do not get old (ie. ADA – an "old" compiler underlying F22's raptor on board equipment, or Fortran and COBOL - which are widely used)1-3 .  This throws us into an older conclusion, namely if it is new it is not necessary better. 

Nevertheless, at the time, VB6 designers were true visionaries, who have done an incredible job which has withstood time. With the increase of the processor speed, compiler designers have become increasingly careless, overestimating the hardware power. These bad habits have probably been taken from the 3D game industry where the size of the game was almost always confused with its complexity and novelty. 

Why is VB6 still successful ?! 

There is no great secret that VB6 gets along very well with embedded machine code and the assembly language. VB6 advanced programmers are usually advanced assembly language programmers also. They have propelled VB6 programming language to the very top. Nowadays, through a simple copy and paste of the myriad of functions created by advanced programmers for VB6, an intermediate level programmer can create VB6 applications that run faster than those designed in C++ (no joke there).

Microsoft should perhaps listen to the hundreds of thousands of programmers who demand the introduction of VB6 to the market . It seems that no other programming language has created more scandal than VB6, culminating in a very serious petition to Microsoft made by programmers (14627 signatories including 265 Microsoft MVPs) from around the world4,5 . The phrase that is most heard from other internet VB6 programmers in small talk discussions is: "if there is no more VB6 then I will move to Linux, I know most programming languages anyway ..." otherwise a troubling phrase for Microsoft. 

Both I and other VB6 programmers, do not understand why Microsoft does not redesign a parallel version of VB6, ("Visual Basic 6.0 phoenix" would probably be a good name taking into account the circumstances). Most companies take care of their fans and designers. Personally I do not see anything harmful or threatening in a new separate VB6 programming language for the Microsoft grand plans. 

Some VB6 open source projects in 2013 

With an average of 7 posts a day, VB6 programmers brought in 2013 about 2500 open source projects on Planet Source Code alone. What is interesting is the high quality of the projects made in VB6 in recent years.  Listed below are some very serious VB6 projects that have ignited my interest and imagination: 

Visia Compiler (a professional programming language - made in VB6) 


Visia Compiler is a native x86 compiler for Windows 32 platform (update #4). This great project is made by Kinex (with thanks to Mark Chipman, Mordred (nick name), Tommy Lillehagen and Jordi Enguídano). It is written in Visual Basic 6.0 but compiles directly into machine code without the need of any runtime libraries or other dependencies. The language supports GUI creation, API, pointers, inline assembly (FASM must be installed). It may build and include libraries, include source headers (inc), custom entry point and dynamic arrays. Syntax is only little similar to basic-like languages as coding structure is near to C than Basic. 


PhotoDemon 6.2 (a Photo Editor as powerful as Photoshop is, - made in VB6) 


08 JAN 2014 UPDATE. This update includes a new content-aware resize tool (also known as Liquid Rescaling). Content-aware resizing uses seam carving ( to rescale images by removing unimportant areas while preserving important ones. It wasn't added to Photoshop until CS4, so it's a relatively cutting-edge technique, and I think this is the first-ever VB implementation. Feedback welcome! Try it from the Image -> Content-aware resize menu. This update also includes many minor bugfixes, optimizations, and other improvement. As the title says, PhotoDemon is a fast, powerful, VB6-based photo editor focused on usability. Despite being coded in VB, many of its filters and tools outperform those in other free photo editors (GIMP, Paint.NET, etc).

Key features include: 100+ filters and tools, macro recording, batch processing, automatic update notifications, real-time effect previews, EXIF and XMP metadata handling, RAW format support, color-managed workflow, and much more. Compile for best results. Thank you to all the PSC projects whose work helped PhotoDemon exist; full credit and links to those projects can be found in Help -> About. 


Advanced mathematical functions (made in VB6)  


Here I upload 102 modules containing several hundred advanced mathematical functions written by Sergey Bochkanov between 2005 and 2013 (some of these functions are not found even in C or C++). Some of the functions , include:

  • Decision forest classifier (regression model)
  • K-means++ clustering
  • Linear discriminant analysis
  • Linear models
  • Logit models
  • Basic neural network operations
  • Neural network ensemble models
  • Neural network training
  • Principal component analysis
  • Ordinary differential equation solver
  • Fast real/complex convolution
  • Fast real/complex cross-correlation
  • Real/complex FFT
  • Real Fast Hartley Transform
  • Adaptive 1-dimensional integration
  • Gauss-Kronrod quadrature generator
  • Gaussian quadrature generator
  • Inverse distance weighting: interpolation/fitting
  • Linear and nonlinear least-squares solvers
  • Polynomial interpolation/fitting
  • Parametric spline interpolation
  • Rational interpolation/fitting
  • 1D spline interpolation/fitting
  • 2D spline interpolation
  • Level 2 and Level 3 BLAS operations
  • Bidiagonal SVD
  • Eigensolvers
  • Sherman-Morrison update of the inverse matrix
  • LDLT decomposition
  • Determinant calculation
  • Random matrix generation
  • Matrix inverse
  • Real/complex QR
  • LQ
  • bi(tri)diagonal
  • Hessenberg decompositions
  • Condition number estimate
  • Schur decomposition
  • Determinant of a symmetric matrix
  • Symmetric inversion
  • Generalized symmetric eigensolver
  • Condition number estimate for symmetric matrices
  • Singular value decomposition
  • LU and Cholesky decompositions
  • ASA bound constrained optimizer
  • Conjugate gradient optimizer
  • Limited memory BFGS optimizer
  • Improved Levenberg-Marquardt optimizer
  • Nearest neighbor search: approximate and exact
  • Dense linear system solver
  • Symmetric dense linear system solver
  • Airy functions
  • Bessel functions
  • Beta function
  • Chebyshev polynomials
  • Dawson integral
  • Elliptic integrals
  • Exponential integrals
  • Fresnel integrals
  • Gamma function
  • Hermite polynomials
  • Incomplete beta function
  • Incomplete gamma function
  • Jacobian elliptic functions
  • Laguerre polynomials
  • Legendre polynomials
  • Psi function
  • Trigonometric integrals
  • Binomial distribution
  • Chi-Square distribution
  • Pearson/Spearman correlation coefficients
  • Hypothesis testing: correlation tests
  • Descriptive statistics: mean
  • variance, etc.
  • F-distribution
  • High quality random numbers generator
  • Hypothesis testing: Jarque-Bera test
  • Hypothesis testing: Mann-Whitney-U test
  • Normal distribution
  • Poisson distribution
  • Hypothesis testing: sign test
  • Student's t-distribution
  • Hypothesis testing: Student's t-test
  • Hypothesis testing: F-test and one-sample variance test
  • Hypothesis testing: Wilcoxon signed rank test.

Libry Compiler 4.1 (made in VB6)


Libry Compiler is a 32-Bit programming language which compiles directly into machine code and produces a small PE file (runtime independent EXE's). Libry's syntax resembles C language style (I accidentally deleted the original post). 

OpenStreetMap (made in VB6)


Read and visualize OpenStreetMap files. Plus a simple Dijkstra algorithm. UPDATES: V1.1-Improved LAT LON to meters conversion function. 


VB6 the king of the jungle   

Microsoft "thinkers" probably "thought" that if VB6 is no longer supported, then programmers will be forced to move to the .NET environment. This was, undoubtedly, a wrong assumption, because it seems that in 2013 (and no doubt in 2014),  VB6 is once more in the top of open source projects (see Figure 1). After the programmers petition4,5 , and many articles in the media6-15, several years ago VB6 was again supported by Microsoft (and still is). 


Figure 1.  Best programming language in the world in 2013 - 2014. The figure shows the number of "source code" keyword appearances for some of the most popular programming languages6 . These proportions reflect the actual number of open source projects for each programming language. The methods after which these calculations were made, can be found here.

VB programmers do not particularly like VB. NET and don't like any other versions of VB after VB6. Why? VB6 is dependent on a single file, namely: msvbvm60.dll. On the other hand, VB .NET is dependent on the .NET Framework environment, which inhibits the individualism of the programmer and this is not consistent with the human nature. 

The silent VB6 war  

Certain VB6 applications (compiled EXE's) are in conflict with some antivirus companies. The reasons behind this conflict are not yet known. VB6 is too strong and it has the most programmers, this may be a good reason for conflict, or, another reason would be the incompetence of these companies in extracting relevant signatures. There are rumors throughout the VB6 community that many customers uninstall the antiviruses of some security companies due to false detections on VB6 applications (VB6 executables). Let us remember, Microsoft has not perhaps realized that antivirus companies have buried Visual Basic Script (VBS). However, Visual Basic Script did not have hundreds of thousands of programmers worldwide as VB6 has.  

If Windows 7 is criminaly ensane-smart and beautiful (Windows 8 being just smart) and the team dealing with it did a great job, the team (department) that decides the fate of Microsoft programming languages does not, still, understand the force of Visual Basic 6.0.  Paul Yuknewicz is (as I understand) the Lead Program Manager on the Visual Studio team. He invites us to use VB6 inside VMware in the future!16 . It says this in an online movie viewed by 45,841 VB6 programmers, 45,841 souls. Now, is not this a lack of respect for the entire VB6 community ?! just a thought ...  

The humble request of programmers  

We have to force Microsoft's hand to reintroduce VB6 to the market, of course, under the same name and fully compatible with future Windows OS’s! As long as the programmer feels like in VB6 and the classic VB6 source codes work, everything will be fine and everyone will be happy. Increasingly more and more applications are made in VB6. We will not be ignored ! 

I will end this article quoting Karl E. Peterson: "Microsoft had never rendered any of their customer's data unusable. Not once. Why they did it first to the users of the world's most popular programming language ever, the product the company was founded upon and that may have had more impact on their overall corporate position than any other, is extremely puzzling. After years neglecting the VB6 community, Microsoft seems to be missing something. Us!"16 



2.  Ganssle, Jack (2013-05-29). "Ada Resource Association - News and resource for the Ada programming language". Retrieved 2013-06-14. 

















This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Romania Romania
No Biography provided

You may also be interested in...

Comments and Discussions

AnswerRe: Agreed. Now pass me my stone axe. Pin
ISpliter14-Oct-14 16:24
memberISpliter14-Oct-14 16:24 
GeneralRe: Agreed. Now pass me my stone axe. Pin
pt140114-Oct-14 21:35
memberpt140114-Oct-14 21:35 
GeneralRe: Agreed. Now pass me my stone axe. Pin
ISpliter20-Oct-14 13:00
memberISpliter20-Oct-14 13:00 
GeneralRe: Agreed. Now pass me my stone axe. Pin
pt140120-Oct-14 20:04
memberpt140120-Oct-14 20:04 
QuestionVB6 programming still more popular than it's successors Pin
VB6 Programming13-Aug-14 5:41
memberVB6 Programming13-Aug-14 5:41 
QuestionCall for updated VB6 programming still ignored by Microsoft Pin
VB6 Programming1-Aug-14 22:53
memberVB6 Programming1-Aug-14 22:53 
GeneralMy vote of 5 Pin
kentclark51916-Jul-14 9:28
memberkentclark51916-Jul-14 9:28 
QuestionFantastic Article and some Requests for VB7_COM. Pin
Elroy Sullivan9-Jul-14 10:53
memberElroy Sullivan9-Jul-14 10:53 
This is a fantastic article. Yes, MICROSOFT, if you're listening, PLEASE PLEASE dust off VB6 and release another updated version that directly compiles all legacy VB6 code. If you actually are listening, here are a few enhancements, I'd dearly love:

* A 64 bit version with all the new AERO type windows, but I know you'd do this at a minimum.
* Option ExplicitType. This one would require that the Type (Long, Double, String, etc.) of all variables, constants, and functions be explicitly declared. It drives me nuts when I find a function that I’ve forgotten to declare, realizing that it’s using the Variant type.
* An 8 byte integer, but don’t rename the Types for existing integers (Integer and Long). Call it something like DoubleLong. Yes, I know. I can get this done with the Currency type, but then I have to futz with the fixed decimal stuff.
* A new pair of keywords: Block and EndBlock. These would allow the scope and lifetime of variables to be less than the procedure level (which is the smallest scope at present).
* Full Unicode support in all the core level controls (textbox, label, command, all captions including forms, etc.). As a further caveat: Don’t break all our existing API calls to both ANSI and Unicode API functions when/if you ever do this. I've got routines to do this for files, API calls, and even captions and using the RTF textbox for Unicode, but I'd like to use the Property Sheet for unicode as well, and just make it part of the language.
* A straightforward utility to create manifest files for OCX and DLL support files. Or, better yet, a way to include OCX and DLL files in our Project Explorer window so that they get wrapped up in the VB EXE file as an internal overlay (obviously, with no requirement to “install” or register them). Whatever you do, don’t break the ability to use old OCX and DLL files. I can currently get ALL of this done with the MakeMyManifest utility, and wrapping the .manifest and dependency files into the .EXE with the Resource Manager, but it could all be MUCH easier.
* Don't allow a Redim to qualify for an Option Explicit dimensioning. In my mind, Dim, Static, Public, Global, & Private are the only true dimensioning statements. Redim is a runtime statement used to modify an already dimensioned dynamic array. As far as I am concerned, this change could be made without allowing for any option metacommand, even though it might require some modifications to existing code. If you like, add an Option NoRedimWithoutDim so that existing code isn't broken.
* An option to compile as a METRO app.

I'd spend some pretty big bucks for this IDE and compiler if it were available.
AnswerRe: Fantastic Article and some Requests for VB7_COM. Pin
Member 109869181-Aug-14 22:31
memberMember 109869181-Aug-14 22:31 
GeneralThank You ISplitter Pin
daveecarter16-Jun-14 0:55
memberdaveecarter16-Jun-14 0:55 
BugFruitless request Pin
alifaris9-May-14 7:04
memberalifaris9-May-14 7:04 
GeneralRe: VB developers are more expert than the developers at Microsoft that are there right now :( Pin
ISpliter9-May-14 7:48
memberISpliter9-May-14 7:48 
QuestionNo words, the title itself says everything? Pin
Thava Rajan23-Apr-14 4:55
memberThava Rajan23-Apr-14 4:55 
AnswerRe: No words, the title itself says everything Pin
ISpliter23-Apr-14 5:28
memberISpliter23-Apr-14 5:28 
GeneralRe: No words, the title itself says everything Pin
Thava Rajan23-Apr-14 11:16
memberThava Rajan23-Apr-14 11:16 
GeneralRe: No words, the title itself says everything Pin
ISpliter23-Apr-14 12:44
memberISpliter23-Apr-14 12:44 
AnswerRe: No words, the title itself says everything? Pin
Hugo Lalumiere29-Jun-15 11:36
memberHugo Lalumiere29-Jun-15 11:36 
GeneralRe: No words, the title itself says everything? Pin
ISpliter29-Jun-15 16:01
memberISpliter29-Jun-15 16:01 
GeneralKarl's quote wasn't even accurate at the time PinPopular
BC_programming5-Apr-14 6:37
memberBC_programming5-Apr-14 6:37 
GeneralRe: Karl's quote Pin
ISpliter5-Apr-14 13:08
memberISpliter5-Apr-14 13:08 
QuestionWhere is the Successor to VB 6.0 ? Pin
rgrigonis31-Mar-14 3:44
memberrgrigonis31-Mar-14 3:44 
AnswerRe: Where is the Successor to VB 6.0 ? Pin
ISpliter31-Mar-14 12:37
memberISpliter31-Mar-14 12:37 
QuestionLast Man Standing Pin
Member 80024543-Mar-14 22:53
memberMember 80024543-Mar-14 22:53 
GeneralMy vote of 5 Pin
Carl Edwards In SA3-Mar-14 22:12
memberCarl Edwards In SA3-Mar-14 22:12 
Questionhmm where are the link to the mathmatical functions? Pin
Member 103012513-Mar-14 21:55
memberMember 103012513-Mar-14 21:55 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.160208.1 | Last Updated 14 Jan 2014
Article Copyright 2014 by ISpliter
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid