4 ms·
I think one thing that this really points out is just how much care Apple has poured into Terminal.app. It's very good, and every time I have to use another ter
by nneonneo 9y ago
I think one thing that this really points out is just how much care Apple has poured into Terminal.app. It's very good, and every time I have to use another terminal application (ugh conhost.exe) I am reminded of this. It's got a bunch of really thoughtful little features (showing what processes are attached to the current pty, option-clicking to move the cursor rapidly, full mouse support for apps like vim, good linewrap detection, and recently support for rich-text copy/paste which is useful for showing coloured terminal output, etc. etc.), and it remains really fast and snappy despite these features.
On a related note, I am big into latency analysis and driving down latency in interactive systems. I'm quite familiar with the touchscreen work cited at the top, and having played with the system I can attest that <1ms latency feels actually magical. At that level, it really doesn't feel like any touchscreen you've ever used - it genuinely feels like a physical object you're dragging around (the first demo of the system only let you drag a little rectangle around a projected screen). It's amazing what they had to do to get the latency down - a custom DLP projector with hacked firmware that could only display a little square at a specified position at thousands of FPS, a custom touchscreen controller, and a direct line between the two. No OS, no windowing system, nada. After seeing that demo, I can't help but believe that latency is the one thing that will make or break virtual reality - the one thing that separates "virtual" from "reality". I want to build a demo someday that does the latency trick in VR - a custom rig that displays ultra-simple geometry that has sub-millisecond latency to human head movement. I will bet that even simple geometry will feel more realistic than the most complex scene at 90 FPS.
- vortico 9y ago>On a related note, I am big into latency analysis and driving down latency in interactive systems. I'm afraid there aren't many of us that care about the subtle details of interaction that mean the most to one's experience. Working in audio, I know the difference between hitting a button and hearing a sound 40ms afterwards, and 4ms afterwords. I would much prefer to use the 4ms, even if it means sacrificing half of the system's features. I feel like such a product will never reach the market, because the market will think they need lots of features, which results in a sacrifice of latency and other UI consistencies. There's always some developer writing the weakest link of an otherwise perfect system. For example, the CPU/GPU hardware, kernel, and browser's accelerated rendering are all engineered with millions of man-hours to be as blazingly fast as possible, and then a web developer comes along and puts a single setInterval() call in their online game or something, and all the optimization benefit goes to the trash. Or, because animation is a trend in UI design right now, developers purposely put in hundreds of milliseconds of delay between common actions like minimizing windows, switching desktops, scrolling, opening/closing apps on mobile, etc. Basically in order for your dream of true virtual reality to be achieved, the principles and respect for low latency has to be maintained across the whole system's stack, especially the higher-level parts.
- nneonneo 9y agoWell, Apple clearly does care, or Terminal.app wouldn't have such a low input latency (it's legitimately hard to engineer!). I've dabbled in music, and I can fully agree with the audio latency comment. Human hearing is exquisitely tuned for latency (probably since it's integral to direction-finding), so even the slightest delay is noticeable. Hitting a note in an orchestra even a few ms late makes you stick out like a sore thumb.
- chubot 9y agoOh definitely, see my comment here about an excellent talk by John Carmack on this very subject (end-to-end hardware/software latency in VR): https://www.youtube.com/watch?v=lHLpKzUxjGk https://www.youtube.com/watch?v=lHLpKzUxjGk https://news.ycombinator.com/item?id=14801104 https://news.ycombinator.com/item?id=14801104
- pdeuchler 9y agoI can't disagree more, gnome-terminal is fantastically better and it's not the only one. Faster, never gives me disk contention like Terminal.app does (unless I explicitly cause it), has TrueColor (it's ironic that the design heavy Mac terminal does not have full color support), supports far more active sessions at a usable speed, I can go on and on. iTerm2 is vastly better on mac, but still far inferior to gnome-terminal.
- tomsmeding 9y agoIn my opinion, terminal.app with transparency feels way faster than iTerm without transparency. Gnome-terminal is fine, but I dislike the default colours etc (but that's just me). And: what's with "disk contention"? How do terminals do that and what's relevant to the discussion?
- rsync 9y ago"It's got a bunch of really thoughtful little features (showing what processes are attached to the current pty, option-clicking to move the cursor rapidly, full mouse support for apps like vim, good linewrap detection, and recently support for rich-text copy/paste which is useful for showing coloured terminal output, etc. etc.), and it remains really fast and snappy despite these features." On the one hand, I have to agree that Terminal.app is quite good and very impressive. I don't bother with a third party terminal application and I do everything in the terminal. However, one of the very valuable things about working in the terminal is the safety and immunity that it provides. No matter what bizarro virus attachment you send me, I can text edit it in a terminal without risk. There's nothing you can paste to me in irc that will infect or crash my computer. Or at least, that's how it should be. But the trickier we get with the terminal - the more things it does "out of band" and the more it "understands" the content of the text that it is rendering, the more of this safety we give up. Frankly, it bothers me greatly that the terminal would have any idea whatsoever what text editor I am running or that I am running a text editor at all. It bothers me even more to think that I could copy or paste text and get results that were anything other than those characters ... Make terminals fancy at your peril ...
- comex 9y ago> Frankly, it bothers me greatly that the terminal would have any idea whatsoever what text editor I am running or that I am running a text editor at all. I'm not sure what you mean by this. Terminal.app doesn't know that you're running a text editor. It does know that you're running a process called 'vim', which is kind of magic, but not too much (ps has always been able to show what processes are attached to a given tty, for example). If you're referring to the parent comment's "full mouse support for apps like vim", they just mean it supports "mouse reporting" control sequences, which date back to xterm. If anything, Terminal.app is late to support this (only in the latest release, whereas alternatives like iTerm have supported it for ages). > It bothers me even more to think that I could copy or paste text and get results that were anything other than those characters ... Well, the terminal has to interpret escape sequences for colors and such in order to display them, so why shouldn't it also preserve that metadata when copying and pasting? Like any other rich text copy+paste, it will only be kept if you paste into a rich text field; discarded if you paste into a plaintext field. That said, there are a few 'odd' things Terminal.app supports: e.g. printf '\e[2t' to minimize the window. (This also comes from xterm.)
- fulafel 9y agoHave they gotten meta working yet? Enabling meta broke input of many normal characters especially on nonenglish layouts last I saw.
- nitrogen 9y agoI think both Carmack and Abrash have written about latency experiments with VR doing very simple setups with simple geometry or stripe patterns. I don't recall where, but if you can dig those things up they might give you some more ideas.