Ruling browsers and it’s API is ruling a modern world!
(for TLDR; jump directly to bottom straight to conclusion)
Ruling is not only forcing your way, but also allowing or intentionally introducing chaos, overcomplicating things that could be relatively simple, or blocking others proposals. And that is what is happening in IT world in general and in web browsers in particular.
Once got involved in W3C webmachinelearning standardization group. Having couple of years of experience with Javascript and knowing that every time new API arrives there appears 20 new packages in npm repository that “makes things easy” and that they are nearly always used instead of original API — signed in to try to make sure it is made right this time. And I failed (sorry guys, if ML will finally arrive to browsers it’ll not be anything easy nor having training features and 3rd party libs necessary most probably). My involvement there was like bouncing from the wall. And just to point quickly — there were all major companies representatives, like Google, Microsoft, Intel, Qualcomm and the list goes on…
Before I joined my imagination was that there is a group of super smart people discussing smart ideas and picking in more less democratic way best IT solution. Well — I was wrong ;-) Maybe they are smart, but they were far from discussing anything, it was more like pretending a bit to fight who’s standard is better and thus should be ported to browsers and that’s it. Microsoft opting for ONNX, Google for Tensorflow. But just a bit only, really (after all both are to some degree interoperable). Any other option or compromise was not an option. And that wouldn’t make me much curious of what’s going on if there were arguments in the discussion, even questionable ones. But the point is — they were not answering at all to any other proposals, nor to calls for discussion or reasoning.
So that made me to raise a topic of transparency of standardization process. My topic was quickly removed from discussion by leader of group and received private message. In the message there was a bit of “bla bla bla” and one word which is a key here: VENDOR. Message was basically saying that it is a vendor who decides what to implement and what not, thus I have the only one real option — follow what vendor wants (and work for him for free as member of group and legitimate all the crap). And there is only one “vendor” that can dictate the browsers market — Google. Just to give you some impression of vendors browsers market share: Chrome — 70%, second on the list — Firefox — 7%. Since Microsoft in that area is now dependent from Google, the next 8% would say — also belongs to Google. Nice! Who wouldn’t want to have nearly 80% of market share???
Someone smart would ask then: wait, what for is then W3C if it is actually a “vendor” who decides what to implement? Answer is simple — to pretend that there is no monopoly, for vendor to have excuse for regulators. W3C had only “paid chairs” (you could become a member of standardization group only after paying significant sum of $$$$$$), but that was already a subject of monopolization suspections, so recently they had to change the rule and allow “non paid chairs”, like mine. But this is again just pretending of pluralism as you will not have influence on standard unless vendor have no business in particular topic or you’ll support vendor idea.
The next question would be, why vendor won’t listen if there is better ideas? To answer that must give you as example what I was exactly for in that group:
1. Easy to learn API (for simple neural networks it should be somewhat similar to simplicity of Brain.js lib, and for new to ML people to have soft start before jumping on deep water)
2. Easy to use API without need of use of any 3rd party library (could be even on top of fully fledged tensorflow API or ONNX or whatsoever… I did not care)
3. Training capabilities (training/retraining/updating ML models within browser — not everyone uses pretrained models or models that requires a lot of processing power to train, some actually would even appreciate NNs that could adapt/change behavior “on the fly”)
So for the first 2 points I can give you some example, as sort of impression of what I’m talking about. Browser vendors have incorporated OpenGL api and called it webgl. And so far so cool, low level access to such a thing from JS gives freedom, which is good, BUT… 98% of you will anyway use pretty heavy library with much simpler api called Three.js instead of low level api if it comes to 3D graphics in browser. Same thing is gonna happen now to ML in browsers.
So why vendor won’t do simple and easy to use API? Probably because it will mean unnecessary cost that doesn’t bring profit. Vendor doesn’t need simple API suiting, kids, students or devs without super high requirements from ML, vendor has people who knows tensorflow well, then they want to promote tensorflow as standard, so all they need is just tensorflow.
As of 3rd point. This is a bit tricky. As before it also requires a bit more implementing effort (so there will be a cost without profit), but really not much more of that effort (saying it as dev who implemented couple of NN from scratch). But the main point here is that implementing training capabilities is crucial risk to all the investments in cloud gpu computing. Browsers without training capabilities are just consumers of trained models thus consumers of all the processing power they already sell. Want to point here that by “they” I don’t mean only Google. It is also Microsoft, Amazon, Facebook and so on. And here the game starts to be big.
There are things that “I read between the lines” — no evidences/no one will confirm it directly — have only one mail after which I stopped my attendance to group meetings. But for now there is one important message here:
Ruling browsers and it’s API is ruling a modern world. Do we really want Google to do it for us?
My conclusion would be:
Google is a monopoly that holds too much power in the internet and thus can easily abuse its position (and most probably is). A standard solution should be taken against monopoly and in this case Google should SEPARATE browser division to TRANSPARENT INDEPENDENT FOUNDATION thus making Google equal to other companies on the market. As Google have and for some time will still have profits from current full control over browser it should probably be obligated to sponsor foundation for 2–3 years. Once done, internet would be more fair again :-)
Health of world’s internet economy, fair access to the internet market, should not be left to Google.
Cheers!
Daniel
Ps. I’m Polish, so sorry for my not so pretty English :-)