Friday, November 23, 2007

Amish Oriented Databases


Was Ray Ozzie right? I've been seeing a fair amount of information circulating about RDDB. RDDB is a document-oriented, RESTful database. Lotus Notes is a document-oriented, old database (and email program, calendar, workflow form generator). The cool thing is that all of my Lotus Notes knowledge, which was rapidly becoming worthless now has a chance to be valuable again if this sort of thing takes off again.

I was in a Rails training class with this guy who made his career on the back old Notes and their ugly little autogenerated web apps. He kept asking, "how do we keep this from becoming another Lotus Notes?" At the time, I was thinking, "how do I keep myself from being one of those guys who looks at every new technology in terms of some old technology that he actually had time to understand?" Now, looking at the potential resurgence in document oriented datbases, maybe he was right...nah. Rails is nothing like Notes, because, uh...it's dynamically typed? No, Notes had that. Works with Java now, thanks to JRuby? No, IBM took care of that with Domino+WebSphere. Hmmm. At least 37 Signals hasn't been sold to IBM while David H. grabbed the lead role at Microsoft.

Oh, wait, there is a difference. REST! I had posted a long while back about how my cousin made fun of me in front of a huge room of people because he asked what the two types of web services were (hoping for document oriented and remote procedure call as answers) and I said "REST". He said the REST people were like the Amish, got some laughs and proceeded to promote WS-*. At lunch after his talk, Bob Martin took my side, so I knew I had made at least an interestingly wrong decision. Tim Bray has a nice round-up of other smart people that were wrong about that. So sweet to be right about that, even though he could kick my shins in programming any day of the week. Except Sunday, when we Amish polish our wooden laptops. Anyway, maybe RDDB is more Amish Oriented Database than Rails Oriented.

So Rails has REST, and even though I swore off creating RESTful apps when the initial URL implementation was polluted with semi-colons, it's the real deal now. Not so much for the application, but for the API. It's great to have APIs that are platform independent. Most things like a Lotus Notes wouldn't bother with this- doesn't help with platform lock-in. I spent more time working with the Lotus Notes ODBC driver to suck data out of the system than was reasonable. Of course, they did support COM, which was the REST of the day (if CORBA was the WS-*).

Now, REST still needs a solution for the old federated identity problem (so many websites, so many passwords, so many usernames)...but there are plenty of options. Maybe my cousin is right about CAS? Seems Amish enough for me.

Thursday, November 15, 2007

Feral Programmer


Feral Programmer: A programmer who has no notion whatsoever of common, socially acceptable programming practices or knowledge of available tools and technologies. The feral programmer is not necessarily a bad coder, and sometimes could be labeled a savant, but is generally impossible to work with due to the complete lack of any common framework of understanding. Somewhat of a corollary to Not Invented Here syndrome, the feral programmer is either just completely unaware or uncomprehending of most inventions in the field. Behaviors include: creating flat file databases, version control systems or their own web service architecture built of packet sniffers, frequently using only Perl.

Tuesday, November 06, 2007

iPhone SDK trumped

A third note in the open platforms series...Facebook vs. OpenSocial, Second Life vs. Multiverse, iPhone vs. Android. Now strictly speaking, the iPhone is the least walled garden of the three, but the lack of Java support means that it's a little like Facebook. Even with the vague SDK announcement, all applications will have to be custom built for it. Fortunately you can still use the iPhone to get to your Google docs...

Where's my GPhone?

Android is the first truly open and comprehensive platform for mobile devices. It includes an operating system, user-interface and applications -- all of the software to run a mobile phone, but without the proprietary obstacles that have hindered mobile innovation.

We recognize that many among the
multitude of mobile users around the world do not and may never have an Android-based phone. Our goals must be independent of device or even platform.


Thursday, November 01, 2007

...tear down that wall.


You have to love the timing of the Open Social API announcement. Facebook is not worth $15B or $3 for every person on earth...

As pmarca puts it:

This is the exact same concept as the Facebook platform, with two huge differences:

  • With the Facebook platform, only Facebook itself can be a "container" -- "apps" can only run within Facebook itself. In contrast, with Open Social, any social network can be an Open Social container and allow Open Social apps to run within it.
  • With the Facebook platform, app developers build to Facebook-proprietary languages and APIs such as FBML (Facebook Markup Language) and FQL (Facebook Query Language) -- those languages and APIs don't work anywhere other than Facebook -- and then the apps can only run within Facebook. In contrast, with Open Social, app developers can build to standard HTML and Javascript, and their apps can then run in any Open Social container.
In keeping with my thoughts on 3D virtual worlds, the walled garden approach is not the end state, the "internet of virtual worlds" is. I think we're going to see this with Facebook, MySpace and others eventually becoming part of an "internet social spaces" connections between bits and pieces of ourselves, photos on flickr, blog on blogger, twits on twitter, profile on myspace, maps on geocommons, restaurant reviews on yelp, plus whatever we think of next week. Tying all of this together is going to be remarkably cool.

Technology like OpenID is really useful, and that's why you see Enterprise players like Oracle on the agreement. Now Facebook has a great UI and momentum, so there is still a really huge chance that this effort will fail if it turns out that no one uses it effectively, but I think there will be at least one innovation out there that will cause Facebook to pull down the wall towards interop of their data...