> At GopherCon 1993, it was announced that Gopher servers would need to pay for the privilege of using the protocol... Well, that didn’t work out. People were angry and many felt betrayed. They weren’t quiet about any of it either.
> If one were to attempt to identify a single failure of Gopher in competition with the web, it would be the licensing costs. No such fee existed for the World Wide Web.
This, a thousand times. I watched as this happened. The instant that announcement was made, gopher was finished. Gopher might have lost later as HTML kept adding features, but by the time those features were added to HTML, gopher had already lost.
Similarly, Bertrand Meyer killed Eiffel by trying to charge money for the compiler, and missing the nascent OSS movement. Java was an inferior language in a few important ways but the compiler and runtime were free. He could not compete with both C++ and Java.
A number of people in that era thought this was a fad and that business as usual would prevail.
The licensing fee wasn't the sole reason, but it certainly sounded the death knell for Gopher and gave users reasons to look elsewhere.
For all the gauzy what-could-have-been speculations about Gopher, it really was more like a hierarchical wiki. WWW's freestyle document model quickly expanded to an application platform that could support all manner and style of services. Fees or not, Gopher didn't have a chance.
The Gopher standard mixes a document format with a networking protocol. The HTTP standards don't say a damn thing about HTML, but the Gopher standard defines a standard for sending directory information to a client, right down to the fixed list of file types that can occur in a directory. (MIME Type? What's that?) This is the hypertext part of Gopher, as only those directories can link to other places, so constraining that gives you a nice, simple way to have pretty plain-text sites with an enforce separation of lists of links, one one hand, and images and documents, on the other, which HTTP has no equivalent for.
(Not just file types, in fact, in that they have a special type for tn3270 telnet sessions. Yep, those IBM mainframes with block-mode terminals were quite important back then, but it's a bit out of place now. They also have a type for GIF and a generic 'client-figures-it-out' image type. How forward-thinking.)
> The HTTP standards don't say a damn thing about HTML
HTTP stands for Hypertext transfer protocol. The whole thing was predicated on sending HTML documents and couldn't originally send anything else.
> (MIME Type? What's that?)
MIME is a hack to add attachments to email that was later also hacked into HTTP so you could send add "attachments" to a protocol designed only to transfer hypertext, it's a kludge added in version 1.1.
Gopher's main difference with the web was that its linking was directory-based with directory tree documents rather than embedded hyperlinks. This was inferior, strictly speaking since you can easily make a directory HTML document on the web, but you could also cross-link.
I'm sure that would have been changed though, along with additional file-types or whatever had Gopher succeeded. The web's success over Gopher was never down to technical details.
> MIME is a hack to add attachments to email that was later also hacked into HTTP so you could send add "attachments" to a protocol designed only to transfer hypertext, it's a kludge added in version 1.1.
Like how Gopher got kludged to add other item types? All useful protocols evolve, and Gopher is no exception.
> Gopher's main difference with the web was that its linking was directory-based with directory tree documents rather than embedded hyperlinks. This was inferior, strictly speaking since you can easily make a directory HTML document on the web, but you could also cross-link.
Yes, that's true.
> I'm sure that would have been changed though, along with additional file-types or whatever had Gopher succeeded. The web's success over Gopher was never down to technical details.
Also true, and that New Gopher is now called Gemini.
It also defines a hypertext document format (Gemtext) but it allows HTML-style free linking and (depending on client) inline images, although that's not really what the Gemini users want. Again, this is more social than technical, and more self-consciously social because it's a deliberate reaction to existing paradigms: The Web as it is now (too invasive, too busy) and Gopher as it is now (a moribund retrocomputing exercise that can't realistically incorporate new technologies or serve new goals).
As usual though, more restrictive protocols remove possible use cases from one side of the protocol, but add use cases to the other. It's like JSON versus a Turing-complete configuration language.
A design based on directories of static files makes it a lot easier to mirror the entire site, or a subtree.
It seems to me that Gopher just failed to keep up with the times. Embedding images into the page was a killer feature for HTML and Gopher was still doggedly text based because they were still supporting the VT100 users that had been the core userbase. Plus the web went on to support text formatting, tables, and even eventually layout.
The article isn't entirely correct about the early web being completely free. Netscape was not free software, at least on paper. In practice they didn't try to stop people from spreading it far and wide and I think the sales were somewhat modest despite being the core element of a technological revolution. Also, I guess NCSA Mosiac was technically around, but it lacked enough features to make it a second class citizen compared to Netscape Navigator.
Gopher was built for a pre-HAL world, where you couldn't just assume that every user had a graphics card that your software supported - hell, a lot of them might not have graphics at all. In that environment, lack of embedded multimedia was a selling point due to interoperability. If you had a computer and a phone line, you could access Gopher's primeval web. Graphics and sound be damned.
For what it's worth, I have a copy of Netscape on a CD-ROM that came with a copy of PC/Computing sometime around 1994-1995. For those magazine subscribers, it was "free" if you squint a little.
By the early and especially mid 90s it was incredibly common for the users to have a graphics card. This was the 486 to Pentium era of personal computers. The Mac II line was giving way to the PowerMacs. Graphics cards were commonplace. Being stuck on a text terminal was already old school. Gopher sites were functional, but generally fairly bland. Web sites tended to be a lot more creative (some would say garish) and they were so easy to make that everybody wanted to give them a shot. Animated GIFs were all the rage. Backgrounds and table based layouts were straining the 14.4k modems and 8 MB of RAM machines. It was the wild west. Everybody was trying something different and finding out what worked and what didn't.
> By the early and especially mid 90s it was incredibly common for the users to have a graphics card.
Well yes, if you were lucky enough to have a new entry-level PC in 1994, you'd have a 486SX with just enough VRAM to run WFW at 800x600.
But, at least as late as Obtober 1992, the cheapest new PCs I see in PCMag are PC/AT clones running a 16MHz 286 (it probably had a VGA card, but come on). You could buy a cheap modem, plug it into your AT clone, and yank down some Gopher stuff.
Some folks didn't have a PC, but still had a computer. One of my old machines is a TRS-80 that was being used almost daily as late as 2013.
There were ways around that, though I never found the experience to be worth the hassle. The Internet Adapter [1] was the one my shell account supported back in the mid-90s.
Gopher was a much more highly structured format. Even if they'd included inline images, they didn't really have a day 0 formatting or layout language that allowed for nesting. There were other locked in choices too, like using a 8 bit value for file type.
> Embedding images into the page was a killer feature for HTML
I'd disagree slightly. Users did not have the high bandwidth always on connections then that they do now. Images were nice but were also avoided as they made pages "slow". The main reason lightboxes and other clickable thumbnails came into existence.
> was still doggedly text based because they were still supporting the VT100 users
I used lynx and links for a very long time. What made me switch was the prevalence and ultimate utility of JavaScript. It turned simple pages that were best consumed after being fully downloaded into complete progressive applications.
Users did not have the high bandwidth always on connections then that they do now
users at universities did. i do remember this time as a student, early websites with small but colorful pictures and formatted text were clearly more appealing than gopher.
> Images were nice but were also avoided as they made pages "slow". The main reason lightboxes and other clickable thumbnails came into existence.
I first used the web in 1995 and websites definitely used inline images. The images were mostly small GIF images but they were definitely there. Every web authoring guide implored you to set explicit sizes on img tags so browsers wouldn't have to do a full repaint as images loaded.
Modems weren't that slow in the mid-90s, 14.4k modems were common and 28.8k modems were starting to be the default OEM option.
Gopher was how I first got on the Internet in 1991. Cleveland FreeNet (like an Internet BBS) supported connecting to other FreeNets and Buffalo FreeNet had gopher. I searched lots of ftp sites, read lots. You also had 1.5MB of space you could use to download software to temporarily on Buffalo FreeNet. With gopher, two freenets, and zmodem, I downloaded and installed my first Linux system in 1992: 0.95a running on a 386sx16 with 4mb of memory and a 40mb HD. Gopher opened up the Internet when I was a kid in high school and the web wasn’t a thing. I’ll forever be grateful.
Interesting that the article brings up the original 1990s GopherCons (which were conferences for discussing the Gopher protocol). I'm mildly annoyed that the Go programming community (which uses a gopher as a mascot) has reused the name for their conventions, but I guess it's been unused for a while.
I would suggest you take a look at https://go.dev/solutions/case-studies Whether or not Google’s backing is part of the equation, Go’s success in the real world speaks for itself.
If the idea of a text first structured hyper text protocol interests you, consider taking a look at the Gemini protocol, a modern equivalent. https://geminiprotocol.net/
I first got involved with the Internet in the early 90's (summer of 1991, I think), right when Gopher was taking off, but before the WWW. Times were so much simpler.
> At GopherCon 1993, it was announced that Gopher servers would need to pay for the privilege of using the protocol... Well, that didn’t work out. People were angry and many felt betrayed. They weren’t quiet about any of it either.
> If one were to attempt to identify a single failure of Gopher in competition with the web, it would be the licensing costs. No such fee existed for the World Wide Web.
This, a thousand times. I watched as this happened. The instant that announcement was made, gopher was finished. Gopher might have lost later as HTML kept adding features, but by the time those features were added to HTML, gopher had already lost.
Similarly, Bertrand Meyer killed Eiffel by trying to charge money for the compiler, and missing the nascent OSS movement. Java was an inferior language in a few important ways but the compiler and runtime were free. He could not compete with both C++ and Java.
A number of people in that era thought this was a fad and that business as usual would prevail.
The licensing fee wasn't the sole reason, but it certainly sounded the death knell for Gopher and gave users reasons to look elsewhere.
For all the gauzy what-could-have-been speculations about Gopher, it really was more like a hierarchical wiki. WWW's freestyle document model quickly expanded to an application platform that could support all manner and style of services. Fees or not, Gopher didn't have a chance.
To expand on this:
The Gopher standard mixes a document format with a networking protocol. The HTTP standards don't say a damn thing about HTML, but the Gopher standard defines a standard for sending directory information to a client, right down to the fixed list of file types that can occur in a directory. (MIME Type? What's that?) This is the hypertext part of Gopher, as only those directories can link to other places, so constraining that gives you a nice, simple way to have pretty plain-text sites with an enforce separation of lists of links, one one hand, and images and documents, on the other, which HTTP has no equivalent for.
(Not just file types, in fact, in that they have a special type for tn3270 telnet sessions. Yep, those IBM mainframes with block-mode terminals were quite important back then, but it's a bit out of place now. They also have a type for GIF and a generic 'client-figures-it-out' image type. How forward-thinking.)
https://datatracker.ietf.org/doc/html/rfc1436
> The HTTP standards don't say a damn thing about HTML
HTTP stands for Hypertext transfer protocol. The whole thing was predicated on sending HTML documents and couldn't originally send anything else.
> (MIME Type? What's that?)
MIME is a hack to add attachments to email that was later also hacked into HTTP so you could send add "attachments" to a protocol designed only to transfer hypertext, it's a kludge added in version 1.1.
Gopher's main difference with the web was that its linking was directory-based with directory tree documents rather than embedded hyperlinks. This was inferior, strictly speaking since you can easily make a directory HTML document on the web, but you could also cross-link.
I'm sure that would have been changed though, along with additional file-types or whatever had Gopher succeeded. The web's success over Gopher was never down to technical details.
> HTTP stands for Hypertext transfer protocol. The whole thing was predicated on sending HTML documents and couldn't originally send anything else.
OK, HTTP/0.9 was apparently like that. By HTTP/1.0 (1996) they'd learned better, and that was the growth phase:
https://www.w3.org/Protocols/HTTP/1.0/spec.html
> MIME is a hack to add attachments to email that was later also hacked into HTTP so you could send add "attachments" to a protocol designed only to transfer hypertext, it's a kludge added in version 1.1.
Like how Gopher got kludged to add other item types? All useful protocols evolve, and Gopher is no exception.
https://github.com/gopher-protocol/gopher-plus/blob/main/gop...
> Gopher's main difference with the web was that its linking was directory-based with directory tree documents rather than embedded hyperlinks. This was inferior, strictly speaking since you can easily make a directory HTML document on the web, but you could also cross-link.
Yes, that's true.
> I'm sure that would have been changed though, along with additional file-types or whatever had Gopher succeeded. The web's success over Gopher was never down to technical details.
Also true, and that New Gopher is now called Gemini.
https://geminiprotocol.net/
It also defines a hypertext document format (Gemtext) but it allows HTML-style free linking and (depending on client) inline images, although that's not really what the Gemini users want. Again, this is more social than technical, and more self-consciously social because it's a deliberate reaction to existing paradigms: The Web as it is now (too invasive, too busy) and Gopher as it is now (a moribund retrocomputing exercise that can't realistically incorporate new technologies or serve new goals).
Speaking of clients:
https://gmi.skyjake.fi/lagrange/
https://thelambdalab.xyz/elpher/
Both do Gemini and Gopher.
As usual though, more restrictive protocols remove possible use cases from one side of the protocol, but add use cases to the other. It's like JSON versus a Turing-complete configuration language.
A design based on directories of static files makes it a lot easier to mirror the entire site, or a subtree.
It seems to me that Gopher just failed to keep up with the times. Embedding images into the page was a killer feature for HTML and Gopher was still doggedly text based because they were still supporting the VT100 users that had been the core userbase. Plus the web went on to support text formatting, tables, and even eventually layout.
The article isn't entirely correct about the early web being completely free. Netscape was not free software, at least on paper. In practice they didn't try to stop people from spreading it far and wide and I think the sales were somewhat modest despite being the core element of a technological revolution. Also, I guess NCSA Mosiac was technically around, but it lacked enough features to make it a second class citizen compared to Netscape Navigator.
Gopher was built for a pre-HAL world, where you couldn't just assume that every user had a graphics card that your software supported - hell, a lot of them might not have graphics at all. In that environment, lack of embedded multimedia was a selling point due to interoperability. If you had a computer and a phone line, you could access Gopher's primeval web. Graphics and sound be damned.
For what it's worth, I have a copy of Netscape on a CD-ROM that came with a copy of PC/Computing sometime around 1994-1995. For those magazine subscribers, it was "free" if you squint a little.
By the early and especially mid 90s it was incredibly common for the users to have a graphics card. This was the 486 to Pentium era of personal computers. The Mac II line was giving way to the PowerMacs. Graphics cards were commonplace. Being stuck on a text terminal was already old school. Gopher sites were functional, but generally fairly bland. Web sites tended to be a lot more creative (some would say garish) and they were so easy to make that everybody wanted to give them a shot. Animated GIFs were all the rage. Backgrounds and table based layouts were straining the 14.4k modems and 8 MB of RAM machines. It was the wild west. Everybody was trying something different and finding out what worked and what didn't.
> By the early and especially mid 90s it was incredibly common for the users to have a graphics card.
Well yes, if you were lucky enough to have a new entry-level PC in 1994, you'd have a 486SX with just enough VRAM to run WFW at 800x600.
But, at least as late as Obtober 1992, the cheapest new PCs I see in PCMag are PC/AT clones running a 16MHz 286 (it probably had a VGA card, but come on). You could buy a cheap modem, plug it into your AT clone, and yank down some Gopher stuff.
Some folks didn't have a PC, but still had a computer. One of my old machines is a TRS-80 that was being used almost daily as late as 2013.
More than graphics card one needed an an ip address for the graphical web.
There were ways around that, though I never found the experience to be worth the hassle. The Internet Adapter [1] was the one my shell account supported back in the mid-90s.
[1] https://en.wikipedia.org/wiki/The_Internet_Adapter
Gopher was a much more highly structured format. Even if they'd included inline images, they didn't really have a day 0 formatting or layout language that allowed for nesting. There were other locked in choices too, like using a 8 bit value for file type.
Not allowing embedded appearance-restricting stuff (such as image or stylesheets) is, in hindsight, what makes gopher great.
And, conversely, the popular WWW crap.
> Embedding images into the page was a killer feature for HTML
I'd disagree slightly. Users did not have the high bandwidth always on connections then that they do now. Images were nice but were also avoided as they made pages "slow". The main reason lightboxes and other clickable thumbnails came into existence.
> was still doggedly text based because they were still supporting the VT100 users
I used lynx and links for a very long time. What made me switch was the prevalence and ultimate utility of JavaScript. It turned simple pages that were best consumed after being fully downloaded into complete progressive applications.
Users did not have the high bandwidth always on connections then that they do now
users at universities did. i do remember this time as a student, early websites with small but colorful pictures and formatted text were clearly more appealing than gopher.
> Images were nice but were also avoided as they made pages "slow". The main reason lightboxes and other clickable thumbnails came into existence.
I first used the web in 1995 and websites definitely used inline images. The images were mostly small GIF images but they were definitely there. Every web authoring guide implored you to set explicit sizes on img tags so browsers wouldn't have to do a full repaint as images loaded.
Modems weren't that slow in the mid-90s, 14.4k modems were common and 28.8k modems were starting to be the default OEM option.
The world would be better off without most of that though. I want content not all the fluf and such.
now get off my lawn!
I still possess a netscape cdrom which I bought at a store so very long ago.
Shameless plug but I maintain a gopher client for iOS/macOS/visionOS: https://web.navan.dev/iGopherBrowser/
Gopher was how I first got on the Internet in 1991. Cleveland FreeNet (like an Internet BBS) supported connecting to other FreeNets and Buffalo FreeNet had gopher. I searched lots of ftp sites, read lots. You also had 1.5MB of space you could use to download software to temporarily on Buffalo FreeNet. With gopher, two freenets, and zmodem, I downloaded and installed my first Linux system in 1992: 0.95a running on a 386sx16 with 4mb of memory and a 40mb HD. Gopher opened up the Internet when I was a kid in high school and the web wasn’t a thing. I’ll forever be grateful.
Interesting that the article brings up the original 1990s GopherCons (which were conferences for discussing the Gopher protocol). I'm mildly annoyed that the Go programming community (which uses a gopher as a mascot) has reused the name for their conventions, but I guess it's been unused for a while.
They also took the name of a programming language that predated Google’s go as well.
https://en.m.wikipedia.org/wiki/Go!_(programming_language)
Google's Go? Go itself predates Google, as it's founded upon plan9 C's compiler/linkers and then Alef/Limbo.
Not to mention the Chinese board game weiqi (known in English as Go from the Japanese).
The only notoriety this language has appears to be because of a naming clash, not for any legitimate technical merit.
Go's success is there only because of Google, not for any technical merit. Without Google, Go would be a forgotten niche language.
I would suggest you take a look at https://go.dev/solutions/case-studies Whether or not Google’s backing is part of the equation, Go’s success in the real world speaks for itself.
If the idea of a text first structured hyper text protocol interests you, consider taking a look at the Gemini protocol, a modern equivalent. https://geminiprotocol.net/
Not modern nor equivalent. More of an artistic statement of some sort.
Gemini cannot be upgraded (or fixed). It was done as a one-off.
Gopher lives on.
Or if you're interested in the old school mainframe equivalent.
https://en.wikipedia.org/wiki/ISPF
Efficient too.
Even the original IBM PC can comfortably browse gopher sites with gopherus[0].
0. https://gopherus.sourceforge.net/
Betamax instead of VHS
8-Track instead of cassette
Minidiscs instead of CDs
Yahoo instead of Google
Gopher instead of HTTP
I want to believe that such alternative universe exists. How do I get there? I'm tired of this one...
Well:
gopher://hngopher.com HN
gopher://magical.fish Huge portal, the news section is big
gopher://gopherddit.com Reddit
gopher://sdf.org SDF blogs
gopher://gopher.icu Nice site
gopher://hoi.st Retroprogrammer
gopher is still active, see gopher://sdf.org, access via lynx
I first got involved with the Internet in the early 90's (summer of 1991, I think), right when Gopher was taking off, but before the WWW. Times were so much simpler.
Confirmed! I was a big metalhead \m/ and was responsible for all the Unix-y things and spent a lot of time maintaining the community.
Other hostnames we had from bands and SciFi
huskerdu / nirvana / supernova / arcwelder
hafnhaf (big bonus points if you can figure this one out, lol!)
ashpool / tessier / joeboy / countzero
gopher://gopher.com
gopher://magical.fish
As for the client, you can use Lynx under Unix/Linux and Lagrange under everything else.
Check out my gopher server using lynx gopher://gopher.petergarner.net ... Enjoy!
Cool seeing the Archie Comics references!
I thought it was about Golang mascot.
[dead]
[flagged]