- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
This is very true and one of the biggest problems I have with VB. Unless you really know what it's doing under the covers, your chances for WTF code skyrocket. VB hides it so well that WTF code is almost inevitable.
Admin
Silly human, everyone knows that VB is of the Devil and causes tooth decay, communism, and the desire to kick puppies.
Admin
Homeland Security Advisory System Threat Level Red (Severe) Panic Mode:
All non-nuclear United States intercontinental ballistic missiles are launched in a coordinated strike on Siberia. The data is exploded into the Russian countryside in crude binary (crater = 1, regular surface = 0). Several satellites in geosynchronous orbit around this area are used to photograph said data. Said photos are printed out at corporate headquarters, placed on a wooden table, photographed, scanned in to the reporting server, and analyzed in real time to display the data for the corporate report.
(You know, if they hadn't spent 99.9999% of their budget on this error handling code, the main code might have turned out better.)
Admin
Quintuple panic: data is printed on a dot matrix printer, shipped by conveyor belt onto a wooden table where a picture of it is taken with a digital camera and sent as a BMP to everyone in the company.
Admin
Solution: fire everyone except Jim.
Admin
OP here. A couple of comments...
The system is different than what I described, though a similar level of complexity. Probably something a good developer could create in a couple weeks. The number of special cases would be very low.
The development server they use in their office runs MSDE. I'm not sure they knew a trace could even be created.
I know enough sql to write some basic DB driven web pages, but troubleshooting deadlocks is beyond me. The stored procedures were actually pretty simple, I don't know why they caused problems. But I wasn't being paid to know either.
Originally I think VB5 or VB6.
We outlined a couple issues early on and offered to re-write the application, but these developers have been doing odd programming jobs like this for many years, the client likes them. I think the client would pay to have it rewritten, but I'm not sure they want to.
Admin
And they will want everything documented in a nice manual (which will never be read - except the parts that changed since it was written).
Admin
Who would ever build an ICBM and not put a nuke on top?
Admin
Other WTFs aside on this article. Why is it that programmers never consider the most obvious backup system that has a zero chance of failing? That backup system is a pad of paper and a pencil.
The panic modes seem like the equivalent of the guy I once knew who backed up his hard drive to a "c:\backup" directory on the same hard drive. I suppose a single point of failure might be the electronic pencil sharpener breaking. Good thing redundant pencils are inexpensive.
Absolute worst case they could spend a few weeks to get the DB system working again and then pay some data entry people to re-enter it later. At least the information would be captured.
Admin
Quintuple panic: The source code is automatically zipped up and sent via a web-service to WTF.com.
Admin
It sounds like "panic mode" was the solution they should have gone with in the first place. Clean, reliable, obvious audit trail, and all the database work can be done as a batch process from the input without any risk of losing data. Text files never deadlock.
Admin
Admin
oooh, awkward....and we were having such a good time talking about programming.
Admin
So have everyone log in with their initials.
Admin
I love a good religious war...watched many a fine one over the years, and I never get sick of them.
I come down firmly in the VB camp - both VB6 and VB.NET. The reason is simple - I'm a commercial software engineer and I have to eat. In this modern day and age, a few clock cycles here and there in a business app makes sweet FA difference, but the speed of application development is critical. So 12 years ago, I sat down and decided to use VB for our core development, over C++, Ada, Assembler or anything else (and that was when I was far more familiar with ADA and C). The reason was simply that we could deliver a product on time and on budget...
VB suffers from having a lot of cowboy coders - untrained developers who thought programming meant drawing buttons on a form. The language itself is fine (ok, VB6 lacked any sort of OO, but that was never a deal breaker for us), and you can do pretty much anything you want in VB (6 and .NET). Does it have flaws - of course, but so do all languages (nothing like the joy of debugging pointers in C/C++ for hours), but in the end, it gets the job done, and it does it well.
It all comes down to speed of development and maintainability. You can write an abomination in any language, and god knows i've picked up after enough of those over the years, but VB is really no better or worse than anything else from a language perspective. It just has a higher cowboy developer ratio.
Admin
Bingo, I think you nailed it.
lol, exactly. Definitely a ratio, as I'm sure you have cowboy coders in EVERY camp. They certainly don't fare so well in the SQL camp though...
Admin
That's a fair enough rationale I think. However, maybe it's more rooted in the general culture found among C# developers versus the general culture found among VB.NET developers. Although I definitely believe there is also a tendency by those in the C# camp (of which I'm proud to be a member) to just dismiss VB.NET altogether without understanding that the only problem with the language is that it's ugly as hell.
IMO, C# is aesthetically pleasing. I just don't get that feeling with VB.net.
I will also take your other points in to consideration on future projects regarding system hooks. Sounds sensible if you have a rather repetitive process that has to make win 32 calls frequently, religiously... However, in my development, I haven't run in to that situation or a need for such a situation.
Admin
The 6th level panic mode: The computer short circuits the power, and if you capture the pattern of short circuits, you get the data in binary form.
Btw, is the new name an April Fools joke? (The Daily What The Hell)
Admin
Why are you talking about Visual Fred? What does Visual Fred have to do with VB? All similarities between the two are purely coincidental.
Admin
The Russians. They built an ICBM and put Sputnik on top.
Admin
My irony-detector exploded here...
Admin
That statement is so 1980. Good design improves performance, maintanence and security, and stored procedures may or may not be a part of that. Are you a DBA maybe?
Admin
Both Mr. Daily's eyes are fully open. And he staring. STARING AT ME. STARING INTO ME. NO! LEAVE ME BE!
Admin
Duoquadragintatuple panic mode: A little door in the side of the computer case opens, which releases a trained hamster, which runs a maze and flips a switch. That releases a bowling ball which rolls down a slide, breaks through a glass box which has a pen and paper stored inside.
Admin
Admin
Seriously, in my experience all automatically generated code, and particularly that of a Micro$cum nature, is WTF worthy...
Admin
Bonus points if it goes 'pitagora suiichi' at the end.
Admin
If your sarcasm-detector was working your irony-detector would be fine.
Admin
Plenty syntactically.
I don't think it's coincidental that MS developed VB.NET to retain the similarities in syntax. Trying to keep look and feel while changing semantics, why not? Besides, the OO implementation in old VB sucks.
Admin
Dude, don't knock the dot-matrix printer as a failsafe. It's especially handy if the system you're working on has no permanent storage.
Admin
6th panic level? probably reality rollback.
Admin
This reminds me of Electronic Voting Machines. rarely used multiple failure modes, too many to know them all insecure probably over priced
Admin
Admin
Admin
Excel, "queried" by VBA moving data in and out of temporary flatfiles. Not that I've ever seen code that did something like that... oh no... my god, the memories.