Whats the enterprise applicability of this?
I think a lot of the concepts of the UI paradigm would be applicable. Popfly is not targeting that as a segment at all. Its really about Internet mashups. And there are pros and cons with that approach. Its directly in line with what I want to tackle, which is getting people who are already on the Internet to have a custom experience.
Going in the direction of the enterprise is not what we are after. Its a hard problem. If you look at the history of Web services, those intranet scenarios where you pull the data out of your ERP system and to push together the data you have in your proprietary sales database and to update your HR database … to actually create those things [is] complicated. Some day I hope to be able to put the same type of easy to use interface on top of it. But the state of the services themselves isnt there yet. And the state of some fundamental tricky problems, like authentication, non-repudiation, reliability of the messaging and things like that, are not ripe for the plucking yet. Web services arent that simple yet.
The original version of Popfly was built using the Express products, but the first thing we ran into was when we had a second developer on the team, we were screwed. There was no way for them to separately work on the project and synch their changes back with each other in an efficient way. So we did an upgrade to Visual Studio Team Suite with Microsoft Team Foundation Server running. We connected to TFS and shared everything up there. And were upgrading to the latest builds of Visual Studio 2008.
Now that Popfly is here and its getting pretty healthy adoption and lots of accolades, what do you see that it needs? Whats on your list of adds?
The wish list is so huge for the things we want to do. I really want to get to a point where it is much easier when you see some kind of a Web site or a Web service to make it programmable from within Popfly. And there are a bunch of technical problems that need to be solved there.
Theres the idea that data needs to be free. For instance, governments publish a ton of useful data. The challenge they face is they dont have the budgets to put them into a database that versions and is queryable through Web services and so on. So they tend to publish them as HTML pages or big old XML files. And Popfly needs better tools to be able to reach into those data sources and actually make them useful.
I think a second thing is the ability to embed the creations from Popfly in lots and lots of different places. There is so much more to be done once youve created these things to push them to a lot of different places and have people take them from those places and tweak them on their own and let them have a life of their own.
I still hold out hope that we will be able to partner with some educational institutions and kind of revive what I remember from computer programming classes when I was in junior high school—which was the idea that you could walk into your schools computer lab and start coding. I want to get to a place where we can do that.
If you look at what Silverlight is going to be doing around dynamic languages, theres a huge opening for us to be able to make Popfly much richer. Right now were supporting Silverlight 1.0, but if we move to 1.1 and were able to use the dynamic languages that are going to be running on top of that, man, that opens up new doors for us.
What new doors?
Theres a litany of interesting edge features, but it comes down to I want to make it more social. And I want to make some kind of inroads into, not necessarily changing how AP [advance placement] computer science is taught, but making it so that people who dont want to take AP computer science can still learn how to program and how to interact with the Web and arent limited by the frameworks that your particular blog provider gives you.
Did you take any cues from any of the existing tools for teaching non-programmers to program?
I talked to the folks who did BlueJ, I talked with the folks who did Alice, and I talked with the folks who did Kids Programming Language. And I walked away from all of those with the same feeling that the problem of how we teach kids who were already interested in computer science was a solved problem. And there were an awful lot of very smart people working on iterating on those solutions.
The second thing that hammered home for me was that for people not interested in actually learning computer science, there wasnt very much that was going to take skills people might already have and teach them structures and concepts in a way that actually had them creating useful things that they wanted to show off.
Because part of the thing about learning to program is at the end you want to be able to show somebody something. Its like learning how to cook. At the end you want to be able to show somebody, hey, look at this cool thing I did, or taste this dish, its really good.
I kind of felt like a lot of computer science curricula you ended up at the end with nicely chopped onions, nicely chopped carrots, nicely chopped celery and maybe you put it in a sauté pan you wound up with a sofrito, but you hadnt actually finished the dish. And I was more interested in getting to the point where you made the dish.
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.