OSDev.org

The Place to Start for Operating System Developers
It is currently Fri Aug 23, 2019 8:39 pm

All times are UTC - 6 hours




Post new topic Reply to topic  [ 67 posts ]  Go to page Previous  1, 2, 3, 4, 5
Author Message
 Post subject: Re: Are command line interfaces for an OS obsolete?
PostPosted: Mon Aug 12, 2019 6:50 am 
Offline
Member
Member

Joined: Thu Aug 13, 2015 4:57 pm
Posts: 369
Solar wrote:
LtG wrote:
So how do you interact with the RPi without a GUI? Or do you actually SSH into the RPi from your laptop GUI?


I do, and I can't really figure what's so "actually" about it.

The actually is about _actually_ using a GUI, on the laptop side.

You can use the RPi directly (with keyboard + display):
- with a GUI
- with just text mode, but still graphics stack needed because the fonts get rendered by Linux
- with just text mode, without graphics stack (not sure if RPi supports it)

If you connect to the RPi from your laptop, then the above also applies on your laptop.

I think most people are running GUI on their laptop (or at least in graphics mode), so much if not all of the cost is already paid.

I don't think you need to run a GUI/CLI on the remote end, except in some cases (like virtual desktop).

Solar wrote:
Quote:
I'm not saying it can't be done, but in practice I'd expect most people to always work on a GUI and then just connect to the other devices.


Err... what? "SSH into the RPi from your laptop GUI" and "work on a GUI and then connect to the other device" are the same thing...?!?

Yes, the two are the same. See above. I expect the cost of at least one GUI already paid in almost all cases where a _user_ is interacting with the systems.

Solar wrote:
LtG wrote:
So the RPi doesn't need a GUI or a CLI, unless it needs to be operated directly.


It's at points like this where I think you're a bit fuzzy about the definition of some of the terms you're using.

A system without a CLI can't be SSH'ed into.

Well, the local CLI and the SSH CLI are separate, a server could be running headless and without any memory use for graphics (including the LFB), and still allow SSH.

However I was talking about the RPi not needing GUI/CLI at all for remote control. You need something for remote control (assuming you want to control it remotely), but neither GUI/CLI is a requirement. So the remote control wouldn't happen over SSH.

If you need to interact with the RPi directly (keyboard + display) then you do need something like CLI/GUI.

I haven't figured out how I'm going to do remote control/desktop, so I don't know which parts happen locally and which remotely. For instance TeamViewer (TV) seems to send picture snapshots, while MS RDP seems to share semantic information allowing for better UX.

I am planning on allowing the remote end be controlled without having to establish a remote desktop. For instance being able to start/stop services, shutdown/reboot the system, etc. Of course you could also remote desktop into the system (creating a remote UI) and do those same actions from there.

Assuming you are using a system with a GUI, then you only pay for GUI once in the first case above, and twice in the second case above.


Top
 Profile  
 
 Post subject: Re: Are command line interfaces for an OS obsolete?
PostPosted: Mon Aug 12, 2019 7:08 am 
Offline
Member
Member
User avatar

Joined: Thu Nov 16, 2006 12:01 pm
Posts: 7399
Location: Germany
For one, note that while XenOS made resource "cost" a big part of his argument, I actually prefer the text interface because of its versatility and expressiveness. So whether I run a CLI in raw text mode or in a xterm doesn't matter to me (that much).

We might still be just talking about different things here but...

LtG wrote:
Well, the local CLI and the SSH CLI are separate, a server could be running headless and without any memory use for graphics (including the LFB), and still allow SSH.


Only if it has a CLI. A GUI-only system could possibly tunnel its GUI through a SSH connection, but SSH in the original meaning -- "secure shell", logging in remotely and execute commands -- requires a CLI.

LtG wrote:
However I was talking about the RPi not needing GUI/CLI at all for remote control. You need something for remote control (assuming you want to control it remotely), but neither GUI/CLI is a requirement. So the remote control wouldn't happen over SSH.


I don't get what you're saying here.

Anyway. You might want to take a step back here and reconsider what the thread is / was about. You want to create a GUI-only system. You've heard some criticism from us, but it's your system, go right ahead. We don't say it cannot be done, we just doubt that it will be that well-received.

The subject of the thread, however, was if command line interfaces are obsolete, in general. Not if you could create a system without them, but if a clear case could be made that we shouldn't even bother with them anymore.

And I think this discussion has shown that, while your ideas might result in a usable OS, there's still demand for CLI's today, just not from you. ;-)

_________________
Every good solution is obvious once you've found it.


Top
 Profile  
 
 Post subject: Re: Are command line interfaces for an OS obsolete?
PostPosted: Mon Aug 12, 2019 9:46 am 
Offline
Member
Member
User avatar

Joined: Fri Oct 27, 2006 9:42 am
Posts: 1482
Location: Athens, GA, USA
Solar wrote:
For one, note that while XenOS made resource "cost" a big part of his argument, I actually prefer the text interface because of its versatility and expressiveness. So whether I run a CLI in raw text mode or in a xterm doesn't matter to me (that much).


Sorry if I am sounding like a broken record on this, but did you look at my post regarding Oberon, and do you have any comments regarding it? Would you find this sort of text interface a reasonable compromise? Do you think the more fluid approach towards both handling CLI commands (i.e., the fact that it isn't a strictly line at a time, serial interaction mode, but allows commands to be edited and repeated more easily than, say, BASH history and autocompletions) and UI development (no specialist tools for menu and icon creation, always having a text option for more complex commands without having to use xterm) of any value? Could you see a lightweight way to apply this to remote operation, via (e.g.) a curses-based interface with a selection of hotkeys in place of mouse actions, and would it be of use to you?

I am guessing that vim has shell-invocation extensions which do much the same thing - that is to say, you already have something like this, so an interface that is nothing but this isn't necessary for you personally - but I am curious to hear what you have to say about the idea in general.

_________________
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
μή εἶναι βασιλικήν ἀτραπόν ἐπί γεωμετρίαν
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.


Last edited by Schol-R-LEA on Mon Aug 12, 2019 10:00 am, edited 3 times in total.

Top
 Profile  
 
 Post subject: Re: Are command line interfaces for an OS obsolete?
PostPosted: Mon Aug 12, 2019 9:57 am 
Offline
Member
Member

Joined: Thu May 17, 2007 1:27 pm
Posts: 602
Running gnome-terminal on your workstation while being ssh'd into a server means that you're still using a CLI or TUI, not a GUI. (I doubt anyone would claim that non-graphical terminals are superior to graphical terminals, except for emergency shells. We're all running a terminal emulator on a graphical compositor while using the CLI.)

_________________
managarm: A microkernel-based OS that is capable of running a Wayland desktop


Top
 Profile  
 
 Post subject: Re: Are command line interfaces for an OS obsolete?
PostPosted: Mon Aug 12, 2019 11:16 am 
Offline
Member
Member
User avatar

Joined: Thu Aug 11, 2005 11:00 pm
Posts: 1089
Location: Tartu, Estonia
LtG wrote:
I think most people are running GUI on their laptop (or at least in graphics mode), so much if not all of the cost is already paid.

The point is that you "pay the cost" on one machine, namely the one that runs the GUI. But then you don't need a GUI on every machine. You can connect to IoT devices which have no GUI. For the IoT devices it clearly matters to have just a TUI, while on the other device it does not matter much whether one uses a GUI and something like X terminal to connect.
Solar wrote:
For one, note that while XenOS made resource "cost" a big part of his argument, I actually prefer the text interface because of its versatility and expressiveness. So whether I run a CLI in raw text mode or in a xterm doesn't matter to me (that much).

In fact, versatility and expressiveness are also big arguments for me. So also on those machines where I do have a graphical desktop, run my browser, watch videos etc. I prefer many non-GUI tools because they actually made my work easier and faster. (I am grateful to a visiting PhD student, who was using these tools when I was still using KDE and many GUI tools, and I was impressed by how he could complete many tasks more easily.) The most important changes for me:
  • Use XMonad as window manager. While this is not a CLI or TUI application in the strict sense, it uses (mostly) keyboard commands - switching desktops, moving windows between desktops, changing focus, moving between monitors, changing desktop layout (it arranges and resizes windows automatically - no mouse fiddling required), launching programs.
  • Use VIM. I was using mostly KWrite before (and Kile for writing LaTeX - for that I use now "vim-latex"). It clearly took some time to learn keyboard commands, but VIM has great tutorials. And they really speed things up. Delete a sentence? das. Indent current paragraph? =ip. Delete everything from cursor to end of the line and start typing something new? C. Define a new command, e.g., F9 to find the next occurrence of "\emph{", find the matching "}", delete both of these? :nnoremap <F9> /\\emph{<CR>%xNdf{. Also it has highly flexible syntax highlighting, some of them I wrote myself (but I have done that also for KWriite before).
  • Use VIM plugins to speedup workflows further. I already mentioned "vim-latex", which is one of the most useful ones for me, since I use LaTeX a lot, in particular for work, and it defines a ton of helpful keyboard shortcuts and macros that make my workflow easier. Typing "EEQ" to start inserting an equation, while already having my hands at the keyboard and typing, is just much more convenient than using the mouse and open a menu as in Kile. Another big speedup is YouCompleteMe, with semantic completion engines supporting most of the languages I use (LaTeX, C++, Python - to name just a few) and one can add more as Python plugins if desired (the LaTeX one I customized). The newest versions even support smart Unicode completion. Plus, it even recognizes and marks syntax errors. Then there is "tagbar", which can display a (textual) sub-window with stuff like section headings in LaTeX or functions and classes in C++, so essentially like an IDE would do, but even in text mode. Even more IDE features - if I invoke a LaTeX or C++ compiler through VIM and there are errors, it shows them in a sub-window and allows me to jump to the error locations, also opening files if necessary. (It "understands" the error locations from the compiler error messages.)
  • There's many other things I rather do on the command line than in a GUI. Listing (sorting, formatting and wildcard filtering) of directory contents? ls is my friend. Tools like grep, sed and wget / curl are inevitable for me. VLC player comes with a "curses" TUI, which I prefer, because I don't need a separate window for stuff like the playlist, but can have it as a tab or pane in a tmux'ed terminal. Even for browsing I sometimes prefer lynx because it works faster and gives me more overview if I can just read the website text without any images around. The reason why I still use GUI browsers is rather because there are websites which unnecessarily use graphical-only UI for "aesthetics" without actual benefit.
As for VIM, when working on a graphical desktop, I actually prefer GVIM over VIM in a terminal - but with all GUI elements such as menu, scroll bars, buttons etc. disabled, so that essentially it is again a pure text window with no graphical elements whatsoever. The reason is that it supports things like an "I-beam" cursor in insert mode and more text formatting options to use for syntax highlighting (such as italics or a colored wavy line under the text, which most people know from spell checking, but which I also use for syntax errors and warnings - in different colors). Still I prefer a "lightweight" (Athena) GUI option that, e.g., uses bitmap fonts (still Unicode, of course).
Schol-R-LEA wrote:
Sorry if I am sounding like a broken record on this, but did you look at my post regarding Oberon, and do you have any comments regarding it?

I'm not the one you asked, but I looked at some deeper information on Oberon and I kind of like the approach. The user experience would probably have the same benefits from CLI / TUI I mentioned above, simply because it is integrated into the system by design. Probably it can be achieved at a lower than OS level as well, just having lots of "terminal-editor-hybrid windows" in which applications run. In fact, the VIM integrated terminal is something like that. Of course it would still be a graphical system from the point of view of resource usage, but for those use cases where that is anyway needed (web browsing, videos) this is no drawback, of course. Also I liked the browser on the screenshot you posted.

_________________
Programmers' Hardware Database // GitHub user: xenos1984; OS project: NOS


Top
 Profile  
 
 Post subject: Re: Are command line interfaces for an OS obsolete?
PostPosted: Mon Aug 12, 2019 11:26 am 
Offline
Member
Member
User avatar

Joined: Fri Oct 27, 2006 9:42 am
Posts: 1482
Location: Athens, GA, USA
XenOS wrote:
Probably it can be achieved at a lower than OS level as well, just having lots of "terminal-editor-hybrid windows" in which applications run. In fact, the VIM integrated terminal is something like that.


A fair number of Gnu Emacs users do precisely this, using the editor as their main (or even sole) UI. Though it is only 'lightweight' compared to a desktop environment such as KDE or Gnome.

For my own part, I use XFCE4 as my GUI for both my desktop and laptop, and use Chrome for web browsing, because w3-mode isn't really a complete web browser by any stretch of the imagination. While I own an RPi3, I've not used it much recently, nor have I been doing much actual programming in general, because Depression is one hell of a drug.

_________________
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
μή εἶναι βασιλικήν ἀτραπόν ἐπί γεωμετρίαν
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.


Top
 Profile  
 
 Post subject: Re: Are command line interfaces for an OS obsolete?
PostPosted: Mon Aug 12, 2019 4:17 pm 
Offline
Member
Member
User avatar

Joined: Thu Nov 16, 2006 12:01 pm
Posts: 7399
Location: Germany
Schol-R-LEA wrote:
...did you look at my post regarding Oberon, and do you have any comments regarding it?


I skimmed over it the first time, and it didn't click for me. Seeing your request, I read it again in detail... and it still didn't click for me. I don't quite see what it "does" for the user experience. It's an interesting technical approach, but I don't see which problem it solves.

_________________
Every good solution is obvious once you've found it.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 67 posts ]  Go to page Previous  1, 2, 3, 4, 5

All times are UTC - 6 hours


Who is online

Users browsing this forum: Majestic-12 [Bot] and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group