---
title: "VB is rubbish? rubbish."
url: "https://osherove.com/blog/2004/6/4/vb-is-rubbish-rubbish.md"
canonical: "https://osherove.com/blog/2004/6/4/vb-is-rubbish-rubbish.html"
published: "2004-06-04T12:38:00"
updated: "2004-06-04T12:38:00"
tags: [".Net Original"]
author: "Roy Osherove"
description: "Bob powell writes a scathing post about how VB is rubbish . I have to say, as a Mort myself, some of what he says is true, and has been said before, but some of it is just total miundestanding of the reasons for the…"
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# VB is rubbish? rubbish.

By Roy Osherove June 4, 2004 In [.Net Original](https://osherove.com/blog/category/net-original)

**Historical article** · Originally published June 4, 2004; technical details may be outdated.

[Bob powell writes a scathing post about how VB is rubbish](http://bobpowelldotnet.blogspot.com/2004_06_01_bobpowelldotnet_archive.html#108608385170604631).

I have to say, as a Mort myself, some of what he says is true, and has been said before, but some of it is just total miundestanding of the reasons for the differences between the languages. I'll tryo to answer some of it:

.

_“The crummy thing has case insensitive names so POINT = Point = point which is totally ridiculous!

This is not something I've just discovered BTW.. I just feel compelled to stand on top of a building somewhere and scream about what total rubbish VB really is!”_

Really? I thought is was th other way around when I started with C#. Why the hell do I want canse sensitivity? so I can write code that has multiple variables with the same name only differed by casing? how maintainable, readable and understandable is that?

_Why don't VB programmers feel insulted at having "advanced members" hidden from them by default?_

We do. It is insulting. I wish that changed.

_What is it with "overloads overrides" I mean, really, it's one or the other right? Sure, you can override an overload but the method signature is defined in the base class so henceforth, it's just an override. If you have a method name with the same name as some other and the parameter list is different, its just an overload. Why should you even need to declare it?? The blasted compiler already knows but no. we have to write the "overloads" in explicitly. If you don't write it in, the compiler tells you to put it in! WHATS WRONG WITH DOING IT IN THE COMPILER LIKE A REAL PROGRAMMING LANGUAGE WOULD????
_

It's so explicit so that the code's intention is more redable. I don't write code for my compiler. I mostly write code for the next developer who maintains my code. They don't have to go browsing to see if somethign is an overload, override or any such other “hidden” behavior. Sure, sometimes it gets alittle wordy, but I'd rather have more words and understand what I'm looking at that having something a only a compiler understands.

_Me? MyBase? These are terms for 7 year old children!
_um... ok...

_Line continuation characters??? AARRGGHH!!_

Yeah that sucks too. I wish there was a way to incorportate a feature like “option lineMarkers 0“ or something.

_As a C, C++, C# programmer, when I have to program in VB because of the requirements of a client, I get the distinct impression that I've become a second-class citizen who operates on a strict need-to-know basis and who is credited with little or no intelligence by the designers of the language. Am I the only person who feels this way?
_you're kinda overreacting.  a lot of this is simply culture shock, nothing more.

that said, Sometimes I feel the same way too. We are not alone.

## More in .Net Original

[All posts in .Net Original](https://osherove.com/blog/category/net-original)

- Jun 7, 2004

    ### [\[Problem and solution\] Right-to-left menus get scrambled when form is maximized](https://osherove.com/blog/2004/6/7/problem-and-solution-right-to-left-menus-get-scrambled-when.html)

- Jun 7, 2004

    ### [Israeli Blogger Dinner postponed](https://osherove.com/blog/2004/6/7/israeli-blogger-dinner-postponed.html)

- Jun 4, 2004

    ### [Solving weird problems, and making others solve them as well](https://osherove.com/blog/2004/6/4/solving-weird-problems-and-making-others-solve-them-as-well.html)

- Jun 4, 2004

    ### [Planning a daily, automatic build](https://osherove.com/blog/2004/6/4/planning-a-daily-automatic-build.html)


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
