Web Services and Open Source at OSCON
I spend a lot of time with my head buried in code, and every time I pick my head up it feels like the future is closer than I thought. So I like coming to OSCON. A week of looking ahead leaves me more confident I won't get future shock anytime soon. OSCON, like all conferences, is aimed at corporations, the intangible entities that send humans as their proxies. But open source has its roots in individuals working outside the corporation for their community of programmers. Are the two cultures coming together, or colliding? And how will the "open source ideal" evolve, as the chief social act of programming changes from trading disks of source code to processing each others' data and mashing up web APIs?
I'm an open-source programmer who's lucky enough to be paid by a corporation. Between sessions this week I'm working on turning Slash's metamoderation into a plugin, making Slash more useful for other site admins. I'm a human first and employee second. And I'm concerned about how the community based around this software ideal of not welding shut the car's hood is going to hold together.
Markets aren't designed for goods with zero cost of reproduction, but because property is such a powerful tool for efficiency and prosperity, societies have been artificially constructing markets for creative works since even before the founders wrote up their support for "science and the useful arts." Often, markets in ideas work pretty well.
There have been three societal "bow shocks" in the collision between programming and capitalism. The first hit in 1976 when Bill Gates insisted that charging for software made sense. The second was in the late 90s when open source proved better than corporate hierarchy at certain types of development. And then there's the one that's about to hit now, when web services and interoperability concerns obviate open source licenses.
There's a growing understanding here that web services are big: that the laptops and desktops of the future will rely not on software goods that have been bought for those machines, but software services that run on a server a thousand miles away. Google calls its Ajax web services "the world's largest platform."
Yesterday, Tim O'Reilly hosted a stimulating all-day series of panels and talks on web services and "Web 2.0" generally. The most interesting part of the discussion was about tying web services together. Web mashups are hot. It's hard to look at a list of websites offering an API -- Google Maps, Yahoo Geocoding, eBay, craigslist, Flickr, YouTube -- and not start thinking about great ways to combine them. Interoperability plus programming creativity equals... well, something pretty neat, we're hoping.
But a web services API doesn't necessarily offer the freedom that might seem analogous to open source, which is why Tim is also putting out the call for an "open services" definition. Flickr offers its corporate API to some sites, and refuses to permit it to others. Zooomr was judged to be too much of a potential competitor, so Zooomr users don't get to copy the photos they've uploaded to Flickr. [Update: Sorta. Read that comment thread to see important context for Flickr's decision. To be clear, given that context, Tim thinks Flickr found a good answer, and I tend to agree.]
As Flickr says, and they have a very good point, "why should we burn bandwidth and CPU cycles sending stuff directly to [a potential competitor's] server?" That makes sense from a corporate point of view, but a user who's uploaded a thousand of their photos might be puzzled why it's no longer exactly "their" data. Is that a right that user should have, or not? I ran into Julian Cash, who vehemently argues that it is; he's started MoveMyData.org to try to build a client-side way for users to route around APIs, to suck down "their" data and maybe reupload it to other sites. No code yet, but he's looking for volunteers.
AttentionTrust goes even further, starting off its manifesto with "you own your attention and can store it wherever you wish." That's something I hadn't considered before but it has an interesting ring to it. They have a Firefox extension I haven't tried yet (does it work? post comments).
Interoperability is a concern even without the web. Yesterday morning, Danese Cooper got a half-hour to grill Bill Hilf, Microsoft's General Manager of Platform Strategy, on Microsoft's relationship with open-source. Some think that's the same relationship as the butcher to the hog, and Bill's job is to persuade them Microsoft has no such intentions.
Asked directly, in the context of embrace-extend-extinguish and web APIs that can be crushed at any time, "why should we trust Microsoft?", Bill's answer was to look at the company's actions: "consistent action, over time, in the right direction."
I sat down with him afterwords to probe into this a little more (with someone from Waggener Edstrom standing nearby). He has some examples of Microsoft working with open-source projects like JBoss and SugarCRM, but I asked for specifics of how we know Microsoft isn't going to try to kill more-directly competing projects like Mono or OpenOffice by eliminating interoperability, possibly with patents, at any random time in the future. The only real sign I got was the Covenant Not to Sue (over patents) that came with the OpenXML format earlier this year. That's a step in the right direction. I don't think it's a terribly big one.
I asked if we'd see more steps from Microsoft disavowing patents as weapons against open-source projects. Obviously that's a big risk for a company to take, but one that's probably necessary to convince skeptics Microsoft is friendlier than the butcher. While Bill couldn't make any promises, he affirmed the CNS was "not a one-off... and not just to placate people." I'll keep an eye out for more action in the right direction.
Exciting as the opportunities are for different projects' software working together, one thing's for sure: the remote sites that run their algorithms and store your data leapfrog open source licensing. The server a thousand miles away can run software with its hood welded shut, with no obligations to the open-source community that come along with the benefits. Today, while some companies are trying to build goodwill with that community, there is nothing like a GPL for web services. No one's discovered a legal foundation that would establish open services, openly shared web services, with the same kinds of rights that we insist on in open-source code. No one's even sure what "open services" might mean, indeed, there's no consensus that we even need such a thing.
Even the FSF is unable to decide how v3 of the GPL should read. And I'm not smart enough to know if the GPL is even the right tool for this. Maybe tacking clever licensing terms on top of copyright's restriction is a temporary hack whose time has passed (you know, like the RIAA). Maybe the next hack to build a community of software sharing and tinkering will have to be totally different.
I don't think I know the answers but maybe one of you does. If you have thoughts about the open-source community in the age of capitalism, please post them to this story. If you're at OSCON and want to chat about it, email me (or AIM 'jamiekzoo' if you catch me online). At the end of the week, I'll have more updates on what's happening here -- it's not all philosophy and futurism.
...it feels like the future is closer than I thought
The future can be no closer than the next Planck moment (http://en.wikipedia.org/wiki/Planck_time), unless you have a new discovery you would like to share;-)
god I hate the phrase Web 2.0, every way I think of the web I end up at numbers higher than 2.0, or just something like Web 1.0.5.25-3.8762. Where the hell did they get "2.0" from? and even if they can explain this, why would it be new?
It doesn't relate to who can put information on the internet, because even if you said web 1.0 was elite users puting up content and web 2.0 is light users then surely geocities heralded web 2.0... and now with blog's and ultra easy updating we'd be at least on 3.0...
If it's access speed then broadband at about 128k was 2.0, although we're now significantly higher than that, and even if you just made the distinction of narrow/broad band then web 2.0 would still be old
If it is browsers we use it is higher than 2.0
If it is content then we has 1.0 -text, 2.0 - pictures, 3.0 - Audio/Video streaming
I really think that web 2.0 is really a woozle... we've got it into our heads that there might be something and have started walkin in circles chasing our own foot prints, in the hope that at the end we might see a big 2.0 sign
It's easy to confuse the success of open source with the degree of its acceptance and promotion within the business world. The ideal has always been to find some means of getting paid for developing software you can share for free.
But the strength of open source has always been in its community of people with common goals who develop and exchange software freely. Perhaps this will include the WWW; perhaps not. It's worth noting that most of the problems open source faces have come with its commercial acceptance -- legal threats, negative PR, unreasonable support demands -- and it's probable that if open source is not at the forefront of the next IT fad it'll simply grow in a different direction.
I never vote for anyone. I always vote against.
-- W.C. Fields
My employment terms essentially say that any code of any sort that I create at any time (even after regular work-hours) during my period of employment belongs to my employer.
I dislike this very much in principle and also because it forces me to contribute anonymously, where possible.
I believe open-source is the best thing that could have happened to software to benefit users of software and help make computing a more popular interest.
I wish I could work for Canonical. Mr Shuttleworth, I've sent my CV. Please consider it!
Rich And Stupid is not so bad as Working For Rich And Stupid.
Anyone know if you work on a project in grad school if your school owns it? Is there anything that prevents a grad student from open sourcing their project code? What about patenting or starting a business based on things that come out of your project? What about side projects?
Web services, by their very nature, are open. We don't need a GPL for web services, that's quite redundant. What we need are unified standards for content transfer and the movement of data cross-services.
APIs can be a double edged sword if you're a company (Flickr for example)
I don't think I know the answers but maybe one of you does. If you have thoughts about the open-source community in the age of capitalism, please post them to this story.
Think climatic battle between the Federation and the Borg. Now imagine the Borg as the winner.
Mashups are not "hot". My mother has no idea wha ta "mashup" is. Nor will she ever. Just because you have a circle jerk of blogging buddies that look at your Craigslist Google Map that shows you where the most Male4Male posts come from doesn't make it useful or remotely usable to the general population.
I will never trust a mashup as much as I would trust the originating websites. How do I know you aren't altering the data from the Sexual Predators Database to include your ex-husband? How do I know that you aren't filtering eBay auctions to remove auctions that don't fit your political beliefs? Sure, I can go look for the data, but with API license restrictions, I may not be able to access the information myself.
Web mashups are hot. It's hard to look at a list of websites offering an API -- Google Maps, Yahoo Geocoding, eBay, craigslist, Flickr, YouTube -- and not start thinking about great ways to combine them.
Some links of interest:
API list is here.
GPS Tracking demo here.
Map projects at Google Mapki.
Recent Earthquakes here.
He who knows best knows how little he knows. - Thomas Jefferson
Well you're half-right. Yeah they're open in the beer sense. However authentication allows the one providing the service to control who can access it (and by what degree). So it's not always free in the speech sense.
I was upset this past weekend, when I saw OSCON was back, and I wanted to go (I just moved to Portland).
Since when I checked the page for directions, and saw the hefty price just to get past the exibit hall. Over a $1000 just to see anything interesting. Open source must now also mean open wallet.
I'm certainly no marketing expert, however it seems that some (though not all) of these "mashups" may potentially dilute the brand of the services being provided, by adding an extra layer of abstraction/"confusion" overtop of the data.
:)
Personally I see nothing wrong with this, but will this prevent some companies from releasing their API? Flickr seemed to have an interesting solution to the problem of API release, in that it would share its photos with other sites if and only if they shared theirs back... maybe like patent cross-licensing, API-cross liscensing will become the norm.
P.S. Anyone who's interested in checking out the limits of Google Maps' API, check out Power Map, a simple webapp my friend put together to give direct access to almost all Google Maps features. It was featured on BoingBoing, so you know it must be good
There's a growing understanding here that web services are big: that the laptops and desktops of the future will rely not on software goods that have been bought for those machines, but software services that run on a server a thousand miles away.
Maybe it's because I've been in this business a couple decades now, but I'm having trouble getting excited about Yet Another Paradigm Shift. Computing power has been oscillating between the endpoints and the central servers for a long time. In a few years, we'll see if shift back.
But a web services API doesn't necessarily offer the freedom that might seem analogous to open source,
This of course is why we'll see things shift back. Another reason is security. Do you really want to put your personal finances on Spreadsheet 2.0?
Just like everything else in the computer world, you gotta study Web 2.0, digest it, see how it's just a reconfiguration of something you did 10 years ago, and move on.
Quit
You don't need to get paid for programming any way. If open source continues on forget working for a software "company" and getting paid for it. All business software will be developed by "communities". Programmers will end up getting paid for their "support". Support personnel get paid extremely less and once there is an abundant amount of proven open source that businesses may use freely the calls for support will even lessen.
Thanks for driving us all out of a job. I salute you!
What APIs out there are people really wanting to be openned? What would be useful to have? How can the FOSS community come together to help provide direction for companies wishing to open APIs, and incentives to help corporations along in doing so?
You know...markets and conversations...never mind.
It seems to me that the answer lies with people of the same type and caliber as those who made open-source what it is. We don't know them, yet. They may not know who they are or what they will become. However, over the next few years they will distinguish themselves. They are the guys and gals who see the challenge represented in jamie's post and immediately start thinking of it with some unique perspective. Then they will think some more, and think and think. Then they will start doing some seemingly small thing to address what they've been thinking about. Then they will do some more, and do and do. Before long, something none of us watchers ever dreamed of will take form and become the solution to some piece of the challenge. We will all think it was so obvious. Nonetheless, the thinkers and doers who find the solutions will be the next Linus, Rob McCool, or Larry Wall.
For this reason, I'm not sweatin' it. I know the people who will solve the challenge are out there waiting for the opportunity, or actually, working on the solution already. I'm looking forward to what the next future looks like.
I spend a lot of time with my head buried in code
Really? You could have fooled me, judging by your results.
"I asked for specifics of how we know Microsoft isn't going to try to kill more-directly competing projects like Mono"
.Net applications to run in Linux. The windows equivalent is the .Net Framework, which is a free download. If anything, MS has a motivation to improve Mono as having Mono perform as well on Linux as the .Net framework does on Windows will increase the penetration of .Net development tools in non-windows environments, thus increasing the market share of Visual Studio.Net, and other paid for development tools. Not only that, but more .Net developers in Linux means more developers to train, more seminars to hold, more control over the business sector software development area.
Mono doesn't 'compete' with a MS product. Mono allows
-Rick
"Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
Flickr ended up, after some rough comments and self-reflection, changing their minds (see the "Update:" at the bottom of the post).
I can already see your IM Client choking on the "Fr1st iM p0st" storm that is sure to follow.
Tom Caudron
http://tom.digitalelite.com/
-Tom
Superseeding is what you can do to a BitTorrent swarm using Azureus.
Superseded is the appropriate word regarding California law and employment contracts.
Web services, by their very nature, are open.
Not necessarily. A company can make it so their web service is in fact free, but will only run using (say) Internet Explorer. Being a web service doesn't stop you from vendor-locking. So you give out a free web service, and make money from selling the only OS that it can be used with.
What we need are unified standards for content transfer and the movement of data cross-services.
I agree. But in addition to that we need to prevent vendor lock-in, as I said before. So, to summarize, a 'GPL' for web services might look something like this:
1. The ability to use web services with any (standards-observant) combination of operating system and web browser.
2. The ability to receive your content from a web-service in a standard format (that can be therefore used with another web service, or a standalone computer).
Doc Searls gave a tutorial yesterday that I wanted to go to but had a conflict (darnit). I haven't actually read anything of his on this, but the idea of treating your markets more like conversations makes a lot of sense to me...
These conventions are not about sharing information. They are about selling "key speakers" to HRM departments of devevelopers in big businesses who like to get away from things. It's a selling trick. I don't know why any non corporate open source developer would pay that amount of money, so O'Reilly can become even richer, the same key speakers from the ol' boys network get richer, and the talk is all yada yada, mostly repeated what has been said on the net already. You don't gain wishdom. You don't gain status. If you really believe this conventions add anything, I wouldn't buy a second hand car on my own. You're just too easy a target. And if you really want to learn, talk to open source developers who develop instead of stalk conventions for their mega-bucks corp.
Do they atleast let you download the presentation materials from other concurrent sessions?
Or download a video (or podcast) of it?
After shelling out the $ to attend the sessions, I would hope they'd do this.
http://slashdot.org/~tf23/journal
He's commenting on something he doesn't even understand. Web services are basically the most cross-platform and interoprable thing out there. It uses plain XML files, and very well documented, open formats.
And no, it's not consumed by a web browser, but server-side code (server middleware). This has nothing to do with web browsers. Often they're used by rich client apps, and the resulting data will likely not even be used to generate a web page. Nobody in their right mind would develop a nonstandard approach to locking their web services against certain types of "clients" (vendor/platform)... It would defeat the whole point of it (interoperability), decrease your userbase substantially and all.
And web services ARE in a standard format (SOAP, XML, etc). So that point is wrong too. 100% FUD on all counts.
What would be nice is to see some good web services be free. Too often, the interesting/useful services cost money (a bit too much for what they offer), or have better options for developers (often they're secured and need a license to access them, and often it costs money, no even low-traffic trial accounts or anything).
To have a right to do a thing is not at all the same as to be right in doing it
I have been thinking about this for a long time, but I really like the way Jamie has focused the question here. I will write an essay in answer to the question --- "What's the equivalent of free software for web services?" --- and post it to kragen-tol as soon as I can.
I have posted my answer to kragen-tol; the message is The equivalent of free software for online services.