Imagine how much it cost to develop Servo. Now imagine rewriting every mobile app from scratch using the lessons learned from Servo. The cost would be astronomical, and for what? Incrementally better battery life?
> Now imagine rewriting every mobile app from scratch using the lessons learned from Servo.
Taking the underlying framework and parallelizing it is an effective technique to take what were previously single-threaded applications and making them parallel. In fact, in a sense that's what superscalar CPUs have already been doing for decades.
Most mobile apps are native GUI wrappers around ffmpeg, some http library, and maybe WebKit or Blink. The high-level coördination will remain relatively unchanged as the underlying GUI, media, network, and web libraries push up against Amdahl's law.
And don't forget the king of multicore-scalable APIs: OpenGL. The reason why GPU manufacturers have been able to scale so well by adding more cores is that GLSL provides a programming model that scales broadly to (more or less) any number of cores, and applications are written to that model. This allows applications to run unmodified on new hardware with more cores and see speedups.
IIRC their first experiments focused on the names of keywords and types, where they found, e.g. that "text" is a more familiar type name than "string". Presumably they'll later apply the same approach to syntax and then semantics.
It seems like a reasonable approach to me; it shifts the burden of choosing the license to those who care about licensing. For example, if you work for a company with uptight lawyers you can just request Apache 2.0 and everybody's happy, rather than getting into arguments about public domain or WTFPL or some other stupid thing.
But does the author actually send messages granting those licenses, or is the user supposed to "will them into existence"? Because in the first case, the author just bought himself a whole lot of stupid work, and in the second, I don't see how anyone can be sure that will hold up in court.
Some rely on the device itself to enforce it, but that's obviously fragile if you can bring your own device.
Some check the TTL of your packets when they enter the carrier's network, because tethering is at least one more hop and so even if your computer's OS and phone's OS agree on what TTL starts at, the TTL will still be different than expected for your device's platform. Obviously this can still be mitigated by adjusting your TTL, but outside of software that'll handle this for them, that's already beyond a lot of customers.
Some even take the route of only checking HTTP traffic, and detecting tethering based on User-Agent, but I think a lot have abandoned that because it doesn't catch other protocols, and is easily bypassed even on HTTP.
I was furious when I bought a Nexus 7 (first version) and found out that tethering wasn't available on the device (although there was no obvious reason it shouldn't be and rooting the device would have allowed me to enable it). Running into this on stock devices seems absurd.