Over the weekend I rebuilt my cheap laptop and installed a version of Linux with no graphical interface. The machine boots-up to a text-mode login prompt and once logged-in, you have a big black screen and a command prompt at the bottom. Maybe this doesn’t sound that exciting, but it’s been at least 20 years since I’ve tried to work on a computer with no graphical interface. Sure, I use terminals every day, but there’s something very different about having an array of terminals in little windows on a screen where you can instantly call-up say, a web browser, or a graphical file manager or some other visually-oriented application when you forget the command you need (or more likely, the arguments for the command). One thing that you would expect to be especially crippling is not having access to The Web, but it turns out that’s not actually the case. Recalling my days of setting up Linux-based DNS servers (back when this was strictly a cost-savings measure) I remembered the
<a href="https://en.m.wikipedia.org/wiki/Lynx_(web_browser)">lynx</a> text-mode web browser. This was good enough to get the job done back in 1998, but you wouldn’t expect it to be of any use in the post Web 2.0 world. Turns out you would be wrong. Firing up lynx and pointing it at https://duckduckgo.com, I was quickly searching (and finding) commands and arguments to my hearts content. lynx not only worked, it worked well, at least within the narrow use-case for which I required it. One of the first things you’ll notice using a computer this way is how fast it is. We’ve really gotten used to slow computers, and as hardware has stepped-up to address performance issues, software has grown fatter and flattened each additional Mhz to the point where often, a 2018 laptop running a modern GUI doesn’t feel much snappier than a 1988 Macintosh… …but strip-away that GUI and everything happens instantly. Sure network latency might cause a noticable delay between tapping the right-arrow key in lynx and seeing the text of the requested web page fill the screen but even this is orders of magnitude faster than watching the same page load in a typical web browser. Anything you do locally happens so quickly that you may question whether or not you’ve initiated the command at all. Even running console commands and applications is measurably slower when they are running inside a terminal window vs. running directly on the screen like this. Each character emitted by the program goes through miles of code before it becomes illuminated points on the screen. While some processing does occur in “text mode” (since modern computers no longer have a native text mode in the traditional sense), the responsiveness of console applications running directly in the “framebuffer” is entirely different from running them inside a window under the overhead of a “window manager”. It seems impossibly long ago, but well within a lifetime this is how most personal computers were used. Yes, graphical user interfaces existed as far back as the dawn of the 1980’s but text-mode applications like Wordperfect were still being taught at the technical college I attended in the early 1990’s and one reason why is that the graphical word processors of the day were unable to keep-up with the typing speed of these students. While this area of performance may have improved since then (although my phone frequently gets so far behind my typing that it looses charachters) I don’t think that Windows/MacOS/KDE/etc. feel much faster now than Windows NT felt in 1994. Now that we live in an era where power consumption is as much (more?) of a hinderance than most other aspects of computers, imagine the kind of reduction of power demand that would accompany switching work which can be done with a text-mode interface over to the very low-power (but still incredibly fast compared to computers of the 1990’s) single-board computers and system-on-a-chip hardware we have today? Aside from the environmental impact and financial savings, imagine what kind of runtimes would be possible. A laptop like the one I’m using to write this post (which by the way is way overpowered for the task) could likely run for weeks or more on a single charge if used in this way. A change like this would also make computers more accessible, due to both the lower initial cost and the higher secondary-market value. A text-mode computer and its applications become “obsolete” at a dramatically slower rate, and continue to be useful for much longer, than its graphically-oriented counterparts. It’s also worth mentioning that the cost of developing and maintaining text-only software is substantially less expensive than GUI (even web-based) application software Certainly there are applications which are not suitable for a text-only user interface, but if you think about how you use a computer each day, how much of the value generated by that use could be generated without the use of graphics, images, etc. Akin to inexpensive electric cars, enough people could do enough work with text-only systems to make a significant difference in the world. …all this and they are faster as well
Jason J. Gullickson: Thanks for the note @steve. I really appreciate the encouragement. I’ve gotten used to the fact that the work I have an affinity for may not be something most people can relate to and as such I don’t expect a lot of external acknowledgement, but it’s nice to know I’m not just “broadcasting into the void” as well :) I’m always surprised at the pieces people connect to. Almost without exception the things I write that strike a chord with someone are the ones I don’t expect anyone to get, and the ones that I think will have more widespread appeal go unnoticed. If nothing else it’s a testament to the fact that you should do what you like because that was you’ll have at least one fan.
Jason J. Gullickson: This conversation has me thinking about the potential for a Linux distribution based around text-only productivity applications. Essentially an open-source equivalent to a 1980’s DOS business machine. I know of a lot of terminal-based sysadmin/developer/communication software but I’m less familiar with anything that would fall into the “productivity” label such as word processors, spreadsheets, databases (think FoxPro not MySQL) so I’d have to do a little research to see what’s available. Might be a fun thought experiment if nothing else.
Jefferson Carpenter: If there’s no GUI, how do you watch Star Wars? Truthfully I haven’t done much web browsing via text-only browsers, but from the little I did, one thing I had trouble with was being able to fluently interact with all of the stuff on the page. For instance, search engines spit out multiple, multiple results. How do you jump to a result in the middle or at the end of the results list? Or how do you select and click on a hyperlink in the middle of a Wikipedia page? Web forms are another thing. On a page with a form, how do you select form boxes so you can enter data into them? (In particular the first; from there you can tab from one to the next). (It would be neat if the form element’s “name” attribute was displayed next to it so you could type that in to bring it into focus, but that might interfere with the other page content.) Sent from my Firefox web browser
Jason J. Gullickson: @jefferson There’s different ways to navigate a webpage in Lynx, but the way I do it right now relies primarily on three keys: down arrow, right arrow and spacebar. The down arrow selects each link (or form field, etc.) in turn beginning with the first one on the page. Running with your search engine example, I would type: lynx https://duckduckgo.com The page loads and the first link on the page is automatically selected. I press the down arrow key once to select the next element (the text entry field), type in my query and press enter. Since this is a text-entry field pressing enter selects the next element which is the search button. With the search button selected, I press right arrow to execute the search (right arrow is equivalent to clicking a button, link, etc.). The search results page is displayed with a list of matching results. I can use the down arrow to move through each link on the page (linking to pages matching the search criteria) or if I don’t see what I’m looking for on the first page, I can press the spacebar to advance to the next page. Once I find a result that looks interesting, I select the link using the down arrow and press right arrow to visit the page. If you’ve used other Linux/Unix tools some of this might already sound familiar. There are many other ways to do the same thing (likely more efficient ones as well), but with these three keys you can do most of what you’d need to do in a web browser. I also remember hearing about a newer text-mode browser which might be better than Lynx, but I can’t remember the name off-hand so I haven’t tried it yet. I remember hearing that it has image (and perhaps video) support, rendering images as ascii art…
Steve: Dropping a line, more than anything, to let you know that people ARE taking advantage of your wisdom and reading your posts. When it comes to tech stuff, you are orders of magnitude above where I will ever be… but this essay makes sense to me, and made me nostalgic as hell. I may have to attempt to follow your lead.