I'd very much like an advanced, still cli/terminal, interface option.
https://www.youtube.com/watch?v=o4-YnLpLgtk
I think there are lessons to be had from the likes of Smalltalk and Logo too. Highly expressive without insane levels of cryptic inconsistent punctuation rules and UX man-traps.
Terminals of 2020 and beyond need to have first-class support for audio, video, images, and peripheral interactivity/customization. Terminology and iTerm 2's ability to display pictures, and some terminals' support for Sixel is one of the directions I want to see progress in.
- It should be possible to `cat` an image, or a video, or even previews of Word and Photoshop documents. Terminology, iTerm 2 and Sixel-compatible terminals have this to some extent, but it's not standardised and doesn't have a broad support base.
- Programs should be able to raise notifications without relying on third-party/OS-provided utils that have a drastically different API and availability across platforms.
- Rich read-only visualisations of progress should be possible to call up with a few lines of code. I want to see a `dd`, `mv` or `cp` with a graphical progress bar at the bottom of my window. If my OS supports it, I want this to integrate with the UI like the progress widget on my taskbar.
- We should be able to render a piece of output in 3D, if we so desire. I don't want Crysis, but I do want a Matlab logo that I can rotate by dragging my mouse and graphs that zoom when I Ctrl+scroll at them.
- Support for file pickers and rich selection/filtering of file/directory lists. Not for sandboxing, but for convenience.
- A command line builder (like one of the classic Apple OSes had, cannot find a reference now, or something like the one in Fish but more advanced). Only valid combinations of parameters will be supported, mutually exclusive commands are impossible to select. Any arguments that are files will be possible to use with a file picker. Any argument that's a date will get a calendar widget. Any argument that's a boolean or an enum will get a checkbox or drop-down respectively.
- Terminals should be able to intake gigabytes of input per second, up to the limit of the hardware, without choking up.
- We should be seeing 60FPS and beyond as a normal feature.
- We should finally get unlimited scrollback enabled by default. The terminal emulator should keep everything that I've seen before, and remember it for me. We have the space for it, either in RAM or persistent storage. If not, it should be adaptable and drop the scrollback buffer that is lower priority than other applications on the system if they need more resources.
- Unicode should come as standard. Emoji should come as standard.
- End termcap. We should be able to hash out ONE standard to rule them all. We've had 50 years to come up with ideas and opinions. Version it so that we can release a V2 in 2100.
- While we are at it, end Bash and come up with a saner shell notation that doesn't overload single/double quotes, the ampersand, > amd <, or human-text spaces. We have several more decades of syntax design knowledge worked out, and a whole keyboard with >101 keys. We have two Alts, two Ctrls, and a whole function key row. Let's make use of them for non-printable character input and interaction with the terminal.
- (Debatable) consider adding hypertext support. It's here to stay, and not just in the form of HTML.
There's more that can be added, but really, I think terminals deserve better.
https://github.com/oilshell/oil/wiki/Interactive-Shell
Many of the articles have nice screenshots / animations to give you a feel for what it is.
I plan to turn https://www.oilshell.org/ into a library and I hope people will build GUIs around it. There are some UI possibilities that are difficult or impossible unless you have hooks to the shell other than stdin/stdout.
The problem is that you really need an interface for loading software components into your system at runtime, which .NET provides, but aside from .NET or COM I am unaware of any other equivalent system. Java's OSGi is the closest, and ugh...
Some people love it and some people hate it. Some more responses here:
https://news.ycombinator.com/item?id=24873410
I guess what I'll say is that I hope the Oil ecosystem will grow the things that people like about it, that aren't tied to Windows. Windows and Unix are fundamentally different and it means they need fundamentally different shells, since a shell is by definition a language closely tied to the OS.
You can run powershell on Unix, and bash on Windows, but even on the same OS they are somewhat disjoint tools!
- Many programs offer intuitive quick-action- or quick-search-fields. For example: double-shift in IntelliJ or CMD-Shift-O in many Mac apps like Fork, Things and IA-Writer. - System wide search tools like Alfred and Launchbar will allow you to quickly access Files and execute Workflows - _Every_ Menubar in MacOS is searchable. Just press a shortcut and type what you want to do. - ...and let's not forget that keyboard shortcuts exist.
The great thing is that you get all the power of a keyboard workflow, without losing the accessibility of a GUI.