I watched Bret Victor’s talk “Inventing on Principle” last night and since then I have been thinking about what My Principle could be.
The most troubling “bug” I see today is computing devices and platforms which cannot be used to create programs that run on themselves. Today’s tablets and smartphones have more processing power, more pixels, and more RAM than a desktop computer from a few years ago. Yet you need a laptop or desktop to develop for Android, you need a Macintosh to develop for iOS, and you need a Windows PC to develop for whatever Microsoft’s mobile operating system is called these days.
This means our children are growing up with computing devices they can’t easily program. An entire layer of complexity, annoyance, and additional cost has been added to the programming environment. I can’t just hack away at a program on my Android tablet without bringing a whole other computer into play. Schools are giving iPads to every kid, but they can’t actually learn to program with them. They can’t discover how the programs they are using are created or how they work.
This does not make sense to me.
The web is in a similar situation. You can’t make a website from within a web interface. Why can’t we bootstrap a website from a web small stub, and then develop the site from within that web environment?
I know of one in-road which has been made on Android: the SL4A project lets you use various scripting languages to program right on the device, but it’s cumbersome when you go beyond basic features.
I think WordPress comes pretty close to this on the web side, which may explain it’s popularity, especially among non-hardcore programmers.
I’m going to put a little more thought into this situation and see what emerges. If you know of any existing solutions to this problem that I’ve overlooked, please let me know.
And if you need want motivation for determining and following Your Principle, watch the video.