Language Selection

English French German Italian Portuguese Spanish

The Command Line Challenge

Filed under
Just talk

Authored by Andy Farnell

Free red light

Cheapskates wonderful guide is currently running a "One Week Command Line Challenge". Some of the students I teach now are so young (to an old beard like me) they think this is some "crazy new thing". Is there new hope and a new perspective to be explored here? Something other than retro and cool. Perhaps historical baggage, the narrative of how "superior" graphical interfaces replaced "old" consoles is an obstacle to new visions for the next generation?

As a lifelong textual user interface (TUI) user this got me thinking. If you were to give me "The GUI Challenge" I'd be sunk! My world (dwm, emacs, w3m etc) feels so familiar, it's in my bones. After thirty or forty years on the command line if I were forced to use "normal computers" it would cripple my ability to do anything.

The command-line is super empowering, but particular. Put me on a Mac or Windows machine and I revert to a child-like flap, randomly clicking around on icons that look promising. I'd be twenty times less productive than my peers, yet, modesty be damned, I'm ten times more effective/productive at average computing tasks than other professionals when in my comfort zone - at the command-line. Isn't this true for us all, that we have our comfy shoes?

Of course this isn't about some innate inability to use graphical tools. I've mastered some jolly complex ones like Blender and Unreal editors (virtual world building), and ProTools or Ardour (for sound and music). One of the most complex I recall was a VLSI/CAD creator that used two four button mice (or mouse and ball).

So, is the command line challenge unfair? I am no more capable of quickly learning a new graphical paradigm than an entrenched GUI user is of adopting the keyboard and console. This probably applies at any age or ability level where you are comparing like-for-like paradigm switching.

No, the issue here is deeper and is about utility paradigms. How do people relate to computers as tools at the highest level - at the operating system level and above?

If you dig back in the Usenet and mailing-list archives, you'll find fascinating, passionate and intelligent debates on the merits of different interfaces going right back to Xerox-PARC. They are really separate computing cultures. There's a fair historical summary here.

The above history ends in 2001. GUIs did not end there, the debate has moved further, and many new things have not been well analysed. Mobile, which essentially emulates button-based handheld appliances, cannot really be compared to GUI (in its traditional sense), even though it's technically a computer running a graphical interface.

It's only since about 2010 that the GUI function of abstracting (hiding away complexity) was subverted by wicked corporations to hide away deception and to effect control. This shift from the abstract to the abstruse and obstructive is what we sometimes call "Dark Computing Patterns", but really it goes deeper than that - visual computing is it's own realm of psychology, politics, semiotics, iconography and subterfuge that in many cases thoroughly bastardises the function of computers qua "tools".

The GUI/TUI debate can be framed in many ways; preference, freedom, extensibility, cognitive overhead, portability, control (tweakability), depth of understanding (legibility), and more.

For me, tool longevity and stability are important. I still use the same applications and skills I learned in 1980. Some people, foolishly I think, imagine that to be a bad/anti-progressive stance. One of the most underrated abilities in computer programming is knowing when something is finished. As is the ability to just use something instead of worshipping it as a digital artefact (cue NFT "first editions of brand apps).

By contrast many of my colleagues must re-learn their entire productivity stack every few months at the whim of corporate developers or seemingly random events in "the market". I literally hear them anthropomorphising:

"Oh, Slack won't let me do that now"

"Oh, Google ate my email"

"Sorry, something broke, can you resend it please?"

Their "computers" are chaotic mystery machines, magic fun fairs where superstitious ritual ministrations must be performed. This sort of Scooby-Doo "clown computing" has no place in serious business, in my opinion. So, another hugely underrated quality that TUIs favour is stability.

Where did this mess come from? In the 1980s "home computers" created a culture of their own, and from there Apple and Microsoft, needed to counter a socially constructed but actually mythical "fear" of computers as nerdy and silly, but also "dangerous". Remember granny worrying that it would "blow up" if you typed the wrong thing?

Continuing a culture of sysadmins from the time-sharing Unix days, we created the "user" as a particular stereotype. To put it quite bluntly, we manufactured "users" to be idiots. Indeed, use of the word "users" instead of a more neutral term like "operators" is significant. The developer-user relationship today is a power relationship, and often an abusive one (in both directions).

In fact denigrating attitudes have their roots in the fragility of early software development. The "user" was an enemy who would always find ways to break our software and exhibit extraordinary "stupidity" by failing to understand our non-obvious interface puzzles. We used tropes like (P.E.B.K.A.C), lusers, and treated others with disrespectful and superior smugness.

Computing had its hashtag moment, and markets demanded that perceptions change. Microsoft solved the problem by erecting some soothing blue fire-hazard cladding around a crumbling DOS. Underneath, exposure to "The Registry" was like staring directly into the open core of Chernobyl.

At that point, enter Apple, who could play Good Cop, adding value by simply subtracting (or consolidating) features. For many, Steve Jobs was elevated to the man who "invented computers". For a certain generation, he did. The ancient science of HCI (human computer interaction) was beaten and disfigured into the designer denomination of UX/UI that emphasised intuition, feel, and experience, which in turn ushered in the age of performative productivity. This trajectory of form over function culminated in neurotic obsessions with $2000 disposable thin laptops and the Onion's infamous Apple Wheel parody that confused many as to whether it was a genuinely good idea.

Meanwhile the command line simply kept calm and carried on. Nothing changed in 30 years. Those who ran the servers, databases, scientific and technical applications never strayed far from the console, except where "presentation" demanded. However, through the mass media and advertising, digital technology became synonymous with these corporate veneers over actual computers, while Hollywood made the command-line a glowing green preserve of malcontents bent on destroying civilisation.

So, although the Command Line Challenge is fun - and I hope it inspires some people to go beyond their comfort zone - let's be aware that human factors, history and politics play a greater role behind the scenes. Yes, it's about mental models, rote motor skills and habits, rather than any intrinsic good or bad. But it's also about culture and popular ideas of what a computer "is".

The emphasis of Cheapskate's article is on TUI allowing the use of older computers. That's a very topical and important concern in the age of climate emergency. If readers don't know already about books like Gerry McGovern's World Wide Waste, I urge you to read more about e-waste. Making the connections between textual interfacing, more modest tech-minimalist use, and a better society and healthier planet, isn't obvious to everyone.

There are many reasons people may prefer to return to the command line. I vastly prefer TUI's for another reason. As a teacher I deal in ideas not applications, so it's a way of imparting lasting concepts instead of ephemeral glitter. Commands are connections of action concepts to words, essential for foundational digital literacy. Almost everything I can teach (train) students to use by GUI will have changed by the time they graduate.

For younger people the difference is foundational. My daughter and I sit down together and do basic shell skills. She can log in, launch an editor, play music and her favourite cartoon videos. We use Unix talk to chat. It's slow, but great fun, because character based coms is very expressive as you see the other person typing. She's already internalising the Holy Trinity - storage, processing and movement.

To make this work I obviously customised bash, creating a kind of safe sandbox for her with highly simplified syntax. This week we are learning about modifier keys - shift is for SHOUTING and control is to CANCEL (you can't get around needing to teach CTRL-C). What we are really working on is her typing skills, which are the foundation of digital literacy in my opinion. I think at the age of 5 she is already a long way ahead of her school friends who paw at tablets.

In conclusion then, the TUI/GUI saga is about much more than interchangeable and superficial ways of interacting with computers. In it's essence it is about literacy, the ability to read and write (type). Behind, and ahead of it, are matters of cultural importance relevant to education, autonomy, democracy, self-expression, and the economy. So if you're a mouser or screen smudger, why not give Cheapskate's challenge a try?

More in Tux Machines

EasyOS Dunfell-series 4.2

EasyOS was created in 2017, derived from Quirky Linux, which in turn was derived from Puppy Linux in 2013. Easy is built in woofQ, which takes as input binary packages from any distribution, and uses them on top of the unique EasyOS infrastructure. Throughout 2020, the official release for x86_64 PCs was the Buster-series, built with Debian 10.x Buster DEBs. EasyOS has also been built with packages compiled from source, using a fork of OpenEmbedded (OE). Currently, the Dunfell release of OE has been used, to compile two sets of binary packages, for x86_64 and aarch64. The latter have been used to build EasyOS for the Raspberry Pi4, and first official release, 2.6.1, was in January 2021. The page that you are reading now has the release notes for EasyOS Dunfell-series on x86_64 PCs, also debuting in 2021. Ongoing development is now focused on the x86_64 Dunfell-series. The last version in the x86_64 Buster-series is 2.6.2, on June 29, 2021, and that is likely to be the end of that series. Releases for the Pi4 Dunfell-series are still planned but very intermittent. The version number is for EasyOS itself, independent of the target hardware; that is, the infrastructure, support-glue, system scripts and system management and configuration applications. The latest version is becoming mature, though Easy is an experimental distribution and some parts are under development and are still considered as beta-quality. However, you will find this distro to be a very pleasant surprise, or so we hope. Read more Also: EasyOS Dunfell-series version 4.2 released

today's leftovers

  • Learn C++ Programming Step by Step – A 20 Day Curriculum!

    Although there are numerous programming languages available in the market to work upon, but C++ has never lost its charm since its inception and still has a strong impact in the development world. As per the reports, C++ comes under a few top programming languages across the world. Alike the C programming language, C++ also makes it easier for you to understand the underlying architecture of programming, although it also supports other additional features such as object-oriented programming, exception handling, etc. Moreover, various IT giants Google, Amazon, Microsoft, etc. offer numerous career opportunities to C++ professionals, hence you’re strongly recommended to give it a try and start to learn C++ Programming.

  • Security by Diversity: Designing Secure, Reliable and Robust Systems

    This is the first in a series of blog posts on Security by Diversity. Here we'll focus on the scaling properties of reliability through diversity. Later blog posts will introduce the business and economic aspects of security through diversity and discuss not only technical security but also how to secure coordination and similar organisational aspects.

  • Firmware updates, part 2: Transporting the update

    This is the second post in a series about doing device firmware updates (DFU) over the air (OTA) and continuous deployment of firmware for embedded devices. We'll explore the different parts of a complete end-to-end system with this capability.

    This post will be about the different networks and how you can manage firmware updates using them.

  • A mystery with Fedora 36, fontconfig, and xterm (and urxvt)

    As of Fedora 36, Fedora changed their default fonts from DejaVu to Noto. This changes what the standard names 'serif', 'sans', and especially 'monospace'. When I upgraded my desktops to Fedora 36, I had a very bad reaction to the 'monospace' change, because the result looks really bad. It turns out that part of the reason that the result looks bad (although not all of it) is specific to xterm, and that is where the mystery comes in.

  • App Rules Are Twisted to Absurdity

    Apple and Google have twisted their decade-old rules for their app stores like a pretzel to the point where they may no longer make sense. This has made buying digital stuff in apps convoluted as heck.

    One example: In theory, although not yet in reality, you can use your Amazon account to buy an e-book from Kindle’s iPhone app. You cannot buy an e-book in the Android version of the app. Until recently, Kindle purchases were effectively a no-go under Apple’s rules but fine under Google’s. Now it’s the opposite.

    Confusing? Yep. Apple and Google have written long, complicated guidelines for apps and have frequently revised those rules to protect their own interests. (I’ve noted before that Apple’s app rules are much longer than the United States Constitution.)

today's howtos

  • Fallocate Command in Linux with 5 Examples

    When you create a new file on your Linux computer, a certain amount of disk space is allocated to the file. Adding new content to this file increases the file size and accordingly, Linux allocates more space to the file. Alternatively, you can use the fallocate command in Linux to preallocate data blocks, which involves allocating the data blocks and marking these data blocks as uninitialized.

  • Linux: ZIP Files and Directories (How To Tutorial) - Linux Stans

    In this tutorial, we’re going to show you how to zip files and directories/folders on Linux. This tutorial will work on most major distros, like Ubuntu, Linux Mint, Fedora, Debian, CentOS, etc. ZIP is a utility used to compress/archive files and directories on Linux. It’s available for most major distros. This tutorial is for the CLI/terminal. All you need is access to the command line and the root/sudo user. If you want to zip/compress something via the GUI (graphical user interface), then just right-click on the files or folders and click on Compress or Archive.

  • How to Install MySQL Community on Debian 11 Bullseye - LinuxCapable

    MySQL is a relational database management system based on SQL (Structured Query Language). It is one of the most widely used database software for several well-known applications. MySQL is used for data warehousing, e-commerce, and logging applications, but its most used feature is a web database storage and management. The following tutorial will teach you how to install MySQL Community on Debian 11 Bullseye using the MySQL official APT repository, which will give you the latest version available on your system using the command line terminal.

  • Install Rocket Chat server on Ubuntu 22.04 using Snap - Linux Shout

    Learn a simple command to install Rocket Chat Server on Ubuntu 22.04 LTS Jammy JellyFish using the command terminal. Rocket.Chat is an open-source platform for team collaboration and communication with live chat, video and audio conferences, file sharing, message translation, and more. With Rocket.Chat, users can use the native iOS apps and Android apps from any device with Internet access, including Windows, Mac, mobile devices, or tablet devices. People widely compare it with Slack and consider it one of the Best Alternatives of it. With the communication platform, employees in the company can chat, exchange files and meet in group chats. This saves mass e-mails to many addressees, as everyone can read along in the group chat and trace the communication. In addition, there is security through end-to-end encryption to keep communication confidential. In addition to pure text messages, video calls are also possible. Facebook, WhatsApp, SMS, and CRM can also be integrated into Rocket.Chat. From the Advanced package, the Rocket chat app even includes video conferencing and helpdesk chat. Users can go their business with the helpdesk chat for customer inquiries on their homepage with the help of omnichannel.

  • How to Install Sysdig on Debian 11 Bullseye - LinuxCapable

    Sysdig is open source, system-level exploration: capture system state and activity from a running Linux-based system such as Debian 11, then save, filter, and analyze that is particularly useful for system analysis, inspection, and debugging, amongst other uses. Sysdig is scriptable in Lua and includes a command-line interface and a powerful interactive UI using the command csysdig that runs in your terminal. The following tutorial will teach you how to install Sysdig on Debian 11 Bullseye using the command line terminal and basic commands for using Sysdig.

Android Leftovers