#[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/