Click here to Skip to main content
Click here to Skip to main content

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

Comments and Discussions

QuestionThank you for a very interesting article PinmemberHoward Cox11-Feb-14 13:07 
AnswerRe: Thank you for a very interesting article PinmemberISpliter19-Feb-14 10:53 
QuestionI have a soft spot for VB6 PinmemberMegan Thron10-Feb-14 20:06 
AnswerRe: I have a soft spot for VB6 PinmemberISpliter19-Feb-14 10:47 
QuestionVB6 is elegant PinmemberDavid Yolovitz10-Feb-14 13:47 
AnswerRe: VB6 is elegant PinmemberMegan Thron10-Feb-14 20:08 
AnswerRe: VB6 is elegant PinmemberISpliter19-Feb-14 10:45 
QuestionVisual Basic 6.0 creates robust, reliable, high-performance app's ! PinmemberAdam one10-Feb-14 12:15 
AnswerRe: Visual Basic 6.0 creates robust, reliable, high-performance app's ! PinmemberDavid Yolovitz10-Feb-14 13:54 
AnswerRe: Visual Basic 6.0 creates robust, reliable, high-performance app's ! PinmemberISpliter19-Feb-14 10:43 
QuestionI've seen amazing things done in VB6! PinmemberMobius Scutav9-Feb-14 15:23 
AnswerRe: I've seen amazing things done in VB6! PinmemberDavid Yolovitz10-Feb-14 13:56 
AnswerRe: I've seen amazing things done in VB6! PinmemberISpliter19-Feb-14 10:41 
QuestionThere are many, many huge and complex systems written in Visual Basic 6.0 PinmemberIrina Volkof9-Feb-14 14:54 
VB6 does everything I need to do and does it very well. Honestly I can live with its current features and stability. It fills a niche that nothing else does. It is the best RAD environment I have found and has great powerful GUI capabilities. I will not use .NET. I have and can, but I find no extended value in it over VB6. I do not want to be more abstracted away from the processor , Windows API, or raw memory access. If anything I want to be closer to it. Seeing the trajectory that Windows has taken in general, I am glad they havent decided to try to innovate on VB6 yet. I dont really trust them to do it right. To the people who argue that all of .NETs OOP stuff is great, I disagree. I am much happier with C over C++ as well. Complexity gives people more ways to make things..well complex. I prefer simple direct solutions where ever possible. If you revel in complex constructs fine, use your language of choice, but your not going to sell me on it. For the VB6 bashers, its fine that you dont like it, go use something else, but your arguments have no value for those who do use it. If a VB6 developer has hung in there this long to still be using it and rejecting other languages, its experience that has fueled this choice and strengthened their resolve. It does what it does well. Every language has a niche and target audience. This is still the best product in its range even though its 15yrs old and billions have been spent trying to obsolete it.
AnswerRe: There are many, many huge and complex systems written in Visual Basic 6.0 PinmemberDavid Yolovitz10-Feb-14 14:18 
AnswerRe: There are many, many huge and complex systems written in Visual Basic 6.0 PinmemberISpliter19-Feb-14 10:39 
QuestionAbsolute gibberish!!!! PinmemberColin Eberhardt28-Jan-14 2:14 
AnswerRe: Absolute gibberish!!!! is it ?! PinmemberISpliter28-Jan-14 9:52 
GeneralRe: Absolute gibberish!!!! is it ?! PinprofessionalMycroft Holmes8-Feb-14 17:21 
GeneralRe: Absolute gibberish!!!! is it ?! PinmvpDave Kreskowiak9-Feb-14 6:07 
GeneralRe: How can you be a former long time VB6 developer if you picked up VB.NET way back in 2001 ?! PinmemberAdam one10-Feb-14 13:15 
GeneralRe: How can you be a former long time VB6 developer if you picked up VB.NET way back in 2001 ?! PinmvpDave Kreskowiak10-Feb-14 14:53 
GeneralRe: Absolute gibberish!!!! is it ?! PinmemberTim Carmichael10-Feb-14 3:13 
AnswerRe: Absolute gibberish!!!! Pinmembersten200531-Jan-14 9:16 
QuestionVote for VB6 Pinmembersten200526-Jan-14 23:16 
AnswerRe: Vote for VB6 PinmvpDave Kreskowiak10-Feb-14 4:47 
GeneralRe: Vote for VB6 PinmemberDavid Yolovitz10-Feb-14 14:22 
QuestionAdvanced mathematical functions (made in VB6) link Pinmembereslipak21-Jan-14 10:16 
AnswerRe: Advanced mathematical functions (made in VB6) link PinmemberISpliter21-Jan-14 13:24 
GeneralRe: Advanced mathematical functions (made in VB6) link Pinmembereslipak22-Jan-14 5:50 
QuestionVB6 = A programming language that MUST be re-invented PinmemberMember 408840120-Jan-14 22:44 
AnswerRe: VB6 = A programming language that MUST be re-invented PinmemberISpliter21-Jan-14 13:32 
GeneralRe: VB6 = A programming language that MUST be re-invented PinmemberRob Grainger27-Jan-14 2:43 
GeneralRe: VB6 = A programming language that MUST be re-invented PinmvpDave Kreskowiak9-Feb-14 6:12 
GeneralRe: VB6 = A programming language that MUST be re-invented PinmemberIrina Volkof9-Feb-14 15:05 
GeneralRe: VB6 = A programming language that MUST be re-invented PinmvpDave Kreskowiak9-Feb-14 15:41 
GeneralRe: VB6 = A programming language that MUST be re-invented PinmvpDave Kreskowiak9-Feb-14 6:12 
GeneralRe: VB6 = A programming language that MUST be re-invented PinmemberAdam one10-Feb-14 13:24 
GeneralRe: VB6 = A programming language that MUST be re-invented PinmemberHoward Cox11-Feb-14 13:22 
GeneralVB6: A giant PinmemberMember 810189920-Jan-14 13:00 
GeneralRe: VB6: A giant PinmemberISpliter21-Jan-14 14:00 
QuestionGreat article Pinmembersprice8620-Jan-14 2:38 
AnswerRe: Great article PinmemberISpliter21-Jan-14 13:45 
SuggestionThoughts PinprofessionalMarco Bertschi17-Jan-14 6:04 
GeneralRe: Thoughts PinmemberISpliter17-Jan-14 8:00 
GeneralRe: Thoughts PinmemberGregory.Gadow19-Jan-14 20:54 
QuestionVB6 still more popular than VB.Net Pinmembersten200516-Jan-14 22:49 
AnswerRe: VB6 still more popular than VB.Net PinmemberISpliter17-Jan-14 3:55 
QuestionTrue Pinmembermimarshad16-Jan-14 17:06 
AnswerRe: True PinmemberISpliter16-Jan-14 19:31 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    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
Web03 | 2.8.150327.1 | Last Updated 14 Jan 2014
Article Copyright 2014 by ISpliter
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid