DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’» is a community of 966,904 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

Create account Log in
Cover image for VB6 and FoxPro is better than Java and C#
Thomas Hansen
Thomas Hansen

Posted on • Originally published at aista.com

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 (4)

Collapse
 
jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄

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 🐒🐒🐒🐒

Collapse
 
polterguy profile image
Thomas Hansen Author

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 ^_^

Collapse
 
danjelo profile image
danjelo

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..

Collapse
 
polterguy profile image
Thomas Hansen Author

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 ... :/

🌚 Life is too short to browse without dark mode