#[1]GitHub
[2]Skip to content
(BUTTON) Toggle navigation
[3]Sign up
(BUTTON)
* (BUTTON) Product
+ Actions
Automate any workflow
+ Packages
Host and manage packages
+ Security
Find and fix vulnerabilities
+ Codespaces
Instant dev environments
+ Copilot
Write better code with AI
+ Code review
Manage code changes
+ Issues
Plan and track work
+ Discussions
Collaborate outside of code
+ Explore
+ [4]All features
+ [5]Documentation
+ [6]GitHub Skills
+ [7]Blog
* (BUTTON) Solutions
+ For
+ [8]Enterprise
+ [9]Teams
+ [10]Startups
+ [11]Education
+ By Solution
+ [12]CI/CD & Automation
+ [13]DevOps
+ [14]DevSecOps
+ Case Studies
+ [15]Customer Stories
+ [16]Resources
* (BUTTON) Open Source
+ GitHub Sponsors
Fund open source developers
+ The ReadME Project
GitHub community articles
+ Repositories
+ [17]Topics
+ [18]Trending
+ [19]Collections
* [20]Pricing
____________________
* Search All GitHub RET
Jump to RET
* No suggested jump to results
* Search All GitHub RET
Jump to RET
* Search All GitHub RET
Jump to RET
* Search All GitHub RET
Jump to RET
[21]Sign in
[22]Sign up
(BUTTON)
{{ message }}
Featured Article
What we can learn from vintage computing
Thanks to open source, nothing is ever obsolete.
Klint Finley // December 13, 2022
The ReadME Project amplifies the voices of the open source community:
the maintainers, developers, and teams whose contributions move the
world forward every day.
*
*
*
[23]The ReadME Project (BUTTON)
Menu
(BUTTON)
Close
Browse by story type
* [24]Featured Articles
* [25]Developer Stories
* [26]Guides
* [27]The ReadMe Podcast
Explore Topics [28]See all
* [29]Open Source
* [30]Culture
* [31]Security
* [32]DevOps
* [33]Nominate a developer//
* [34]Support the community
The Apple Newton was already old when [35]Morgan Aldridge bought one in
2005. But the pre-iPhone handheld computer that Apple first sold in
1993--and discontinued in 1998--was the best tool for his needs.
"I'd used Palm Pilots, which were still the go-to digital organizers at
the time, and I knew they had syncing issues," he explains. Plus, most
other handhelds then on the market used inexpensive RAM memory that
would lose data if you lost power, requiring you to restore from
desktop backups.
Aldridge's research led him to the Newton, which used solid-state
storage that allowed it to retain data indefinitely, much like modern
smartphones. Users reported leaving Newton devices in drawers and
closets for years and finding they still had all their data when they
finally powered them on. Plus, he found that the Newton community was
still actively developing drivers and software for the platform. So he
bought a Newton Message Pad that he continued using well into the
smartphone era. These days, Aldridge uses an iPad as his primary
digital organizer, but he still participates in the community as the
maintainer of the [36]NewtonScript resource website and the [37]United
Network of Newton Archives.
Thanks to open source, no technology ever has to become obsolete, so
long as a community remains to support it. You can sync Newtons and
Palm Pilots with modern desktops, download web browsers for
long-discontinued operating systems, or connect vintage computers like
the Apple IIe [38]to the modern internet via WiFi. Every year, new
cartridges are released [39]for old-school video game consoles like the
Nintendo Entertainment System and Game Boy.
People keep old software and online platforms alive as well. The
[40]Dreamwidth team forked an old version of the early social network
[41]LiveJournal's source code and built a community around it. The
dial-up bulletin board system software [42]WWIV is still maintained and
there are [43]plenty of BBSes still around. Teams are working to
restore aspects of early online services like AOL and Prodigy. And you
can still use Gopher, the hypertext protocol that was -- for a brief
period in the early 1990s -- bigger than the web.
Developers spend countless hours on these sorts of projects, often with
little, if any, hope of financial reward. So why dedicate so much
effort keeping these technologies alive, or reviving them, long after
they were discontinued by the companies that created them? Nostalgia
and the urge to escape today's often exhausting digital environments
are obvious reasons. But there's more to it than that. Working with
vintage technologies is fun, helps developers learn more about computer
science, and preserves computing history. And in many cases there are
lessons to be learned from the "old ways."
There's nothing quite like actually navigating through a service's menu
structure and interacting with its various features to understand these
services and their place in computing history.
Interactive history
Historic preservation is one of the most evident benefits of vintage
computing. On one hand, software and digital content are among the
easiest cultural artifacts to preserve because they can be copied and
backed up easily. But the ability to actually run that software can be
a challenge as platforms are discontinued.
Emulators have long provided a way to run old software--written for
discontinued hardware and operating systems that might be difficult or
impossible to find today--on newer platforms. You can play retro games
with [44]MAME or [45]RetroArch, manage your contacts with the
cult-favorite [46]Lotus Agenda personal information manager in
[47]DOSBox, or [48]run old Palm applications in your browser. The open
source communities behind these projects endeavor to mimic the
necessary hardware and software layers as accurately as possible.
Networked software is inherently more difficult to preserve, however,
because it relies on not only local software but server-side software
as well. In the case of LiveJournal, the back-end code was open source
until 2014, so it was easy enough to not only preserve that code but
create forks like Dreamwidth. Rather than a centralized service, Gopher
is a protocol, much like HTTP, which makes it straightforward to create
modern Gopher clients and servers. But some of the biggest and most
historically important networked services relied on lost proprietary
software running on servers that have been long since scrapped.
Early online services like AOL/Quantumlink, Compuserve, and Prodigy had
millions of users at their peak and played host to software, games,
artwork, and, of course, countless online discussions. Before the era
of the smartphone and ubiquitous internet, these dial-up services
provided access to many digital experiences we take for granted today,
including online news, weather forecasts, sports scores, stock market
quotes, multiplayer games, email, chat--even online encyclopedias.
While screenshots can help document what these services were like,
there's nothing quite like actually navigating through a service's menu
structure and interacting with its various features to understand these
services and their place in computing history.
"When any sizable online service disappears, a piece of our
civilization's cultural fabric goes with it," journalist and computer
historian [49]Benj Edwards wrote in a 2014 [50]article in The Atlantic
about efforts to restore lost Prodigy content.
Prodigy is of particular historical interest. At a time when other
online services were typically text-based and difficult to use, Prodigy
offered a graphical interface and helped pioneer digital advertising,
e-commerce, and online travel booking. Long before Amazon, Prodigy
enabled you to buy clothes, housewares, electronics, and even groceries
online. Prodigy enthusiast Jim Carpenter realized all of this was
poorly documented, Edwards explained in his article. Even
[51]screenshots of Prodigy were hard to come by. Fortunately, Carpenter
discovered that Prodigy stored quite a bit of content in local cache
files and he has been able to restore many images from old computers.
More recently, a Prodigy demo disk was uploaded to the Internet
Archive. This demo doesn't connect to a server, but you can [52]explore
some of the features from your browser.
In 2019, programmer [53]Phillip Heller came across Edwards's article
and decided to get involved with the [54]Prodigy Preservation Project.
He wanted to go a bit further than an offline demo and make it possible
to actually use Prodigy today. "Benj and Jim felt that re-creating the
Prodigy server was a distant and difficult goal," says Heller. "I
thought it sounded like a fun challenge."
The result is a Prodigy-compatible backend called [55]Prodigy Reloaded.
In a demo for The ReadME Project, Heller connected to a Prodigy
Reloaded server using an old copy of the Prodigy client running in
DOSBox and walked through features such as the news and weather
services. Heller populated those features with news headlines and
forecasts culled from screenshots, but he hopes to be able to add live
news, weather, and stock updates in the future.
I think the biggest reason a lot of us are into retro-computing is that
it harkens to an age when you could understand everything the computer
was doing"
Inline1_Feature_Vintage computing
The joys of vintage computing
Heller says that historical preservation is just one reason he built
Prodigy Reloaded. "It's also just a lot of fun," he says. "It's like
putting together a really tough puzzle, where I have some of the edge
pieces but not the middle pieces. I have to use the shapes I have to
fill in the rest of the picture."
Fun and learning are commonly cited reasons for working on these sorts
of projects. "I think the biggest reason a lot of us are into
retro-computing is that it harkens to an age when you could understand
everything the computer was doing," says [56]Cameron Kaiser, a vintage
computing enthusiast who maintains [57]Floodgap, a server and website
that hosts one of the [58]most well-known modern Gopher servers, as
well as the PowerPC web browser [59]TenFourFox and [60]many other
projects.
"Today's machines are so complex that you could spend the rest of your
life understanding them," says [61]Matthias Melcher, a contributor to
the Newton emulator [62]Einstein. "The Newton or the Game Boy are some
of the last systems where you can understand the whole thing, from the
CPU to the machine code."
"If you really want to understand computers, first start off with one
of the old classic machines," game developer [63]Rebecca Heineman said
on a [64]recent episode of the podcast Corecursive. "When you truly
understand the instruction sets, how the stack works, how memory
management works, how the hardware works, how it all interacts, then
you have a true understanding of the limitations of computers."
Indeed, many computer science courses use Game Boy documentation to
teach microprocessor architecture because its architecture is small and
simple enough for students to learn thoroughly. "The Game Boy is a
great way to learn assembly and low-level programming with real
hardware and real output," says [65]Antonio Vivace, who leads the open
source Game Boy development initiative [66]gbdev. "You learn computer
science concepts that are hard to grasp while doing something cool. It
makes what otherwise might not be very interesting into something fun."
The [67]growing complexity of today's technology extends beyond
computing architectures to software and the web. Modern browsers
support cryptographic protocols, JavaScript rendering, a variety of
multimedia formats, and much more. "It can be hard to understand
everything that's going on in the browser," says technologist and
entrepreneur Jan Kammerath. That's part of what drew him to the modern
Gopher scene.
Gopher first appeared in 1991 and provided an experience similar to a
text-based version of the web. Files on a Gopher server could be linked
together, or linked to files on other servers. There were even Gopher
search engines. It's difficult to convey how novel all of this was at
the time. It was exciting to connect to someone else's computer,
whether that was a dial-up server like a BBS or an FTP server over the
internet. It was even more exciting to hop from server to server,
following links from one set of files to another, winding up in places
you never anticipated. Gopher gave the world the first glimpse of many
things we now associate with the web. Anyone, at least in theory, could
host their own Gopher server to host whatever content they wanted and
other people might find their way to it.
The platform [68]burned brightly for a moment before fading away as
HTTP and web browsers became more powerful and popular. But Gopher has
managed something of a comeback in recent years. The number of active
servers indexed by Kaiser's Gopher search engine Veronica-2 nearly
doubled between 2017 and 2018, from 133 to 260. As of November 15,
2022, the engine indexes 343 gopher servers, slightly down from a peak
of 395 in 2020 but still going strong.
Kaiser points to all the challenges of digital life--from cluttered
interfaces to the overwhelming crush of information--as reasons that
some people are turning to Gopher and other older internet platforms.
"A lot of people are looking for alternatives to the modern web, but I
don't think there is any single reason that the number of Gopher
servers surged," Kaiser says. "I think it's more of a network effect."
In other words, the more Gopher servers there are, the more people use
Gopher, and the more people use Gopher, the more people create their
own Gopher servers.
Kaiser's Floodgap Gopher server provides daily news feeds, weather
updates, links to other Gopher sites, and the Veronica-2 search engine.
Using Floodgap gives a little taste of what the early internet was
like. Kammerath was intrigued, but he says he found the experience of
browsing "Gopherspace" a little cumbersome by modern standards. "So I
thought it would be fun to write my own Gopher client as a little
exercise," he says. The result is [69]Gophie, a simple, cross-platform
Gopher client.
"Building a Gopher client, or just studying the protocol, is good for
people to learn the basics of how networking works," Kammerath says.
"It's a lot simpler than HTTP/3, the current version of HTTP, so it's
easier to understand how the different layers interact."
Working with Gopher, which lacks support for many modern web features
like cookies and headers, can also help developers understand why many
of those features were added in the first place. "If you spend some
time developing with older tools for older platforms, you'll fall in
love with your modern tools all over again," Kammerath says.
If you spend some time developing with older tools for older platforms,
you'll fall in love with your modern tools all over again"
Lessons from the past
Many users find more than just educational benefits in vintage
computing. Alridge didn't buy that Apple Newton in 2005 out of
nostalgia or an urge to preserve a part of tech history. He bought it
because it better suited his needs than other digital organizers
available on the market at the time. Sometimes old tech provides value
that contemporary counterparts don't.
"I don't run Gopher servers to learn about history, I like Gopher for
its own sake," Kaiser says. "I use it on a daily basis. There are
things I can't do on Gopher, like logging into my bank account. But for
a lot of use cases it's more efficient, like checking the weather and
reading the news. And because it's so simple, I can run a Gopher client
on pretty much any device, even old and low-powered computers."
Vintage tech enthusiasts often discuss how working within the
constraints of these older devices forces them to think more about
resource efficiency. "The Prodigy developers did so much with so
little," Heller says. "They implemented not one but two virtual
machines that could run in less than 640 kilobytes of memory. The mail
program is only about five kilobytes. It's really eye-opening in terms
of how much more efficient we could be."
Today's hardware is so powerful in comparison that much less attention
is paid to optimizing software performance. "There's a saying:
`[70]hardware is cheap and programmers are expensive,'" Kaiser says. "I
can sympathize with that view. Most of us don't hand-code assembly
today, even though it might be the best way to squeeze more power out
of our hardware. It's a valid trade-off." But he points out that
increasingly powerful computers don't just lead to the inefficient use
of processing power and RAM.
"There's a tendency to add more and more features and that makes
software interfaces busier and harder to use," he says. "I think users
are cognitively overloaded." That's a big part of the appeal of Gopher:
its text-based interfaces are much simpler than many of today's web
applications.
Hardware performance wasn't the only thing that kept older applications
relatively simple. Older devices were also limited in the sorts of
interfaces they could display. "Newton and Palm applications only had
small, black and white or grayscale screens to work with," Melcher
says. "Designers had to be thoughtful about what to include."
Chris Maltby, the creator of the point-and-click Game Boy game maker
GB-Studio, points out that games for the original black and white Game
Boy games likewise had to work on small screens with simple graphics
and sounds, while still being fun. Maltby found lessons there. "Part of
my job when building software is about taking these things that are
very complex and creating simple ways to interact with them," he says.
"Game Boy programming has made me a better developer."
More stories
Photo of Featured Article
[71]Decisions, decisions: Principles for making important choices in open
source
Featured Article
Photo of Featured Article
[72]Chaos engineering helps DevOps cope with complexity
Featured Article
Photo of Featured Article
[73]What hacking AOL taught a generation of programmers
Featured Article
About The
ReadME Project
Coding is usually seen as a solitary activity, but it's actually the
world's largest community effort led by open source maintainers,
contributors, and teams. These unsung heroes put in long hours to build
software, fix issues, field questions, and manage communities.
The ReadME Project is part of GitHub's ongoing effort to amplify the
voices of the developer community. It's an evolving space to engage
with the community and explore the stories, challenges, technology, and
culture that surround the world of open source.
Follow us:
*
*
*
*
*
[74]Nominate a developer
Nominate inspiring developers and projects you think we should feature
in The ReadME Project.
[75]Support the community
Recognize developers working behind the scenes and help open source
projects get the resources they need.
Sign Up For Newsletter
Every month we'll share new articles from The ReadME Project, episodes
of The ReadME Podcast, and other great developer content from around
the community.
____________________ (BUTTON) Subscribe
Thank you!
Product
* [76]Features
* [77]Security
* [78]Team
* [79]Enterprise
* [80]Customer stories
* [81]The ReadME Project
* [82]Pricing
* [83]Resources
* [84]Roadmap
Platform
* [85]Developer API
* [86]Partners
* [87]Electron
* [88]GitHub Desktop
Support
* [89]Docs
* [90]Community Forum
* [91]Professional Services
* [92]Skills
* [93]Status
* [94]Contact GitHub
Company
* [95]About
* [96]Blog
* [97]Careers
* [98]Press
* [99]Inclusion
* [100]Social Impact
* [101]Shop
* [102]Twitter icon GitHub on Twitter
* [103]Facebook icon GitHub on Facebook
* [104]Linkedin icon GitHub on LinkedIn
* [105]YouTube icon GitHub on YouTube
* [106]Twitch icon GitHub on Twitch
* [107]TikTok icon GitHub on TikTok
* [108]GitHub mark GitHub's organization on GitHub
* © 2022 GitHub, Inc.
* [109]Terms
* [110]Privacy ([111]Updated 08/2022)
* [112]Site Map
* [113]What is Git?
(BUTTON) You can't perform that action at this time.
You signed in with another tab or window. [114]Reload to refresh your
session. You signed out in another tab or window. [115]Reload to
refresh your session.
(BUTTON)
References
Visible links
1.
https://github.com/opensearch.xml
2.
https://github.com/readme/featured/vintage-computing#start-of-content
3.
https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2Freadme%2Ffeatured%2Fvintage-computing&source=header
4.
https://github.com/features
5.
https://docs.github.com/
6.
https://skills.github.com/
7.
https://github.blog/
8.
https://github.com/enterprise
9.
https://github.com/team
10.
https://github.com/enterprise/startups
11.
https://education.github.com/
12.
https://github.com/solutions/ci-cd/
13.
https://resources.github.com/devops/
14.
https://resources.github.com/devops/fundamentals/devsecops/
15.
https://github.com/customer-stories
16.
https://resources.github.com/
17.
https://github.com/topics
18.
https://github.com/trending
19.
https://github.com/collections
20.
https://github.com/pricing
21.
https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Freadme%2Ffeatured%2Fvintage-computing
22.
https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2Freadme%2Ffeatured%2Fvintage-computing&source=header
23.
https://github.com/readme
24.
https://github.com/readme/featured
25.
https://github.com/readme/stories
26.
https://github.com/readme/guides
27.
https://github.com/readme/podcast
28.
https://github.com/readme/topics
29.
https://github.com/readme/open-source
30.
https://github.com/readme/culture
31.
https://github.com/readme/security
32.
https://github.com/readme/devops
33.
https://github.com/readme/nominate
34.
https://github.com/sponsors
35.
https://github.com/morgant
36.
http://newtonscript.org/
37.
http://www.unna.org/
38.
https://github.com/FujiNetWIFI/
39.
https://github.com/readme/featured/open-source-democratizing-video-games
40.
https://github.com/dreamwidth/dreamwidth
41.
https://github.com/apparentlymart/livejournal
42.
https://github.com/wwivbbs/wwiv
43.
https://www.telnetbbsguide.com/bbs/list/detail/
44.
https://github.com/mamedev/mame
45.
https://github.com/libretro/RetroArch
46.
http://www.bobnewell.net/nucleus/bnewell.php?itemid=186
47.
https://www.dosbox.com/
48.
https://archive.org/details/softwarelibrary_palm
49.
https://vintagecomputing.com/
50.
https://www.theatlantic.com/technology/archive/2014/07/where-online-services-go-when-they-die/374099/
51.
https://www.flickr.com/photos/149332336@N06/albums
52.
https://archive.org/details/prodigydemo_SoftwareLibrary
53.
https://github.com/pheller
54.
http://www.vintagecomputing.com/index.php/archives/1063
55.
https://github.com/ProdigyReloaded
56.
https://github.com/classilla
57.
https://www.floodgap.com/
58.
https://tedium.co/2017/06/22/modern-day-gopher-history/
59.
https://github.com/classilla/tenfourfox
60.
http://oldvcr.blogspot.com/
61.
https://github.com/MatthiasWM
62.
https://github.com/pguyot/Einstein
63.
https://github.com/burgerbecky
64.
https://corecursive.com/doomed-to-fail-with-burger-becky/
65.
https://github.com/avivace
66.
https://gbdev.io/
67.
https://github.com/readme/featured/open-source-minimalism
68.
https://www.minnpost.com/business/2016/08/rise-and-fall-gopher-protocol/
69.
https://github.com/jankammerath/gophie
70.
https://blog.codinghorror.com/hardware-is-cheap-programmers-are-expensive/
71.
https://github.com/readme/featured/oss-decision-making
72.
https://github.com/readme/featured/chaos-engineering
73.
https://github.com/readme/featured/aol-programming-culture
74.
https://github.com/readme/nominate
75.
https://github.com/sponsors
76.
https://github.com/features
77.
https://github.com/security
78.
https://github.com/team
79.
https://github.com/enterprise
80.
https://github.com/customer-stories?type=enterprise
81.
https://github.com/readme
82.
https://github.com/pricing
83.
https://resources.github.com/
84.
https://github.com/github/roadmap
85.
https://docs.github.com/
86.
https://partner.github.com/
87.
https://www.electronjs.org/
88.
https://desktop.github.com/
89.
https://docs.github.com/
90.
https://github.community/
91.
https://services.github.com/
92.
https://skills.github.com/
93.
https://www.githubstatus.com/
94.
https://support.github.com/?tags=dotcom-footer
95.
https://github.com/about
96.
https://github.blog/
97.
https://github.com/about/careers
98.
https://github.com/about/press
99.
https://github.com/about/diversity
100.
https://socialimpact.github.com/
101.
https://shop.github.com/
102.
https://twitter.com/github
103.
https://www.facebook.com/GitHub
104.
https://www.linkedin.com/company/github
105.
https://www.youtube.com/github
106.
https://www.twitch.tv/github
107.
https://www.tiktok.com/@github
108.
https://github.com/github
109.
https://docs.github.com/en/github/site-policy/github-terms-of-service
110.
https://docs.github.com/en/github/site-policy/github-privacy-statement
111.
https://github.com/github/site-policy/pull/582
112.
https://github.com/site-map
113.
https://github.com/git-guides
114.
https://github.com/readme/featured/vintage-computing
115.
https://github.com/readme/featured/vintage-computing
Hidden links:
117.
https://github.com/
118.
https://github.com/features/actions
119.
https://github.com/features/packages
120.
https://github.com/features/security
121.
https://github.com/features/codespaces
122.
https://github.com/features/copilot
123.
https://github.com/features/code-review
124.
https://github.com/features/issues
125.
https://github.com/features/discussions
126.
https://github.com/sponsors
127.
https://github.com/readme
128.
https://github.com/readme/featured/vintage-computing
129.
https://github.com/readme/featured/vintage-computing
130.
https://github.com/readme/featured/vintage-computing
131.
https://github.com/readme/featured/vintage-computing
132.
https://github.com/readme
133.
https://twitter.com/intent/tweet?url=https%3A%2F%2Fgithub.com%2Freadme%2Ffeatured%2Fvintage-computing&text=The%20%E2%80%9Cold%20ways%E2%80%9D%20are%20actually%20a%20prime%20opportunity%20to%20learn%2C%20escape%20today%E2%80%99s%20exhausting%20digital%20environments%2C%20and%20get%20inspired
134.
https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fgithub.com%2Freadme%2Ffeatured%2Fvintage-computing"e=The%20%E2%80%9Cold%20ways%E2%80%9D%20are%20actually%20a%20prime%20opportunity%20to%20learn%2C%20escape%20today%E2%80%99s%20exhausting%20digital%20environments%2C%20and%20get%20inspired
135.
https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fgithub.com%2Freadme%2Ffeatured%2Fvintage-computing
136.
https://github.com/readme
137.
https://github.com/readme/featured/oss-decision-making
138.
https://github.com/readme/featured/chaos-engineering
139.
https://github.com/readme/featured/aol-programming-culture
140.
https://twitter.com/github
141.
https://www.facebook.com/GitHub
142.
https://www.linkedin.com/company/github
143.
https://www.instagram.com/github
144.
https://github.com/readme.rss
145.
https://github.com/