Anil Dash | 08.07.2006
Digging up info on Gopher


Thanks to Jason Kottke?s recent blog post about Gopher, people are discovering or rediscovering Gopher. Gopher is a text-based system for navigating documents on the Internet that was extremely popular in the early 90s and helped create and influence a lot of the content and culture that?s now shared via the World Wide Web. Today, we follow links to sites with http:// at the beginning of them, but in 1992, it was much more common to follow a gopher:// link, which still works in browsers like Firefox today.

One of the great things about working with Six Apart is that we don?t just get to work with people who know technology really well, sometimes we get to work with the people who invented them. One of the best examples is Paul Lindner, who?s been with Six Apart for years, working on infrastructure for our blogging services. Paul was one of Gopher?s creators, and we thought with the resurgence of interest that it?d be a nice chance to ask Paul a few questions.

First, short and sweet, how would you describe what Gopher is? How does it work?
    Imagine a dead simple browsing experience optimized for hierarchical menus and documents. Think old-school AOL, think about your favorite dialup BBS, or your WAP-enabled phone. You look at a menu, select or search, get another menu or a document, repeat.

All of us are familiar with the World Wide Web ? how are HTML and HTTP different from Gopher?
    HTML is an open ended markup language based off of SGML. Gopher uses a very simple text format that describes how to display a menu of items on the screen. These menus can be static (like a simple directory) or the results of a search.
    Gopher protocol is quite similar to the earliest HTTP/0.9 protocol. You send an opaque string to the server and get back results ? a menu, an image, a sound or a document.

As of GopherCon ?92, Ed Vielmetti was talking about how Gopher had basically surpassed WWW in common usage. Today, the WWW is ubiquitous, and Ed?s got a TypePad blog ? what factors do you think influenced that change?
    Gopher?s simplicity and wide availibility of clients and servers for low-end hardware caused it?s rapid growth starting in late 1991. The Gopher team wrote software for microcomputers of the day ? the Mac SE and PC-AT. Gopher clients and servers ran well on those platforms and opened up internet information browsing and publishing to a whole new group of people that couldn?t fathom FTP and couldn?t tell you what a hostname was.
    At the same time the World Wide Web was only available via a clunky line-mode terminal client or a NeXT Browser and was primarily used by a small group of researchers.
    That all changed in late 1993. Versions of the Mosaic web browser were released for Windows and Mac. With Mosaic you could display web pages with pretty images, in addition to all the existing Gopher sites. It was very impressive and quickly added features that users wanted.
    And finally, the one thing that most killed Gopher was something it could never support ? Banner advertisements. In 1993 O?Reilly?s Global Network Navigator became the first advertiser supported web site, followed shortly thereafter by HotWired (where Six Apart?s own Andrew Anker was CEO). Online advertising along with the privatization of the NSFnet backbone finally solved the question of how to pay for content online.
    A good history, including a Gopher vs Web graph is available on the BBC website.

Is this an example in some ways of worse is better, where sometimes the solution that succeeds isn?t always going to be the most theoretically perfect?
    I don?t think so. Gopher and the World Wide Web are both far from perfect. Both of them were built up in an organic manner responding to the user needs at the time. Gopher replaced hundreds of home-grown Campus-Wide-Information-Systems and helped all kinds of people access information quickly and easily. The World Wide Web has been used and abused for just about every computing problem known.
    The most theoretically perfect hypertext system I?ve used was called Hyper-G. Everyone on the Gopher team really thought it would take over where the World Wide Web left off. It really was an amazing system and has features that have yet to be grafted onto the existing Web including bi-directional links and document clustering.

What kind of constraints did you face in getting Gopher running?
    Campus politics nearly killed Gopher.
    Gopher was a classic skunk-works project. The various computing fiefdoms of the University could not agree on the best way to build a campus-wide information system. A grand committee was formed and after nine months passed came up with a protocol design that satisfied nobody.
    I worked in the Microcomputer group where we helped people use the new Macs and PCs of the day. We really needed a a way to publish information online that was simple and easy. So we made the decision to proceed build a working system to get around the committee.
    After three weeks of nights and weekends we had had assembled clients and servers for Unix, Mac and PC, plus a search engine that ran on a NeXT cube. We refined over the next two months and developed content ? the ever popular USENET recipe collection, a searchable UPI newsfeed and an online version of our knowledge base. All told it was slam dunk. All the features that average users wanted, along with protocol documents, open source code and a howto guide to running your own server.
    Alas, that didn?t go over so well on campus. For a while we were even forced to call our system the ?Gopher Consultant? so no one thought it was somehow official. That changed once other Universities adopted Gopher as their own and the campus politics began to go our way.
    Later on we encountered technical constraints running the world?s top level Gopher site. At one point we had a cluster of 9 recycled Apple Macintosh Mac IIci computers running Apple?s A/UX operating system.

Gopher had a strong hierarchy to its documents ? some people are trying to reproduce that kind of hierarchical organization system in a web context today with efforts like OPML. But Yahoo?s recent homepage redesign actually removed the directory that used to be the top level of their giant hierarchy. Is there still a place for that kind of top-down organization on today?s web?
    Yes, there will always be a place for global directories based on a constrained set of keywords or subject areas. This is what librarians do for a living so don?t expect that to go away.
    One difference however is today?s Web has transformed itself from the library model to a user oriented services model. Much of what we do today is not ?web browsing?, but ?web using?. Browser based games, shopping, chat and blogging are all interactive activities. The Yahoo Directory (yes it?s still there!) is now just an application that helps you find web sites you might like.
    If anything the tools today make it much easier to build directories. Blogging tools, tagging and the Semantic Web have all resulted in a much better organized Web compared to personal home pages of old.

So, you?re helping people communicate with blogs these days ? did you ever forsee people using these Internet technologies for everyday communication between non-techie audiences?
    I, and many others, anticipated that the Internet would change how average people communicate. We had already seen what the POP protocol could do for E-Mail. We knew that Internet-connected publishing could make accessible the vast islands of information already out there, plus make it easy to put new information online.

Any final thoughts?
    I?d like to acknowledge what a privilege it was to work on the Gopher Team. Shih-Pau Yen, Mark McCahill, Farhad Anklesaria, George Gonzalez, Daniel Torrey, and Bob Alberti are some of the greatest people I?ve ever worked with. Together we changed the way the world uses the Internet.