Live data from Hacker News

Blink won’t implement pointer events

code.google.com

11–20 of 65 posts

Re: Blink won’t implement pointer events

#11

One thing which makes me sad is the lack of structure of the Javascript API. Everything is now built using Javascript and the JS VM is not following any UNIX principles in its implementation. I would really like to have a UNIX-like JS API. A small example: let's say that you want to redirect the error output to the standard output. Since everything is a file descriptor on UNIX, you can just call dup2(2) and this won'…

What you are talking about aren't JavaScript APIs, but browser APIs.

Re: Blink won’t implement pointer events

#12
post #4

People used to complain about mobile device fragmentation, but the web is now looking more fragmented than at any point since IE3 vs Netscape, and whoever else decided to chuck together an excuse for a browser and release it. The approach where all the vendors are ignoring each other as much as possible while pursuing their own improvements has created a giant mess. What is strangling the situation is there is no con…

Unless I want to use the newest APIs and features, the web technologies seem pretty good for my taste, I design/develop my websites in Chrome, and most of times, they work fine or need minor fixes in IE/Firefox.

I feel relieved now, compared with the old IE6 days.

Anyway, caniuse.com is a pretty good tool when I'm in doubt about using a new API/feature.

Re: Blink won’t implement pointer events

#13
post #10
post #4

People used to complain about mobile device fragmentation, but the web is now looking more fragmented than at any point since IE3 vs Netscape, and whoever else decided to chuck together an excuse for a browser and release it. The approach where all the vendors are ignoring each other as much as possible while pursuing their own improvements has created a giant mess. What is strangling the situation is there is no con…

I think you've reached a slightly perverse conclusion. From the source: >Pointer events would likely never supplant touch events on the web (especially without support from Safari). Since touch events are here to stay, supporting another largely redundant input model has a high long-term complexity cost on the web platform. Sounds to me like the Blink time is trying to use their say to reduce fragmentation and they'v…

The Blink team have simply become the new IE style refuseniks, using mobile performance as the standard excuse. Mozilla, Apple and Microsoft have all been creating new "standard" APIs which no one else implements, yet in order to get best performance on their systems you have to use.

If you read the history of that bug someone rightly points out a key thing is MS have to support the pen on surface, and that was as important to MS there as multitouch was to Apple with iOS. Mobile performance is clearly that to the Chrome team, and this mismatch of priorities is what is at the root of the problem.

Re: Blink won’t implement pointer events

#14

This is interesting, because I'm pretty sure Microsoft is going to go full steam ahead with pointer events. Indeed, they're the only major vendor of a device that supports both mouse and touch (finger AND stylus) events – it's going to be super important to handle those events well. I'm not totally convinced by the Blink argument – the fact that "touch events are here to stay" is irrelevant, given the unifying nature…

The unifying nature of pointer events is what makes them so important for the future. Otherwise you have to implement multiple pointer models on a device that provides more than one, or try to simulate one from the other which becomes a mess of lies that the app developer has to sort through.

I've already worked with a couple of companies that have been bitten by assuming a device has either touch or mouse, but not both. They had code to the effect of `if ( touchstart in document ) { attach touch events } else { attach mouse events }` but then they ran into Chrome on a Windows 8 system with a touch screen. Whoops. Now their site only works if you touch the screen.

If you think this is "only a problem on those crazy Windows 8 notebooks" then you're not thinking ahead to systems that will use a Kinect, eye tracking, or some other advanced technique to implement pointers. Devs are really going to hate it when those interesting input methods are sliced and diced into mouse or touch (or God forbid BOTH) in order to shove it into Apple's 2007 vision of a web page input world.

Re: Blink won’t implement pointer events

#15
"Touch events are here to stay".

Ugh, that's such a defeatist attitude. And it seems unfounded. Most developers use some form of abstraction on top of native events, such as jQuery or React.

I wish we could move towards a model where browser vendors would expose low level APIs and let libraries implement simple interfaces on top of them. At the moment we end up having to write browser-specific hacks that "guess" the state of the world based on weird heuristics and browser sniffing: https://github.com/facebook/react/blob/master/src/browser/ev...

Re: Blink won’t implement pointer events

#16

One thing which makes me sad is the lack of structure of the Javascript API. Everything is now built using Javascript and the JS VM is not following any UNIX principles in its implementation. I would really like to have a UNIX-like JS API. A small example: let's say that you want to redirect the error output to the standard output. Since everything is a file descriptor on UNIX, you can just call dup2(2) and this won'…

>Since everything is a file descriptor on UNIX, you can just call dup2(2) and this won't have any repercussion on other parts of the program.

You chose an unfortunate example. From the dup2 documentation:

     The object referenced by the descriptor does not distinguish between fildes and fildes2 in any way.
     Thus if fildes2 and fildes are duplicate references to an open file, read(2), write(2) and lseek(2)
     calls all move a single pointer into the file, and append mode, non-blocking I/O and asynchronous I/O
     options are shared between the references.  If a separate pointer into the file is desired, a different
     object reference to the file must be obtained by issuing an additional open(2) call.  The close-on-exec
     flag on the new file descriptor is unset.

Re: Blink won’t implement pointer events

#17

One thing which makes me sad is the lack of structure of the Javascript API. Everything is now built using Javascript and the JS VM is not following any UNIX principles in its implementation. I would really like to have a UNIX-like JS API. A small example: let's say that you want to redirect the error output to the standard output. Since everything is a file descriptor on UNIX, you can just call dup2(2) and this won'…

It sounds like you want something like Node.js Streams? People have written Stream adapters for XMLHttpRequest and such.

There's also this: https://github.com/whatwg/streams

Re: Blink won’t implement pointer events

#18
I hadn't heard of the performance implications of pointer events before. In my experience Internet Explorer is actually really incredible when it comes to touch performance.

If you have a touch-enabled Windows device, open up t.msn.com and try swiping through the carousel. It's powered by -ms-scroll-snap-points and feels really good - even on mobile devices. It beats hand-rolled JavaScript scrolling implementations hands down.

As a developer, being able to add `pointer-events: none` to CSS is amazing when compared to adding and removing touch event listeners in iOS to avoid blocking the so the scroll thread.

Re: Blink won’t implement pointer events

#19
post #10

Earlier quoted context omitted.

I think you've reached a slightly perverse conclusion. From the source: >Pointer events would likely never supplant touch events on the web (especially without support from Safari). Since touch events are here to stay, supporting another largely redundant input model has a high long-term complexity cost on the web platform. Sounds to me like the Blink time is trying to use their say to reduce fragmentation and they'v…

The Blink team have simply become the new IE style refuseniks, using mobile performance as the standard excuse. Mozilla, Apple and Microsoft have all been creating new "standard" APIs which no one else implements, yet in order to get best performance on their systems you have to use. If you read the history of that bug someone rightly points out a key thing is MS have to support the pen on surface, and that was as im…

> The Blink team have simply become the new IE style refuseniks

Don't kid yourself. Sometimes it's the IE team that refuses to play along. Example: WebRTC.

Overall I feel that the cooperation between vendors on standards is quite good. but you can't expect all these mega corps to agree on everything all the time.

Re: Blink won’t implement pointer events

#20

One thing which makes me sad is the lack of structure of the Javascript API. Everything is now built using Javascript and the JS VM is not following any UNIX principles in its implementation. I would really like to have a UNIX-like JS API. A small example: let's say that you want to redirect the error output to the standard output. Since everything is a file descriptor on UNIX, you can just call dup2(2) and this won'…

>Since everything is a file descriptor on UNIX, you can just call dup2(2) and this won't have any repercussion on other parts of the program. You chose an unfortunate example. From the dup2 documentation: The object referenced by the descriptor does not distinguish between fildes and fildes2 in any way. Thus if fildes2 and fildes are duplicate references to an open file, read(2), write(2) and lseek(2) calls all move…

And on top of that, you have to worry about CLOEXEC if your process can fork, so you need to consider using dup3.
Post reply on HN