A Modern Gothic Tale VB.Net Challenges

Originally published 17 December 2009

I was raised on a ranch near a small town in West Texas. The countryside there is full of rocks, cactus and mesquite trees, and is, for the most part, barren and dry. It is hot nearly all year round. It is a wonder that anything lives there at all.

There are a few places where there are thickets – down by the Rio Grande, in old arroyos and in places where water collects on the few occasions that it rains. In these thickets, there is a bush the locals call the wait-a-minute bush. The wait-a-minute bush appears to be innocent enough. It doesn’t look like anything special. But if you walk by it, it catches you. It has tiny thorns – small sharp fish hooks – that are very sharp and very tough. It is nature’s version of Velcro.

Some locals say that the bush reaches out and grabs you. I don’t think it actually does that, but if you come near it and touch it, you will become attached in a way that you don’t want to be attached.

So what if you decide to just walk on and ignore the wait-a-minute bush? You just can’t believe the bond the fish hooks of the bush forms. It rips your clothes or your skin to shreds. You have to stop and individually remove each branch and spindle of the wait-a-minute bush before you move on.

Now take a leap to the game of Dungeons & Dragons. In the version of the fantasy game played on the computer, you make a journey through a dark tunnel with dungeons and dragons. You traverse open pits, trap doors, hidden passages, staircases and the like – and, you do it essentially in the dark. It is the quintessential “bump your knee in the night” game. You learn where all the nasty parts of dungeons and dragons are by stumbling upon them and suffering pain.

Consider what would happen if you put a thicket of wait-a-minute bushes in a game of dungeons and dragons. What would you have? You guessed it – you would have the programming language VB.NET. VB.NET combines the pain of wait-a-minute bushes with the bump-your-knee-on-the-table darkness, stumble-around-and-find-it-through-pain pain of dungeons and dragons. A really pleasant picture.

The other day I had to go from one release of VB.NET to another. You buy the software, you install it. You convert your code from one release to the next and everything is fine – until you actually try to execute the code. In our case, we cannot execute anything because we get an error saying that we have the incorrect parameters in our app.config file. OK, fair enough. Let’s go fix the app.config file. That’s when we started to walk through thickets of wait-a-minute bushes stuck in the middle of a pitch-dark Dungeons & Dragons game. We got through, but it was just awful. It cost a HUGE amount of resources to make corrections to a very small part of VB.NET.

VB.NET is a dungeons and dragons game full of wait-a-minute bushes. So what’s wrong with VB.NET? Plenty. The short list of what’s wrong with VB.NET is:

It is terribly unintuitive. Like Dungeons & Dragons, it has plenty of nasty surprises waiting for you that you have to discover by walking into them. I have been programming for 40 years and have programmed professionally in 10 different languages and VB.NET is the epitome of being obtuse. There are so many cluttered pieces of code that have to be brought together that it is amazing that anything works – ever. VB.NET appears to be designed by a committee that has sub committees that have further divisions of subcommittees that are broken down into yet more subdivisions of sub committees and so forth. And none of these committees ever speak to each other.

VB.NET is undocumented. The vendor will say that there is documentation shipped with the product. And that is true. The problem is it is worthless documentation. It micro describes some component of VB.NET but does not say how that component interacts with anything else. Does the vendor actually try to use its own documentation? Furthermore, external documentation is just awful. I was at a bookstore a while back and I saw an impressive book – 1,000 pages or so – on VB.NET. I bought it thinking that it might be a help. After three years of trying to use the book, I have never found one helpful hint or piece of information. The book is crammed with detail, all hopelessly out of context. Having written a book or two in my own time, I sincerely hope that the books that I write are more helpful than this book.

VB.NET gives really ambiguous error messages. When we shifted from one release of VB.NET to the next and tried to execute, one error message told us that we needed to define the app.config file. So we tried to create an app.config file and we were told that we already had one. All this in the same 60-second time span. Finally, we created the app.config file and VB.NET told us that we needed to define an app.config parameter even though it was sitting right there in the project. What? Can I get some straight information please? Just tell me what you think is missing and I will fix it. But don’t keep changing your mind as to what is incorrect every two seconds.

The vendor seems to think that it is cool to have created a monstrosity of code. They seem to relish the quirkiness and obtuseness of VB.NET. They have created the skull and bones of technology where only the very few and the privileged are allowed to go. They have created a technology that is understood by only a handful of people on earth. And they think this is cool.

There are no work-arounds. I am good at finding or creating work-arounds. In one way or the other I get the job done. But VB.NET is full of these undocumented, demanding, no-other-way-but-my-way parameters. You have to do it the VB.NET way or you won’t execute. And by the way, there is no documentation as to how to do it the VB.NET way. Only members of the charmed circle know that.

Fortunately, I have access to one of those people in the charmed circle. (No, I am not going to give you his name. I don’t want the world rushing to his feet to solve the many riddles of VB.NET. I am jealous of his resources and intellect.) And even my friend had a hard time with this one.

So bloody, clothes and skin torn, knees sore from bumping into strange things, poorer because of all the wasted time, I got the app.config file created. One tiny parameter in a sea of parameters that all have to be defined just so.

We (I) got through it. But it was like walking through a thicket of wait-a-minute bushes in the dead of night with hidden trap doors and hallways and staircases and pits that fall into infinity where I had to turn or traverse, but no one told me that I had to in the first place. I was bloody, ragged, exhausted, but surviving, having spent a lot of time and resources getting one tiny part of VB.NET right.

SOURCE: A Modern Gothic Tale

  • Bill InmonBill Inmon

    Bill is universally recognized as the father of the data warehouse. He has more than 36 years of database technology management experience and data warehouse design expertise. He has published more than 40 books and 1,000 articles on data warehousing and data management, and his books have been translated into nine languages. He is known globally for his data warehouse development seminars and has been a keynote speaker for many major computing associations.

    Editor's Note: More articles, resources and events are available in Bill's BeyeNETWORK Expert Channel. Be sure to visit today!

Recent articles by Bill Inmon



Want to post a comment? Login or become a member today!

Be the first to comment!