DEV Community

Cover image for VB6 and FoxPro is better than Java and C#
Thomas Hansen
Thomas Hansen

Posted on • Originally published at

VB6 and FoxPro is better than Java and C#

VB6 and FoxPro was the laughing joke of the software industry 20 years ago. None of these languages had any OO constructs, and you were considered an "inferior software developer" if you used VB or FoxPro for these reasons. I once heard a joke about VB6.

The only ones who will benefit from inheritance in VB6 are Bill Gates' children

Both VB6 and FoxPro had issues. FoxPro for instance was impossible to scale, you could only create desktop apps with it for Windows, and its database technology was about as far away from ACID as it is possible to come. However, FoxPro had one thing going for it, which was that anyone could install the development platform, and start creating apps after some few hours of studying. The productivity boost FoxPro and VB6 provided was insane compared to C# and Java. A couple of hours in FoxPro, and you had a complete database driven desktop application you could distribute as an EXE file.

What are you measuring?

When measuring new technology it's important to measure the correct thing. A friend of mine who had no prior software development experience used VB6 to create a fairly complex software system. Originally he created it for his family, but it eventually turned into a company with several employees, and a sustainable business model. 15 years ago he was one of the largest vendors of these types of apps in Norway, and his entire company was in fact built on top of VB. If he had started it with C# or Java, he would have spent half a decade before he'd been able to understand LSP. LSP is one of the characters in "SOLID" (read; "Rubbish Programming Paradigm"). VB was simply a superior programming language for my friend's needs.

Unfortunately, Microsoft chose to abandon VB, and my friend later had to make the switch to C#. C# ended up becoming his downfall. He tried his best for a couple of years, but his software basically turned into a huge pile of garbage, filled with design patterns, OO constructs, and other rubbish ideas. I don't think he works with it anymore. When measuring a software development platform you need to ask yourself the following questions;

  1. What am I creating?
  2. What do I know from before?
  3. How fast can I learn what needs to be learned to build my app?

A Java developer will always land on Java for the above questions. A C# developer will always land on C# for the same reasons. A PHP developer will always land on PHP for similar reasons, etc. However, there's a 4th question, that few people ask themselves because of egotistical reasons.

What is the BEST platform for what I'm about to build?

25 years ago if you were creating desktop apps, VB6 and FoxPro was a bajillion times better. I don't even need to prove it. History have proven me right a long time ago. Just look at all the companies and software projects that was similar in nature to my friend's project.

Both FoxPro and VB were created to allow everybody to create software, while Java and C# were created as "ivory towers for the priesthood of software development". This resulted in that only those who already have knowledge about these platforms could deliver products with them. Add to this that learning Java and C# easily takes half a decade before you're even experienced enough to understand why IoC is a good idea, and you've basically corrupted the entire software development industry. People trying to convince you that OOP, Kafka, C#, OOD, Design Patterns and SOLID are great ideas, are really saying ...

"I need for you to implement your software using all of these rubbish ideas such that I can ensure only me, or one of my other "priesthood comrades" can maintain your software, such that we keep the power we currently have to ourselves, while you're still left in the dark"

Really, the above is what developers are really saying when they advocate complex acronyms, impossible to understand for mere mortals, without decades of experience in DDD or God knows what else. Don't fall for it, run IoC on them, and tell them politely; "Don't call us, we'll call you", and go back to your simple programming language, chemically cleansed for these superstitious and rubbish ideas ...

If you're measuring Hyperlambda through the eyes of your "best developer" you're only measuring his level of corruption and willingness to compromise your goals, to ensure he keeps his existing powers - Sorry, I said it ^_^

Hyperlambda is VB6 for the web

When I originally designed Hyperlambda, I wanted to return to the naive feeling I had when I was doing FoxPro development. I had design patterns coming out of my ears, and I was tired of all the rubbish ideas I "simply had to use" to be able to correctly use C# and other OOP languages. I also wanted a meta programming language that allowed me to have my computer do most of my job, at least the boring parts. In addition, I wanted the language to be secure by default, making it almost impossible to have junior developers compromising security, scalability, or uptime for their apps. These three wishes combined resulted in Hyperlambda.

Hyperlambda is basically VB6 and FoxPro, minus the proprietary technology, with insane scalability traits, providing security out of the box

If you know the basics of loops and branching, I can teach you Hyperlambda in a couple of days. However, what I cannot do is to take a super skilled senior developer and have him or her learning the language. A super senior developer doesn't want to learn Hyperlambda, because it's a threat to his power. Buddhism have a quote that explains why.

You cannot fill tea into a full cup

The super skilled software developer will take one look at Hyperlambda and give you a bajillion objections.

  1. It's a "toy programming language" - Yes it is, this is its primary asset too in fact
  2. It doesn't allow me to interact with Kafka - Kafka is rubbish technology and you should anyways probably fire your Kafka developer
  3. It doesn't allow me to implement my usual design patterns - Design patterns is a symptom of a sick programming language
  4. It allows me to write my SQL directly in my HTTP endpoint code - As if that was a bad thing?
  5. It doesn't give me an ORM library - ORM libs are for the most parts pure madness
  6. Etc, etc, etc ...

Lots of people have been asking me why I bash on so many technologies here in my articles. Well, it's really quite easy to understand, and my reason is because everybody else have been saying I'm crazy for 10 years. Most super senior software developers have been trying to "cancel" Hyperlambda now for a decade, because Hyperlambda is a threat to their own power. However, what I am doing is not bashing bad ideas or destroying superstitious faith. What I am actually doing is building a cathedral, and unfortunately there's a barn of filthy pigs on my land, and I need the land for my cathedral.

Sorry guys, nothing personal, your (rubbish) ideas is in my cup, and I want some tea ... ;)

Forget about Java, drink tea

Top comments (8)

jmfayard profile image
Jean-Michel (

I like your articles because often the title is completely wrong but the content is thought provoking anyway.

Your story about FoxPro reminds me from Macintosh's Hypercard and the amazing family contacts app my non programming uncle built with it in the end 90s. I don't think I could reasonably build a similar app with all my programming knowledge today.

The same could be said about the "no-code" movement. And the "just build it on top of Excel" movement which is older and bigger by orders of magnitude.

Definitely interesting.

Completely wrong too because Excel is not better than Java for the same reason that Java is not better than low level or assembly languages.

No one is better than the other. They all work at a different level of abstraction.

At the end of the day you need the assembly language to build the low level language to build the JVM that runs a Java - preferably Kotlin - program that runs you modern version of Hypercard/Excel/FoxPro that runs the super high level program of your non peeling specialist friend.

IT is just turtles all the way down 🐢🐢🐢🐢

polterguy profile image
Thomas Hansen

I like your articles because often the title is completely wrong but the content is thought provoking anyway

To start debates, you first need to brutally kick down closed doors ;)

I don't have all the answers. In fact, I'm not sure if I have any answers, I just have a bunch of questions, and nobody seems to be able to intelligently answer me - Hence, here we are :)

At the end of the day you need the assembly language to build the low level language to build the JVM that runs a Java

Of course. Paradigms lives in symbiosis, and nothing is really "worse than others", they're just "different" ...

Thank you ^_^

xiaoyaocode163 profile image

Some people have developed 10 to 50 or even hundreds of Excel management tools. There are thousands of lines of VBA code in each tool.
There is also a master, while the New Year about a month to complete a company with a small ERP, OA management system.
All the functions you need to use are there, but the interface is simple and ugly.
The advantage is simple violence, the disadvantage is that the code is copied and pasted or improvised writing, maintenance of the brain and eyes.
Master self is not a word, to replace take over, it is estimated to be a piece of shit mountain.

Modular design + beautiful UI supporting, slow work out fine work is really important.
You can use EXCEL to do invoicing, sales-storage, or quote management system.
After the completion of the code modularization, and then upgrade the conversion into VB6 program mode.
The start-up and running speed is increased by 10 times, and the entire management system is about 100K, plus the exquisite UI, it is estimated that it is about 1M.

Have time to do VB.NET or C# version bs management system, ASP/PHP/Node JS web server version.
There are also small program development, Android APP, Apple IOS APP.

In this era, EXCEL scripts, EXE programs, small programs, mobile phone apps, one can not be less!

With ACCESS development can also be, and the web version is also good,VB6 design is mainly small and portable, do not need to install OFFICE,EXCEL

danjelo profile image

Reminds me of the old days when around VB6 times and we used PHP/MySQL and classical ASP without any frameworks such as MVC, ORM's etc. It was so much easier in comparison to modern tech to create a CRUD like app. Then it seemed PHP became something of a laughing joke and ASP got replaced by ASP.Net..

polterguy profile image
Thomas Hansen

It makes you wonder if we're "evolving backwards" sometimes yes ...

Every single feature C# has added the last 20 years are for instance basically just an attempt at trying to play catchup with Lisp. Lisp was created in 1958 ... :/

xiaoyaocode163 profile image

New 64-bit IDE for VB6 developers,Twinbasic and VisualFreebasic

From about 1998, after more than 20 years, someone finally imitated the VB6 design pattern, the simplest code, visual form design. The generated software is basically an EXE without lazy, compile-generated speed of a few milliseconds to a few seconds time.



xiaoyaocode163 profile image

I forwarded your article to the Chinese technical community, it was very good, and we learned together. thank you

polterguy profile image
Thomas Hansen

Thank you :)