- 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
Is it really that hard to whip up a proof-of-concept to at least show the COBOL guy how it should be done? And then offer a full rewrite? (or refer to a partner for the rewrite)
Admin
Probably the (disc-shaped) company rested on a turtle resting on dinosaurs like Dawie. If so, no wonder even considering to suggest to say anything that might perhaps under circumstances hurt his feelings is a big NO-NO.
Admin
Which company is this? I'm tempted to take this one on. After all, I'm an expert on COBOL, I read a book on it once when we did a millennium conversion back in the day.
Admin
Some customers are just not worth the headache of keeping.
Admin
Incidentally, what sort of a name is "Dawie"? It calls to mind Bawwy Kwipke.
Admin
I was going to say "Why didn't he bill the hell out of them?", until I saw that they wouldn't spend any more money on this.
Welp, let them greet the 22nd century with COBOL, so we may have a WTF 100 years from now.
Admin
It's pronounced "Daa-vee". An Afrikaans name. In Afrikaans, a "w" is pronounced as "v". As the Afrikaners might say, "Praat Afrikaans of hou jou bek".
Admin
As your reputation as a sociopolitical group would predict.
Admin
60 tables, how bad can it be?
Admin
60 tables, one row per table, easy.
Why are they writing it all to a file? Surely the BLOB API is already delivering things in a form that supports the usual I/O handling?
Admin
I don't quite get what the company George works for actually had to do with the problem? Sounds like the client decided to start (ab)using SQL Server without George's company being involved. The only explanation I can come up with is that George is some kind of consultant.
Admin
I once came up against a "Costs Database" that consisted of a a table of (product, calculator) and another table of (product, configuration, column, value).
It turns out that the delicate costing calculations for each product had been worked out over generations (in staff turnover) of workers as super complicated formulae in various excel spreadsheets. When it came time to provide a modern automated feed to the rest of the company, there was nobody left who knew precisely how it all worked anymore. So some clever wag had put each spreadsheet into a blob, and all the input data for each supported config of each product in the other table as tag/value pairs.
When the main app requested a particular costing, the product and config was read out of the request, the appropriate spreadsheet extracted, the relevant data entered into it, then the resulting (er) results were read back and returned.
Admin
As a consultant I see 3 WTF's here:
For me the last WTF was biggest. As a consultant you're getting paid to tell customer where they have gone wrong and to help them fix things.
Admin
Now, the solution is as obvious as straight forward: A table with 81 columns, ID, and 80 small ints (COL1..COL80) for each of the columns of a punch card.
Admin
You need 82 columns, you need a char column called
RECORD_TYPE
so the system knows what format to read the punch cards in. You can use the power of SQL to make the primary key the compound (RECORD_TYPE
,ID
)I'll take my cheque and be on my way.
Admin
The even niftier solution would be to have a table with just 80 rows – and updating it for another column for each new record. (column-id = record number) :-)
Admin
Today's lesson: Sometimes it is just best to walk away. Things are too screwed up to get any meaningful result. The unfortunate aspect of this is that sales droids rarely "walk away" form a potential sale, and end up promising things that people in the back office can't deliver in the time requested. In many cases WTF's are spawned (look at the archives!). That's how it goes.
Admin
Maniacally contrived. Could not possibly exist anywhere on this planet. Stop making things up.
Back in the late 70's we were programming in COBOL and IMS, a hierarchical form of RDBMS, AS if that weren't enough, the batch side of things had countless instances of VSAM look up tables. Direct Access and Indexed Access methods of all flavors were floating around everywhere. No one in their right mind would EVER sweep a file UNLESS it was a Master file rather than a Lookup File. Even then one would often build a Secondary Index perhaps by Cycle Date to skip everything that wasn't to be updated.
So you're not proposing a "COBOL" environment, you're proposing a Pre-HardDrive environment, where the only access is sequential, i.e. Cards and Tapes.
COBOL was a masterpiece and I'm sick of you silly twits disparaging it, especially with make believe fantasy.
Admin
Critical != urgent.
Admin
The story may well be contrived (Particularly because I live in South Africa and it's well know we have a top-notch banking system here, actually one of the best in the world and hence the odds of something this silly happening here are probably low) but I'm not sure I'd call COBOL a master-piece.
I think the best thing you can say is that it's a language of its time. It's sure as hell not a language of the future or a trend-setter for modern development though...
Admin
He's just preparing for the NoSQL revolution.
Admin
Agreed. When you think Cobol, think CICS.. i.e, the predessor to the web server. You take a Cobol Program which uses a Copy Book to structure memory and a CICS Map to draw on the 3270 thin client. Then years later the kids will call it a Model-View-Controller pattern. It's totally new and different? LOLS -- COBOL is so OLD! And yet, Tomcat, Websphere, Cassandra, Spring Boot -- none of those can replay transactions via their log file. Think on that.
Admin
I got suspicious at the first sentence. George, a highly prized technical troubleshooting consultant that even Microsoft calls in as a last resort is just checking the emails that piled up after a business trip? Really? You didn't have a smartphone with you? Something 'phishy' going on here..
Admin
Maybe I'll tell them to switch to some NoSQL implementations. NoSQL should be able to handle this kind of "single, all purpose table" scenario better than ordinary SQL servers and there's pretty good chance to gain small amount of performance improvement.
Admin
The True WTF is, of course, not continuing to use a functioning system written in COBOL.
Admin
No, IMS was hierarchical exactly as you say. It has no semblance of relational structure, not one bit RDBMS.
Yes, that is sure something that I miss in operating systems that came along later. I wonder if I'm the only one who designed a file system that provided insertions and deletions in the middle of a file without having to rewrite the entire file.
Well the article's photo SHOWS tapes. But there's still something odd about it, because IBM invented hard drives around 7 years before the 360 mainframe.
By the way I finally discarded my tapes this year. I don't remember the last time I saw a machine that could read them though.
Admin
Yes that sounds like the impression that Microsoft gives to Microsoft's customers in Microsoft's forums discussing Windows problems.
Admin
Why walk away? (Provided you get paid) Especially if you've envisioned yourself as the comic book hero for weeks now.
I don't know COBOL at all but to me it sounds like those datafiles are like a table with one record after another. It shouldn't be too hard to split them up into individual records, plant them into appropriate tables and then get rid of the whole file IO nonesense for CRUD operations. It's still ugly and hacky but performance should be loads better and from there you can turn one table after antother into real SQL. And with a bit of help from the COBOL guy you should be able to hack up a PoC in a day.
Admin
Not really so contrived.
I've had the opportinity to work with COBOL "experts" who were reading all of the files, all the times. And arguing that the main reason performance was bad was because everything was loaded from 5600rpm disks instead of 7200rpm ones. When confronted with having to do SQL work, the same folk would happily write every query as SELECT * FROM
; and then loop through the result set to find the records that met the search criteria.A shit programmer can do really horrible stuff in any programming language.
Admin
"No, IMS was hierarchical exactly as you say. It has no semblance of relational structure, not one bit RDBMS."
Parents and Children aren't Relational? Order Header/Order Detail where hdr.OrderNo = dtl.OrderNo? Adding a Secondary Index from anywhere in one structure to anywhere in another structure via a pre-defined key field (ForeignKey/ParentKey).
Sure RDBMS is a phrase, meaning on-the-fly anything by anything. But on a case-by-case basis (as predefined by the DBA) you could set up any business need relationship you wanted. And we/they all did.
Admin
No. "Relational" does not refer to the relationship between tables; it refers to the tables themselves being designed as relations, a mathematical concept of structuring the data to be accessed and manipulated according to the principles of relational algebra.
Admin
I also once had a cow-orker who knew his design was a relational database system because it handled queries like field > value or field < value.
Admin
And it evolved into DB2
Admin
Alternative lesson: Don't expect your paid-for microsoft consulting to come with an honest answer.
Seriously, you don't have to diss anyone in the project, just discuss how their expertise in SQL is not a match for their COBOL expertise, so it might be indeed cheaper for the organization to stick with COBOL. It surely must be cheaper to look for an expensive COBOL consultant in case the current one leaves than to pay for Microsoft SQL consultants who apparently do nothing and just walk away after a week.
Admin
I have code right here that reads a COBOL copy book and creates then loads SQL tables....
Admin
I would say the WTF is the dude taking one look at a system and just walking off without saying what's up, but then again, he IS a highly paid consultant.