🌱Ian's Digital Garden

What category of software are web browsers and Emacs?


  • A comparison
    • GCC and Clang are both C implementations.
    • C in turn is a programming language.
    • Having a word for "what C is" is pretty dang useful!
    • Chrome and Safari are both web browser implementations.
    • The web browser in turn is a ???
  • Web browsers dominate the computing world. You're probably using one now. But we don't have a name for the category of software they fall into.
    • Having such a name is important because of weak Sapir-Whorf: language influences our thinking.
    • We have words for specific browsers, Chrome, Safari, and so on, so our thinking is channeled downward to within the browser family.
    • But we don't have a word for the type of thing the web browser itself is.
      • Thus it's hard for our thinking to travel up: to how it fits within the system.
      • Same for sideways: we don't naturally compare browsers to sibling programs in the same category, or imagine new ones.
    • Let's give this category the placeholder name Browser Like Program (BLP) so we have a way to talk about it in the rest of this post.
  • BLP describes user facing programs that provide graphics, handle user input, run applications, store data, do networking, etc.
    • Each tries to provide a complete world within the computer. You rarely or never have to leave.
    • This is close to an operating system, but doesn't imply management of hardware.
  • It's interesting that BLP applies to 💾Emacs as well as browsers.
    • Just as some users never leave web browsers, some lispers never leave Emacs. Especially with 💾Org Mode Emacs can handle practically everything: calendars, contacts, notes, todos, writing, code, email, IRC, etc.
    • For example take this screenshot from www2.lib.uchicago.edu/keith/emacs titled "Figure 2: Emacs as Operating System":
      • Emacs with tons of split windows showing Google search, a PDF viewer, Tetris, etc
      • When a program has its own language, package management, games and social apps, it would be good to have a word for it other than "text editor"!
      • There's an old joke about this:
        • "Emacs is a fine operating system in need of a good editor."
        • We can now untangle (and unfunny) it by saying, "No it's not, but it is a BLP that was grown by starting with an editor."
    • With two examples in our new category we can now start using to to compare and contrast.
      • For instance it's interesting to note that that both our examples so far were grown instead of planned.
  • But what name should we actually use? Some possibilities:
    • operating environment
    • computing environment
      • This is actually used by the book located at the link above about Emacs.
      • A downside is that it doesn't imply personal and interactive. I think the best name would describe systems that are both for individuals (so not things like the Heroku app platform or distributed computing environments), but also broad (so not things like a game store, rather things that you can do all your computing in).
        • However it's still might be the best answer, we can't have everything.
    • application platform
      • Broad again, covering things like the Heroku app platform.
    • desktop environment
      • en.wikipedia.org/wiki/Desktop_environment
      • There are probably two kinds of things that need to be distinguished:
        • BLPs that started as applications
        • BLPs that were built from the start to provide the user-facing half of an operating system.
      • We could define BLP to encompass both of the above. Then desktop environments would be one of the the most common forms of BLP. But they're still only a specific metaphor that not all BLP use, so we can't use desktop environment as the name we're looking for.
    • virtual machine
  • That said, maybe the answer is some combination of
    • These adjectives:
      • personal
      • individual
      • user
      • computing
    • And these nouns:
      • environment
      • system
      • platform
  • For example:
    • personal computing environment
    • user environment
    • etc
  • Postscript
    • Just because someting is a BLP doesn't mean you have to use it that way.
      • E.g. a web browser can be used as just a PDF viewer
      • Same for Emacs and text editing

Backlinks