30 days in a terminal: Day 10 — The experiment is over

Living completely in a Linux shell was too painful. But it was a revealing experience—something all developers should try. They might create faster software as a result.

30 days in a terminal: Day 10—The experiment is over

When I set out to spend 30 days living entirely in a Linux terminal, I knew there was a distinct possibility I would fail utterly. I mean, 30 days? No GUI software? No Xorg? Just describing it sounds like torture.

And torture it was. Mostly. Some moments, though, were pretty damned amazing. Not amazing enough to help me reach my 30-day goal, mind you. I fell short—only making it to day 10.

The Lesson of the Shell

What did my “10 Days in sHell” teach me? First and foremost, it reminded me that being left out is no fun. 

By completely abandoning display servers (including framebuffer) and graphical interfaces, that meant no Firefox. No Google+ or Twitter apps. No YouTube (at least not in any long-term-enjoyable way). By removing those things from my computing experience, I was, in essence, left out of so many of the online communities that I enjoy being a part of.

While there are terminal applications for interacting with Twitter and Reddit, there aren’t great options for the other social networks. And even for the clients that do work well, you’re still in the terminal. That means no pictures. It turns out not being able to see inline images really becomes a pain in the hindquarters.

---------------------------------------------

Bryan's journey: 30 days in a terminal

---------------------------------------------

And attempting to use sites such as Google+, LinkedIn or Facebook—directly from terminal-based web browsers—is a truly painful experience. It can be made to work. Really. It can. But it’s just no fun at all.

The net result was going to inevitably result in me completely stopping my involvement in most social media sites.

Now, a fair argument could be made that some of us could stand to spend less time on social media. But for many of us, this is a critical way of being involved with our friends, co-workers and generally people with similar interests. This is how we stay connected. And doing it from a terminal sucks.

The second and perhaps most obvious lesson this experience taught me is a fairly complex and nuanced one. Bear with me here. This might be a bit hard to explain.

We don’t, at present, live in 1987.

I know. Mind-blowing, right?

The fact is if you removed the consumption and creation of graphical content (images and video), living in the terminal is an absolutely enjoyable experience. It’s incredibly easy to find all (or most) of the software you’d ever need.

And if I’m being honest with myself, the experience is rather enjoyable. Even doing old-school-style web browsing (just looking things up and reading text-focused pages) works incredibly well. It reminded me of when, back in the early 90s, I had my first experiences with Mosaic.

In a lot of ways, that experience (and the experience today in the terminal) is superior to modern, graphical web browsers. You are focused entirely on the content, which means far less distraction. The web browser itself consumes so few system resources you almost can’t tell it’s running—a highly pleasant change of pace from Chrome and Firefox’s 1.21 Jiggabytes of RAM taken up by each and every tab. And, here’s the crazy bit, when you don’t need to worry about images, videos and massive JavaScript libraries, web pages load crazy fast.

Is using lynx or w3m in 2016 painful? You bet it is. But it’s also a bit of a revelation.

Now that I’m back using Firefox, I’m relieved. Relieved to be able to use all of the websites that I missed. Relieved to be able to watch YouTube videos and talk to friends on Google+. But I’m cranky at the immense slowness—even on a very fast machine—of modern web browsers. Pages load slower. My RAM is being eaten alive. And simply sitting idle (with just a few tabs open) the web browser eats up more CPU time than any other aspect of my system.

Does it annoy me enough to go back to lynx? No way. Not a chance. But it’s annoying just the same.

The experience is roughly similar in other areas of functionality, as well. Word processing, something I spend a lot of time doing, is both significantly better and worse in the terminal.

On one hand, in the terminal-based word processor, you get a blazingly fast bit of software. It never bogs down. Never gets pokey. And the experience of focusing on just your words—no toolbar buttons, no window decorators, etc. —is rather pleasant. I found that while I was writing during my 10 days in the terminal, I actually wrote faster—and more.

On the flip-side, you have no real formatting options—definitely no real WYSIWYG. The features we’ve come to rely upon in modern word processors (like LibreOffice), such as spell check, the ability insert hyperlinks and table of contents creation, are few and far between when you’re in the terminal.

Which is better? I honestly don’t know. George R.R. Martin writes the Game of Thrones books entirely in DOS in a text-based word processor. Then again, he probably doesn’t need to have the word “dragon” be a hyperlink that goes to the Wikipedia entry for dragons.

Where does that leave things?

This is going to sound crazy to some of you, but I think if you are in the business of designing or building software (or websites), you should do the exact same thing I attempted. Forgo the display server. Give up all graphical interfaces. Just do it. Force yourself to live in a computing environment more akin to how things used to be in the “good old days."

Why? Because while it’s a rather painful experience, it’s an eye-opening one, as well.

Sure, we all complain, at least a little, about how bloated software has become. But I didn’t feel it quite so acutely until I spent over a week in an environment that ran blindingly fast using mere megabytes and then transitioned to a system that requires multiple gigabytes just to hobble along.

Not only that, but the complexity of both desktop software and web pages (or, I suppose more appropriately web applications, since so many require huge JavaScript libraries just to load) feels like a move in the wrong direction to me.

Maybe I’m crazy. But I think if more developers (and anyone responsible for software design decisions) did this, we’d have much lighter, faster, more streamlined software. And that wouldn’t be too damned shabby.

As for me, I’m settling on a nice mixture of terminal and GUI. I have Firefox open. And I have LibreOffice. But I have multiple terminals going at the same time. I still play music, use notes and do instant messaging from the terminal because, I swear, it’s just such a nice experience.

In the coming days I’ll be compiling the full list of terminal software that I relied upon and will note which were my favorites. That way anyone who wants to follow in my (perhaps foolhardy, certainly ridiculous) footsteps can have a bit of a running start.

In the meantime, I’m going to go watch random YouTube videos. Because I can.

---------------------------------------------------------------------------------------

Bryan's adventure of living completely in a Linux shell:

Join the Network World communities on Facebook and LinkedIn to comment on topics that are top of mind.
Related:
Must read: Hidden Cause of Slow Internet and how to fix it
Notice to our Readers
We're now using social media to take your comments and feedback. Learn more about this here.