The future of software means new kinds of communities, according to Greg Papadopoulos, Sun CTO. Anyone with at least one eye open has noticed two trends - open source software and software as a service - but is there a connection and, if so, where will it take us?Open source communities provide the commonly available creative environment for software developers to share in the building of operating systems, Web servers, browsers, desktops, productivity suites - the building block for network services.But even if service providers choose to use open source building blocks, software as a service is at heart a much different trend. It's not about the bits. It's about delivering the consequences of the bits.An odd sort of side effect here is that many of today's biggest software companies aren't known as software companies at all. Google, eBay, Amazon, PayPal and Yahoo are all software companies. But we don't buy bits from them; we simply get the results of the code they create.Companies such as Google have made it well known that they use open source technologies in their operations, so there is clearly some blending or merging of the two trends. But what comes next? What comes after open source and software as a service? The answer should be open services. But that's hardly guaranteed.The great irony is that Google, in many ways the icon of the new service economy, is one of the most proprietary software companies on the planet. How many people have seen its code? Is Google's search engine open source? No. Is its software around advertising and auctions open source? No. And I'm not saying they should be. But if we're not careful and we let things evolve the way they are, services will be very proprietary, even when built on open technologies.Open services means open interfacesSo how do we collectively build services that are transparent in their operation and construction and let people access a copy of them? That's the next necessary wave in software culture. Otherwise, we're going to end up at a point where everyone has labored to create this common infrastructure, everyone has contributed to it, but a particular set of proprietary concerns have taken that infrastructure and are generating profits off it - while preventing others from competing with them.How? By controlling the interfaces to the service.To understand the importance of interfaces, imagine for a moment what you could do with a patent on the three-pronged plug. You could corner the market on electric appliances?. That's why I believe it should be exceedingly difficult to gain patent protection on an interface.Competition in the electric-appliances market should be based on factors such as energy efficiency, reliability and cost, not the design of the plug. The same principle applies to software.Do we want to create healthy competition or new monopolies?I would never suggest that a maker of electric motors shouldn't receive patent protection on a new armature, better magnets or improved control logic. But competitors should be able to reverse engineer the plug.By the same token, if the world becomes dependent on a set of interfaces into a service you've created, you should not be able exclude others from building a similar service because of your control over the interface.Just as there have always been costs associated with switching among traditional software vendors, there are costs associated with switching services, and interfaces are key. If they're open, you'll be able to shop around for an alternative and get a competitive price. Otherwise, you're stuck.At the very least we need to recognize, and mandate, that interfaces always be subject to reverse engineering.That's the social exchange. If you create a service and people become dependent on that service, then others can inspect your interfaces to create an alternative service. It's then up to them to make it better, faster, easier, less expensive. That's the way we're going to get the most innovation.New kinds of communitiesWe also need new kinds of communities. Most of today's communities are built around code. But to create open services, we need more communities built around compute power. If you want to do an open version of Google, for example, you need to have people working collectively on an actual running search engine. But how many people are going to build up the kind of compute power needed to crawl the Web? Now imagine what could be done with a community Web crawler, a shared database of the Web, where experimental search technologies could be tested.I can easily picture all kinds of Web-based experiments being done through peer-to-peer networks in which people share compute cycles on personal computers - think SETI@home but for other purposes than the search of extraterrestrial intelligence - or through a global grid that sells CPU cycles at an affordable price.Or maybe it's some combination of the two. Maybe you collaborate on a multiplayer game on a peer-to-peer network, then launch a commercial version on the global grid - renting the infrastructure instead of building your own.These are possibilities that Sun will be doing its part to stimulate with the Sun Grid - providing a place where people can go and say not just, "Here's my program. Download it," but rather, "Here's my program actually running. Go interact with it. Populate it with additional services. Add value and prosper."Papadopoulos is CTO for Sun. He can be reached at email@example.com.