views:

844

answers:

29

What is the oldest code written by yourself to which you still have access?

And how has your coding style evolved over time?

+2  A: 

I still have some code from 1998 that I wrote when I started graduate school. My coding style sucked then. It sucks much less now, though if you ask me in another 10 years I may answer differently.

tvanfosson
+1  A: 

This should be a community wiki.

I still have floppies from my early fumbles with BASIC on the Apple II (early 80s) and later on my first PC. Good luck finding something to read them....

I also still have access to everything from college. Unfortunately, everything afterwards was proprietary.

I think my style evolved, but I've also switched to "stronger" languages over time (e.g., Java and C++ vs. C, Pascal and earlier stuff).

Uri
You can make your own answer a CW even if the question isnt.
Ólafur Waage
Yeah, *this* should be a community wiki as you said ;)
Mehrdad Afshari
They really should have a way of turning the question into a community wiki without the OPs work.
Uri
Enough edits or enough answers will have that effect. The first of four distinct user's edits, five edits by the OP, the OP checking the box, or thirty answers to occur triggers CW status according to the faq (http://stackoverflow.com/questions/128434/what-are-community-wiki-posts-in-stackoverflow/128436#128436).
RBerteig
And I still think that several users with sufficient REP should be able to convert a topic to CW before it just gets closed.
Uri
+1  A: 

I started programming in College and with the exception of my first semester in College, I have access to everything I've ever written. I was quite fortunate to be introduced to source code control at a very early time in my career. Being the geek that I was I set up a CVS server and started using it for everything not work related (work has their own SCC and they keep everything as well). Over time it evolved into a SVN server and now I have it hosted on wush.net.

In terms of evolution, I'd like to think my code has become less trusting and more rigorous over time. Essentially started learning to validate everything, trust nothing and go to great lengths to validate my assumptions and invariants.

Also, I've clearly grown to rely on tools to do a lot of work for me. My earliest samples all include hand written make files and custom testing programs. Now a days, I use an IDE for practically everything including build management and testing.

JaredPar
+1  A: 

In a box near my desk are some Amiga floppies from the early 90's, with my first attempts at programming on them (in a language called AMOS, a BASIC derivative). Alas, the Amiga floppy controller was a bit odd, so I can't read them in any PC floppy drive.

Oddly enough, I've actually spent the last week looking for a cheap old A1200 I can buy for reading these, and getting a nice nostalgia hit.

Adam Wright
+1  A: 

I have the C++ code written in 2001 when I was still learning it. It is a single file with more than 4000 lines of code. It has all the bad things you expect from a newbie:

  • Single letter variable names
  • Absolutely no comments
  • Eventhough it is C++, there is no OO.
  • Lots of memory leaks.
Naveen
+1  A: 

Tetris game I wrote in C# at 2006 , I think that the first program I wrote was 15 years ago in Basic , when I made my first steps ( I almost didn't touch computers during 2000-2003 because of a military service) .Anyway , That Tetris game is the only thing I got by hand.

I can't say that my tetris game was written bad since when I wrote it , I already had some experience.

+1  A: 

I have two programs I wrote sometime around the 90s; I was a teenager and actually sold the programs to a company. One of them compared a Bill of Materials against a description of parts from a data base and tried to determine if the parts were a match with some crude natural language parsing ( i.e., that "1kohm res" was probably the same as "1K resistor 5%" ).

A few years back my dad rescued those programs from the 5 1/4" floppy as he was cleaning things out, and the programming style was... very very scary.

This was from back in the days that I would single step through the debugger and randomly add or subtract one from variables until the program worked. That bad habit is what led me to abandon debuggers altogether and actually start thinking about my code.

I also still have some audio tapes that problably have my BASIC programs for the TI-99 4/A... maybe one day I'll hook a tape deck up to my computer and try to recover them :)

Chris Arguin
+1  A: 

It was a front-end for a hack for a video game I used to play. The difference between my coding style then and now, is I actually know what I'm doing now.

Rayne
+1  A: 

I still have lots fortran of code (numerical calculations and plotting, nothing interesting to the general population) written in 60'something, which I regularly use. Works without change, like it did several decades ago.

My coding style hasn't changed that much. Simple and more typing is better than less typing and more constructs, IMHO.

ldigas
+3  A: 

On a cd-rom somewhere, I still got the RCS repository for my CD-Rom emulator that I wrote for DOS, still available on the internet in several places, here for instance, way back in 1995. This isn't the first program I ever wrote, that would be somewhere around 82 but this is the earliest piece of code that I still have.

I can safely say that that code is documented the way all starting projects are documented, with what is happening, but not so much why it is happening.

Here's, an excerpt:

; SaveDir procedure
proc    SaveDir
uses    ax, si, dx
    mov ah,47h                  ;   Dos Fn 47h = GetCurDir
    lea si,[OldDir+1]           ;   Destination in ds:si
    push    ds
    push    cs
    pop ds
    mov [byte ptr ds:si-1],'\'  ;   Make \ relative
    mov dl,00h                  ;   Set to current drive
    int 21h                     ;   Call DOS interrupt
    pop ds

    mov ah,19h                  ;   Dos Fn 19h = GetCurDrive
    int 21h                     ;   Call DOS interrupt
    mov [cs:OldDrive],al        ;   Save drive
    ret                         ;   Return to caller
endp

I especially like that I have documented every ret instruction.

Oh well.

Lasse V. Karlsen
+1  A: 

not my oldest code but one that is still running ... a POS system written in 1988 with Clipper Summer 87 on a Wang computer with a PC(read IBM)-compatible card ... still running smoothly under DOS ... last changed when we adapted the euro ... my customers don't want to change, so financially it was not the best deal I made :-(

"adapted the euro" should read "adopted the euro" ... got a PLink86 compiler error after posting - and yes, still have all the original disks and Clipper manuals
+1  A: 

Probably some vb6 code in an application from about 10 years ago, and it's still in use at customers as well :).

Coding style is probably horrible, but hey, it's vb6 :).

Morph
+1  A: 

I have some code from 1992. It's Basic and Turbo Pascal sources which move from hard disk to hard disk since ever.

Stebi
+1  A: 

The code I wrote for my EE Master's Thesis in 1979-1980 is still available to me (only on a paper printout, alas) as part of said thesis. Mostly Dec VMS Fortran, a little VAX assembly code. (I also have some scraps of the APL code we wrote to prototype what later became Fortran and assembler). At the time I was a HW guy grumpily coding because I had to, so it's unsurprising that the style isn't the very best;-).

Alex Martelli
+1  A: 

Like Adam Wright, I still have some floppies with Amiga Basic programs circa 1990 - which I wouldn't really want to look at even if they haven't decayed and I could resurrect the necessary hardware.

Then there's a bash script I wrote around 1998 to generate an HTML image gallery (complete with tumbnails). I actually used that only a year ago to give the hobby site I built with it (my first foray into HTML) a makeover.

My oldest "production grade" code is probably the B-tree implementation in Java that I wrote in 2001 as part of my diploma thesis. I think it's actually still running as the storage allocator in a research system.

Michael Borgwardt
+1  A: 

I have my DOS demo snippets from 1996 still on my website, with downloads and all.

The code is actually not that bad for being done by a 15-16 year-old that doens't speak English natively. Hm. I'll have to dig up some old basic-code from when I was 10. :)

Marcus Lindblom
A: 

The oldest code of mine that I still have access to is all stuff I'm actively working on and distributing. Yeah, I haven't been a programmer very long. I think my dad might still have the hangman, pente, or tic-tac-toe games I made in VB when I was like 9, though. VB6 is decompilable, yes?

pyrochild
+1  A: 

In 1972 I had my very first timeshare-on-a-tty experience, for which I saved the printout, but I don't think I still have it.

In the '70s I went to college, and I have a box of paper tapes from that experience. Although I can't read them now, I do have a tape reader head that will one day be made into something that can. I also have a small punch card deck, but no desire to read them (although some tricks with a camera are quite possible).

As for "show me now", my hard drive has a partition which was my previous computer. And on that partition is a directory which is the computer that came before it. And so on, recursively, all the way back to DOS, and then...CP/M files, which there are no dates!

gbarry
+1  A: 

I still have some RCS files with first versions dating back to 1987, and current versions dated 2009.

My coding style has evolved somewhat. I use prototypes exclusively now - they weren't an option back then. I use const whenever I can; that wasn't an option back then either. I used to have per-function edit information in the file; I relegate that to the VCS now. I use blanks instead of tabs, now. In 1987, I used tabstops set at 8 and tabs for indentation; for a long time in between, I used tabstops set at 4 and still used tabs for indentation. The nitty-gritty details of version control strings have changed; I used SCCS in 1987, up to somewhere around 1998 (when I switched to RCS because the format of SCCS dates has Y2K issues). But the transformation from SCCS was automated by a shell script.

But there is a lot of commonality between the original and current - more that is common than different.

[I do have a few older printouts - one from a Commodore PET (one of the big ones, with 8 KB of memory!), and some ancient Fortran, and so on. The oldest of these is circa 1980.]

Jonathan Leffler
+2  A: 

I have ANSI C code from when I was 11. That would have been 1996.

It iterated a value and printed it to the console.

Good ol' count.c

Präriewolf
+1  A: 

Somewhere in my parent's garage are programs I wrote back in 1985 on a BBC Micro. However, I recently found the first C program I ever wrote from 1995 in the form of a print-out pasted into a lab book. I present to you "seashells.c":

#include <stdio.h>

int main()
{
    printf("She sells sea shells on the sea shore.\n");
    return 0;
}
dominic hamon
+1  A: 

When I was in 3rd grade, my friend and I wrote a QBASIC program. I have it here, but it's printed out on paper only.

Basically, it asks for 3 numeric passwords, with phrases such as "Give me the password or I will EAT YOUR SOUL!"

My style evolved quite a bit, but it wasn't too shabby for 3rd grade programming.

I also wrote a Yahtzee clone called Yatzo as a kid. There was a lot of copy and paste code to test for straights in the dice.

rlbond
+1  A: 

The oldest substantial piece of code I know I still have access to was a Common Lisp program I wrote in grad school, probably about 1995 or so. It used simulated annealing to solve certain arc routing problems. Since then, I've primarily used C++.

David Thornley
+1  A: 
CLS
INPUT "What year is it now? ", year%
INPUT "What year were you born in? ", born%
age% = year% - born%
PRINT "You are around ";age%;" year(s) old!"
mepcotterell
A: 

I started my professional career as a developer in 2000. I was a member of a team of four developers trying to write app for distribution of movies into theaters. The system is still operational and as far as I know, it covers about 80% of polish market.
I was responsible for two modules, getting theaters feedback and box office and billing. Later my responsibility expanded – I have written accounting module. Four years later (I have changed work since then) I was introducing new tax regulations to the system as a freelance. Now my own company has been doing some changes and additions to all modules, so I have access to source code I had not been able to access in the past.
Oh – the system was written in Delphi 4, ported to Delphi 5 about 2001. The database was free Interbase on Linux, and since there are some differences between free Interbase and Firebird, I have to rely on virtualization, to keep development environment in our machines.

smok1
A: 

I have a page of Commodore 64 basic written when I was about 13 or 14, sometime in the late 80's.

Aikislave
A: 

I released a commercial application in 1984 under MSDOS and it is still in use and supported today.

psant
A: 

I just checked my old Texas Instruments TI84 calculator and I still have a "pairs" program (aka concentration) that I wrote at least 10 years ago when I was in high school. It was only 2x4 and always the same layout each time... but took me f'ing ages to write, with a lot of code, because of the VERY basic language & display features.

DisgruntledGoat
A: 

Umm, let's see.

1) APL code for Octapawn (Scientific American article on matchbox machine that learns to play the game), circa 1968.

2) Paper tape rolls containing assembler for a 16-bit virtual memory minicomputer I built in 1973 at WaveMate.

3) Source code for an 8 bit RTOS/Single User OS/MultiuserOS/Distributed system with debugger and ROM boot images from 1979.

Stupid packrat :-{

How has my style changed?

1) I haven't coded in APL in 40 years, but it was fun while it lasted. But I do a lot of data parallel programming code generation now.

2) I used to work on tiny machines. The 8 bit OS was coded in assembler, and ran 15 users in 1Mb of RAM. I still code in assembler (x86-32/64) more than you'd expect.

3) I used to code a lot of assembler and C code. Now I mostly code in domain specific languages used to manipulate programming langauges, and a parallel programming language used as the foundation for these.

4) I no longer care about object sizes. We generate 100 Mb object files for different programs several times a day. Application code size is now several million lines.

5) I used to write assertions in comments a decade ago. My current languages let me write lots of checkable assertions. Consequently I spend a lot less time chasing bugs; usually an assertion triggers and that's enough to figure out what to do.

Resources got cheap.

Ira Baxter