Interfaces of the future - Psychology, Philosophy, and Licenses

Users browsing this thread: 1 Guest(s)
z3bra
Grey Hair Nixers
Context: I'm starting a new thread here to sum up (and continue) discussing what started as an innocent introductory thread, and ended up in an intense philosophical debate about computer interfaces, as in defined standards VS. obsolescence of these standards.

At the very beginning, computers where huge, slow and had scarce resources. The geniuses at that time came up with what's currently considered the base of computing: the Unix operating system.
This system used plain text as its unique input/output system, taking input from a keyboard, and printing output on paper sheets, one line at a time.

A lot of water flowed under the bridge since then, and even if peripherals greatly improved, this textual interface is still at the core of most the derivatives of Unix.

There are now two main ideas:

One is that this proves the good design of Unix, as its interface went through the years efficiently without needing any change:
(29-11-2018, 12:13 PM)z3bra Wrote: Text is still a good human-to-machine interface (IMO, better than sound for example, or pictograms), and POSIX defines its standards around this interface.
(29-11-2018, 04:34 PM)z3bra Wrote: I guess the CLI is better at letting people express what they want to the computer, rather than GUI. You have to learn how to "speak" your computer language, which is tedious, but in the end it is easier to bind your computer's will by explaining what you want to do, rather than miming it through the GUI


The other, is that the interface was defined in a restrictive environment, and should evolve to fit better today's technology:
(29-11-2018, 12:33 PM)jkl Wrote: POSIX follows a hardware standard that was outdated thirty years ago. "My" perfect interface would be a sane mixture between (a visually more appealing) Plan 9 and dwm, I guess. I learned to make my peace with the mouse. (However, the default Plan 9 lacks hotkeys, rio's missing ability to spawn a terminal without drawing a window manually can be annoying. I guess Windows has spoiled me.) Imagine an operating system that was built upon a graphical interface instead of wrapping the graphical interface around a text-based system. Many of the architectural problems of Windows "9x" came from the DOS base which couldn't just be replaced.

And as modern server hardware is incredibly powerful, nothing would stop us from using graphical remote control instead of 70s-style ssh. I understand that editing configuration files is mainly a text-only task - but using a computer should not.

Of course, the answer to this topic is not black or white, so please share your opinion!
And please, don't start a flamewar (even though this topic would be a perfect fit for it!)

BANGARANG, MOTHERFUCKER
venam
Administrators
My perfect interface of the future would mix parts from everything.

The ability on MacOS to search the top bar menus just by starting typing
The OS is made of interoperable component, this has been tried so many times but always involves complex things like object models and rpc, I'm not sure how this would unfold
Graphical interfaces should be used for configuration if we're interacting with "objects". This makes much sense when configuring units files (services) or when configuring the network (every port is an object) or firewall rules.
Other simple configurations, key/value pairs could be text.
We shouldn't miss the ability to script things up, and the pipelining. This could be something like plan9 does or it could not.
There should still be a cli, but I'm not sure if it would be the same as it is now. Maybe you could spawn a cli over a running program to interact with it on the fly, or spawn a normal cli system wide.
When running over the network I'm not sure of what would be best, should we rely on form filling (web-like apis) or should we use cli or should we use remote desktops.

Some of those could possibly be implemented on any Unix-like OS as it is now, some would need a bit of fixing.

Just some random ideas thrown around.
jkl
Long time nixers
I find z3bra's signature fascinatingly fitting here. :-)

I know that established standards are helpful when trying to find a digital Esperanto. Whatever we'll find out here, we'll need to create "a standard", a 21st century POSIX replacement that covers mobile and desktop usage.

I wonder what is needed.
z3bra
Grey Hair Nixers
When it comes to configuration, I think we need a mix of both CLI, and GUI.
Take an Exchange server for example: Everything is doable from the CLI, but it is tedious and noisy, especially for listing stuff, or searching objects.
That is where the GUI takes over, which lets you unfold the mailboxes, sort contacts or changes indivudual properties (and it is actually easier to do from the GUI, trust me!)
Now evereything in the GUI is bound to a command, which can be run in the CLI. The GUI gives you acces to predefined commands, so they complement each others pretty well!

From a desktop point of view, it is also easier to use a graphical interface rather than text only. The fact the TTY week is a difficult challenge is sufficient to prove it!
For a good experience, all GUI applications should be able to communicate with each others (hint: system clipboard!), to provide a slick and smooth interface.


To sum up my idea, we need both CLI and GUI, as they complement each other well, and both solve different cases.
When it comes to the IPC, I am confident that textual interface is a good way to go, over binary blobs. Parsing text is mastered today, so it's cheap to implement. It is also human readable, and less subject to data corruption.
twee
Members
I mostly use computers for processing data - reading text files (which yes i did convert from pdf, i will explain more shortly), writing articles for my site (haha funny), essays for school (philosophy etc), programming. like it or not, our society is built around using text for these things.

My perfect interface would be a text display, which can display graphics etc inline. It should also allow interactive text components to link to other such windows. In short, something like traditional hypertext.

I think that Emacs does a very good job of implementing such a system. this is why i like emacs. Emacs also has the advantage of allowing mouse control or keyboard control, and having (easily) human readable configuration files (no xml) that can be edited as text or gui. it may have a bit of a learning curve, but it really does cater to all demographics (i think).

there is no space for a mouse in my personal interfate - this is not necessarily because i believe that a mouse is less efficient than a keyboard, as i have seen evidence that a mouse can be very efficient. it is just that i have found that it is a lot harder to buy a low quality keyboard than a low quality mouse - that is, cheap keyboards always work a lot better than cheap mice. this is important to me as i spend a lot of time using computers which are not mine, and i do not want to have to carry a mouse with me. learning to cope without a mouse is much easier.

one thing i definitely do not want to see is dropdown menu toolbars. i think that most of the time they are bad as items could go into several sub menus, or it is just hard to find and discover what you are looking for. they are a epitome of bad mouse ui design. they impose heirarchies where there are often not (although i know sometimes there are). i dont know, they are just not good. i think some kind of search system with tags would work better (rather like emacs with helm, which i do not actually use myself).

anyway, better a mouse than touchscreen. all the touchscreen designing is resulting in wasted space and superfluous animations. it is detrimental whatever you believe in.

by the way, jkl, i have seen that acme video, it does not change my views on the system compared to emacs, but I had forgotten the fundamental key chording thing. that is a very nice use of mouse.
twee
Members
I also think a universal quake terminal type thing could be a good way of allowing access to the command lite version of a tool

assuming we are keeping gui as an interface to text commands as everyone here appears to be saying (correct me if i misunderstand)
jkl
Long time nixers
(30-11-2018, 09:55 PM)twee Wrote: I mostly use computers for processing data - reading text files (which yes i did convert from pdf, i will explain more shortly), writing articles for my site (haha funny), essays for school (philosophy etc), programming.

And none of that would be made harder with a text editor that is built around a GUI instead of limiting you to the console. Even the GUI version of GNU Emacs has certain usability benefits. (I saw an "Acme plug-in" for Vim once, though, implementing parts of Acme's tagbar. Not quite convincing yet.)

(30-11-2018, 09:55 PM)twee Wrote: My perfect interface would be a text display, which can display graphics etc inline. It should also allow interactive text components to link to other such windows. In short, something like traditional hypertext.

I agree.

(30-11-2018, 09:55 PM)twee Wrote: it is just that i have found that it is a lot harder to buy a low quality keyboard than a low quality mouse - that is, cheap keyboards always work a lot better than cheap mice.

And still you probably won't regret having spent a decent amount of money on either. :-)

(30-11-2018, 09:55 PM)twee Wrote: by the way, jkl, i have seen that acme video, it does not change my views on the system compared to emacs, but I had forgotten the fundamental key chording thing. that is a very nice use of mouse.

Indeed, it is. But I'm not here to convert anyone. I'm not even sure if what I use is always a good idea. ;-)
z3bra
Grey Hair Nixers
Some kind of interface I would like to see more is a mix between arbitrary text buffers (say, like a text editor), and a command line interface that could display inline graphics.

What I mean by "arbitrary buffer" as already been implemented at least once (I think acme works similarly, albeit not sure). Any bunch of text can be a command, and it's not the system that will tell you (with an error!) wether what you entered is a command or not. You can run "any text" with a single, simple action, and YOU, as the user, decide what is a command , and what isn't.

The reason I don't use that editor is because it is hard to compile, and doesn't work well remotely (require X.org).
I'd definitely be happy if it was the norm though!
twee
Members
Emacs works at least in part like this. C-x C-e will execute any lisp expression that you specify, wherever you are. also using org babel you can run code from any language, and pass the results to other code in tte buffer, even in a different language (iirc).

in this respect, emacs is really rather good. where it falls down is that it is still single threaded. when running emacs as wm (which i have attempted on occassion) doing anything which takes a while (eg transferring 14gb of mp3s to a usb drive) the whole interface stops.

beyond that, i was very happy with just emacs. i could call other x applications if i needed them (which i rarely did), and being able to fuzzy search for any buffer was very nice.

As a result oy this discussion i definitely want to try acme again. although, working mostly on a laptop in various places, i think navigation could be a bit difficult

jkl Wrote:And still you probably won't regret having spent a decent amount of money on either. :-)
this is true. but at the moment i dont have enough money to warrant spending it on something i wont make regular use of until i have bought it, and may not even then, if that makes sense.
jkl
Long time nixers
(01-12-2018, 03:08 AM)z3bra Wrote: What I mean by "arbitrary buffer" as already been implemented at least once (I think acme works similarly, albeit not sure). Any bunch of text can be a command, and it's not the system that will tell you (with an error!) wether what you entered is a command or not. You can run "any text" with a single, simple action, and YOU, as the user, decide what is a command , and what isn't.

Yes, that's exactly what acme does. :-)

(01-12-2018, 07:31 AM)twee Wrote: As a result oy this discussion i definitely want to try acme again. although, working mostly on a laptop in various places, i think navigation could be a bit difficult

You might be interested in acme2k, providing additional keybindings for your convenience. You can just build and install it over your existing plan9port.
z3bra
Grey Hair Nixers
I still wonder how we could improve IPC on a system, by other means than text protocols.
I was reading some cyberpunk books this summer, and they all came with a different approach when it comes to the "interface of the future".

The most "common" one is a 3D which you can interact with just like you'd do in real life: handwrite notes, read paper sheets, etc... It has to be the most intuitive way to do computing, as there is no new skill to mastef while in the system. I suppose that programming in this environment is like doing mechanics in real life, closer to craftmanship.

Another interresting idea was neural plugs, so you could "feel" data streams, and process them dirrctly inside your brain. This gives you full power over the system as it becomes an extension of your brain, at the cost of putting you in danger (no need to explain why you'd be afraid of hackers...)

And last but not least: AI. Some authors simply rely on a robot that would do all the search for you, computing from a huge database where every document is archived. You then talk to this AI to find what you are looking for.

All of these would change computing drastically, so I wonder if, and when they would appear. The first one being the more plausible, seeing the hype with VR today, and the progress made in such direction
Steph
Long time nixers
(02-12-2018, 06:06 AM)z3bra Wrote: handwrite notes, read paper sheets, etc... It has to be the most intuitive way to do computing

An example of this can already be seen in the shift from command lines to desktop environments.

The whole idea of a 'desktop' with file folders, was meant to mirror the real world business environment of desks and folders so that businessmen could better understand how to visualize what they were doing on a computer. Older computers were confusing beasts with punch cards, rolls of paper, flashing lights. Companies had to create something familiar for the computer illiterate.

It's crazy to think about that the entire direction of the computer has been changed because of design choices to make the barrier for entry lower.

I wonder if things would be drastically different now if efficiency and elegance were prioritized over ease of access and what that type of environment would look like. Would it even have a desktop?
twee
Members
I doubt it. I think that at a pointing device would have become a thing at some point (hah), because it has applications that make it useful beyond just navigating a virtual desktop.

the route that plan9 took is a pretty good indication, i think. data and said data's flow is clearly prioritised. the mouse pointer is used pretty innovatively to further this goal (i thought a lot about whether acme would work without a mouse and think it would be clumsy)

i think that the desktop metaphor really helped in the drive away from dumb terminals. plan9 was designed to run on terminals, albeit graphical ones, and this is shown in the design (and i think that it is a damn good thing), but a desk is an inherently personal space, and in opening it up to non nerdy businesspeople, their expectations were pushed onto the product and the market was forced to conform to their views (admittedly by this point pcs were already a thing)
jkl
Long time nixers
I don't think that all computers need to cater the needs of YouTube's target audience.
Steph
Long time nixers
(05-12-2018, 06:53 AM)jkl Wrote: I don't think that all computers need to cater the needs of YouTube's target audience.

I wish there weren't any computers that catered to that audience.
This might be an unpopular opinion- but I really wish computers had remained text based and used for scientific and mathematical research.
We are seeing today a generation (which I myself am not separate from) of university students with 0 attention span, from a lifetime of electronic media abuse.
mrtn
Members
(05-12-2018, 10:14 AM)Steph Wrote: We are seeing today a generation (which I myself am not separate from) of university students with 0 attention span, from a lifetime of electronic media abuse.

Which is not a technology problem but a people problem. If humanity would not be chasing 'likes' or dumb distraction, scrolling through endless social media feeds, this would not be a problem.
z3bra
Grey Hair Nixers
Question is, why are they interrested in that?
jkl
Long time nixers
People need distraction from other people, they always did.

Sixty years ago, parents were warned that their children read too much which was said to make them less social. Then the radio came. Then the TV came. Then YouTube and Spotify came. Their computer is just a temporary "TV replacement" until the next distraction device is invented.
Steph
Long time nixers
(06-12-2018, 08:44 AM)mrtn Wrote: Which is not a technology problem but a people problem. If humanity would not be chasing 'likes' or dumb distraction, scrolling through endless social media feeds, this would not be a problem.

Are you asking humans not to be humans?
We crave such things and always have. Tech companies have turned these cravings into a business model.
Steph
Long time nixers
(06-12-2018, 09:45 AM)jkl Wrote: Their computer is just a temporary "TV replacement" until the next distraction device is invented.

I agree with you in principal but I think its hard to equate the distracting power of a book to say, a cellphone.
mrtn
Members
(06-12-2018, 11:26 AM)Steph Wrote: Tech companies have turned these cravings into a business model.

Maybe this is just evolution in place. Some people strive to actually _do_ something, most people are fine with just existing.
Steph
Long time nixers
(06-12-2018, 05:19 PM)mrtn Wrote: Maybe this is just evolution in place. Some people strive to actually _do_ something, most people are fine with just existing.

These are just my raw and uninformed thoughts but,

All of the things which at one point in time were biologically advantageous, things which create addictive habits, things like validation, new information, new stimulus, judgement, interaction, whatever. All of the little dopamine producing buttons. All of these things which were at one point a great advantage to have in the "wild", are now chains in a monetary system.

It's not about doing something or existing, that brings the discussion down to the "Most people are NPCs" level. I would argue that any person, given the opportunity, would rather be striving to _do_ something, but most are unable to.
venam
Administrators
2018 was a good time for philosophy, or so they say (don't ask me why).
Z3bra in this thread tried to open the heated debate about what should be considered the "standard of computing" for today, whether we should embrace the change in interfaces or not, whether archaic human-computer interfaces should be reviewed, and most importantly, whether we should learn from one another.

This highly depends on the purpose of the machine, obviously, to which users it is targetted, especially this distinction: humans or machines.

This is a very open-ended question that encompasses a lot of things. So how do you see the interfaces of the future, be it human-computer interaction or machine-to-machine interaction, what would be the IPC, or the devices used, the kind of interfaces, and more.

Will we ever see a come back of the command line shell as the goto interface for users?

...And the debate continues.
z3bra
Grey Hair Nixers
(25-08-2020, 06:09 AM)venam Wrote: Will we ever see a come back of the command line shell as the goto interface for users?

It never went anywhere, and is still the primary controlling interface for servers. Even GUIs, they are started by "command lines", but wrapped into a .desktop file that you can double-click. Even the kernel itself reads text to execute binaries ("#!/bin/sh") !

However, the input system is changing, and I think that sounds (people's voice mostly) will be the next user interface.
phillbush
Long time nixers
I dream of writing a GUI interface made up of individual programs glued together via pipes just like a TUI is made up of several cli programs glued together via pipes.

For example, suppose I'm writing a file manager.

The text input for path writing would be done by dmenu or a program like it, just like the Surf window manager uses dmenu for URL writing. So the file manager calls dmenu, the user types something and dmenu outputs what the user has typed for the file manager to use.

Item selection with the mouse would be outsourced to a program like xrectsel or slop embedded in the file manager's window. The file manager calls xrectsel, the user graphically select the files he wants with the mouse, and xrectsel returns to the file manager the selected area on its window.

Right-click context menu would be done by a program like xmenu. The file manager calls xmenu with all the options it supports (or with the options specified in a text file), the user selects the option he wants, and xmenu returns to the file manager the option the user selected.

Menu bar would be done by a program that mirrors MacOS' menu bar. It would be run at the top of the screen and show a menu for the focused window. When the user select a menu, it will pipe to the file manager the option he selected.

Key binding would be done by a program that listens to Ctrl+Key presses and send to the file manager the corresponding command. This way, the file manager need not to implement key bindings, as it is outsourced by another program, and the user can keep all his keybindings for separate programs in a single configuration file.

Status bar would be done by a program the file manager pipes a line to.

And so on.

All components of the graphic interface of the would be a separate generic program that can be glued together to form a single interface.

And the file manager itself could be a generic program: it could be a “GUI lister” that just shows graphically with icons the entries it gets from another program and send the selected item to a third program.
• So combining this “GUI lister” with ls and a file opener script, for example, you create a file manager.
• Combining it with a list of songs and with a cli program that play music files you create a music navigator program.
• Combine it with a list of torrents and transmission and you create a torrent client.
• Combine it with a list of your mailbox content and a text editor and you get a MUA.
venam
Administrators
(25-08-2020, 03:25 PM)phillbush Wrote: I dream of writing a GUI interface made up of individual programs glued together via pipes just like a TUI is made up of several cli programs glued together via pipes.

Arguably, and I might get a lot of hates for that, all that you describe is already something all big desktop environments want/wanted to have. Each had implemented their own technology to piece together programs fulfilling a contract/interface, be it a GUI or not. Then they all agreed to use a single technology for that, a bus technology: D-Bus.

Now when it comes to the actual implementation and usage of this technology, it's another story.
ckester
Members
(25-08-2020, 09:24 AM)z3bra Wrote: However, the input system is changing, and I think that sounds (people's voice mostly) will be the next user interface.

If you'd asked me 5 or 10 years ago whether I thought voice commands would be the next UI, I would have said probably not, because I didn't think people could get over their fear of making embarrassing mistakes while other people are watching or listening. Same goes for the virtual reality gesture interfaces that were talked about a lot back then.

Now, in the age of Siri and its (her?) competitors, I'm not so sure.
ckester
Members
(25-08-2020, 03:25 PM)phillbush Wrote: I dream of writing a GUI interface made up of individual programs glued together via pipes just like a TUI is made up of several cli programs glued together via pipes.

I'm an old Unix fart who's still fond of textmode, pipes & filters, and all the rest of the classic Unix environment. So I sympathize with and even share your dream to some extent.

But it seems to me that what you're describing is only a way to implement the familiar old WIMP interface that we've been living with since the 1990's. Your approach might improve the plumbing, but the user interface -- the part that faces the user -- is essentially unchanged.

I think the trends in UI design for the everyday user are toward more and more simplification, and fewer and fewer dials and knobs. It's already been ten years since the 4th Generation iPod Shuffles were introduced, and here we are, still talking about pulldown menus, control-key chords -- and file managers!

Compare all that to a voice-activated AI like Siri that can be trained to know your preferences and know how to find whatever you're looking for or put together a playlist of songs that fit your current mood (which it might deduce from observations of your facial expression or tone of voice).

Or a butler that keeps your house running smoothly without needing to told each time something needs to be done or how to do it (cf. the German military doctrine of Auftragstaktik.)

In short,if you want to see the future of UI, think beyond the desktop and even beyond your mobile device. Think about the internet of things, robotics, AI -- and try to imagine where all that is going.
venam
Administrators
Here's a novel way to interface with desktops I haven't thought about: userland.org, also found on Github.

It sits somewhere between Plan9's Rio and Arcan's Durden, which also needs a big mention for it's innovation in thinking about the desktop as a multimedia/game-engine pipeline. UserlandOrg reimagine the desktop as a sort of spreadsheet, columns piping into one another.

Initially, I was confused as for the purpose of this, neither did I get why someone would use the whole desktop as a spreadsheet instead of a specialized software. And that's not to mention the synth feature as a module.
But then I remembered the initial use-case that UNIX had: A text editor for the paperworks busy people had to do. And today, that's the equivalent of people working on spreadsheet, so there's a small extension there.

Maybe it's useless, but it's different at least and let us imagine other possibilities.
What do you think?