VB6 and FoxPro is better than Java and C#
Tags: beginners, programming, java
Published: 2022-08-27 09:18:00

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](https://aista.com/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](https://dev.to/polterguy/you-should-probably-fire-your-kafka-developer-j9l)
3. It doesn't allow me to implement my usual design patterns - [Design patterns is a symptom of a sick programming language](https://dev.to/polterguy/design-patterns-is-a-symptom-of-a-sick-programming-language-2hd8)
4. It allows me to write my SQL directly in my HTTP endpoint code - [As if that was a bad thing?](https://dev.to/polterguy/put-your-sql-directly-into-your-http-endpoint-code-3oc2)
5. It doesn't give me an ORM library - [ORM libs are for the most parts pure madness](https://dev.to/polterguy/orm-is-like-adding-brain-damage-to-your-database-kf4)
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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yynxjl9csy6q39m5hgm9.jpeg)