When you have working code in COBOL, really battle-hardened proven-beyond-doubt COBOL code, would you really trust a mechanical translation into another language?
I am 99.9% sure that no CPU runs COBOL directly in microcode (although I'm willing to accept that IBM has some weird animal that does exactly that). In other words, that unimaginably important code is already translated into another language - namely machine language - before it's executed. Are you certain that no one else could possibly get it right?
I'm sure you're right for new code written today. I am equally sure that programmers 30 years ago did not have that luxury. Seriously, a 4GB standard allocation? An IBM 4341 from 1979 had up to 16MB of RAM. The article quotes people saying that code 30-50 years old still works well, but I would posit that code that old was probably written with assumptions that are no longer sensible today, and at the very least should be re-evaluated instead of being allowed to blindly accrete new layers.
I think it comes down to what TheRaven64 said about algorithms and optimizations. My general approach is to write a program the way I think it should be, then make sure it works well in production. If it does, I'm happy and I move on. If there are resource problems, then (and only then) I fix them.
As far as RAM growing on trees: it kinda does. We had a conversion process that was running slow at times, and the solution turned out to be spending $250 for 16GB of RAM from Newegg. I probably could have turned a simple, straightforward, well-tested program into something byzantine with its own file caching system and whatnot, but it was far cheaper just to spring for more memory. I don't advocate that in general, but it shouldn't be avoided when it's the logical solution.
Before I start, I know all too well that you can write good or terrible code in any language. Still, most COBOL code I've seen is written to run well on hardware that is no longer relevant. A recent experience with an ex-coworker illustrated this pretty well for me:
Said fellow, call him "Joe", had about 30 years of COBOL experience. We're a Python shop but hired him based on his general coding abilities. The problem was that he wrote COBOL in every language he used, and the results were disastrous. He was used to optimizing for tiny RAM machines or tight resource allocations and did things like querying the database with a rather complex join for each record out of quite a few million. I stepped in to look at his code because it took about 4 hours to run and was slamming the database most of the time. I re-wrote part of it with a bit of caching and got the run-time down to 8 seconds. (Choose to believe me or not, but I'd testify to those numbers in court.) I gave it back to him, he made some modifications, and tried it again - 3 hours this time. I asked him what on Earth he'd done to re-break the program, and he'd pretty much stripped out my caching. Why? Because it used almost half a gig of RAM! on his desktop and he thought that was abhorrent.
Never mind that it was going to be run on a server with 8GB of RAM, and that I'd much rather use.5GB for 8 seconds than 1MB for 3 hours of intense activity.
So Joe isn't every COBOL programmer, but you and I both know that he's a lot of them. But back to the direct point, how much of that 250GLOC was written with the assumption that it'd be running on 512KB machines or with glacial hard drives or where making the executable as tiny as possible was an extreme priority? Doing things like storing cache data in hash tables would've been obscenely expensive back in the day, so those old algorithms were designed to be hyper-efficient and dog slow. Whether you think that constitutes "working well" is up to you.
The average user doesn't care what clever name you chose for your mail client, they just want to be able to get email working on their newly-bought PC with minimal fuss.
Study after study shows that people prefer branding to generics. "Firefox? Oh, just like on my PC!" is a lot more enticing than "Internet", which sounds like it should come in a white-labeled can with black text.
They don't need to be; everyone already knows what they are.
First, the point was that Linux program names aren't inherently stranger than Windows'.
Second, familiar or not, the Windows app names I listed are definitely non-descriptive.
And here we are already, back to the problem pointed to in TFA.
I don't know what TFA said and wasn't replying to it. I was replying to someone who said that Linux app names were confusing and hard to find, and I assert that menu items like "Office -> Gnumeric Spreadsheet" are clear enough that this is no longer an issue.
I think people would like Linux more if they were familiar with program names. Notepad, Paint, Wordpad, Calc... whatever. When I boot Linux on occasion, I'm more confused with what program does what than how to use them.
Excel, Visio, Quicken, Outlook and Visual Studio aren't exactly self-explanatory.
While I applaud the work of thousands to build such robust amazing programs and give them each their own special name, I'm of the opinion that if you give someone KDE with a few programs labeled generically "email" "internet browser" "calculator" "text editor" "Office Text/Spreadsheet/Presentation" "Network - Wireless" "Printers" and so on and so forth instead of each programs' real name, you'd be a lot closer to the #1 goal of usability: making an intuitive interface.
In the Applications -> Internet menu from Ubuntu on my EeePC, I have "Firefox Web Browser", "Mozilla Thunderbird Mail/News", "Pidgin Instant Messenger", "Transmission BitTorrent Client", and several others. Compare with the Windows debacle of Start -> Publisher -> Weird Program Name.
I agree with your point, and apparently so did the distro maintainers a few years ago that made Linux much better on this count than Windows.
All things being equal (same chipset, same RAM, same CPU line), more GHz == more speed. Also note that you're using extremely niche applications. Most people are doing things like editing their home movies, where a 10% faster CPU results in a 10% faster conversion process. The slower CPU will still get the job done in a reasonable amount of time, but if spending a few bucks up front means less waiting over the life of the computer, then it might be a pretty reasonable upgrade.
Damn straight about the Man Pages! Man pages are for reference for experienced users. In other words, for those who are wondering, "What are the parameters again?"
That is entirely dependent on the OS. Here's a snippet from the "zpool" man page as written by Sun and distributed with FreeBSD:
EXAMPLES Example 1 Creating a RAID-Z Storage Pool Example 2 Creating a Mirrored Storage Pool Example 3 Creating a ZFS Storage Pool by Using Slices Example 4 Creating a ZFS Storage Pool by Using Files Example 5 Adding a Mirror to a ZFS Storage Pool Example 6 Listing Available ZFS Storage Pools Example 7 Destroying a ZFS Storage Pool Example 8 Exporting a ZFS Storage Pool Example 9 Importing a ZFS Storage Pool Example 10 Upgrading All ZFS Storage Pools to the Current Version Example 11 Managing Hot Spares
Each section explains exactly what it does and gives example command lines. In short, while Linux is historically not well regarded for its man pages, that doesn't extend to the format as a whole.
Google toppled DEC's Altavista. The same thing can happen to them.
See also: VHS vs. DVD vs. Blu-Ray. Google was much better than AltaVista and people were quick to switch to it. Google isn't perfect, of course, but it's good enough that it'd be hard to make an engine significantly better enough to warrant switching.
"This [search] is the feces that is produced when shame eats too much stupidity."
Seriously, MS isn't about to make Yahoo! their default search over MSN. Yahoo isn't about to cede traffic over to MSN, even indirectly by lending their search backend to make MSN not suck as much. And along those lines, MSN is so terrible that 95% of people go out of their way ignore it even though it is the default in IE.
OK, I am in no way pro-Obama (I voted Libertarian). I also think that a 25 trillion debt is horrifyingly insane. Having said that, we'd deal with it as a country the same way my wife and I deal with having a mortgage that's more than we earn in a year.
Every conservative I know was pissed at Bush for exactly those reasons, even if it wasn't widely discussed that way in the mainstream media. Glen Beck was particularly critical of Bush's anti-conservative actions.
Me. There's "code I would have written differently", but that's just style. That's completely different from "code that should be taken out back and shot".
E-Paper readers and wireless delivery. Once the tech gets cheap enough to make a Kindle-like device "Free With Subscription" then the news media will finally catch up with the rest of the world.
My local paper has a Twitter account and posts links to new stories as they publish them online. I don't know how well it'll work out, but at least they're embracing new ideas.
NOBODY is going to spend $6,000 on their music collection.
I did, over time. Pick up a CD here and there, marry a woman with a similar-sized collection, and next think you know you're ripping over 400 CDs. My MP3-only collection is about 30GB.
And you have come to that conclusion based on exhaustive research of the preferences and use-patterns of all the people who are currently wearing your underwear.
When you have working code in COBOL, really battle-hardened proven-beyond-doubt COBOL code, would you really trust a mechanical translation into another language?
I am 99.9% sure that no CPU runs COBOL directly in microcode (although I'm willing to accept that IBM has some weird animal that does exactly that). In other words, that unimaginably important code is already translated into another language - namely machine language - before it's executed. Are you certain that no one else could possibly get it right?
I'm sure you're right for new code written today. I am equally sure that programmers 30 years ago did not have that luxury. Seriously, a 4GB standard allocation? An IBM 4341 from 1979 had up to 16MB of RAM. The article quotes people saying that code 30-50 years old still works well, but I would posit that code that old was probably written with assumptions that are no longer sensible today, and at the very least should be re-evaluated instead of being allowed to blindly accrete new layers.
I think it comes down to what TheRaven64 said about algorithms and optimizations. My general approach is to write a program the way I think it should be, then make sure it works well in production. If it does, I'm happy and I move on. If there are resource problems, then (and only then) I fix them.
As far as RAM growing on trees: it kinda does. We had a conversion process that was running slow at times, and the solution turned out to be spending $250 for 16GB of RAM from Newegg. I probably could have turned a simple, straightforward, well-tested program into something byzantine with its own file caching system and whatnot, but it was far cheaper just to spring for more memory. I don't advocate that in general, but it shouldn't be avoided when it's the logical solution.
That's not a story about COBOL, that's a story about old farts stuck in the past.
Yes, much like the legacy systems we're discussing.
Nice story, but it doesn't say anything about COBOL.
I think it says a lot about The COBOL Way, or at least the way things were done when those ancient codebases were being written.
Before I start, I know all too well that you can write good or terrible code in any language. Still, most COBOL code I've seen is written to run well on hardware that is no longer relevant. A recent experience with an ex-coworker illustrated this pretty well for me:
Said fellow, call him "Joe", had about 30 years of COBOL experience. We're a Python shop but hired him based on his general coding abilities. The problem was that he wrote COBOL in every language he used, and the results were disastrous. He was used to optimizing for tiny RAM machines or tight resource allocations and did things like querying the database with a rather complex join for each record out of quite a few million. I stepped in to look at his code because it took about 4 hours to run and was slamming the database most of the time. I re-wrote part of it with a bit of caching and got the run-time down to 8 seconds. (Choose to believe me or not, but I'd testify to those numbers in court.) I gave it back to him, he made some modifications, and tried it again - 3 hours this time. I asked him what on Earth he'd done to re-break the program, and he'd pretty much stripped out my caching. Why? Because it used almost half a gig of RAM! on his desktop and he thought that was abhorrent.
Never mind that it was going to be run on a server with 8GB of RAM, and that I'd much rather use .5GB for 8 seconds than 1MB for 3 hours of intense activity.
So Joe isn't every COBOL programmer, but you and I both know that he's a lot of them. But back to the direct point, how much of that 250GLOC was written with the assumption that it'd be running on 512KB machines or with glacial hard drives or where making the executable as tiny as possible was an extreme priority? Doing things like storing cache data in hash tables would've been obscenely expensive back in the day, so those old algorithms were designed to be hyper-efficient and dog slow. Whether you think that constitutes "working well" is up to you.
The average user doesn't care what clever name you chose for your mail client, they just want to be able to get email working on their newly-bought PC with minimal fuss.
Study after study shows that people prefer branding to generics. "Firefox? Oh, just like on my PC!" is a lot more enticing than "Internet", which sounds like it should come in a white-labeled can with black text.
They don't need to be; everyone already knows what they are.
First, the point was that Linux program names aren't inherently stranger than Windows'.
Second, familiar or not, the Windows app names I listed are definitely non-descriptive.
And here we are already, back to the problem pointed to in TFA.
I don't know what TFA said and wasn't replying to it. I was replying to someone who said that Linux app names were confusing and hard to find, and I assert that menu items like "Office -> Gnumeric Spreadsheet" are clear enough that this is no longer an issue.
iMovie comes with Macs, and flash camcorders can be had for well under $100. Video editing isn't exactly exotic these days.
I think people would like Linux more if they were familiar with program names. Notepad, Paint, Wordpad, Calc... whatever. When I boot Linux on occasion, I'm more confused with what program does what than how to use them.
Excel, Visio, Quicken, Outlook and Visual Studio aren't exactly self-explanatory.
While I applaud the work of thousands to build such robust amazing programs and give them each their own special name, I'm of the opinion that if you give someone KDE with a few programs labeled generically "email" "internet browser" "calculator" "text editor" "Office Text/Spreadsheet/Presentation" "Network - Wireless" "Printers" and so on and so forth instead of each programs' real name, you'd be a lot closer to the #1 goal of usability: making an intuitive interface.
In the Applications -> Internet menu from Ubuntu on my EeePC, I have "Firefox Web Browser", "Mozilla Thunderbird Mail/News", "Pidgin Instant Messenger", "Transmission BitTorrent Client", and several others. Compare with the Windows debacle of Start -> Publisher -> Weird Program Name.
I agree with your point, and apparently so did the distro maintainers a few years ago that made Linux much better on this count than Windows.
I would hate to buy a laptop only to find you need a fucking TORQUES bit to open it!
Yeah, it's not like you can just buy them for $3.00 at Sears.
All things being equal (same chipset, same RAM, same CPU line), more GHz == more speed. Also note that you're using extremely niche applications. Most people are doing things like editing their home movies, where a 10% faster CPU results in a 10% faster conversion process. The slower CPU will still get the job done in a reasonable amount of time, but if spending a few bucks up front means less waiting over the life of the computer, then it might be a pretty reasonable upgrade.
Damn straight about the Man Pages! Man pages are for reference for experienced users. In other words, for those who are wondering, "What are the parameters again?"
That is entirely dependent on the OS. Here's a snippet from the "zpool" man page as written by Sun and distributed with FreeBSD:
Each section explains exactly what it does and gives example command lines. In short, while Linux is historically not well regarded for its man pages, that doesn't extend to the format as a whole.
Oh, I won't claim that it was great on the first day. The important thing is that it got better to the point that people were willing to switch.
Google toppled DEC's Altavista. The same thing can happen to them.
See also: VHS vs. DVD vs. Blu-Ray. Google was much better than AltaVista and people were quick to switch to it. Google isn't perfect, of course, but it's good enough that it'd be hard to make an engine significantly better enough to warrant switching.
"This [search] is the feces that is produced when shame eats too much stupidity."
Seriously, MS isn't about to make Yahoo! their default search over MSN. Yahoo isn't about to cede traffic over to MSN, even indirectly by lending their search backend to make MSN not suck as much. And along those lines, MSN is so terrible that 95% of people go out of their way ignore it even though it is the default in IE.
Asplode.
How do you deal with a debt that's 100% of GDP?
OK, I am in no way pro-Obama (I voted Libertarian). I also think that a 25 trillion debt is horrifyingly insane. Having said that, we'd deal with it as a country the same way my wife and I deal with having a mortgage that's more than we earn in a year.
Every conservative I know was pissed at Bush for exactly those reasons, even if it wasn't widely discussed that way in the mainstream media. Glen Beck was particularly critical of Bush's anti-conservative actions.
Me. There's "code I would have written differently", but that's just style. That's completely different from "code that should be taken out back and shot".
E-Paper readers and wireless delivery. Once the tech gets cheap enough to make a Kindle-like device "Free With Subscription" then the news media will finally catch up with the rest of the world.
My local paper has a Twitter account and posts links to new stories as they publish them online. I don't know how well it'll work out, but at least they're embracing new ideas.
For what it is worth, I switched to neon tubes in most of the house...
You live in a strip club?
NOBODY is going to spend $6,000 on their music collection.
I did, over time. Pick up a CD here and there, marry a woman with a similar-sized collection, and next think you know you're ripping over 400 CDs. My MP3-only collection is about 30GB.
Again, I don't think OJ was framed. Yes, you should be laughing hysterically. :-)
And you have come to that conclusion based on exhaustive research of the preferences and use-patterns of all the people who are currently wearing your underwear.
"joocemann" is the CEO of Fruit Of The Loom.