Saturday, September 7, 2013

Frighteningly Ambitious Idea: Displace the app store model on mobile

The app store as a means for distributing applications is severely limited compared to the web.  The web allows anyone to publish whenever they want, whatever they want.  The web doesn't distribute packages that have to be installed, updated, and can be pirated.  On the flip side in the browsers world text is first class and everyone builds libraries applications on top of that.  Manipulating the dom and dealing with the fact that JavaScript is not the language of choice, but the language you are going to get.  This crazy idea is to create a new browser build for applications.  It would have a url bar just like your typical browser, but each url would have to specify the application that can render the url.  When following links if the application is the same the browser would be able to notify the application to load the new url without having to re-load the entire application.

The Hello World example would have to be a little game where each level is a different url and it specifies the game engine as the render.

Applications could be one of several different sandboxed solutions with at least a bytecode package and an interpreted solution provided.  One possible solution would be to use something similar to vmkit and let applications provide their own vm (and language) that their application can be written in.  One could of course write an application called "classic" that could render html :)

Beyond the application graphics primitives would be provided and on top of it anyone would be allowed to create rich toolkits.

Why not just make apps using nacl for Google chrome?  You could, but the only way this is interesting or takes off is if it is not in the browser we know and use today and is first on mobile.  If it is first on mobile than any new application that appears on it will first and foremost work on mobile, unlike the web today where you have desktop sites, and then mobile sites.  If it is not within the existing browser than it has the power of *new*.  Users love new things, developers love new things.  Developers hate minor features that only work on a subset of the browser market, but here if you make an app you know it will work on 100% of the app browsers out there.  Lastly by making something new with no intention of working in the old browser you can determine everything and don't have to compromise.  There is a good chance that the first sdk will be the default sdk for a long time.  Many companies have been built on the idea of creating a platform and making money as users come to the platform.

Finally at some point someone will make something like this and it will eventually replace the web browser and the app store as we know it.  The question is would you like to be in control of it or let someone else?

Code on a business card

Working for a company that prints a ton of business cards I have had some time to think about different business cards I would like to make.  As I am a programmer a very interesting one would be to make a set of cards each that have a different program on it.  Granted you could use each pixel to store data, but that isn't very interesting, much cooler would be to limit yourself to what users could read with their eyes.  With that constraint you can actually fit somewhere around 6K of text on the card.  At this point it is less about toy programs, but more about interesting ones and how you display them artistically.  Some different ideas include a C compiler, lisp interpreter, and vm.  Granted they might all be limited in one way or another, but it would still be a neat card.

Ray tracing on a business card