[HN Gopher] I found one of my first programs (Java, 2011) on the...
___________________________________________________________________
I found one of my first programs (Java, 2011) on the Wayback
Machine and it runs
Author : khiner
Score : 197 points
Date : 2024-04-27 05:36 UTC (2 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| khiner wrote:
| 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/w
| eb/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 wrote:
| 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 wrote:
| Nice job. Now maybe you can make it a web application using
| CheerpJ.
| fragmede wrote:
| 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!
| n9 wrote:
| 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.
| justusthane wrote:
| 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.
| Folcon wrote:
| It's in moments like this that I miss the hacker news
| magazine[0], because I had relatively high certainty that
| when stories like this popped up, the poster in question
| would get interviewed and their story would appear in the
| next edition.
|
| Not sure who else recalls it? Really appreciated the monthly
| format as well, I think summarising the last month and going
| in-depth on specific stories ended up being a good touchstone
| for what happened in the community.
|
| If anyone is interested in picking up the torch, I for one
| would be happy to resubscribe to it :)...
|
| -[0]: https://news.ycombinator.com/item?id=1261499
| wh33zle wrote:
| If you don't mind me asking, how much did they pay you to build
| it?
| jbverschoor wrote:
| My salary was about 30k. Best deal ever lol
| GrumpyNl wrote:
| With software still running and being used, the company had
| a bargain.
| glitchcrab wrote:
| The person you're replying to is not the GP
| jbverschoor wrote:
| Per year for those who are confused..
| chefandy wrote:
| > 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.
| genewitch wrote:
| i never wrote perl in any serious fashion, but i've always
| tried to use as much information in the source so i can
| figure out how i did it. I enjoy reading the submissions to
| code golf challenges, though. A few of the more esoteric
| language users have let slip they write a compiler to go from
| readable code to the target unreadable code.
|
| Whenever i see terse C or load bearing perl it does look like
| line noise.
| jbverschoor wrote:
| 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
| chii wrote:
| There's nothing more permanent than a temporary fix put in
| while waiting for a permanent fix for a problem.
| stavros wrote:
| We have a saying for that in Greek: Ouden monimoteron tou
| prosorinou
|
| "Nothing more permanent than the temporary"
| jbverschoor wrote:
| It was never a temporary 'fix'. The product eventually spun
| off into a new company and was recently acquired by a PE
| firm.
|
| But yeah, creating software - or any kind of process
| actually - results in maintenance. If something is used a
| lot -> too many people depend on it. If the number of
| consumers/users isn't documented -> you don't know if you
| can turn it off, but for this problem you can inspect a
| year's worth of log files :)
| Rebelgecko wrote:
| I had a job once trying to help the government un-fuck a
| janky codebase that they were in the process of paying
| billions of dollars for. I remember opening a file that had
| some issues (IIRC it could only be compiled with a specific
| discontinued compiler) and seeing a comment that the file was
| created on my literal birthday. Was quite the surprise.
| xeyownt wrote:
| 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.
| bionsystem wrote:
| 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 wrote:
| 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?)
| worthless-trash wrote:
| To be fair it is perl, there was probably a library for it.
| mhd wrote:
| For Perl4? Not that likely, IIRC CPAN was started in '95,
| after Perl 5 came out which introduced most of the
| packaging semantics. I think Perl 4 basically had an
| "include" equivalent.
|
| Don't remember anyone doing OO back then with it, either.
| Would be interested to know how that worked...
| davorg wrote:
| > 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.
| Almondsetat wrote:
| It says perl 4 style OO Perl, not perl 4 OO style Perl
| shawn_w wrote:
| He said he was using perl 4. And there was no such thing as
| "perl 4 style OO".
|
| I'm thinking he's just misremembering what version of perl
| he was using. Easy to do after 20+ years.
| Almondsetat wrote:
| I can write C style C++ or html 4 style html 5
| hohlraum wrote:
| 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.
| ssl-3 wrote:
| How does it feel to be 44, fellow old person?
| aabhay wrote:
| 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 wrote:
| 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.
| Elyra wrote:
| Same here, I have them set as my charity through Amazon smile
| and humble bundle
| afruitpie wrote:
| Amazon Smile was shut down, unfortunately:
| https://www.aboutamazon.com/news/company-news/amazon-
| closing...
| sumtechguy wrote:
| Hope they can last the lawsuit that is still going on from
| what happened with that book thing.
| Scoundreller wrote:
| 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 wrote:
| Well you got me excited to check out my first homepage but I
| guess I predate the WM. When did it start archiving?
| stuffoverflow wrote:
| Internet archive started making their own crawls in late
| 1996. I believe the oldest captures in the wayback machine
| are from data donated by alexa starting from January 1996 [1]
|
| 1: https://archive.org/details/alexacrawls?sort=-downloads&an
| d%...
| calvinmorrison wrote:
| Here's the oldest i could find, still hosted by sourceforge all
| these years later... (c) Calvin Morrison 2009
|
| https://mocicon.sourceforge.net/
| Brajeshwar wrote:
| 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 wrote:
| 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.
| lnxg33k1 wrote:
| My first program was a mIRC script :D
| anthk wrote:
| Well, I've seen the opposite: an awk script to connect to
| IRC...
| cqqxo4zV46cp wrote:
| One of my first programs was the sensible center: an IRC bot
| written in Perl.
| Suppafly wrote:
| 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 wrote:
| Use appletviewer. I have something from 1998 which still runs
| using that.
| Suppafly wrote:
| I'll have to check it out, we spent a few minutes looking and
| it seemed like they don't ship it anymore, but I guess you
| can still get Java 8 from Oracle and it should include it.
| jraph wrote:
| 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 wrote:
| Nice, didn't know about fernflower, thanks for the
| recommendation! I use JavaDecompile (JD-GUI)1 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/
| jraph wrote:
| Seems convenient, I'll keep this in mind for whenever I may
| need this.
| nikolajan wrote:
| 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
| :)
| thrdbndndn wrote:
| >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 wrote:
| Good catch! I didn't realize the original link still worked.
| Also didn't know about the "why" notes on WB index. Thanks!
| khiner wrote:
| Updated to reflect this.
| haolez wrote:
| 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 wrote:
| 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 :)
| anthk wrote:
| One guy form the PDP-10 'tribe' wrote a Maclisp interpreter
| in Common Lisp with relative ease. 90% of the code would
| still run as is, and maybe under Elisp too...
| bandrami wrote:
| 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.
| gedy wrote:
| 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 :-).
| brlcad wrote:
| 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 wrote:
| 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 51/4-inch floppy disk in my parents' basement. But they
| are probably gone.
| code_duck wrote:
| I _wish_ I had the Logo and BASIC programs I wrote for the
| c64 in the early 80s. I still have the disks, so there 's
| vague hope. Even more, I'd love the animations and images I
| made on the Amiga later in the decade, but that's more
| unlikely.
| theanonymousone wrote:
| > before the internet
|
| Even before GitHub, probably. Dropbox was a big step forward,
| still.
| camtarn wrote:
| Eh, not really. Even before source control was widely used
| by non-professionals, there was still the habit of copying
| all your stuff over whenever you upgraded to a newer hard
| disk. I've got random stuff sitting on my hard drive that
| probably dates to my first PC in around 1996.
| j_french wrote:
| I found some of my first BASIC programs recently, written in
| 89/90 on an amstrad464. They're on cassette tape. I have a
| tape deck with line out, but I don't even know how to start
| trying to get data off an "audio" cassette tape these days?
|
| The programs weren't fancy: one was for picking lotto numbers
| for my mam (the national lottery had recently launched in
| Ireland so it was a novelty.) Also I was 10.
| dolmen wrote:
| Being a programmer and being an archivist are two different
| mindset and two different jobs.
| Takennickname wrote:
| What a strong ad for Java
| dehrmann wrote:
| 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.
| worthless-trash wrote:
| There are many other languages with a better lindy effect
| rating ( https://en.wikipedia.org/wiki/Lindy_effect), common
| lisp, erlang, fortran and more.
|
| I won't doubt how java doing well, but other languages have
| it beat.
| EdwardDiego wrote:
| Except they're not in widespread usage, so aren't relevant.
|
| No grads are going "gee, do I go with a .NET shop, a JVM
| shop, or a BEAM shop?"
|
| And as for Common Lisp, which implementation? They can't
| even be compatible amongst themselves, so I'm dubious that
| SBCL CL from 13 years ago would just work.
| worthless-trash wrote:
| > Except they're not in widespread usage, so aren't
| relevant.
|
| I don't know any java programmers either. Apparently
| people use java, I just dont know any that do it
| willingly. I'm sure they -must- use it, but
| erlang/fortran/etc as mythical to you as java is to me.
|
| > No grads are going "gee, do I go with a .NET shop, a
| JVM shop, or a BEAM shop?"
|
| Fresh grads don't know better, they take whatever pays.
| Businesses choose the cheapest (not the best) option and
| grads don't have the experience to choose better. Grads
| choices are not a measure of quality or desirability.
|
| > And as for Common Lisp, which implementation? They
| can't even be compatible
|
| > amongst themselves, so I'm dubious that SBCL CL from 13
| years ago would just
|
| > work.
|
| My SBCL from 2010ish works, I've patched it up and
| improved it over time, but I haven't tried to run the
| original, it probably does. Its been through svn to git
| so I've lost the history, all of this is as anecdotal as
| anything else. Previous lisp code that I wrote was
| trivial and ran out of the box on SBCL, however the code
| is very self contained and not 'networked' or 'modern'.
|
| My erlang code however has been running in a cluster
| since the early 2000's, it has also been through several
| releases for additional features, however I no longer
| have access to that code so I can't validate what has
| been done to it for the last decade.
|
| I like your arguments, I just dont think we're coming
| from the same historical viewpoint.
| dehrmann wrote:
| > common lisp, erlang, fortran
|
| That's a pretty esoteric list. Javascript would have been a
| better choice because of widespread deployment by multiple
| vendors and heavy legacy.
| worthless-trash wrote:
| Javascript is still pretty young (comparatively) however
| I do believe you'd be right in saying that its likely to
| be around for a very long time.
| itronitron wrote:
| Interestingly, Javascript is just as old as Java, and
| Python is older.
| worthless-trash wrote:
| Python kinda dies each major release though, there is no
| backwards compatability goals.
| stavros wrote:
| The Lindy effect assumes you have no other information
| about the thing you're estimating. Obviously if I know the
| thing is on its deathbed, I can't invoke the Lindy effect.
| Similarly, a hundred-year-old language one person uses any
| more isn't likely to last another hundred years.
|
| Given the relative sizes, I wouldn't bet on Common Lisp
| outlasting Java just because it's older.
| worthless-trash wrote:
| Its likely we will both be dead before either of them are
| no longer being maintained.
| lmm wrote:
| Yeah have you tried actually running a common lisp program
| from decades ago on a different implementation from the one
| it was developed on?
| palad1n wrote:
| 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.
| twic wrote:
| I found an old applet of mine from the late '90s, and tried
| running it. Crashed with a NullPointerException from deep
| inside AWT. My guess is that there is now some setup that
| needs to be done that didn't at the time.
| vbezhenar wrote:
| 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.
| xxs wrote:
| Personally I consider 1.4.2 the point where java got stable,
| and had a true IO (java.nio), along with a decent JIT
| (hotspot)
| _the_inflator wrote:
| Phew, that was around the internet Java applets phase, if I
| recall it correctly?
| xxs wrote:
| That much it was all about JSP/XML and stuff; J2EE too.
| JDO came soon after too. The applets did exist and
| (javax.)swing was a thing - but it was far from the
| focus... and of course Java was still considered slow.
| robertlagrant wrote:
| I think the last breaking change I remember was enumerations
| being added, which broke any code that used the class name as
| a variable name. But I could be wrong; it was almost 20 years
| ago.
| v-erne wrote:
| Maybe not a part of language per se but they throw out
| corba in java 11 and this decimated some very old libraries
| that used is as dependency.
| matsemann wrote:
| With Java 11 they hid a lot of internal functions that
| people had used in their code, so breaking things. But that
| was never really part of the public API, so strictly not a
| breaking change.
|
| I remember moving to Java8 changed the iteration order of
| hashmaps etc, which also broke some stuff for us. But
| again, that was mostly our fault for relying on unspecified
| behavior.
| brabel wrote:
| With Java 11 they only hid it, you just need to pass some
| parameters to get it working. When it truly broke, I
| believe, was only on Java 21, which finally removed some
| clutches people had been using to work around the new
| limitations.
| Starlevel004 wrote:
| Thread#stop no longer works as of at least Java 21.
| brabel wrote:
| True, I think since Java 17 they have been removing
| really obsolete stuff.. I think that's when they removed
| CORBA from the JDK as well (though you can still get it
| as a library I believe). Same with Nashorn (the JS
| runtime).
| _ZeD_ wrote:
| 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
| cqqxo4zV46cp wrote:
| Not really. Not automatically, anyway. Realistically, code
| lasting forever is, the majority of the time, some engineer's
| nerdy wet dream almost completely devoid from any real-world
| requirements. "This code should last 20 years" should, for
| most people, be fairly low on the list of desires for a
| technology stack. In the vast majority of cases, the
| processes that the software seeks to automate will have been
| thrown out LONG before then. The business went bust and the
| only surviving copy is on some developer's personal computer.
| Darlene from accounting left and her replacement likes to do
| things differently, so all this custom stuff was replaced
| with something off-the-shelf. Your $40B unicorn dating
| network very unceremoniously fell from the charts after Gen Z
| decided to throw their phones away and connect in person like
| we used to. After all that, you're left there holding a
| perfectly functional(?) solution to a problem nobody is
| asking to be solved anymore.
|
| Let's be clear: I know that banks run on COBOL. Everyone
| knows that. Please don't say it. I can name 5-10 other
| industries off the top of my head where this sort of
| longevity matters. But let's not kid ourselves that the stuff
| we're writing is even intended to last a long time.
| The_Colonel wrote:
| Longevity is very important in enterprise apps. Companies
| are full of small services / utilities which were developed
| many years ago, work for the most part just fine and need
| to be touched only rarely to fix a bug which just started
| manifesting, add a small feature or enable some
| integration.
| v-erne wrote:
| >> But let's not kid ourselves that the stuff we're writing
| is even intended to last a long time.
|
| Not my experience at all. I am literally at this moment
| releasing new version of private app framework that was
| created by few people (including me) about 18 year ago for
| few clients on long forgotten platform because some client
| (who is still paying support fees!) found some obscure bug
| building new application using this framework. The previous
| version was released about 8 years ago.
| vitro wrote:
| >>"This code should last 20 years" should, for most people,
| be fairly low on the list of desires for a technology
| stack.
|
| >> But let's not kid ourselves that the stuff we're writing
| is even intended to last a long time.
|
| Well, it depends. If you write custom software for
| enterprises, they very much see it as a long term
| investment. Software grows with the company and is embedded
| in it. Nobody wants to pay for complete rewrites every five
| years..
| xxs wrote:
| stuff written for java 0.9 (1996), even with the default
| package (no namespaces), still runs normally. 2011 is past java
| 7.
| guenthert wrote:
| compile once -- run forever!
|
| Seriously though, this seems to be due to happenstance (well,
| commercial interest motivating great continuous engineering
| effort), rather than by design (forward-thinking) though;
| unlike, say, IBM's Technology Independent Machine Interface
| of AS/400.
| davidalayachew wrote:
| It's ABSOLUTELY by design.
|
| On the Java Mailing Lists, the creators/stewards of Java
| are constantly fighting back so many feature requests
| BECAUSE those features would threaten backwards
| compatibility. And that mailing list has been going on for
| a long time now. You can see feature requests (and their
| subsequent rejections) going as far back as the late 90's
| lol
| contrarian1234 wrote:
| 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
| EdwardDiego wrote:
| Adoptium is a JVM from the Eclipse Foundation. They're hardly
| weird, even if the branding is. It's basically "people into
| JVMs not controlled or licenced by Oracle that work good".
|
| https://www.eclipse.org/membership/explore-membership/
| contrarian1234 wrote:
| I never realized it was from Eclipse! They've cleaned up
| the webpage where it's a bit more clear now. I always
| figured it was a weird consultancy or something like Gluon
| - where there was a paid product when you dig a little
|
| Thanks for clearing it up. Hope they rebrand and drop the
| Adoptium name eventually
| arjvik wrote:
| It used to be called AdoptOpenJDK, and was a project that
| essentially just provided prebuilt binaries of OpenJDK.
|
| But post several Oracle changes that I admittedly have
| not kept up with, they have grown in scope and also been
| forced to remove OpenJDK from their name. They went with
| Adoptium, to keep the Adopt part that got them famous.
| pjmlp wrote:
| Almost correct, except the part that it is a bit like
| saying Red-Hat is a Linux not controlled by Linus.
|
| https://devclass.com/2023/03/22/despite-openjdk-70-of-
| java-f...
| brabel wrote:
| That's bullshit.
|
| Here are the JDK distributions supported by SDKMAN, a really
| good JVM-oriented package manager: https://sdkman.io/jdks
|
| There's a couple of dozen vendors in there , including very
| weird ones like IBM, Microsoft, AWS, Azul, Eclipse, SAP, Redd
| Hat, and even... Oracle!
| guessbest wrote:
| 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 wrote:
| Why don't you post the app store link? That's allowed.
| noufalibrahim wrote:
| 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".
| mdorazio wrote:
| FYI if you want to get things off a 5.25 floppy, you can get a
| Greaseweazle for $25 and use it with any 5.25 drive.
| https://decromancer.ca/greaseweazle/
| darkstar_16 wrote:
| 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 ...
| noufalibrahim wrote:
| Nice. I had a 256 colour VGA monitor so... :D
| Almondsetat wrote:
| >Says a lot about "digital archiving"
|
| It doesn't, since you could easily buy a USB floppy disk reader
| Narishma wrote:
| You don't have to buy anything to read the notebook though.
| Almondsetat wrote:
| After 30 years you might need a new pair of glasses
| noufalibrahim wrote:
| I haven't looked recently but I did search a while ago for a
| 5.25" USB floppy drive but never found any. Several 3.5"
| though.
|
| Also, I haven't done any specific climate control for the
| books or the disks. The notebooks are still readable and I
| can even tell the difference in the parts I wrote with a ball
| pen and a fountain pen. Many of the disks are damaged with
| fungal growth on the magnetic medium and I doubt I'd be able
| to read them even with a drive.
|
| It's quite challenging to read off an old disk. Jason Scott
| (the famous digital archivist) had a nice talk on recovering
| the original source code for Jordan Mechner's Prince of
| Persia from ancient disks that mentions some of the
| challenges. https://www.youtube.com/watch?v=FnEWBtCnFs8
| Repulsion9513 wrote:
| > 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 wrote:
| Someone else pointed this out as well - I didn't realize the
| original MediaFire link still worked. Updated to reflect.
| sandos wrote:
| 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. :/
| INTPenis wrote:
| 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.
| squigz wrote:
| The Internet Archive is (IMO) one of the most important
| endeavours of our time.
|
| Consider donating: https://archive.org/donate
| mdaniel wrote:
| 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
| xandrius wrote:
| 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.
| fragmede wrote:
| 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 wrote:
| The _rise_ of the web? In the past 13 years? Gosh does that
| make me feel old...
| fragmede wrote:
| Shit, I learned to program before there was _Google_.
| xandrius wrote:
| I studied OpenGL when all I could find was literally 1
| tutorial on it and it was not in my native language.
| brabel wrote:
| Reminds of a random comment or tweet I read somewhere
| where the person said their young children just couldn't
| believe she was so old that she was born before Google
| existed :D they just couldn't believe her :D so cute.
| bluenose69 wrote:
| I imagine some of us reading this learned to program before
| bitnet was a thing. Punched cards. Paper tape. Booting by
| entering a lot of binary numbers with toggle switches. Good
| times. Oh, and that ancient Fortran code? It still works
| and, if you can see patterns in arithmetic-if blocks, it
| still expresses clever algorithms elegantly.
| xandrius wrote:
| What a world we must have lived in without VSCode, TS and
| rust, a truly undistinguishable one it seems.
| The_Colonel wrote:
| > In 2011, Java was on version 7. We're on 22 now in 2024.
|
| In the IDE technology, the jump was even larger. In 2011, I
| was using Intellij 10, now I'm on version 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).
|
| The only listed Java feature which represented a paradigm
| shift was lambda expressions (which were released in v8, not
| v9), the rest are minor features.
| twic wrote:
| Streams had a pretty huge impact on how a lot of people
| write code.
|
| Also, lambdas came in in 8, not 9. Streams without lambdas
| would have been pretty painful!
| layer8 wrote:
| There were streams-like libraries before Java 8. It's
| lambdas that made them more practical.
| ecshafer wrote:
| concurrency is on your list why? DL added concurrency to Java
| long before 2011.
| 62951413 wrote:
| I remember using j.u.c in production back when it was still
| concurrent.jar. There were surprisingly many jobs in
| NYC/London circa 2006 if you had Core Java skills.
| koito17 wrote:
| 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 :)
| lloydatkinson wrote:
| > every TypeScript project I find from 2021 or earlier is
| simply impossible to build nowadays,
|
| This is the fault of all the bullshit tools that were never
| any good to begin with (Webpack, Babel, etc) and the Node
| ecosystem generally causing pain. If you had a package-
| lock.json you should (in theory) be able to install all of
| those and it should work. Of course, this relies on
| dependencies of dependencies actually following semantic
| versioning but I'm fairly sure many packages on npmjs.org do
| not follow semantic versioning.
|
| Worst case scenario, you can take your TS files and put them
| in a newly created project. Preferably the project has a
| minimal number of build tools, eg, 1. Such as Vite, for
| example. This effectively replaces easily 5 or 6 major load
| bearing dependencies that used to be necessary.
|
| Even better: Just use Deno, where it doesn't need any of this
| to build and run TS files!
| gear54rus wrote:
| How does lock file rely on semantic versioning? It
| specifies dependencies (and their dependencies) explicitly
| together with their exact hash
|
| not sure how one can have a problem running something if it
| installs all the same dependencies and using the same
| scripts
| cqqxo4zV46cp wrote:
| The JS ecosystem's churn is unusually bad. I wouldn't use
| that as a representative example.
| deepsun wrote:
| True story, that's why I moved back to Maven (pom.xml) from
| Gradle.
|
| As a bonus -- IDEs seem to work faster with Maven, I assume
| because parsing declarative pom.xml is faster than parsing
| and running imperative build.gradle.
| ecshafer wrote:
| Maven is better than Gradle, full stop. The only real
| issues with Maven, are the they keep adding features and
| are bringing in more scripting capabilities. Call me old,
| but a build system should be purely declarative as a matter
| of principle. Scripting just leads to someone eventually
| getting the idea of doing something clever, and then it
| becomes hell afterwards.
| pjmlp wrote:
| To put it more bluntly, Gradle only matters because of
| Android.
| cryptos wrote:
| What you say about Gradle's instability over a long time is
| so true. Even code snippets from 3 to 5 five years ago seldom
| work without some (more or less random) adjustments.
| twic wrote:
| It's been standard practice for a very long time to use the
| Gradle wrapper, which fixes the Gradle version, so there
| really shouldn't be a problem building an old project.
|
| Making changes to one is indeed fraught.
| cryptos wrote:
| You're right that including the Gradle wrapper is a
| common good practice for years. But if you have to or
| want to move to a newer Gradle version than you can enjoy
| the full randomness of the domain specific language from
| Gradle itself and from a thousand plug-ins.
| brabel wrote:
| Exactly, if you have a very old Gradle project, it's best
| to use the wrapper to keep running with the version of
| Gradle it was written for, and make sure to use a
| compatible JDK to compile with (older Gradle versions
| won't work on new Java versions, which goes against most
| Java code which will almost certainly run forever even if
| written for Java 1.1).
| sumtechguy wrote:
| Tell me about it... I recently just had the fun of playing
| with an angular 8 project and thats 'only' 2019. Luckily in
| that case it was just turning on flags for node to act in an
| older deprecated way.
|
| For my older projects as long as I could get the right visual
| studio to install and run (VMs will fix any OS compat issues)
| I could compile the things out of the box. As we did not go
| external unless we absolutely had to. These newer central
| repository projects are not going to end well.
| bigstrat2003 wrote:
| Note that what OP said he found was a JAR, not code. If you
| found an executable built in any language, I would expect it
| to still be able to run 13 years later.
| fsloth wrote:
| The snarky response would be that TypeScript and Go are not
| industrial strength languages :)
|
| C++, C, even Fortran run just fine after decades.
| geodel wrote:
| > 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
|
| Sorry, but github repo listed above is compiled Java program
| in jar format. JVM is doing the heavy lifting here. For
| golang you are talking about building the program. The
| equivalent of it would running exe or binary format and that
| definitely would work unless OS/Arch version itself
| disappeared.
|
| There is ton of churn in Java ecosystem package moving from
| javax -> jakarta namespace, new date / time/ file libs, build
| tool, class file format and so on. What could most likely
| work is standalone jar file running in older and newer JVMs.
| CJefferson wrote:
| 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.
| swiftcoder wrote:
| 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...
| amouat wrote:
| 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.
| DrBazza wrote:
| 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.
| eurekin wrote:
| > Download the jar file >
| https://github.com/khiner/CrosswordFiller/WordFillVer2.jar
|
| Returns:
|
| > Not Found
|
| currently
| danlindley wrote:
| 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 wrote:
| Fixed, sorry about that
| dolmen wrote:
| 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 wrote:
| 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.
| winternewt wrote:
| 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 wrote:
| Most Linux distros still package jdk8-openjdk which has
| appletviewer.
| smusamashah wrote:
| To author, if you use IntelliJ, you can very easily get the
| source back by dragging/opening compiled .class files in IntelliJ
| self_awareness wrote:
| 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.
| linker3000 wrote:
| 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...
| NovemberWhiskey wrote:
| I promise you that there are major businesses still running on
| Java 6 code from 2011.
| oaiey wrote:
| 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 wrote:
| 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)
| wizzwizz4 wrote:
| They rebranded Java 1.x as Java SE x, then later just Java x.
| NovemberWhiskey wrote:
| No, it's _way_ more confusing than that.
|
| They started with Java 1.0 and 1.1 - then to "Java 2" at
| version 1.2, so you have Java 2 version 1.2 ... they then
| stuck with that through the version after 1.4 - but rather
| than 1.5, that was special as it was Java 2 version 5.0 ...
| thereafter they're just numbered with the plain number.
| wizzwizz4 wrote:
| So _that 's_ where the 2 in J2ME comes from!
| hbn wrote:
| > thereafter they're just numbered with the plain number.
| $ java -version java version "1.8.0_391"
| Java(TM) SE Runtime Environment (build 1.8.0_391-b13)
| Java HotSpot(TM) 64-Bit Server VM (build 25.391-b13,
| mixed mode)
|
| -\\_(tsu)_/-
| oefrha wrote:
| 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.
| booleanbetrayal wrote:
| Wayback machine lead me to rediscover a Doom 2 level I made
| awhile back [1]. What a treasure of a resource!
|
| [1] https://www.doomworld.com/idgames/levels/doom2/p-r/rurqta
| jdeisenberg wrote:
| 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.
| jandrese wrote:
| 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 wrote:
| 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.
| brabel wrote:
| 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.
| fsloth wrote:
| 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".
| tmoertel wrote:
| 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.
| urbandw311er wrote:
| 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... ;-)
___________________________________________________________________
(page generated 2024-04-29 23:02 UTC)