# How could I have modern computers without GUIs?

Even though text-based terminals still see specialty use cases, modern general-purpose computers generally run graphical software and have a graphical user interface (GUI). This includes everything from low-end cell phones and some computer peripherals like printers, to fairly high-end servers.

I'd like for computers to be roughly on par technically with what we have today, but with user interfaces that are predominantly text-based. It's okay if these computers work with text blocks and things like that (for example, like how the IBM 5250 series of terminals worked), but except for graphically oriented work such as image editing, there should be minimal graphics.

Given that in our world, personal computers started becoming graphical pretty much as soon as they were powerful enough to run a graphical user interface at acceptable speeds, and some even earlier, how can I reasonably explain that GUIs never became mainstream?

Note that these computers need not be expert-only systems; I just want their interfaces to be predominantly text-based rather than predominantly graphical as is the case today in our world.

Also, to clarify, since there seems to be widespread confusion about this: Lack of a graphical user interface does not imply a lack of graphical capability. Take the original IBM PC model 5150 as an example; with the exception of those equipped only with a MDA graphics card, the software running on those often used text-based data entry with graphical visualization modes (what we in modern terms might call more or less accurate "print preview"). For example, something similar to the early versions of Microsoft Word for DOS or how early versions of Lotus 1-2-3 used different graphics cards and monitors to display data and graphs. Instead of thinking "no graphics at all", think "graphics only as add-ons to text, rather than as a primary user interaction element".

And since lots of answers imply that the only alternatives are pure command-line based interfaces and GUIs, let me remind you of tools like Norton Commander. I used Norton Commander back in the late 1980s and early 1990s, and still use look-alikes such as Midnight Commander to this day, and can guarantee that those can provide a perfectly useful environment for file management and launching applications that do not in any way depend on more than a text console. There is even a general term for these; Text-based User Interface, or TUI.

• Comments are not for extended discussion; this conversation has been moved to chat. – Monica Cellio Dec 8 '16 at 2:58
• It is also called "Pseudo-graphical user interface". – Vi. Dec 8 '16 at 13:53
• Actually, many (most?) fairly high-end servers do not run GUIs. GUIs are usually assumed for client systems that connect to servers. Almost every "high-end server" I've worked on in the past 40+ years was minus a GUI. (Note, though, that functions such as X server/X windows or Java RAWT, etc.,are often available from servers, even if the servers themselves might not have native graphics capability.) – user2338816 Dec 9 '16 at 13:19
• – mg30rg Dec 9 '16 at 15:50
• Question seems too specific, so it seems like you're wanting to examine a potential reaction to eventual introduction of GUIs or some related event. One difficulty is that detailed graphics is an almost necessary adjunct to development of many technologies resulting in "modern computers". Engineering diagrams, CAD/CAM, etc., lead naturally to manipulation of graphic elements; and inclusion of those methods in UIs fairly naturally follows. Engineering modern systems is hard. – user2338816 Dec 12 '16 at 2:37

As almost anyone who ever used shell would say, a text based UI is much more comfortable, fast, easy to develop and just BETTER. The big problem, though, is that it's a language you have to know prior to doing anything with your computer. This is the main advantage of a GUI.

So I think what you should consider is a way to explain why computers can always presume that the users "speak their language". I see a few options:

• Computers started out as a very elitist technology, and knowing the language is a kind of status symbol. This would give people the motivation to learn, and developers the motivation not to appeal to less-sophisticated audiences, because that would ruin their brand. soon, the language is just common knowledge.
• The language in the world is in the first place very accurate and structured. There is always exactly one way to say everything. (I think this could be very interesting to develop, but also quite hard)
• The language of the computers either developed very fast or co-evolved with the human understanding of it, i.e. the computers would "learn" a new word, this would be made famous and everyone would know this new word.
• Comments are not for extended discussion; this conversation has been moved to chat. – Monica Cellio Dec 9 '16 at 3:20

One simple change:

Never invent a Computer Mouse

No matter how comforting a graphical user interface (GUI) is, it wouldn't be nearly as comfortable and useful without the invention of the computer mouse (and later touch interfaces).

While text interfaces stem from times and are still designed for use with only/primarily keyboards, you cannot comfortably nor reliably make use of any GUI without having a mouse or any other 'pointer' available to select things and interact with them.

The invention of the computer mouse and thus the pointer brought with it the era of pointy-clicky, a derogative term referring to virtual buttons and interactable areas that are fully virtual as opposed to the hardware reality of a keyboard. Now instead of having to work with a limited set of input functionality the only limit the amount of pixels a display can show (if you abuse scrolling not even the screen-size will be a hindrance for your mad interface experiments).

The combination of mouse/touch and GUI allows to cut away a layer of indirection that will always be around when you have to type in something and confirm your command before anything can happen. Even though you could react to every keystroke directly, there will be a finite set of interactions per program state, while there's a potential unlimited set of interactions that can be made with mouse/touch.

Elaboration on the evolution of your interfaces:

Now even if you do only have an indirect way of interaction, GUIs will eventually emerge. Although your GUIs will be massively different from the GUIs we are used to (and have come to hate love).
The eventual GUIs will be more of a graphically enhanced text interface (GETI) and the graphics will be used to display things such as video, images, make some nice backgrounds or gradients, etc. the classic prompt will be unlikely to disappear.

Eventually it is also likely that voice-input becomes more common. Voice-input will simply be an addition and pseudo-replacement for the keyboard but cannot fully replace it unless voice-processors become way better than they are in our timeline or your software becomes more lenient and outfitted with pseudo-intelligence that can guess what you're intending to do and assist/clarify by asking you additional input when needed.

• Clever but I'm not too sure about this. Touchpads can be made; touch screens can be developed instead; or, at the most basic levels, there can be something like arrow keys to move the cursor and a spacebar to select. I wouldn't say no mice means no interfaces; we would just replace the mice. – Zxyrra Dec 5 '16 at 23:41
• An interface is not just about input, it's also about output. Even without specialized input devices, people will still develop graphs for displaying information. – user2781 Dec 6 '16 at 0:18
• @Zxyrra but what's the impetus to "invent" touch screen? and currently we have a path to touch - Console => Gui => Mouse => Touch... with about 100 revisions of GUI. Hell... look at all the issues there are going from GUI to Touch... I couldn't imagine going from keyboard to touch without the same or worse issues. – WernerCD Dec 6 '16 at 0:44
• My Nintendo 3DS has GUI but no mouse. PS and Xbox all have GUI but no mouse. Mouse is handy for GUIs, especially at PCs. There are however many cases where GUI can work without mouse just fine. The GUIs could look different, but they would still be there. Simply not inventing mouse/touchpad/input device X won't do. – MatthewRock Dec 6 '16 at 10:37
• Our GUI interface archetype is WIMP, which stands for "windows, icon, menus, pointer". It does not require a mouse to move the pointer. There are many WIMP interfaces using keypads or joysticks to move the pointer; and there are WIMP interfaces using lightpens or touchscreens as a direct pointer. The mouse can even be seen as a distraction on the way to "true" pointing using physical touch. It definitely isn't a prerequisite for a GUI. – Graham Dec 6 '16 at 12:32

You could have had a major breakthrough in voice recognition in the early days of the computer. The effect of this could be that interfacing would evolve around using voice and ear, as opposed to eyes and hands.

The added benefit of this is that you can continue using your hands and eyes to perform certain tasks (e.g. you're fixing a car and asking the computer for help in the mean time).

(This in turn means that no effort is put into developing GUI's for computers, but debugging/configuring might be done using a CLI)

• Saw this comment on UX and I think your answer dovetails nicely. ux.stackexchange.com/questions/101990/… – bob0the0mighty Dec 6 '16 at 16:04
• I'm not so sure about that. Voice recognition has most of the disadvantages of CLI, with few of the advantages. The only real advantage you get is when you can't use your hands (or, to some extent, your eyes), or when you can't type very well. You'd pretty much need a fully capable expert system to make voice recognition work better than a GUI or even CLI. – Luaan Dec 6 '16 at 16:36
• This would work well especially if computers could read text at a high level. Think about how futuristic computers were portrayed in "Alien", for example. The captain just wrote out complex questions to it. Star Trek, especially Next Generation, could do a lot just by talking to the computer AI. – Jason K Dec 7 '16 at 4:09
• @Luaan I agree that there are disadvantages, you can't display a nice graph with audio for example. However if voice/ear starts out as the mainstream way of communicating with computers, it could hinder the development of advanced computer screens and the construction of software visualizations, since there is no market for it (yet). – Deruijter Dec 7 '16 at 8:56
• I wasn't even comparing it to GUIs - just trivial CLIs. Even there voice recognition is a loser (again, unless sight/touch are impractical for some reason). GUIs (or "TUIs", if you want to keep them separate) blow it to bits. The most "realistic" approach would be what Jason suggested - if the computer could actually understand arbitrary human speech, it would mostly combine the good parts of CLI, GUI and voice, rather than mostly combining the bad parts of each :) Voice recognition isn't enough - you need expert systems, and flexible ones. – Luaan Dec 7 '16 at 11:50

The affirmation that "modern general-purpose computers generally run graphical software and have a graphical user interface (GUI)" is simply false. The vast majority of servers have no GUI; see "headless server". They live in rows upon rows of racks and can be accessed only over the network. The computers behind search engines, on-line storage services, web-based mail services, enterprise resource planning software, questions and answers boards such as this one, content management systems, the computers providing file, print and streaming services, and in general the computers which serve the interconnected documents forming the world-wide web do not have graphical user interfaces (with, of course, the rare exceptions expected from everything in IT). A better formulation would be "workstations (and gamestations) generally have GUIs"; workstations have generally had GUIs for a very long time. The windowing system in current Linux distribution is based on the X11R6 protocol, first released in 1994.

The first major class of mass-marketed applications which used full-screen graphics were games. Games ran in full screen graphical mode on the ZX Spectrum. The first GUI-based "killer applications" were desktop publishing and pre-press work.

The major problem I see with character-cell interfaces everywhere is multi-language support. A computer which can show very many thousands of different characters on a character-cell display can also show graphics on the same display -- a computer which can show 中华人民共和国 can certainly display graphics. And since it can display graphics, it will display graphics: some young student at a university somewhere will write a graphical interface and game over. Unless...

The only way to preserve character-cell interfaces for the masses is to make them compulsory; suppose that the domination of the computer industry by a big blue three-letter corporation had not been met with anti-trust challenges from the government of the greatest power in the world. Suppose that on the contrary that domination would have been enforced by the powers that be; no such thing as open-source operating systems like UNIX, no such thing as simple-minded operating systems like MS-DOS and the classic Mac OS; all computers run safe, secure and reliable operating systems like OS/360. Wouldn't we all be happy with the character-cell variant of the Common User Architecture?

• Lots of servers run server variants of Windows, and even Windows Server Core has a GUI (it's a very stripped down GUI, and is mostly used for displaying command line windows, but despite what Microsoft calls it, it's still a GUI, not text-based, at heart). Add to this just about every personal computer there is (which will generally run Windows, OS X, or Linux + X one way or another) and consider the computers in routers, microwave ovens, washing machines, cars and whatnot to be not general purpose, and I suspect my statement holds. – user Dec 5 '16 at 21:41
• @MichaelKjörling: A large part of those Windows servers do not even have screens and keyboards attached... That's why Powershell is so much in fashion in the Windows Server world. But yes, RDP is a thing and quite a few Windows-based servers are accessed graphically over RDP. Still, many general-purpose computer do not have any kind of graphics software installed. – AlexP Dec 5 '16 at 22:30
• Arguably, many of those servers are accessed through a GUI: a web browser, whether it's an end user visiting an online store or blog, or an admin accessing an admin control panel. And there's other similar GUIs, all your GUI email apps, your GUI chat apps, your GUI video streaming apps... GUI isn't limited to just locally hosted X11 or Aqua or Windows Shell; the apps within them can present GUIs for remote servers. There will of course be cases where a server really is exclusively accessed by users through text-only means, but headless server does not automatically mean GUI-less. – 8bittree Dec 6 '16 at 16:29
• @MichaelKjörling Nay, that statement doesn't hold. There's pretty well-verified statistics out there on the numbers of computers, personal vs. data-center/server, and how many of those are running Linux vs. Windows vs. Mac OS X vs Solaris vs AIX, etc. And my router is reasonably general-purpose. Sure, it mostly does routing, but it's a Linux device doing various non-router things for me. This is of course moot relative to your question: headless servers may be the majority, but they're a technical niche in many ways, just more numerous. – mtraceur Dec 8 '16 at 7:01
• Servers aren't general-purpose computers – noɥʇʎԀʎzɐɹƆ Dec 11 '16 at 0:00

I think that GUI are so popular because visual learners consists the majority of population. With 2 of every 3 people being visual learners they consist the largest market, same as most things are made for right handed people. If you make Auditory learners the majority of the population, fallowed by kinesthetic with visual learners distant third, the market will adapt and the GUIs will be expensive niche market.

I'm a programmer and I don't like text UI. I know very well how powerfull they are, I learned to be quite good with bash, and use it every day at work to administer our UNIX servers, but if I had choice I would allways choose GUIs. That's how my brain is wired. I learned to use Emacs but I always go for Atom & Visual Studio.

P.S. Image taken from Successfully Using Visual Aids in Your Presentation

• I was going to answer this. Make your language easy to recognize and for computers to understand and voice terminals will be much more prolific from the start of computing. – Jorge Aldo Dec 6 '16 at 6:36
• CLIs fall into the Visual sector of your diagram, the same as GUIs--they're all about the recognition and manipulation of symbols that you see on a screen. If auditory and kinesthetic learners were the vast majority of the population, I could imagine a lot more motivation for the development of voice interfaces and haptic interfaces, but I think a preference for CLIs requires a different explanation. – David K Nov 14 '17 at 23:21

Your world does not have pixel-capable screens. With the components readily available, one could be built only crudely, at impractically large sizes (billboard size or greater), and with large gaps in between the dots. But no hardware or software (ray-tracing, etc) was ever developed that would make good use of this, and no one except maybe sci-fi authors really sees much value in such a thing.

If all you have to make desktop monitors out of is arrays of seven segment displays, then you have a text-based user experience built into the hardware. If the monitors are literally made out of 7-segment displays (or something like them), and particularly if you bring in a historical/legal basis for that, then you don't really need any tortured argument about why they don't just draw pictures on the things, because the capability isn't there.

You can also offer some other side benefits of this that are off-limits to us in the real world. Like having the monitor be just another cheap USB device, or Bluetooth device, with virtually zero power consumption. And you can bring back ASCII art in a big way.

This conception of technology requires a divergence of technological development from the real world somewhere around 1900. Radio is in, television is out. Comic books, dime novels and penny dreadfuls are in, cinema is out. Old-fashioned seismometers and other machines that directly draw on paper are in. The advent of computers still happens, because this was done for reasons of code-breaking and mathematical research (Babbage, Zuse, others). Blinkenlights are in.

Cheap and accessible photography is out; most people can only afford one or two family portraits in their lifetimes, and it's all film based. But for the price, the quality standards are very high, and portraits are typically stereographic (gives more flavor for divergent technological progress).

Printers are very fancy, very cheap (and the ink is even cheaper!!), and very fast, with advanced typography capabilities, and paper is incredibly cheap and easily recycled. Even sophisticated book binding is a standard feature on a very affordable printer.

If you need a "nuclear option", further reinforce suspension of disbelief with copyright law. In your world, equipment manufacturers would be held liable for any device capable of showing a photograph or facsimile of a copyrighted oil painting. (If you go in this direction, have "the Betamax case" occur 100 years earlier, applied to single-frame film photography, and decided more or less in the opposite from real history. The real case was a 5-4 split decision!) Strictly control photography licenses on this basis, further accounting for the high price and therefore rarity and superior, exalted quality of photographs.

For all these reasons, no one has much motivation to develop technology capable of showing pictures, and the work it would take to match the analog capabilities with any digital graphical system would be far too high for amateurs to mount a successful attempt. Even serious efforts with serious budget would be perceived as crude toy projects, or worse, as illicit subterfuge, without any legitimate practical use.

All these background factors will hopefully reinforce the divergence away from pixel graphics and create a huge barrier to introducing it into your world. ("Such a monitor would require way too much power!" "Stereoscopy would be next to impossible!" "You would have to upset 100+ years of copyright law and legal precedent!" "Even simple line art would look like garbage!")

"There's way too much information to decode the Matrix. You get used to it, though. Your brain does the translating. I don't even see the code. All I see is blonde, brunette, redhead. Hey uh, you want a drink?"

• There is a variant of the 7-segment display called the 14 segment display that can display the full Latin alphabet. – Stig Hemmer Dec 6 '16 at 8:24
• While most CRTs project a spot, it's possible to have the beam project other shapes, and some early displays for things like air traffic control displayed alphanumerics by selecting letter-shapes for the beams and flashing them at the required location. Such an approach would probably not require turning the beam on and off as quickly as would be necessary with a raster display. – supercat Dec 7 '16 at 17:44
• -1 This proposal is simply not technically plausible - for example if "Cheap and accessible photography is out" then so is making integrated circuits via photolithography, which means that "computers" are stuck in the discrete component stone age. In similar ways, the whole dense-pixels-can't-be-done idea is entirely incompatible with anything approaching the computational density found in our world; if pixels are huge, then so are logic elements. – Chris Stratton Dec 9 '16 at 4:26
• @ChrisStratton "with the components readily available". I only propose that certain things that could have been done, were not done. – wberry Dec 9 '16 at 23:17
• The problem is that you are also proposing things that essentially require as supporting technologies the very things you propose didn't happen. You can have nobody choose to look at the equivalent of a display, but you'll have the technology to build them. – Chris Stratton Dec 10 '16 at 6:25

Make porn and video games not a thing.

Now who cares to make computers handle more graphics? Good luck on getting people to believe it.

Make mobile computers useful/desirable earlier.

If we had hand held computers that could do something useful or cool before anyone had gotten graphics running, or when graphics would have been battery prohibitive, text only could have become the standard way everyone uses computers.

Make programming much more popular

If most people write at least some of the programs they use and text is the (easiest) way to interact with them text will be popular. This could happen if copyright got out of control or people lost trust in distributed programs.

Make illiteracy or functional illiteracy a bigger issue.

You don't want to look like the only guy at the meeting who needs pictures, and you really don't want to imply you boss can't read.

• I'm still waiting for internet historians to validate me, but I am 100% convinced that web browser graphics are driven solely by porn. – kingledion Dec 5 '16 at 21:09
• @kingledion I thought they were all about mosaics? – dot_Sp0T Dec 5 '16 at 21:23
• I present to you: AAlib. – Mark Dec 5 '16 at 22:51
• @kingledion Mozilla's image rendering library was named libpr0n and its main goal was "to render pornographic images in an efficient way." (Yes, that site is a joke by one of the developers but the library really was named that. It was renamed in 2011) – oals Dec 6 '16 at 13:36
• @oals I clicked that link at work and now I think I'm going to be fired. – kingledion Dec 6 '16 at 14:11

I'm surprised so few people have touched on the possible cultural motivators that would limit/prevent the development of GUIs.

My first thought was (no pun intended), "iconoclasm".

In a world where iconoclastic religion holds sway, people will believe that GUIs are evil and/or degenerate. Words are important; unnecessary representation of things are an affront to God.

@Dotan Reis's idea regarding elitism has real potential too. If the early computer users were both rich AND smart, then a personality cult of computer-elitism would lead people to only ever want to use text-based interfaces.

• This is a much stronger motivator for avoiding GUIs than any technical limitation. – barbecue Dec 8 '16 at 20:44
• Iconoclasm powers editor wars. – noɥʇʎԀʎzɐɹƆ Dec 11 '16 at 0:04
• Actually that makes sense. If in Germany games are being censored not to show some WW2 figures, Facebook censored Swedish gov video concerning breast cancer, so a developer in iconoclastic society would really be overcareful, not to have his program classified as only for adults. – Shadow1024 Jun 21 '17 at 14:01
• Stop the push to put a computer on every desk; TUIs can be used by experts, but GUIs were all but required to make the jump from "specialist equipment" to "general use equipment."
• Never see a capitalist-driven push to create a consumer workstation market (TUIs work for trained professionals, and don't demand a GUI)
• Increase the culture of elitism towards computers; it has forever been a trend (although diminishing as time goes on) with computer/IT people to prefer more difficult means to prove oneself; many IT guys today "prefer" Linux, but can't provide a non-cardboard-cutout argument as to why. Command Line/Terminal being the same deal.
• Hamstring the display market. Keep monitors primitive, mono-colored.
• Introduce a terrible executed marketing ploy for GUIs; turn the consumers and market off the idea
• Have major OS creators/communities view GUIs as inefficient and ineffective. More elitism.

...Basically kill the capitalist market drive, and introduce bad press and elitism to run GUIs away.

• But terminals are better, they're closer to the software and often provide access to more functionality easier than a GUI does – dot_Sp0T Dec 5 '16 at 20:55
• @dot_Sp0T TUIs will always require a steeper learning curve and make features and functionality less obvious. They're less inviting to new users, require more investment, and are less intuitive. Those are the reasons GUIs took over. Also a big reason why touch controls on mobile devices took over. TUIs aren't better than GUIs, but GUIs also aren't better than TUIs. Which to use depends on the environment, the user, the technology, and the culture. – Ranger Dec 5 '16 at 20:58
• This answer is absolutely biased and not based in fact. text based interfaces are demonstrably better for a lot of tasks then graphical ones. Composeability and automation are not given with GUis, yet come naturally to text-based UIs. GUis are the more accessible tools, but certainly not the more useful or more powerful tools. – Polygnome Dec 6 '16 at 0:09
• There is nothing "more difficult" about linux (their are many versions of linux and I can't speak for all of them), it is a simple and effective OS. If I was selecting an OS for someone with no computer knowledge then linux mint would be a good choice because of its tendency to carry on working once set up. (setting up quite simple) Linux tends to make it easier to add your own code to the OS and do certain advanced actions that are not available on other systems. That's why many experts use it. Its just not what your used to. – Donald Hobson Dec 6 '16 at 1:24
• @DonaldHobson I didn't mention any OS specifically, and yes I agree that multiple distros of Linux with GUIs make great, user-friendly OSes. On the other hand I wouldn't hand a terminal-only distro like Linux Arch to your average stay-at-home-parent and expect them to enjoy their experience. – Ranger Dec 6 '16 at 4:16

Search, don't sort.

Apple implemented similar features in Vanilla OSX at a similar time.

No more clicking through sub folders trying to remember where you stored something. Simply remember some fact about it: Words in the title, words in the content, last modified date. Enter some of those parameters as a search, and the file appears instantly.

In terms of what you could do to move from "we don't use GUIs much" to "we don't use GUIs", either improve A.I. search capabilities, or send Microsoft bankrupt.

With MS out of the way, your computer's GUI would look like the Google home page. Blank white space, a single text box for input. At that point, it's not really a GUI any more.

• But if you have more than one file matching the criteria, you need a GUI to select the one you want. But suppose you find your holiday photos OK. Now how do you edit them without a GUI? How about spreadsheets and word processors? I'm old enough to have used spreadsheets and word processors before there were mouse-based interfaces, and there's a good reason WYSIWYG editing killed non-WYSIWYG - if you care what your document looks like, going round the loop of "render, not quite what I wanted, render again, too far, render again" is a painful waste of time. – Graham Dec 6 '16 at 12:44
• @Graham it seems you never used latex before. Photo editing will be painful though – Cem Kalyoncu Dec 6 '16 at 19:59
• @Graham unfortunately, LaTeX's rendering loops are sometimes quite annoying, but for many types of document it's still by far more efficient than anything you could do with WYSIWYG, especially if you're concerned with accurate design. — A spreadsheet is just a poor man's replacement for a proper data language. — With multimedia manipulation you're undeniably right, you don't get around a GUI... though even here there's a certain trend towards text-based editing, with ever more scripting capabilities built into CADs/NLEs/DAWs and even some innovative pure graphics programming languages. – leftaroundabout Dec 6 '16 at 21:27
• re: spreadsheets - it's the same situation as with OS - kill off MS and the competitors will succeed with something more practical but less pretty. Wolfram in this case. – Scott Dec 6 '16 at 22:58
• @barbecue maybe I didn't make my point clear enough. Yes, the Google Homepage is a GUI. It's a textbox and a button. But you could literally replace it with a command line text user interface and it would be exactly the same. It doesn't need to be a GUI, and doesn't use any features that a GUI is good at that a TUI isn't – Scott Dec 9 '16 at 2:01

An important thing to consider here is that once you've gotten past the steeper learning curve, working with text-based input is frequently much easier than using a GUI.

An example: Suppose I have a directory containing a few thousand files, scattered across various subdirectories. I want to sort them out into separate directories based on various criteria. Let's say I want to move all the files starting with "foo-" and ending in ".log" that were created in the last day.

In a GUI, the most efficient way I can do that is probably to sort the files by file extension, then go into each subdirectory, find the block of files starting in "foo-" and ending in ".log", then right click on each individually, open up properties, check the modified date, then drag it into the new directory if it was modified in the last day. Then I move to the next file and do the same thing. And hope I don't make any mistakes while manually doing this a few hundred times. And in practice, if all I have is a GUI, I'm just not going to reorganize those files because there's no way I'm going through all that.

With a command line, I type find ! -type d -name 'foo-*.log' -mtime -1 -exec mv '{}' 'other_directory/{}' + and I'm done in 5 seconds. And in practice, it takes about 5 minutes because I don't use the -mtime argument that often and I need to look it up in the manual real quick (which consists of typing man find, then /modified to find the right section).

For most tasks, the difference isn't quite that extreme, but the command line is almost always the more powerful option. The command line version certainly looks more complicated (and to be fair, it is), but once I learn it, I can get things done so much faster than I could otherwise. Aside from my web browser, the only reason I use a GUI at work is so I can keep multiple terminals on the screen at the same time. Unless the task is specifically graphical in nature, a GUI just feels like a toy to me.

Now consider your requirement that the systems not be "Expert-only". I won't deny that right now, proficiency with the command line is generally expert-only, but think about average difference in computer literacy between a 14 year old and a 74 year old. The adult has had just as much time to learn the skills, and yet they struggle with it. But the kid grew up with this stuff and finds that it comes naturally. If you create a society in which most people learn how to use a command line as an "Experts-only" skill, then in a generation or two, it'll just be another trivial skill that everyone learned as a kid.

Edit: A couple people have mentioned GUIs that can filter files according to modification date, so here's a slightly more complicated example. This will sort all .log files into directories of the form 'logs/2017-05-20/' based on their modification time, creating the directories as needed.

find ! -type d -name '*.log' -exec bash -c \
"export DIR=\$(date +logs/%F -d\$(stat -c @%Y '{}')); mkdir -p \$DIR; mv '{}' \$DIR/\$(basename '{}')" \;  • I think your case is example of bad GUI [bad for specific task], not of command line superiority. I could do your kind copying in Windows Commander GUI easily in 10 seconds. – Arvo Dec 7 '16 at 8:38 • The example is a bad one even using basic Windows. Open Explorer. Go to the directory you want to search. Type "foo*.log" in the search box. It will give you the option to add a search modifier, one of them the last time the file was modified, and you can select a date range. The results will show up, and you can drag and drop them all to whatever folder you want. – Keith Morrison Nov 21 '17 at 20:21 Just a little suggestion: You might also want the data entry keyboard to be totally different. The guy who is most responsible for the GUIs and mouse we used today, Douglas Engelbart, had originally developed a chord based input system where instead of having buttons for every letter the user had a single handed keyboard that used combinations to create letter - like chords on a guitar. It's worth looking into. • How would this stop GUIs developing? If anything, having a spare hand would seem to make a GUI more likely to evolve, because users wouldn't have the useability issue we all share of having to move one hand between the keyboard and mouse. – Graham Dec 6 '16 at 12:36 • @Graham it would make text-based input continue naturally into the mobile age. If everyone had a bluethooth keyboard-glove on all the time, a terminal would be the most effective way of interacting with your phone. (FWIW, I'm typing this from a 10-finger keyboard, using vimperator to compensate for the problems of Firefox being GUI based...) – leftaroundabout Dec 6 '16 at 21:12 • I didn't mean to imply that a cord-based keyboard would prevent the development of a GUI interface. I think that is inevitable but I thought the cord-base keyboad was different enough without being too radical to fit an alternative universe as described the poster. – RMH Dec 7 '16 at 14:25 • @Graham You might be referencing this, but that was the original plan - one hand on the keyboard and one hand on the mouse at all times. Mouse for navigating, keyboard for data entry. – TessellatingHeckler Dec 7 '16 at 18:56 • @TessellatingHeckler Yeah, that's the idea. There's a reason fast jets use HOTAS - it's simply the best ergonomics. The same principle for computer use is definitely an advance. Unfortunately we have always had a large user base with QWERTY keyboards (or AZERTY or whatever local variant) which made this impractical. As always, there needs to be a strong reason to change an established user base. The mouse was simply a better way to move a pointer than cursor keys, and better for fine control than a joystick. The chording keyboard didn't have enough incentive to displace QWERTY though. – Graham Dec 8 '16 at 11:23 There are a few general ways to make modern computers that are not GUI intensive. Change Computer History: This is somewhat of an obvious choice, because there were a few big pushes in computing that made the GUI happen. On our own planet Earth, computers became huge in the countries that won WWII and the cold war, A.K.A. Britain and America. This connects to a recent network question, "Why are all coding languages in English?". So, what's important about that? Well, America is a capitalist country, every company that hopped on the computer bandwagon created their own coding language. Just think about today, we have Haskell, C, C++, C#, Java, etc. For command line we have the Cmd on Windows, and terminal for Linux and Apple. But what if the government got more involved. In 1965, America passes a bill that makes one American coding language, which will be used in all programming and command line. It will be developed in a similar project to the Manhattan Project, drafting the best minds in computer science, who all have to work together. All of a sudden, a huge barrier to entry is diminished, people only have to learn one new computer language instead of seven. The government also decides that they want the most powerful computers possible to run missile guidance systems, nuclear subs, etc. They don't have time for fancy stuff like graphics. The drive for "a computer on every desk", never happens, instead the government puts a computer in every school for kids to learn. Now those kids grow up and buy their own computers, using nothing but command line. Eventually, the technology is released to the public and a new company makes the GUI, but no one cares about that fluff, as it is in an alpha stage and is pretty crappy. It is seen as a dumb luxury like VR in the 90's and won't take off for at least another few decades, if ever. Limit Computing: As mentioned in another answer, the internet rules much of our life. And when bandwidth was low in the 90's we didn't send sweet memes, we sent ascii, or just words. If the bandwidth is limited, all of a sudden, images go away, the internet is text-based. Now, if you take away non-connected desktop, the government says all computers must be linked to the net at all times, there is no longer personal computing, the biggest factor is bandwidth. If bandwidth is limited, no GUI. Limit People: Not a great option, but if people are blind, GUI is unimportant. If people are colorblind, people don't like the way the GUI looks. It cannot convey as much meaning, so it isn't used. If people have no hands to use it, then they have to use voice dictation instead. In these cases, GUI is never bothered with. • "In 1965, America passes a bill that makes one American coding language, which will be used in all programming" That reminds me of COBOL ("created as part of a US Department of Defense effort to create a portable programming language for data processing") or Ada ("originally designed by a team led by Jean Ichbiah of CII Honeywell Bull under contract to the United States Department of Defense (DoD) from 1977 to 1983 to supersede over 450 programming languages used by the DoD at that time.") – user Dec 6 '16 at 15:29 • – user Dec 6 '16 at 15:31 • +1 for what I think is the key: early education. Imagine if instead of lessons in middle school on how to make PowerPoint slides, you got lessons on solving various problems using a Linux/Unix-like terminal/shell environment. GUIs would still happen, but the average person would grow up content never making the jump into GUIs, finding it very odd/unintuitive, the reverse of what we have now. – mtraceur Dec 8 '16 at 7:06 • Your analogy with programming languages is slightly flawed. "Terminal" is just a GUI frontend to whatever command shell you have set as your default. The shells themselves would be analogous with programming languages. So, sh, bash, dash, ksh, csh, tcsh, zsh, just to name the common ones. And the MS world has cmd.exe, command.com, and Powershell. – Ray Dec 8 '16 at 23:23 • @Luaan - You are quite right! That is why the free market sells so many computers with GUI. I love my GUI. But, while you can argue that CLI is also a type of GUI, it is minimalist. And regardless of the truth behind many computer scientist's opinions, the perception is there! If some government had the same perception, then they might impose such laws as to ban wasteful, extravagant GUI, and push CLI instead. It's a way alternate history works, as long as there is a perception, there is a possibility, even if it isn't what happened. – EvSunWoodard Dec 12 '16 at 16:39 Well, you kind of kill it when you say that Norton Commander, Emacs, vi and friends don't count as GUI. At that point, there's hardly anything left that does count as GUI, perhaps just the visual fluff you get from high-resolution (e.g. more than 80x25 and such) displays. So, let's assume that's exactly what you mean. No fluff. Why do we get so much fluff? When it first comes, it has a certain novelty aspect. But that wears of rather quickly, and is actually quite discouraging to many users. Just look at all those examples like rounded corners, gloss, transparent windows and similar - you show them off for a generation or two, just to flex your muscles in front of a crowd of fawning fanboys, they get copied all over and used in all the wrong applications, and then the novelty wears off, and the fashion changes. Look at Windows 10 compared to Vista (all that gloss and transparency!), XP (rounded everything!). Windows 9/10 design is simple, clean, unobtrusive; a nice show of what remains when you get rid of the fluff. So why do the graphics remain, rather than going back to text interfaces? The answer is actually quite simple - it makes a lot of complicated problems easier. Mind you, I'm not saying it's a panacea. It isn't. Text interfaces still have plenty of benefits: • Friendlier for remote terminals • Easier human auditing, with easy logging of everything that happens at the terminal • Easier showing of history in general • Easier composition of text-only applications (though this fades when any sort of "GUI" enters the equation, even in text-mode) Now, of course, graphics had a head-start in applications that were, well, graphical. Computer-aided design. Publishing. It's not really a long list. Even today, some people can't stomach using a graphical interface for things as complicated as DTP - at best, they have a graphical window into what the layout is going to look like on paper (or what have you), while they do the actual editing in something like TeX, or even MarkDown or (gasp!) HTML. Why did graphics win on the desktop in general? As noted before, text-mode applications still had great "GUIs", you still had full-blown integrated environments with all the cool things true GUIs give you, like keyboard shortcuts, menus, mouse control, hinting, all the nice discoverability. Exactly because of those advanced users that everyone here is calling to the rescue. Why? Because there was no compatibility anywhere. Everyone did text-based applications their way. Even attempts at standardisation like POSIX, or even MS-DOS (which was designed to be quite a bit different than it actually turned out, mostly for - guess what - compatibility with IBM DOS, which got released slightly earlier) mostly failed. Even at the IBM PC (and its clones), where Microsoft quickly gained dominance, every application had its own idea about what commands should be named, what actions should do what, how to format their input and output data. Nobody tried to make common interfaces, formats. There was just endless arguments about who was better. There was no end in sight. And then Xerox came with their revolutionary PARC. Now, mind you, this was tons of things that were utterly impractical when the research teams actually designed them. There were no computers powerful enough to run their systems, while also being anything close to affordable by any family, or really even corporations. But computers got powerful quickly, and everyone went to the well. Atari, Amiga, Apple, Microsoft - everyone adopted the same basic paradigms. Everyone also added some of their own, but those were also quickly spread in the new world - a world of inter-operation and compatibility. In no small part because the ones who cared about compatibility started winning. MS-DOS wasn't the best OS, not by far. Unless you cared about the fact that it run pretty much everything. You could take your applications from Dr-DOS, IBM DOS, and a few dozen other Something-DOSes and OSes, and run them on MS-DOS. Which OS do you buy? The one that has you locked-in to a couple of software packages, or the one that gives you pretty much all of them? Which OS do you design software for? Windows weren't the first graphical OS, but that didn't matter anymore. The drive for compatibility was already there, and in full blow. Use a mouse to point at a button, press the mouse button, action happens. Every application on every system behaved the same. You had windows, you had buttons, you had scrollbars and menus - and there was a lot of pressure to unify their behaviour as much as reasonable, while still appearing somewhat different. And even when platforms differed (slightly), two applications on the same platform never did - something Linux still struggles with to this very day, with the misguided idea that it's the application, that should pick the GUI, rather than the user. What did "advanced" users do? They utterly and entirely ignored it, happy with their proprietary (funny, eh? :)) and incompatible CLIs. Advanced users are a lot more invested in their platform, simply because the invested so much time an effort in becoming proficient in that one platform. Advanced users are the bane of progress. So the solution isn't to make everyone an advanced user, quite the opposite. Expect no effort from your users. Start with environments that try to standardise their interfaces - use the same keyboard shortcuts, naming conventions, formats. Think about accessibility, not just efficiency. Sure, ls is fine if you have a horrible keyboard or you can't type very well - but list is a hell of a lot more accessible. Use aliases if you need to, but even those should be conforming with other systems - you're not going to keep carrying your aliases over to other computers you need to use; just stick to defaults. Kick out anyone who doesn't play nice. Get rid of the hipsters, who not only can't recognise progress - they sneer at the very idea of progress. A nice, compatible and mostly standardised interface will give you the inertia you need. Applications like Norton Commander, not command-line ls. Applications like Turbo Pascal, not vi. Search by wildcard, not regular expressions (but feel free to keep the advanced option!). Sort "by human", not "by computer" - Folder 100 should never end up in sort order between Folder 2 and Folder, deal with it. Learn everything the graphical OSes did right, and use it too. Don't consider remote terminals too much, even smart terminals - you'd never get a real interactive applications there - bandwidth is less of an issue than in a graphical application, but latency is just as horrible; in some cases even more so. Standardise rich terminals, streaming-text-only isn't good enough by far, and neither is just text positioning on a fixed background. Make it real smart, like what true GUIs managed to do. Keep focus on freely integrated systems, rather than large proprietary bags of tricks (and no, keeping it "FSF" or "OSS" doesn't make it any less of a "large proprietary bag of tricks"). Have developers all over the world coöperate on what they're doing, rather than competing purely out of spite and other misguided initiatives. Find ways to engage users, improve their productivity, instead of arbitrarily introducing differences just to make conversion harder. Instead of ten competing packages "of everything", modularize - give users easy way to make choices without making things appear too complex. Remember how Turbo Pascal, despite being an IDE, actually allowed you to plug-in a custom linker, compiler, debugger...? Encourage that model. The company that's great at writing compilers isn't necessarily the best at linkers. Introduce productivity and discoverability features like auto-completion that mostly had to wait for GUIs in our history. Does that leave us with all the problems solved? Almost. There are still things that graphics just does better. Layouting is much easier with higher resolution, resolution-agnostic design is much easier with higher resolution. Allow improvements over the text-mode ideal - for example, allow combining multiple "tile" sizes on one screen, so that you can e.g. have text written "as-if-in-80x25", while allowing other elements to be "as-if-in-80-40". Allow graphical elements to be included in a text-mode application - so that you don't have to keep changing the whole screen just to have a WYSIWYG look at your document, or to show graphs inside of a spreadsheet. This is the truly complicated part - at some point, it becomes harder to justify that having two ways of doing fundamentally the same thing is a good thing; why have "hybrid" rendering on a Haswell machine, when you can render everything in graphics mode just as quickly, while keeping things simpler and prettier? Use accessories that can exploit extremely cheap low-resolution displays to keep better track of your whole system - or even give you cool graphical "pretend" interface in a similar way those Nintendo Mini-arcades had, without giving up on the benefits of text-mode? • To be fair, emacs -nw is pretty definitely not a GUI, but a TUI. And many TUIs that process mice only do so because they, and terminals that allow the underlying program to interface with them, are widespread in our world. If systems never went fuily-GUI, it would be reasonable to suppose that such support would either not exist, or be an after-thought, or just be unused by most users. – mtraceur Dec 8 '16 at 7:25 • Anyway, despite disagreeing on a few points and nuances, I +1'ed this. I think you touch on several good points about why GUIs developed how they did, what role the drive for consistency played, and some of the reasons why advanced users can be (though I wouldn't agree with "are") impediments to some forms of progress. – mtraceur Dec 8 '16 at 7:35 • Why do you think mouse support is trivial? Do you know how the TTY/PTY (teletype/pseudo-teletype) subsystem in most operating systems works? If I write a relatively flexible TUI and the user runs it in their shell in their terminal, there's no guarantee at all that I'll even have any indication of what the mouse is doing - unless the terminal converts mouse interactions into escape codes or there's another non-standard API for accessing them from the terminal slave side. For the terminal environment, mouse support is a tacked-on afterthought kludge. – mtraceur Dec 12 '16 at 7:21 • Tangentially, however, I concede that many modern TUIs have approached GUIs in flexibility and functionality, so in some functional sense, it's fair to concede that point. For instance, I'd describe irssi, a TUI IRC client (as far as I'm aware, no mouse support to speak of), as being functionally comparable to any GUI IRC client, minus skin-deep features like mouse-support. So you do have somewhat of a point there. – mtraceur Dec 12 '16 at 7:27 • @mtraceur Well, that was always a problem of unix-like systems. It was never a problem of DOS, OS/2, Atari... because they didn't stick to the idea that you're controlling your system through teletype (a tech older than a hundred years now!). That's why I noted that advanced users can hold progress back - because they have a much bigger investment in what they've already learned, and shun new approaches to doing the same thing, just because it would make the investment a waste (to some extent). There's so many things already working with TTY that the inertia was too great. Not so on DOS :) – Luaan Dec 12 '16 at 11:19 Your link gives a clue: The Xerox Alto systems, because of their power and graphics, were used for a variety of research purposes in to the fields of human-computer interaction and computer usage. They built a GUI that is recognisable as the concepts still used today, and then researched human-computer interaction, which presumably just refined the ideas already raised, but more cynically may have justified the preconceived notions. An early “bright idea” got funded, and directly inspired the major GUIs that appeared in consumer products. Arguably, the ideas were ahead of the hardware and early implementations were inferior to what might have been. If some different “bright idea” got researched, studied, and refined in the early days before commercial products, we might have gone a different route. In fact, a paradigm that was not so graphics intensive might have done better, sooner, before machines got powerful enough for the GUI to really be practical. Then, if the general public had caught on to concepts that transcended “direct manipulation” and “what you see is what you get (what you see is all you got)” like was felt by the experts, then even when things got prettier the notions of direct manipulation (only) might not make the same inroads. It would be cool to know what concepts / manipulation paradigm might have been developed that would be better than a plain CLI. Amazon Echo, Alexa, et al, are computers without a GUI. Heck, I even say OK Google to my phone to get it to do stuff like text my friend (Funny story: No matter what I said to my first cell phone with speech recognition, it always misinterpreted it..."Call mom", "Calling Brian". "Call Neil", "Calling Brian".) I predict that in 10 years we won't interact with a GUI as much as we talk to it or use "texting" (eg natural typing) for those times when talking would be rude (such as on a plane) • Now try editing your photos using "OK Google". Not going to work. Voice recognition is nice as an input device, but that's all it is. If you need output from the computer - whether that's a list of things it's found, pictures or whatever - then you need a GUI of some kind. – Graham Dec 6 '16 at 12:47 • @Graham I can tell you have never used a good TUI. You definitely don't need "a GUI of some kind" to get output from the computer. Check out for example Microsoft Works for DOS or Microsoft Word (available for DOS) or Norton Commander for DOS or PC Tools for DOS (also) or any number of TUI products. – user Dec 6 '16 at 13:40 • @MichaelKjörling My first DOS word processor was Word Perfect. Much better than Word at the time. :) I take your point that a text-based interface is possible to some extent - but only to some extent, and only for limited applications, and with greatly limited useability. Word Perfect's far-too-late entry into WYSIWYG was the direct cause of its failure. – Graham Dec 6 '16 at 15:46 • I worked with developmentally disabled people for ~20 years. Its amazing when you see someone blind from birth navigating a gui better than you. Our interfaces for the blind are afterthoughts. Imagine if we had developed those interfaces first and developed GUIs as an afterthought. (Although, since humans are primarily visual I would never find a world without GUIs as believable.) – Tim Dec 6 '16 at 16:12 • @AllOfYou - The OP asked how to make GUIs secondary, not non-existent. Obviously a GUI is easiest when editing graphics/photos (tough for Sports Illustrated to increase a model's bust with only text/speech). And obviously a TUI is easiest when doing highly repetitious tasks (like .BATch files or .PS1 scripts). Even in today's GUI dominated world a CLI can be quite useful and (frankly) preferable to an old DOS guy like me. A keyboard and mouse is really meant for someone with 3 hands IMO. Its a terrible interface, but slightly better than hitting tab 37 times to select the element I desire. – Tim Dec 12 '16 at 15:56 Have everyone in your world have bad to zero eye vision! This will enforce the need for screen readers. Screen readers with GUIs are a real pain. It is much easier to only read text than describe a window for example. Maybe this will have some more implications on your world, but it is definitely doable. • Or the person/group that invented computers were blind. They invented the computer as a way of giving blind people an easier environment to work from and then "see-ers " caught on to how useful computers could be. – josh Dec 6 '16 at 10:36 pre-1988: Xerox hires a brilliant legal team 1988: Apple files suit against Microsoft, and Xerox against Apple, same as real timeline. Then a lot happens in 1989-1990: Xerox wins or settles to their advantage, the patent infringement case against Apple. Then they join as plaintiff in the Apple-Microsoft look and feel case and win that too. [in the real timeline, Microsoft won the look-and-feel case in 1994, and Xerox lost theirs] Additional Lawsuits related to Americans with Disabilities Act (ADA) infringement issues. Companies that developed early GUIs without accessibility features or automation capabilities settle or are found liable. Xerox escapes liability because their GUI never left the lab, and their legal team is awesome. Apple and Microsoft are liable for civil damages despite losing IP rights to Xerox. [in the real timeline, ADA rules have no teeth until 20+ years later] New government regulations, riding on public opinion in support of the ADA requirements, make accessibility and automation capabilities mandatory on all software, and introduce federal education funding and standards for text-based computer literacy in the USA, quickly cloned in Japan and Europe. Apple re-brands the MacIntosh as a toy and pulls out of the educational market. Microsoft delays the launch of Windows 3.0 to remove features that infringed on Xerox's patents and add ADA compliance features. The resulting product is late, unusable, has no ecosystem support, a total flop which burns consumers and investors. On Linux, X11R6 development stops for lack of volunteers and although you can find early versions, they have become illegal for lack of accessibility features and unmaintained (like DeCSS is today). 1992: IBM launches OS/2 and nobody notices. Same as real time-line Finally, by 1995 GUIs are both academically and commercially dead: Apple pivots to voice control as they continue to be a leader in User Experience, to compete against text interfaces. Microsoft recovers from the Windows 3.0 fiasco by investing on a 32-bit version of MS-DOS to compete against a now GUI-less Linux. GUI experience is now hazardous to your resume. Venture capital and research funding for GUIs dries up, like an extended version of AI Winter. Tim Berners-Lee decides to focus on creating a free version of Gopher, abandoning work on HTTP/1.1 and X-Mosaic, so a GUI-based Internet never materializes. Xerox kills all GUI research and never launches a product. They retain all patents even during bankruptcy, preventing others from launching a product. So in this timeline there is a roughly 10-year period between 1985 and 1995 where GUIs struggle to gain popularity and ultimately fail on multiple fronts, a full 20 years before "modern general-purpose computers" come along. • Linux wasn't a significant player in the desktop market even by the early 2000s; I started using Linux myself around '00-'01 (I distinctly recall using it in mid-2001) and while at that point the kernel was stable, the GUI was very rough around the edges. OS/2 1.0 was completely text-based (the first GUI was added in 1.1, and what you might call a modern GUI only appeared in 2.0). Apple's background at the time was in text-based interfaces (Apple II, anyone?). Windows 2.x was practically useful at least as an environment to develop against, but perhaps not as a stand-alone environment. Etc. – user Dec 6 '16 at 13:32 • In this alternate timeline, Linux becomes popular enough to get Microsoft's attention. – Alex R Dec 7 '16 at 1:35 • @MichaelKjörling Oh, I remember that so well. I've had to write my own drivers for almost everything - the mouse, the display driver, the network card... ugh. And the "reward" was X Window with horrible text rendering and barely working at all. Quite a cold shower after using Windows 3.11 and 98. And Microsoft was extremely savvy when they designed Windows to be embedded (that is, you could write Windows applications and sell them self-contained to people who didn't have Windows) - it wasn't really until Windows 3.X that really got people to use Windows as an interface of itself. – Luaan Dec 12 '16 at 12:05 • Well, Linux (and other unix-like systems) got plenty of Microsoft's attention in our timeline as well, multiple times. It just never really paid off - we'll see how their latest attempt fares :) – Luaan Dec 12 '16 at 12:06 How about an option that relies neither on crippling your people, nor on them consistently being irrational and/or unimaginative? ## Make the displays expensive. If a live (that is, displaying data as that data is created) graphics-capable monitor or a projector costs as much as a car or even a house, most families aren't going to be buying one. But businesses and governments could afford to purchase some that their artists, designers, engineers, and scientists can use to work with. Most people would be stuck with printers, or possibly character displays possibly made using relatively inexpensive technologies such as flip-dot (or flip-segment), LED segments, or nixie tubes that, at least in your world, are unable to be shrunken down enough to make a useful desktop graphics display, but are sufficiently compact for a workable desktop character display. This does, unfortunately, mean that live television is likely to never become mainstream. Movies however, should be fine, possibly even at home. Rather than showing them on a real-time graphics display like we do in the real world these days, just use a projector and film. The key characteristics of film being that displaying it is simple: just shine a bright white light through it with a lens to focus it, and that it lacks a fast write to read turnaround time, so it's unsuitable for live graphics. Television may end up more like an audio-visual newspaper or magazine subscription, with film delivered to your door on a regular basis, rather than a live broadcast. For those wanting a print preview in their home, simply add an extra cartridge (or several, for colors) to printers, filled with dry erase ink. Bundle in some laminated paper, and there you go: print a preview with the erasable ink onto the laminated paper, look it over, then print the final result on regular paper with permanent ink while erasing the preview paper for reuse later. • The reason early PCs came with text-only monitors as standard issue was that MEMORY was expensive. You need memory to display anything on a raster CRT or also LCD display device unless the software is willing to constantly re-calculate the image. While a 25x80 character page of text fits a 2kbyte (or 4 kbyte with primary colors/underline/...) memory, a 720x384 pixel black and white image already needed almost 40 kilobytes! Given that 32-640 kilobytes were considered appropriate sizes for the main memory of a desktop computer in these days due to cost... – rackandboneman Dec 7 '16 at 8:57 • @rackandboneman Right we did have television back then, too, but making memory expensive would hamstring the computers themselves. Better to make something exclusive to the monitors expensive rather than something used by both. – 8bittree Dec 7 '16 at 12:47 • Even storing TV images was a horribly expensive and complicated business in the 50s and earlier. Video recorders sized like a big stove :) And that would be a really cumbersome kind of memory to use for computer output. The other alternative (and it WAS used in the 1960s and 1970s for computer graphics): Expensive, difficult to build and maintain CRTs (google DVBST CRT if you care) that you could literally tell to keep the image once written (needs to be completely rewritten to erase anything!). That technology is near extinct except for older oscilloscopes still in use. – rackandboneman Dec 8 '16 at 7:36 • @rackandboneman My point was that making memory expensive makes computers expensive which appears to be against the OP's wishes. Remember, this is world building, so we're trying to build a world that isn't necessarily identical to ours. I'm suggesting that the OP make things which are needed by the monitors, but not by the computers themselves expensive. Possibly the construction process, or certain materials... or whatever. And at the same time, have some sort of cheap, text-only display available for everyone, even if that same technology is actually expensive in real life. – 8bittree Dec 9 '16 at 15:21 • You can still make it about memory - just make your world's approach to inexpensive computer memory based on a technology that makes it usable for computation but makes it suck as a framebuffer (access modalities/protocols/timings for the memory play a big role there). – rackandboneman Dec 9 '16 at 15:37 ### how can I reasonably explain that GUIs never became mainstream? Computers entered the mass market at the same time as useful speech recognition and synthesis. Instead of sitting in front of screen and pressing buttons users primarily converse with computers. Which would make the concept of a GUI sound strange "What do you mean I have to learn to press this an that and then that? Why can't I just tell it what I want?". • "So you can watch porn without everyone nearby learning about your midget fetish". :P – Faerindel Dec 7 '16 at 8:34 • "You mean you have to use your hands? That's like a baby's toy" – TessellatingHeckler Dec 7 '16 at 19:02 • Back when e-mail was sweeping thru society, I read a bit somewhere: Imagine (voice) phones being invented after e-mail. Today we'd all say "You mean I can just pick it up and talk to someone? No typing needed?!" – user2338816 Dec 12 '16 at 2:30 • Okay, but how do you get useful speech recognition and synthesis without computers? The way we do it now pretty much required computers to be mass market - to get the required processing power and memory, to get the tons of training inputs and checking... – Luaan Dec 12 '16 at 12:01 • @Luaan sorry for the extremely late reply - note that I wrote "Computers entered the mass market". We had computers long before anyone had one at home. – papirtiger Nov 2 '18 at 12:22 Make the computers interconnected and bottlenecked by bandwidth. A low-bandwidth internet forces one to optimize the transmission of content, which is likely text-based. From my own experiences with the initial stages of the internet, a GUI is barely usable across a network when bandwidth is low enough. Even a GUI-system specifically designed for client-server networking, such as X, is bothersome on connections like a 14k4 modem. Before the WWW existed we used the Gopher protocol to browse information systems across the world over dial-up connections. Then the WWW was invented and the internet became more graphical, performance on graphical browsers (Mosaic, Netscape) was still agonizingly slow. Since the textual content was still the main attraction many early users used text-based browsers such as w3m and lynx to browse the web. On linux servers successors like elinks are still used today. If there was some reason for bandwidth to simply remain constrained then GUIs might not develop at all. People would likely still create ASCII-art and TUIs would improve, maybe supporting multiple windows like i3 window manager. • "...TUIs would improve, maybe supporting multiple windows like i3 window manager" - No need to compare to a GUI window manager like i3, we already have terminal multiplexers: GNU Screen and tmux. Also, regarding low bandwidth: VNC, X11, and RDP are not the only ways to interact with remote data using a GUI. You can run the GUI locally and just transfer the actual data. We do this all the time: see email, chat, web browsers (a lot of pages are still mostly text, sometimes with GUI controls). No remote pictures != no local GUI. – 8bittree Dec 6 '16 at 17:11 • You could imagine bandwidth staying low because phone lines are a natural monopoly. The company that owns the lines is somehow corrupt or otherwise dysfunctional, and no other company can get the infrastructure in place to compete with them. – Ben Millwood Dec 7 '16 at 16:32 • You can disincentivize running the GUI locally by centralizing computing power outside of homes – maybe software-as-a-service with thin clients are developed sooner than it was in our world, or maybe there's some reason why bundling everyone's hardware together in one datacentre is important – e.g. because it means you don't have to use the terrible telecom monopoly's cabling to network your stuff. – Ben Millwood Dec 7 '16 at 16:37 You want a world where computers are widespread but GUIs don't exist? Simple: Find a way to make a world where everyone is totally blind - perhaps even where eyes were never able to evolve. (writing uses some equivalent of Braille) Educate the public quickly GUIs are popular because they're easy for new users to learn, and don't require as much specialized knowledge as using a CLI. For example, to change file permissions through the GUI in Linux, you can click little check-boxes labeled "read", "write", and "execute", while to change the same information with the CLI, you need to remember which bits correspond to which permissions, and do a decimal to binary conversion. If, for some reason, computers classes became a part of compulsory education during the time when CLIs were still popular, an entire generation would grow up using them. When GUIs emerged they wouldn't seem to have much of an advantage over CLIs to the public at large. Further, CLIs - especially whatever shell(s) taught in school - would have the inertia of consensus, and people would be unwilling to change. • CLIs did have the inertia of consensus. On some platforms, they still do. Most users knew them better than Excel users know Excel. That didn't stop them from disappearing. Everyone knew how to use CLI - and then Norton Commander (and friends) came and 99% of computer users dropped CLI, just like that. The only places where it survived was with 1) remote systems, where it was much faster, or an interactive interface simply wasn't available, 2) automation, especially for corporate/academical infrastructure, 3) hipsters (before it was cool!). – Luaan Dec 6 '16 at 20:46 • CLIs had the inertia of consensus among people that used computers during the time that CLIs were the only option - not a lot of people (comparatively). GUIs became popular around the same time personal computers became popular. Most people that used GUIs learned with GUIs - those few that started with CLIs may or may not have switched, but they're the minority. That's my take anyways, and I'm no expert. – Charles Noon Dec 7 '16 at 0:24 • That probably depends a lot on what region you're talking about. Where I'm from, people used text-based interfaces all the way up to Windows 95 or even longer for the most part; they still switched as soon as they could. And a 486 machine cost on the order of$10-20k in today's money - way more expensive than a new car at the time. And everyone still switched as soon as they could, the major exception being universities, which propagate CLI almost exclusively to this day :) – Luaan Dec 7 '16 at 8:33
• That's really interesting, and suggests that GUIs have an inherent advantage over CLIs - at least to most. Perhaps an element of snobbishness could work, if enough people grew up with CLIs? Maybe OP could make a world full of the aforementioned hipsters... – Charles Noon Dec 8 '16 at 1:34
• @Luann You talk about Norton Commander as if it signals the inevitable transition of CLI->TUI->GUI. And yet, my father, who only got into computers in the 1990's shortly after the Soviet Union ended, was still choosing to do the majority of his day-to-day tasks in Far Manager, full screen on Windows XP and later. I've lived on my own since 2009, so I'm not sure how much he still uses it. Meanwhile, I grew up on GUIs and spent years not getting why someone would want to do that, yet in the last few years I've been switching all of my computer tasks to CLI/TUI as quickly as I've been able to. – mtraceur Dec 8 '16 at 7:19

If the users are non-human, a GUI interface may present serious issues. Maybe they have compound eyes, like insects, and any sort of pixel-grid display creates serious moire fringing effects between the screen and their eyes. Or maybe they see in sonar, like bats or dolphins. How do you make a sonar screen?

If they are (almost?) human, maybe their society is a strict meritocracy (with fascistic overtones). You are not allowed to access a computer until you prove that you are intelligent enough to use one in an intelligent manner. In other words, program one. By the time you are a half-decent prgrammer, you will probably prefer a command-line interface over a GUI interface for most tasks in any case.

(If you are any sort of geek, you'll have heard the jokes about lusers and drool-proof keyboards. In this world, the geeks are the rulers).

I don't think this is possible, if you want to keep the possibilities of modern computers, especially if you consider Norton Commander as 'text' - since what it's really doing is abusing text to be a GUI - and most of what GUIs do is position text, outside a grid system. But one possible approach I haven't seen mentioned in other answers - text is machine readable, GUIs aren't.

This could come up in several different ways:

• Mandatory software quality testing, coming in very early on. As soon as the first software with bugs appear, and companies realise they are paying for broken products, particularly if there is a serious catastrophe like an exploding space rocket, there is a big legal and regulatory push for software to be absolutely as described, with large fees for any bugs found.

• This manifests itself as precise specifications for input and output, and mandatory automated testing with regulatory oversight. You can automatically verify the text which is displayed, and the screen output at every state, but you can't easily automatically verify the display of a curve, and the number of possibilities with user resizable windows makes it infeasible to attempt.
• Mandatory auditing of one sort or another. All input and output must be audited for anti-fraud, or to guard against anti-consumer practices, or to mandate that computer systems from different providers perform the same way, or as a basic expectation in a digital society of how computers behave. You can audit typing and printing, but you can't really audit mouse clicks and GUI scrolling in the same way. You can audit "this picture was displayed: {}" for use with your one-off output specification, but you wouldn't want the overhead or storage costs of auditing every frame of a GUI.

• The earliest developments of computing were very focused on interpreting the text, and processing it in custom ways. e.g. government broadcast news over a text feed like the UK's old Ceefax systems, and individual people put keyword matches on the data stream which would alert them for things they found interesting. Businesses alerted on transactions, individuals played with data sets in real time - you could expect a feed of special offers from shops, from weather services, from news services, civil engineering (roadworks) in your area, up to date electricity prices, or whatever, and pick up on the things you care about. This happens early enough in your timeline that it gets embedded into the culture, and when GUIs come along, people regard them as a novelty but ultimately reject the way they can't be automated and pattern searched as too limiting, so only use them as an output device, but not as the main interaction point. You work with the structured data, maybe you show it in a GUI if it's a graph, or maybe you don't.

• The previous points interact; mandatory auditing means governments want a continual stream of input from every user, which they can search and gather population-wide statistics for, which means GUIs are only allowed to be used for display, but all input must come through a keyboard.

The section of Mandatory software testing could come up in another approach, the reason headless servers are so popular today is that less code means a smaller attack surface for security considerations. If all software had to go through an expensive regulatory audit process (or any constraint which has a similar effect - software companies need to be insured against the risk of their code going wrong, and insurance companies charge per line of code insured, or per feature), then 'less code' would push industries towards preferring TUIs if at all possible. Since a GUI has to display text, and also graphics, it will always work out more expensive.

Another possible deviation from real world history is that our early output devices were RADAR screens and oscilloscopes, with an electron beam being scanned left to right and modulated up and down by an analog signal. They became CRTs, which were the dominant display technology for many years.

But what if CRTs couldn't become dominant, e.g. if regulatory limits prohibited vacuum chambers in devices sold to the public, because they were too dangerous due to the risk of implosion?

Environmental concerns, or financial rent-seeking behaviour. If you could tweak the world so that displaying a picture cost significantly more, each time, people would avoid it for normal use. e.g. if there was a 'text' screen which came with a computer, and you could buy a 'graphical' screen as an addition to go alongside it - but it could display 1000 graphics before the license ran out and needed renewing, or it cost a day of text electricity to update compared to the text screen. The market would sort out how to do everything by text, while keeping GUIs available for the occasional use, or for the wealthy.

Do a better job of teaching kids to read and write.

Let's draw a line between a system that is capable of doing graphics, when appropriate, and the GUI, which is to computing what "point & grunt" is to language. So your computer user has what I have on my machines (4 on or beside my desk at the moment): a window manager running on top of X, which mostly has a bunch of xterm windows on it. To interact with the computer, I use language in the form of commands, rather than pointing at something and clicking the mouse.

Now this doesn't mean I can't do graphics. I can do anything from looking at photos I've downloaded from my camera (with text commands) to viewing PDF documents (which I may have created with text-based LaTeX) to visualizing the output from the 3D seismic tomography program I'm working on (the input to which is text). I just don't have to have an icon that I click on for every single thing I want to do, and I don't have to waste time trying to figure out what those icons - potentially multiple thousands of them - are supposed to mean. (If I run into an unfamiliar text command, I can look it up in the manual or with a search engine, just as I would look up an unfamiliar word in a dictionary.)

If I need a list of commands for users not familiar with a system or application, I can use text menus, as in fact I do with the browser (qupzilla) that I'm using at the moment. It has some GUI icons. in a bar across the top, but I've never figured out exactly what they mean, because there's a handy text menu too.

GUIs, IMHO, are basically a crutch, needed because a large fraction of the population seems to be functionally illiterate.

• That's certainly consistent with newspapers and managers which insist on communicating via videos, rather than text. – Arlie Stephens Dec 7 '16 at 2:04
• More seriously - increase the prevalence and popularity of the personality traits which produce bookkeepers, librarians, computer nerds etc - at the expense of those which produce sales people, politicians, and entertainers. Make "geek" a compliment. Make "perfectionism" and "expertise" more desirable than "quick hacks" and "flexibility". A modern GUI is after all a way for an unskilled user to manage a task, that they'll never be able to get any better at. – Arlie Stephens Dec 7 '16 at 2:08
• Many, many, highly literate people (eg. people with literature PhDs, established authors, academics, etc.) have little or no expertise with computer interfaces. It seems extraordinary to me to draw a link between them. – Ben Millwood Dec 7 '16 at 16:29
• @Ben Millwood: Because GUIs came along before most of those people were exposed to computers, and then they were force-fed the GUI by Windows and MacIntosh, so they never had a chance to experience how much better a good CLI can be. – jamesqf Dec 7 '16 at 19:45
• @BenMillwood 98%-99% of people who, when pressed, can read a short easy text with a little effort. That includes functional illiterates, depending on your standards. Even today the numbers are (much) worse than that if you define literate as something like "Immediately understands all text encountered in daily life without any conscious effort; understands the gist of major works of literature with little effort; understands the gist of contracts they sign with amount of required time and effort in a sensible proportion to the importance of the contract." – Nobody Dec 10 '16 at 14:04

Try and look at 'what' you actually want to use computing for. Will everyone still be as connected as they are these days? if so, could they just be using more powerful versions of the early mobile phones which had buttons and an LCD screen (my old Ericsson A1018 was like this.) Or are you looking more for a computerized world, but without necessarily needing the level of user input we have now?

I mean for instance, look up 'internet of things'. The basic concept is everything around us now has a computer in it (kettles, toasters) which are all inter-connected to form their own network. However, the micro-controllers within them fairly rarely have a GUI. At most, there are a lot of blenders/food processors which have buttons on them for 'smart' cooking. These are dedicated function buttons, while the micro-controller inside simply (or not so simply) reads the data from a few sensors and applies some logic to the cooking mode.

The Raspberry Pi is another good modern example. Although it is typically connected to a mouse/keyboard and TV/monitor, it needs none of these things to function. I've seen them set up as wireless computer servers; one of my colleagues has half his house automated with micro-controllers, including wifi cameras and his 3D printer, all connected through the Pi as a server. He can access his printer at work, and watch it on the camera to make sure his house isn't on fire, but the point is the Pi itself has no GUI, and the tablet or whatever he uses to access it isn't more than a dumb terminal.

IF you're talking purely about how to access the computer without the graphical interface, then the next level up (or down) would be the old DIP switch and jumper approach to computer programming/usage. I have an early Amstrad PPC512 laptop at home which consists of a monochrome LCD screen, two floppy drives, a modem and no hard disk or any sort of operating system, other than what is used on the boot floppy. Setting which floppy, or external monitor source etc. was done with an array of DIP switches on the side.

There are plenty of other good examples through computing history: the Apollo computer used during the moon landings had the DSKY interface, which was fitted with dedicated function buttons (noun, verb) and 7-segment readouts. Graphics calculators would be another example you could 'borrow' and modernize.

TLDR: Your world started with pre-GUI computers such as the Apollo guidance computer. Instead of the desktop computer/monitor becoming standard, research instead went into portable computers such as graphics calculators and early mobile phone technology, while industry focused on single use computers programmed by DIP switch. By the time mainstream internet became available linking the IOT devices together, people still predominantly relied on text-based systems like their button phones.

Something a little less anachronistic would be that, or haptic feedback devices (vibrators, or braille keypads) were invented sooner. Maybe AI was developed earlier, reducing the need for 'hands on' computing, although this begins to overlap the voice-activated approach as mentioned in a previous post.

Are you bound to the users being human-like? If the user's senses are not dominated by vision, you can neglect GUI, and go more on a tactile/sound/smell user interface.

Basically you can image a mole-like being using a computer.

Most of these answer focus on technology being held back, I am going to assume it sprints forward. Direct communication with the computer via brain waves over wires invented before GUIs.

If you use telepathy or neural implants to communicate with your computer no keyboard, mouse, GUI or etc are necessary. You have a direct brain to computer link with vastly superior reaction time.

The only possible problem is people might choose to visualize a GUI in their mind. However, I doubt that it would be helpful with direct computer to brain linkage.

• I doubt that people would avoid using graphical representations with direct brain-computer linkage. Sight is by far dominant in humans, that's why GUIs work in the first place. Even thinking about problems in my head involves visualising things "as if in sight". Even thinking about CLIs, I have an image of a CLI in my head. In fact, I picture myself bashing on the keyboard right now :) – Luaan Dec 7 '16 at 8:39
• @Luaan I my world keyboards were never invented because of the brain link so you don't know what one is so you can be picturing yourself bashing one. – cybernard Dec 7 '16 at 12:47
• Computers didn't invent keyboards. Keyboards existed long before computers. Are you saying that people went straight from drawing by hand on a piece of paper to brain-computer interface? Why are there no typewriters? Why are there no pianos for that matter? No printing press? Even then, I'd simply be picturing myself handwriting, instead of bashing the keyboard - it doesn't really change much on the argument :) – Luaan Dec 7 '16 at 13:08
• I am saying in the person question they are in an alternate reality, since we already have GUI. Pianos, and etc can have keyboards, just not computers. Since you can think faster than you can speak,type,click, or write the neutral interface would be the dominate way of getting things done. A GUI would just slow you down. – cybernard Dec 7 '16 at 23:18
1. Before computers are powerful enough for graphics, heavily invest in computer science education, starting from primary school. This would likely be a sound investment anyway, at the very least in hindsight.
2. Everyone will be able to use a terminal. You can't teach theoretical computer science to first graders (also large parts of it wasn't known back then), you'll start with a very practical approach to computer science, which implies heavy use of actual computers; programming. That's the part which is useful to the general population anyway, so they can automate little problems in their daily life/workplace.
3. Everyone will be able to use a terminal more efficiently than graphical programs because they already know how to and terminals are inherently better so the investment to learn GUI wouldn't be worth it.
4. There would be no need for graphical user interfaces.

That is, there would still be graphical output, but only for stuff like previewing 3D models you describe textually (it exists! It's really easy to learn and powerful in my opinion), previewing documents you wrote in something like LaTeX, viewing pictures and videos, etc.

• Computer science and computer usage are mostly unrelated. – Raphael Dec 9 '16 at 7:53
• @Raphael Obviously, at least in one way. But at the same time, computer science implies programming and programming implies being able to use a computer for programming, and being able to program programs for existing computers. That is, you'll be able to both use a terminal and make programs which run in terminal. Now explain me why anyone with that background would use an early (probably shitty) attempt at a GUI, or even a modern one which used (wasted :P ) millions of man-hours during its creation. – Nobody Dec 9 '16 at 15:19
• "computer science implies programming" -- not necessarily, no. Not anymore than physics implies welding. – Raphael Dec 9 '16 at 18:46
• @Raphael I don't care about far fetched philosophical implications. Sure, CS isn't equivalent to programming, that's not what I was saying. But if you study CS then you'll write lots of code. No way around it. Hell, if you study physics, you'll write lots of code too, though less than the CS students (welding, on the other hand, is definitely not on the curriculum at least where I study). If you want proof, check the first year CS curriculum at any large university. Or check this out: vvz.ethz.ch/Vorlesungsverzeichnis/… – Nobody Dec 9 '16 at 18:59
• "But if you study CS then you'll write lots of code" -- maybe, but not necessarily. I personally know a number of counter examples. You are right to say that it's not the norm, though. Anyway, I apparently have to make my point clearer: you probably want to propose teaching computer skills, including programming, not computer science. That's just similar to teaching physics being the wrong course of action if you want people to solder instead of glue. – Raphael Dec 9 '16 at 20:41