4 ms·
I wholly agree that splattering chrome over a terminal isn't the best way forward. Emacs shell mode gets me all?most? of the way to the interface posed as the s
by pnathan 15y ago
I wholly agree that splattering chrome over a terminal isn't the best way forward. Emacs shell mode gets me all?most? of the way to the interface posed as the solution (text editor as interface to terminal). Being emacs, I am sure I could finish up the proposed solution with "a few lines of elisp".
And I don't think it's the solution. These issues are spawned deeper in the design. Multiple streams of information are being spawned, and must be handled sanely: pipe redirection starts breaking down here because it's a line - what's needed is a graph of management that's able to handle different cases and join back for the next approach.
One approach might simply be to develop a higher-powered programming language environment that calls directly into the system.
- thurn 15y agoEmacs shell mode was my first thought too. It doesn't try to implement a new standard for pipes, though. The idea of using invisible control characters as metadata is interesting. (My biggest complain about shell mode is that it's impossible to send certain characters to the underlying process, TAB being the most important one, so you can't rely on built-in tab completion behavior.)
- quanticle 15y agoWindows Powershell attempts to do what you're describing. PowerShell doesn't manipulate text streams, it manipulates .Net CLR objects. That allows shell programs to expose data in a much more meaningful way. You don't have to have a parser in every program that interacts with the shell when you can send and receive typed data. I haven't worked much with it lately, but I wouldn't be surprised if Powershell was the closest existing technology to what the author is thinking of.
- mmc 15y agoI think he agrees, except for the textual display. From the article: Data structure. Windows PowerShell had a chance to redesign the terminal from scratch, but defaulted to the same old grid of ASCII. One innovative thing they did do was add structure to their data, piping .NET objects instead of raw text, allowing the user to select fields by name instead of writing elaborate AWK scripts. The shell for the research OS Famke does a similar thing for higher-order functions
- quanticle 15y agoI didn't quite get where the author was going with that. Windows Powershell has access to the full Windows .Net API. If you want to spawn a window to display graphics or what have you, you're free to do so.
- lubutu 15y agoThanks, this reminded me of Microsoft Research's Dryad project, which includes a distributed "two-dimensional" shell, Nebula. http://research.microsoft.com/en-us/projects/dryad/ http://research.microsoft.com/en-us/projects/dryad/
- seanp2k2 15y agoYou can already side-chain data flows with file descriptors. You can solve more complex problems with temp files and tee. I can't really imagine that making me use a GUI to select where to pipe what would be more efficient. Most of the time, when people have problems that require complex data manipulation like this, they'll jut use their favorite scripting language. There is also not much stopping you from using PHP, Python, Ruby, or anything else with a REPL as your daily shell, but bash is the most popular and works quite well for this problem domain. Not to sound like an old dude stuck in his ways, but there is a reason that we're still all using VT 100 and 220 emulators from 30+ years ago -- they work great.
- itmag 15y ago"There is also not much stopping you from using PHP, Python, Ruby, or anything else with a REPL as your daily shell" That's a fascinating idea. Know of anyone who does that?
- iso8859-1 15y agohttp://transneptune.net/2009/06/16/ipython-as-your-default-shell/ http://transneptune.net/2009/06/16/ipython-as-your-default-s... http://tmsh.posterous.com/ipython-as-a-replacement-for-bash-on-a-mac http://tmsh.posterous.com/ipython-as-a-replacement-for-bash-... http://www.reddit.com/r/linux/comments/mv2bw/is_anyone_else_using_ipython_as_their_default/ http://www.reddit.com/r/linux/comments/mv2bw/is_anyone_else_...
- stray 15y agoDoes emacs count?
- jrabone 15y ago"Not to sound like an old dude stuck in his ways, but there is a reason that we're still all using VT 100 and 220 emulators from 30+ years ago -- they work great." No, they don't. Really. Look at the source code to ncurses and see if the millisecond timing loop around select() is still there, to distinguish between a terminal sending ESC[1D in response to you pressing "left cursor" and a human pressing "ESC" "[" "1" "D" very quickly :-) It sucks. Windows got this right a long time ago, to the extent that the left & right modifier keys are distinguishable. Try doing that on a VT100. Of course, a REAL VT100 doesn't have half the keys ; F1-F4 (IIRC) aren't sent "over the wire" and have no standard encoding. Linus basically invented one for the "linux" console terminal type, and lo yet another "standard" was born. And don't talk to me about shells. The lunacy that is never quite knowing what insane metaquoting scheme you'll need today based on which arcane shell some moron has configured as the default for THIS particular machine is EXACTLY what the top-voted Koan is about.
- seanp2k2 15y agoYou can already side-chain data flows with file descriptors. You can solve more complex problems with temp files and tee. I can't really imagine that making me use a GUI to select where to pipe what would be more efficient. Most of the time, when people have problems that require complex data manipulation like this, they'll jut use their favorite scripting language. There is also not much stopping you from using PHP, Python, Ruby, or anything else with a REPL as your daily shell, but bash is the most popular and works quite well for this problem domain. Not to sound like an old dude stuck in his ways, but there is a reason that we're still all using VT 100 and 220 emulators from 30+ years ago -- they work great.