- From: Florian Bösch <pyalot@gmail.com>
- Date: Mon, 24 Feb 2014 19:19:15 +0100
- To: Brendan Eich <brendan@secure.meer.net>
- Cc: Glenn Maynard <glenn@zewt.org>, Thibaut Despoulain <thibaut@artillery.com>, Brandon Jones <bajones@google.com>, Ian Langworth <ian@artillery.com>, Webapps WG <public-webapps@w3.org>
- Message-ID: <CAOK8ODjKaFJG2YrcPu+r+hiEDj2jh5S2nhpsuro6FOVbDpH6Jw@mail.gmail.com>
On Mon, Feb 24, 2014 at 6:47 PM, Brendan Eich <brendan@secure.meer.net>wrote: > Glenn Maynard wrote: > >> It's not the application's job to keep the mouse cursor responsive, it's >> the system's. Hiding the system mouse cursor and drawing one manually is >> always a bad idea. >> > > Agreed! > Like I say, some usecases are fine with OS cursors. But that doesn't mean that somehow, vendors are absolved from improving input -> output latency issues even if pointerlock is updated to allow OS cursor showing, which I'm all for. There are a lot of usecases that involve pointing devices, and pointing metaphors, or view controls, virtual helmets, and so forth, that cannot properly function with a high input -> output latency. For this reason it's imperative not only to address the ability to make the OS cursor visible, but also to continue working on low latency input -> output. > In the same vein, programmers cannot avoid GC pauses without relying on > pause-free or at least incremental GC (which BTW some browsers' JS engines > have already, e.g., SpiderMonkey in Firefox), or as a real alternative, > cross-compiling C or C++ for example via Emscripten, to allocate heap > memory from a typed array. Florian, your goals are good, but the means to those ends must involve > better runtimes or compilers -- not on JS programmers working harder to > avoid GC while still somehow allocating objects frequently and even > implicitly. I agree that things aren't today how they should be for realtime applications with GCs. And it's true that GCs are getting better. But, it is the status of today, that a JS programmer has to work harder to make a glitch/stutter/jerk free realtime applications. A better GC can improve this situation. However, that doesn't mean that you can forget about GCing and frame budgets. A realtime programmer will always have to be conscious not to overload the GC even if it's incremental. Because when the incremental GC would not manage to get rid of the garbage faster than it is produced, it would have to resort to more drastic pauses to rectify that situation. Fortunately the act of being GC conscious for a non incremental GC, and for an incremental one, is very similar. You try to avoid triggering it. So in that, you can start that work today, it will not be in vain once GCs get better in some far flung future.
Received on Monday, 24 February 2014 18:19:44 UTC