Why is it called Gosub when it’s not even written in Go? This is a question I get asked occasionally (always by developers), and we even answer that question in our FAQ. But the name Gosub actually has a deeper meaning than just being a catchy name for a browser engine.
My first encounter with computers was in the 1983’ish, when my parent bought a Commodore 64. After being fascinated by
all the games we played, after a few weeks I wanted to know how they worked, so I started to learn how to program in
BASIC. Now, most of this was just copy-pasting code from magazines, but I did learn some of the basics of programming,
and I even wrote a few simple programs myself. One of the commands in BASIC is the GOSUB command. A command that
allows you jump to a different part of the code, do some work and return back from where you left off. It was a magic
version of the GOTO command, which could not return, or at least, not by itself. And since then, I see pascal’s
procedures, C’s functions, Java’s methods and Go’s functions nothing more than a more advanced form of GOSUB.
But there was another reason for the name as well. Back in the early days when the web was still in its infancy, you had different places to find information on the internet. And one of those places was CompuServe, which funny enough, I’ve never used myself. But you could find information with the “go” keyword. “Go weather” would give you the weather, “go news” would give you the news, and so on.
So, combined, the name Gosub stayed with me, and when I started to think about building a browser engine, it just felt right to name it after the command that started it all for me, and a remnant of the early days of the internet itself.