Policy —

The Web may have won, but Gopher tunnels on

Remember Gopher? The protocol predated the Web, and a hardy band of …

gopher n. 1. Any of various short tailed, burrowing mammals of the family Geomyidae, of North America. 2. (Amer. colloq.) Native or inhabitant of Minnesota: the Gopher State. 3. (Amer. colloq.) One who runs errands, does odd-jobs, fetches or delivers documents for office staff. 4. (computer tech.) software following a simple protocol for burrowing through a TCP/IP internet.

-From RFC 1436 describing Gopher

Minnesota is not a proud place—how else to explain the fact that it voluntarily bills itself the "Gopher State" and has as its main university mascot an appallingly bucktoothed rodent known as a "golden gopher"?

So it was no surprise that when University of Minnesota researchers developed an early protocol for organizing and sharing documents over the Internet, they named it "gopher." The initial version of the protocol appeared in 1991; by 1993, it had been codified as a Request for Comment (RFC 1436) that laid out the protocol in some detail.

According to the RFC, gopher was designed as a client-server protocol running over TCP/IP. Much lighter than HTTP and HTML, gopher provided essentially two options: menus and documents, both of which were accessed through port 70. The system was initially text-based, though basic image serving ability came later. There was no decorative markup for menu pages, which all looked basically (and boringly) the same; on the other hand, gopher was quick and consistent.

gopher_FF.png

It was also on the way out pretty quickly. I used it in 1994 during my first year in college, but even there it coexisted with HTML (and the new Mosaic "Web browser"). HTML quickly came to dominate, gopher servers migrated onto the Web, and search engines like Google eventually replaced the arcane gopher search engines like Archie, VERONICA, and JUGHEAD (Veronica-2 continues to monitor gopherspace).

Attempts to improve Gopher did little to stop the weaving of the Web. University of Minnesota computer scientists developed the Gopher+ protocol in the summer of 1993 as a way to "summon new capabilities to bridge the most keenly felt shortcomings of the venerable old Gopher."

Gopher+ was backwards compatible with Gopher, but the protocol's popularity was waning, and Gopher+ never took off (it never achieved RFC status, either).

But, like its namesake, Gopher was hard to kill. As late as 2000-2001, backers like Bjorn Karger were writing the "Gopher Manifesto" and arguing that a return to gopher would be a return to the purity of the early Internet.

"No graphic design means its the ideal navigable interface, a hypertext Eden," wrote Karger. "It gives simplified usage for sight-impaired users, same contents for wired/wiredless, and requires no capital investments in layout and 'design.' Gopher is real—and it was fully functional in 1992, even without advertisements!"

This sense of gopher as an Edenic protocol of innocence (in comparison to HTML, the protocol of commerce and experience) gave power to the calls for its resurrection. Karger features a bit of reminiscence from one Lawrence Rhodes, whose description of using the protocol is telling:

"'Point your Gopher to...' I remember getting excited when almost anything followed these words," said Rhodes. "It was a sign of progress. Or of the impending state of information connectedness we all now experience. Now it seems so quaint. I miss it so not for the underpinning technology (which may or may not have been superior) but for the feeling that the world of information technology, indeed the world itself, was advancing rapidly enough to allow the common man access to the world's great storehouses of data. Of course, in retrospect, I suppose if I had thought about the common man's indefatigable hunger for porn and nonstop commerce and the myriad other forms of bad taste, I would have seen the dangers of the banal. Indeed Gopher represented a simpler, more naive time."

This isn't a view shared by all Gopher enthusiasts, though. Cameron Kaiser is a programmer on the Overbite Project, which brings better Gopher support to Firefox versions 2 and 3. When he writes about the relevance of Gopher in a Web world, he rejects the nostalgia for a "simpler time."

"The misconception that the modern renaissance of Gopherspace is simply a reaction to 'Web overload' is unfortunately often repeated and, while superficially true, demonstrates a distinct lack of insight," he writes. Instead, Gopher's advantages lie in the structure that its simple menu-based interface imposes on content.

"Gopher is a mind-set on making structure out of chaos," says Kaiser. "Within Gopherspace, all Gophers work the same way and all Gophers organize themselves around similar menus and interface conceits. It is not only easy and fast to create Gopher content in this structured and organized way, it is mandatory by its nature. Resulting from this mandate is the ability for users to navigate every Gopher installation in the same way they navigated the one they came from, and the next one they will go to. Just like it had been envisioned by its creators, Gopher takes the strict hierarchical nature of a file tree or FTP and turns it into a friendlier format that still gives the fast and predictable responses that they would get by simply browsing their hard drive. As an important consequence, by divorcing interface from information, Gopher sites stand and shine on the strength of their content and not the glitz of their bling."

As is evident from their manifestos, neither Kaiser nor Karger have much time for "design," which always threatens to overshadow "content." Unfortunately for the Gopherphile, Gopherspace has been stripped of much of its content; even the "mother Gopher" at the University of Minnesota has been shuttered.

Gopher tools

Gopher hasn't wholly died, though, and a bit of poking around in Gopher holes shows that Gopher-based tools are still being actively developed. First, though, you'll need some way to browse Gopher servers.

The easiest cross-platform tool is Firefox, which continues to support Gopher browsing. This is not without controversy; a bug request filed back in 2007 wants to "lessen attack vectors by removing Gopher protocol support." Two years later, however, Firefox continues to support the protocol. The Overbite project, not satisfied with this implementation, has written its own Firefox extension to replace the default Gopher support with something more robust.

Standalone, modern gopher clients are tough to come by, but you can download older programs at the HAL 3000 archive.

For the text-mode-inclined, most Telnet clients can display Gopher's basic output, and browsers like Lynx are a perfect match for Gopher's textual nature.

terminal_gopher.jpg

Finally, to play around with Gopher without installing a client, Floodgap Systems runs a free Gopher proxy that renders Gopher pages as HTML files and allows for seamless Gopher browsing.

Now, what can you do?

Gopher's good times

You can browse the text and images on Gopher servers, of course, which contain everything from Python code to "glog" (Gopher log) entries. You can browse a Gopher server running on a Windows 7 machine with 20MB of RAM. You can browse a UK server with a Swedish domain name.

gopherchan.png

Or you can throw caution to the wind and browse 4chan, of all things, through Gopher. The notorious /b/ discussion board, home to both the Anonymous movement and the sort of pictures that might send your mother to the hospital, is accessible through Port 70's Gopherchan.

Someone at Floodgap has also built a Twitter browser that can pull any user's tweets into a Gopher page so... there's that, too.

Basically, it's the Web without commercial users, graphic design, Flash video, cookies, and popup windows—and, when put that way, it's possible to see why Gopher's devotees appreciate the stark simplicity of the protocol.

On the other hand, a bit of time spent poking around in Gopherspace offers a powerful reminder that most of the world has moved on, leaving Gopher in its hole.

Channel Ars Technica