top | item 40177553

I found one of my first programs (Java, 2011) on the Wayback Machine and it runs

210 points| khiner | 1 year ago |github.com

189 comments

order

n9|1 year ago

The first major piece of code that I ever wrote was a publishing workflow management system for a major newspaper. It routed page images to presses and generated pdfs of each page in each edition of the newspaper and made pdfs of each day's newspaper editions and published them to a static website where they were archived.

I was only allowed to use perl 4 to write this software and I wasn't allowed to use a database, even though the datastructure for a day's publishing batch had tens of thousands of keys and values and required RDBMs style queries. It also features a configurable postscript parser that extracts all kinds of data from completed newspaper pages that informs the publishing system. When I wrote it I was told that it would run for a few months only while we figured out how to get a $5M commercial product to handle the work.

The whole thing was written in perl 4 style OO Perl and came in at about 16k lines of code in the end -- most of the code was for the postscript processor and tons of cruft that I had to write to made a relational DBMS in memory because I wasn't allowed to use mysql. It took me four months to write it. I launched it in January of 2002 and it runs to this day. I know this because I got a call about it last month where my replacement's replacement's replacement asked me a few questions about what OO Perl is because he wanted to make a few changes. Good luck! It still runs and is responsbile for about 80% of what it was originally built to do. It is used by hundreds of people daily, who by all reports absolutely hate it. There are people working at the newspaper today that use it regularly that were not born when I wrote it. I am twice as old as I was when I wrote it.

They have apparently tried to replace it several times over the last 22 years and have failed to do so... this is likely due to the blockheadedness of my old boss (who is still there) as much as the radically insane obscurity of my code, which is exactly how you'd expect 16k lines of 22 year old OO Perl 4 would be.

jbverschoor|1 year ago

Interestingly, i have a similar story.

I created a database publishing platform exactly that time, a was given full control. I created it in Java, and added a JavaScript engine for scripting templates. The initial product was also side in a few months. It also runs to this day. The war file could be run by any Java server. The code, while old, was in a reasonable state, given some of the migrations.

I never thought about the code being older than the people working on it

bionsystem|1 year ago

Great story ! I'm proudly responsible for a small perl script that pre-processes SWIFT messages before sending them in a back-office banking Java app. It's barely 10 yo but I'm not a dev, and I suspect it will probably run forever.

The idea is to split messages in chunks and sort the rows by ISIN instead of having one big file without any sorting pattern, and it cuts the processing by the app from a few hours to 10 min. Never heard of a bug in this one but it's only like 300 lines of code.

shawn_w|1 year ago

Perl /4/ in 2002? When I learned perl in like 1995, 5 had been out for a bit already and it was hard to find a system with 4 installed...

(perl 4 didn't have built in support for OO; did you roll your own system?)

justusthane|1 year ago

That’s a really incredible story. I’m not sure how much more you remember/are able to share, but I would kill to read a longer post about this.

chefandy|1 year ago

> asked me a few questions about what OO Perl is because he wanted to make a few changes

Well that's pretty impressive. Most of my garbage pearl code from 20 years ago would probably look like line noise to most modern developers if it wasn't for the shebang.

wh33zle|1 year ago

If you don't mind me asking, how much did they pay you to build it?

davorg|1 year ago

> The whole thing was written in perl 4 style OO Perl

What does that mean? Perl's basic OO support (using blessed hash references) was introduced with Perl 5 in 1994. I have no idea how anyone would even attempt writing OO code in Perl 4.

hohlraum|1 year ago

I architected/managed/maintained a perl web application starting in 2001 for a dot com. I still work with it today and the application/company recently sold to a new company for $24M USD.

defaultcompany|1 year ago

> It is used by hundreds of people daily, who by all reports absolutely hate it.

This made me chuckle because as a software development intern in 1988 (being paid like $8 an hour) I wrote a giant monstrosity of a time tracking program for a local CAD company in an Empress database using its forms builder interface. It was in use for far longer than anyone ever intended and whenever I ran into someone from that company years later they would tell me how bad it was. Sorry guys!

ssl-3|1 year ago

How does it feel to be 44, fellow old person?

xeyownt|1 year ago

Ah ah Perl, the king of all WORN languages: Write Once, Read Never. Because It is so powerful that you get burned if you come too close.

s2l|1 year ago

[deleted]

aabhay|1 year ago

The wayback machine is pure nostalgia. Every time I go there I’m truly amazed at what it’s like to have a society wide memory that automatically captures these different moments of our lives.

Old pictures I never thought I’d ever see again. Landing pages for old companies I’ve built and only a handful of my closest friends remember. Blog posts from long deleted places, times, and mental caverns.

Just incredible.

otteromkram|1 year ago

I try donating every few months. Maybe $5-$10 each time.

Like yourself, I think it's an incredible resource and don't mind pitching in( when I can) to help keep it running.

Scoundreller|1 year ago

Reminds me of some reddit post with a link to some page with some local history, but all of the image links were broken. Within a few minutes I posted the link to Wayback and they were delighted because they happened to be archived there.

eggdaft|1 year ago

Well you got me excited to check out my first homepage but I guess I predate the WM. When did it start archiving?

khiner|1 year ago

One of the first programs I ever wrote - a program to find valid English crossword fills given a grid pattern with optional partial completions.

This project came to mind recently and I looked around on the Wayback Machine. Turns out I posted the jar on MediaFire and linked to it on an old blog on Jan 2, 2011. Luckily, there was [_one capture_ of the jar on MediaFire](https://web.archive.org/web/20240123154949/https://download1...) from oddly recently (Jan 23 2024). I downloaded and opened it on my 2023 MacBook Air, and it ran! Since it's Java, I'm guessing it runs on other computers, too :)

It was a delight to find it still working. Anyone else ever find an old program you thought you lost and get it running again?

khiner|1 year ago

EDIT: As a couple observant folks pointed out, the original MediaFire link actually still works, so WB machine saved the day by making it possible to find the link, but the jar was also still hosted on the today-internet :)

theanonymousone|1 year ago

Nice job. Now maybe you can make it a web application using CheerpJ.

xandrius|1 year ago

Not to be snarky but 2011 is yesterday for programming, no major shift. I'd imagine almost all code written there would be able to run today.

koito17|1 year ago

In the Java world, sure. Other programming language ecosystems tend to have tons of churn. For an anecdote, every TypeScript project I find from 2021 or earlier is simply impossible to build nowadays, meanwhile the ClojureScript code I dealt with in a previous job was able to survive 8 years worth of updates to libraries and the core language. I frequently ran into code that was last modified around 2013 because it just worked and didn't need any refactoring. (For reference, ClojureScript didn't have a public release until 2011)

For another anecdote, every Golang repository I've found that predates v2 modules is nearly impossible to build, especially if it contains dependencies that link straight to Google Code instead of GitHub. (As an exercise, try building the first public releases of etcd, prometheus, etc. They were super simple projects compared to what they are today, but you will have a tough time building them)

Java and most JVM languages are the rare exception IMO (unless the project uses Gradle). That's one of many reasons why I love working with the Java platform :)

swiftcoder|1 year ago

One would hope so, but in a variety of popular environments that is not the case. Apple is particularly challenging in this regard - keep in mind, PowerPC macs were still actively supported in 2011. Since then we've sunset PowerPC support, sunset 32-bit support, and I imagine we're only a couple of years short of sunsetting Intel support as well

I recently spent upwards of 4 hours trying to get a 2009 python project to run, and the graphical portion is still subtly broken on MacOS...

CJefferson|1 year ago

This is probably the worst case, but I wrote an iPhone game back around then. I recently tried to build it and after a couple of days of not even getting close to something which built (never mind worked when running), I gave up.

fragmede|1 year ago

You've had a very different experience of the past 13 years if you've experienced no major shifts. Even the past year has had a whole big change with the advent of LLMs, nevermind the rise of the web, VSCode, typescript, rust, and more.

In 2011, Java was on version 7. We're on 22 now in 2024. There have been some paradigm shifts in Java during that time. Streams (Java 8), Lambda expressions (Java 9), the var keyword (Java 10), Records (Java 14), switch and yield (Java 12/14), instanceof (Java 16). Functional programming over OOP; Cloud and microservices, emphasis on security, DevX, concurrency.

Code written in 2011 still runs, but the world's changed around it.

squigz|1 year ago

The Internet Archive is (IMO) one of the most important endeavours of our time.

Consider donating: https://archive.org/donate

mdaniel|1 year ago

I normally echo this sentiment, and I can easily imagine an outcome through which the money could pay for lawyers, but in the ongoing discussion about their court case <https://news.ycombinator.com/item?id=40201053> there was a comment that predicts any money they get is just going to end up in the pockets of Hachette when they eventually lose :-(

I recognize this is a very pessimistic take but ... for consideration

noufalibrahim|1 year ago

My earliest "large" program which I can remember was a drawing program I wrote in GW BASIC. You could draw figures, change brushes, I think it had a crude filling function and a few other things. In my innocence, I backed it up onto 5.25" floppy disks, labelled them neatly and put them in a box. This was in the late 1980s.

Fast forward to 2024, I still have the disks but no drive to read them. On the other hand, the notebooks where I wrote out some of the routines for the programs are still with me and I can read them. Says a lot about "digital archiving".

darkstar_16|1 year ago

Are you me ? I wrote an exact program like this in GW Basic back in the day. I remember adding the ability to draw coloured lines but I had no way to verify since my computer monitor was one of those with green coloured pixels. Finally got to see everything in full colour at my school lab and was so thrilled. Those were the days ...

Almondsetat|1 year ago

>Says a lot about "digital archiving"

It doesn't, since you could easily buy a USB floppy disk reader

bandrami|1 year ago

One of my first jobs was writing a Perl script in 1996 that did an incredibly mundane set of checks on some routers in a datacenter (using this really cool new technology "BGP") and offered essentially a public REST API (though we didn't call it that back then) you could periodically poll to see their status. Every so often I check to see if it's still there, and it always has been. I really hope it makes it to 30 years.

brabel|1 year ago

You can download the old Java build system, Apache Ant, from 2003 and it still runs without issue:

https://archive.apache.org/dist/ant/binaries/

Download the bin.zip distribution, unzip it, then run this comand:

    java -cp "lib/*" org.apache.tools.ant.Main 
It runs on Java 21 without issues :D.

Java is like Windows: it can run stuff written for it forever.

jraph|1 year ago

If you are so inclined, a decompiler might be able to "recreate" a big part of the source code. IntelliJ IDEA's one (Fernflower) works well, its fork Vineflower seems like an interesting option too. Both are released under Apache 2.

Fernflower works so well I don't always immediately notice I'm debugging decompiled code.

rafaelgoncalves|1 year ago

Nice, didn't know about fernflower, thanks for the recommendation! I use JavaDecompile (JD-GUI)¹ too much and is already in my workflow, but from insights like this i see some nicer/better tools.

1 - JD-GUI - https://java-decompiler.github.io/

DrBazza|1 year ago

One of my first pieces of code from my first job in 1997 still exists and runs according to a long suffering colleague that still works at the same place. That also means the code has gone from SCCS -> CVS -> Clearcase -> Perforce -> SVN -> Git. That's enterprise development for you.

gedy|1 year ago

Mine was from 1984, I recovered basic program from a Commodore 64 disk using a USB to 1541 controller. A character sheet creator for a "homicidal maniacs" role playing game my school friends and I created :-).

linker3000|1 year ago

I found some old Turbo Pascal code I wrote in the late 1980s - early 1990s and managed to compile and run it under a DOS emulator a few years back.

The code is a map editor for the Rockford ('Boulderdash') PC game. Unfortunately, the versions of Rockford in the wild, for download and online play, seem to be based on a later game engine and the map format has changed so the editor no longer works.

The code was designed to produce registered and un-registered versions, but I never released it into the wild.

If anyone has a copy of the original Rockford game version I'd love to know about it.

https://github.com/linker3000/Historic-code-PC-Pascal-and-AS...

dolmen|1 year ago

I found mine too, archived in 2001, but my browser can't run Java applets anymore.

https://web.archive.org/web/20010407081008/http://www.multim...

In fact I noticed 10 years after the publishing when I tried to run the applet that it didn't even run because the compiler of that time had generated invalid byte code (not caught by the JVM) or that the source code itself was invalid and that had not been caught by the compiler. "Compile Once, Run Everywhere", they said.

brabel|1 year ago

If you want to run your applet today, try CherpJ: https://cheerpj.com/

This should be able to run absolutely any Java in the browser.

Takennickname|1 year ago

What a strong ad for Java

vbezhenar|1 year ago

2011 for Java is nothing. I've used JDBC driver written for Java 1.4 (2002) in Java 17 and I absolutely sure that it'll work with Java 21 just as well.

Java backwards compatibility is real and it works absolutely fine unless you do bad things.

dehrmann|1 year ago

Java's maintained almost perfect backward compatibility. If you want code you wrote today to run in 10 more years, Java is probably the best choice. Most other languages have too much of a history of breaking changes, or if you pick C/C++, you'll have issues linking against an old UI library.

palad1n|1 year ago

Seriously. Remember applets? My first real Java app was a small 3D Pong game using AWT, and it still works using appletviewer on my M1 MacBook Pro. I mean, it's circa 1998.

_ZeD_|1 year ago

that should be the norm.

the reality is that is a strong ad against almost all modern frameworks, that may live for as little as a football season

xxs|1 year ago

stuff written for java 0.9 (1996), even with the default package (no namespaces), still runs normally. 2011 is past java 7.

contrarian1234|1 year ago

Except now a days you're not encouraged to run a system-wide JVM!

You can still download a JVM for Java 21, but it's from weird third parties like Adoptium

nikolajan|1 year ago

My first piece of code (substantive) was an ecommerce platform (frontend and backend). Complete overkill, and the startup was dead a year later, but the project itself was fun.

Likely 15k+ lines of code, not a single unit test; simpler times :)

haolez|1 year ago

On a slightly related note, old Emacs modes (elisp) run incredibly well to this day. There might be working code there that spans over 3 decades.

Zambyte|1 year ago

Lisps that support macros are pretty much infinitely backwards compatible. Even across dialects. I wrote a set of macros to be able to program in a subset of Scheme and Hylang, and run that code on either :)

tmoertel|1 year ago

The oldest thing I've written that I can still find on the Internet — the original disks are long gone — is a microbe simulator I wrote about 35 years ago. Apparently, at least two people archived a copy:

https://www.macintoshrepository.org/11521-microbe-swarm

I suspect that it would run as is on a 68k Macintosh emulator.

guessbest|1 year ago

I have Objective-C software for iOS that was built for iOS 3 that still runs on the latest version of iOS and people still pay for it. Strange how language stability is an achievable goal.

kristianp|1 year ago

Why don't you post the app store link? That's allowed.

fragmede|1 year ago

Damn, that makes me want to see if I can dig up the asm code I wrote for the TI-83 and run in on an emulator on modern hardware. Really happy for you that you were able to find that jar!

urbandw311er|1 year ago

I also found mine! The first program I wrote (aged 13) was in 1991 - it was “RADBench” a program for the Commodore Amiga that created a slimmed-down workbench that lived on a RAD disk (like RAM but survived a soft reboot). Meant you could use your computer without having to reinsert the disk containing the main OS binaries whenever you wanted to do anything.

I distributed it via public domain shareware listings - back then you had to send them off to a distributor and they would advertise their apps in the major computer magazines.

I used to get royalty cheques in the post! Which I think I spent on sweets.

Turns out most of the shareware from back then has been archived online so I was able to get it running again on an Amiga emulator and read all the immature embarrassing stuff that a 13 year old kid thinks belongs in a ReadMe… ;-)

oefrha|1 year ago

My first "major" program was a ASCII art based Super Mario Bros clone in Turbo Pascal from 2005. I don't have it anymore, but since Turbo Pascal hasn't changed and text terminals haven't changed, I'm pretty sure it still works.

Brajeshwar|1 year ago

This is cool. I went there to check if I can find some of mine and found the page that links to some of my public downloads, unfortunately, none of the Zip files were archived.

And the Ruffle Flash Emulator still do not work with most interactive Flash Applications!

thaliaarchi|1 year ago

You might try building Ruffle from source. I’ve found that online versions don’t work for the games I want, due to using an outdated version of Ruffle.

Suppafly|1 year ago

My son found some of my old java code from 20 years ago and managed to get a couple of the programs to run, with some very minor modifications. The java applets not so much, because no browser has had support for applets for a decade or so.

palad1n|1 year ago

Use appletviewer. I have something from 1998 which still runs using that.

daemin|1 year ago

I've recently dug up some of my first "larger" scale projects that I implemented in the early 2000's, including compiled executables, which managed to run unmodified on modern Windows.

That is an achievement in compatibility.

It was 2 demos of my game engine project, one compiled in late 2001 and the other in 2002 based on the exe file timestamps. They used Win32 and OpenGL, and surprisingly work faster on my laptop with integrated graphics than on my beast desktop PC.

thrdbndndn|1 year ago

>on the Wayback Machine

I mean, the original MF link literally still works (I intentionally break the link in case HN filters it)[1].

> Luckily, there was [archived] from oddly recently (Jan 23 2024)

You can see archiving reason on WB's index page [2].

In this case, it was archived due to "why: archiveteam, archiveteam_mediafire".

[1] http s:// www. mediafire .com/file/rwpl49xusm55s2a/WordFillVer2.jar

[2] https://web.archive.org/web/20240000000000*/https://download...

khiner|1 year ago

Good catch! I didn’t realize the original link still worked. Also didn’t know about the “why” notes on WB index. Thanks!

self_awareness|1 year ago

I've found some of my old .jar's (some small games) written on Windows in the 2000's. They still run on Linux 20 years later. That's why I like the JRE.

INTPenis|1 year ago

I recently realized how much data the wayback machine is archiving when I found my old webpage with dozens of videos and photos of my puppies being born and they all worked.

NovemberWhiskey|1 year ago

I promise you that there are major businesses still running on Java 6 code from 2011.

oaiey|1 year ago

As a dark matter architect, I can tell you: You do not need to promise. That is reality ;). You let the system run some years successfully, never touch a running system, than you fire fire-everyone involved cycle, then do something important, maybe plan the successor system and but then scrap that. And then budget is tight and the UX needs it more urgent. 2024 it is.

amne|1 year ago

I don't even know what Java 6 means. Last time I wrote something in Java it said Java 1.5

  compiled Java class data, version 49.0 (Java 1.5)

winternewt|1 year ago

The first Java code I wrote was in 1996 (IIRC) and it is still out there, but it doesn't work anymore because it is a Java applet.

matja|1 year ago

Most Linux distros still package jdk8-openjdk which has appletviewer.

jdeisenberg|1 year ago

Plain old JavaScript (without frameworks) holds up rather well. My simplified blackjack game from 1998 (modified in 2003) and a calendar program from 2001 (probably written before then) still work in a modern browser.

The calendar program uses document.write(), which is very embarrassing nowadays, but then again, that was what people did back in 2001.

lnxg33k1|1 year ago

My first program was a mIRC script :D

anthk|1 year ago

Well, I've seen the opposite: an awk script to connect to IRC...

amouat|1 year ago

I wrote a similar program once. To get it to be efficient I had to use a bunch of heuristics including scrabble scoring words, so it would prefer words with low scrabble scores which were more likely to fit in with other words.

fsloth|1 year ago

So I’ve turned into an old man screaming at the sky. 2011 is not that long ago! Lot’s of production code from that time can be still considered fairly ”fresh”.

Repulsion9513|1 year ago

> Luckily, there was one capture of the jar on MediaFire from oddly recently (Jan 23 2024).

Why is that lucky? The MediaFire link is still live anyway.

khiner|1 year ago

Someone else pointed this out as well - I didn't realize the original MediaFire link still worked. Updated to reflect.

smusamashah|1 year ago

To author, if you use IntelliJ, you can very easily get the source back by dragging/opening compiled .class files in IntelliJ

sandos|1 year ago

Wow, I did some work in summer 1996 in java, web applets! Would be awesome to find that again, but I think the chances are less than slim for that happening.

Actually I did some somewhat impressive graphical x86 assembly programs around 1994-95 which I would have really liked to see today, but I saw no value in those once I had done them. :/

brlcad|1 year ago

Boggles my mind when coders don't save everything they've ever written. It's easy to be a digital pack-rat without much consequence.

That said, my first Java 1.02 programs from the 90's still compile and the old jars run surprisingly well too. Color me impressed!

ks2048|1 year ago

It was quite different before the internet. I'm still holding out hope of finding some of my old BASIC programs from the 80s on a 5¼-inch floppy disk in my parents' basement. But they are probably gone.

dolmen|1 year ago

Being a programmer and being an archivist are two different mindset and two different jobs.

eurekin|1 year ago

> Download the jar file > https://github.com/khiner/CrosswordFiller/WordFillVer2.jar

Returns:

> Not Found

currently

danlindley|1 year ago

It can still be downloaded via the file on the repo, just not using that direct link in the description. I'm not sure how the maintainer came to determine that is the link, since I'm almost certain that never would have been the way.

khiner|1 year ago

Fixed, sorry about that

jandrese|1 year ago

I wrote some Hypercard stacks back in the 90s and uploaded them to AOL. A couple of years ago I found it again on archive.org complete with emulator.

alhsn|1 year ago

I suggest that you reverse engineer (decompile) the jar file and check the java code too. If you didn't know, it is very easy to do.