A community discussing the business of software, from the smallest shareware operation to Microsoft. A part of Joel on Software.
This community works best when people use their real names. Please register for a free account.
"Make Better Software" is a 6 movie course designed to help you as you grow from a micro-ISV to a large software company.
Doug Nebeker ("Doug")
That's probably true but if the effort to identify, extract and convert them to 'current' languages and environments exceeds the effort to write them from scratch then it's not gonna happen. I can't think of any examples off the top of my head but I'm sure there must be loads of examples of techniques used on mainframes years ago that are only just being implemented all over again for PCs.
Tuesday, May 09, 2006
If the product is still actively distributed, you can be sure there are parts from the original even if it's 30+ years old. Some are updated or translated to newer languages or new language features. Here's a comment snippet from a Fortran90 program we still sell.
C THIS SUBROUTINE IS A TRANSLATION OF THE ALGOL PROCEDURE BALANCE,
C NUM. MATH. 13, 293-304(1969) BY PARLETT AND REINSCH.
C HANDBOOK FOR AUTO. COMP., VOL.II-LINEAR ALGEBRA, 315-326(1971).
If the product or the company is cancelled, it simply disappears. Many individuals may keep copies of bits and pieces that they recycle into new products or just use as a reference to how certain things were done. But most of it will eventually be lost forever.
I'm not sure if you want to access the source code of other applications ;)
You'll more likely find some quick hacks thrown together and spiced with some appaling coding practices that would be appropriate for the Dayily WTF than a gem ;)
But it depends, of course - on source code of "what" you're looking at.
I would tend to think that the Open Source projects are a good place to get to know "how to do interesting stuff".
Unlike other arts, the art of programming is a very selfish one. An ancient gem you wrote might not be worth reading for someone else, not counting the cost of finding it in all the piles of crap. Also newer technologies render lots of hacks useless.
On the other hand if you are talking about using old algorithms in new programs, that is often worth doing.
Sorry Smalltalk, most of the stuff I've got would be a duplicate so I can't ;)
Nah, I've seen HTML templates being stored in the database column and then (after retrieval) populated with sprintf command.
Very flexible and easy to visually edit ;)
> I'm sure there must be loads of examples of techniques
> used on mainframes years ago that are only just being
> implemented all over again for PCs.
I would think it more likely that most of the nifty hacks done on old mainframes were done because of the severe limits on memory or CPU architecture (number of registers, hijacking reserved memory, etc.). I had very little memory on the old Honeywell machines we used in the 70s, so I always had these two little pack/unpack functions that would stuff three 12 bit integers into a single 36 bit word. The 36 bit word was the atomic size, not 8 bit bytes. How much call is there for that sort of rubbish today? Well, I can think of one or two, but those are for purposeful obfuscation mostly.
And there were program overlays because no one but IBM had implemented virtual adddress space yet. Those were full of trickery and hackery, but also a useless skill today except in severely limited imbedded systems.
A lot of scientific/engineering software comprises a spiffy modern C++ GUI wrapped around 20+ year old hideous lump of FORTRAN.
Tuesday, May 09, 2006
Personally I'd like to know where all the code from the dotbombs went...
Tuesday, May 09, 2006
I was at one of those dotbombs.
I gave the code to the CEO, don't know what he did with it. Wasn't worth much anyway. We had no experience at all and payed 50.000 Dollars for 4000 lines of php. I have to start crying, when I think about it. I probably could come up with that php code in a week or so now. Instead of spending 3000 Dollars on hosting a month, I could easily host it on a 10$/month shared host.
> A lot of scientific/engineering software comprises a
> spiffy modern C++ GUI wrapped around 20+ year old
> hideous lump of FORTRAN.
As if! I could show you examples of ancient fortran command line programs with VBA wrappers and MSAccess Db wrappers around the same old executable. Issue a sys() command to run old program in background, gather up it's output in a scratch file and read it into the Db. Viola, GUI!
As for the DotBomb code, if it bombed I doubt you'd want to see it anyway. But most companies have a software escrow, especially if you sell to any gov't agency. You are required to stash a backup copy off-site in the event of a disaster or a dotbomb. The bankruptcy court would later sell it to anyone interested which is usually some former developer who thinks he can rewrite it and do another startup.
Many of those codebases ended up controlled by the lawyers when the companies when bankrupt. If the code "escaped" then the value of the code (which may have been negative in the first place) would become zero, they'll keep it locked up until they can get a purchaser.
There've been a few academic projects I've stumbled across, that seemed interesting, but usually by the time I find out about it, they're all gone. Some vanished into corporate vaults where they were smothered by Wallies. Others vanished when the students graduated, or the would-be professors lost their bid for tenure, and their computer accounts were wiped.
One such, T-bones, a brass instrument synthesizer, appears only in a couple MIT books on music synthesis, and the author(s) of the codebase appear to have vanished along with their codebase. Could I duplicate it? Sure, but I'd rather play dial-an-instrument than modeling 2-dimensional transmission lines. I barely passed a class in 1-D transmission lines (it will be a flunk-out course for your university's electrical engineering program).
I don't remember where I read it, but there were a couple articles in the past about this sort of thing (fast company? wired?), and how creditors' attorneys managed to lock up the code in legal battles until the source code became useless.
More than a few dotBombs vanished when they couldn't repeatably build the product for prospective purchasers/investors. You don't want to know how many companies still refuse to use source code control in this day and age.
Tuesday, May 09, 2006
"...You don't want to know how many companies still refuse to use source code control in this day and age."
Tell me about it - my previous company was just like that. Until one year ago they didn't even use source control of any kind. They just zipped up the sources and threw it somewhere on the network.
The irony of this is that it was a company that makes security software. Go figure.
When they finally got VSS in place (shortly before I arrived it turned out) they didn't even use it properly, which led to other code maintenance issues. It was one of the reasons I left that dump, especially when they had lost a lot of source code that I needed in order to do my work.
There are companies who buy up the servers of bankrupt software companies and put them in nice server rooms with the temperature and humidity finely controlled and then wait untill someone comes along and buys the server with its IP.
Of course this can't come as a surprise for any of you.
This topic is very interesting. I've heard that Unix was developed by guys at Bell Labs as a side project as they developed the B, precursor to C, programming language.
Back in the day, I heard most companies just bought one another. AT&T Unix, SCO Unix, etc... all stem from a common code base that's been forked.
Now if I was one of the original Unix developers back in the day, do you think some of that old code is sitting some place?
Do the folks that write Oracle have copies of code on their home computers?
How hard is it to get software out of companies?
Do companies like archive to CDROM and store offline copies?
I use to work for a company that just backed up everything to tapes. They were a drug company and I was part of the IT staff and we wrote small applications; one such application was a "time bank" system that interfaced with ADP payroll for windows. Last I heard, that application is still in use. I have all the original code on a Zip drive :) and when I left the company, the source code was just something that got backed up along with their Wordperfect documents. Tapes were sent off site to a bank vault as their off line backup strategy.
Tuesday, May 09, 2006
The history of Unix is more complicated than that, but yes some of the original guys from the K&R team are still around and I would bet they have some very old versions.
> How hard is it to get software out of companies?
You mean legally or in reality? A thumb drive can magically walk away with the company jewels in an instant. Get caught though and it's curtains.
> Do companies archive to CDROM and store offline
Yes, off-site and at another company. It's generally a legal requirement when dealing with big companies or gov't agencies, not just USA either. At every product release I copy all the sources and installer and distribution CDs and put them in an envelope to ship off to an archive company. The company's name, no kidding, is The Archive. They have to be kept for about 3-5 years. There's no legal requirement to hold them in perpetuity. But on-site, meaning my file drawer, I stash copies from more than 10 years back. Vax, Apollo, various flavors of Unix and every version of Windows there ever was.
Open source advocates can come across as communists, but this is one issue that they rally around that is pretty much true. Most closed source commercial software is a waste, in terms of enriching or enhancing the general body of knowledge. Old code becomes bits down a rathole when it's obsolete, and there is no way whatsoever for successors to leverage that knowledge unless they are able to purchase it.
At least with physical devices and designs of physical products they can be studied, analyzed, and emulated. Even if the design elements are patented, engineers can learn something constructive from "meatspace" products. Not always so with compiled commercial software.
Of course, commercial companies have no obligation to contribute to the state of the art other than selling disposable widgets. Whereas they can profit freely from it by using LGPL or BSD licensed code as a basis.
I want the source for WordStar. I want to port it to Windows. :)
No, I don't want the source for a WordStar clone. I want the source for the real thing.
Wednesday, May 10, 2006
This topic is archived. No further replies will be accepted.Other recent topics