Michael Flanakin's Web Log

Comments and complaints on software and technology in general

  Home  |   Contact  |   Syndication    |   Login
  159 Posts | 18 Stories | 89 Comments | 530 Trackbacks

News

This weblog is no longer being maintained. For the latest, check out www.michaelflanakin.com!

Article Categories

Archives

Post Categories

Image Galleries

Miscellaneous

Ya know, I'm not trying to start any holy wars or anything, but I keep getting aggravated with some VB code I have to maintain.

First off, my biggest complaint is the way VB handles imports. A lot are assumed, but some aren't. I've even seen the same code transition to another machine and have it not work. I don't really know the rules behind it, but it sucks.

Second, the Microsoft.VisualBasic namespace needs to just die a horrible death. Do VB-ers not understand that it simply exists for backwards compatability and shouldn't be used? Sure, you may have the old VB6 functions around, but should you use them? NO! There's a reason it's in Microsoft.VisualBasic and not in the core .NET base class library!

While we're on "functions," let me gripe about the naming conventions. I understand the difference between a subroutine and a function - who doesn't? I just don't like the fact that they are different from the .NET standard of "method." Yeah, yeah, backwards compatibility, whatever. Backwards compatibility is the root of a lot of evils in the software world. Look at Java. One of the primary reasons it sucks so bad and doesn't go thru a major overhaul is because of backwards compatibility. Other things I don't like as far as standard naming goes are the keywords Shared, Nothing, Me, and so on.

This is a small one, but I hate the fact that Visual Studio doesn't tab regions in for VB. I like my regions to be tabbed in at the same level as the code. This is just a preference, but I think the code seems harder to read when the left edge of the code jumps back to the first character position every so often. As a matter of fact, Visual Studio's auto-formatting for VB drives me crazy altogether. Most of it works fine; but occasionally, I want something to look different for readability concerns. I'm sure there might be options for this, but I don't care enough to look. It's just annoying.

Speaking of readability, OMG!!! Nobody can argue that VB is more wordy. One thing I learned in a high school desktop publishing class was that white space is good. White space actually helps the brain process what's on the screen and separate code easier. It's a LOT harder to do that with VB because the lines can get so long and seem to jumble together. Granted, this only happens in lines with a lot of keywords, but that doesn't mean I like it any more.

Oh, great, now it's time for my favorite (well, for the past two days, anyway): modules. I've been working on .NET since its inception. I cheered on C# and revelled in its birth. Because of that, I ignored VB and its features (in part, that's why I'm getting so aggravated). Well, for the past few days, I copied some VB code and was modifying it. I kept looking for what seemed to be local methods, but couldn't find them anywhere. I searched through class after class to no avail. Finally, I was looking at an assembly and noticed that a class was using the Module keyword. "Hmm... That's odd. I wonder what that is. Oh well," I thought. A little later, I ran into another method I couldn't find anywhere. Then I made the connection and found it. This has got to be the most retarded feature. I can understand and appreciate it's worth, but I just don't like it. It obviously decreases readability and maintainability. Oh, and before you say that I should've used the "Go to Definition" context menu option, I didn't have the source loaded in a VS project, so I couldn't.

I don't even need to get into the obvious ones like case-insensitivity and Option Strict/Explicit. Hell, I think I've complained enough for today. There are a ton of other things I don't like about it, but this'll suffice. Also, I must say that I am merely pointing out my angst with VB. I am not saying that C# or any other language is perfect. There are aspects of VB I'd love to see in C#.

posted on Thursday, September 15, 2005 8:22 AM

Feedback

# re: VB Angst 9/15/2005 8:52 AM BradC
Your capcha doesn't seem to be working...

# re: VB Angst 9/15/2005 8:53 AM BradC
I'll be interested to see you try to defend the benefits of case sensitivity.

No, Microsoft.VisualBasic is a core element of VB.Net. It is NOT there for backwards compatability.

Microsoft.VisualBasic.Compatability is there for VB6 compatability, and won't be imported unless you do it explicitly.

# re: VB Angst 9/15/2005 8:55 AM BradC
I had some links to back up my last statement, but apparently this board doesn't like posting urls in comments. Just Google for "microsoft.visualbasic.compatability namespace" or hit the link on my name above.

Post Feedback

Title:
Name:
Email: (never displayed)
Url:
Comments: 
Please add 3 and 4 and type the answer here: