Commercial

You are currently browsing the archive for the Commercial category.

A long time ago, I got the chance to go to the Grand Canyon. It’s pretty amazing, I don’t really have the words to describe it adequately. It’s just amazing…at points it’s 10 miles from edge to edge, with a near vertical drop-off to the bottom. It’s huge. But at some places you can look across to the horizon and see flat land stretching outwards, then when you take a few more steps and see that there is an enormous chasm between you and the edge of the world.

Software seems like that to me at the moment.

We’ve discovered the power of the Internet, and being connected. We’ve discovered that we can devise new applications for groups of people, that we can aggregate information for something larger than the individual bits. We’ve found out that being able to access information from anywhere is hugely useful.

But our desktops and the Internet are two completely separate software worlds.

If we build a web-based system then it’s accessed through a browser and can’t interact with our desktop.

If we build a traditional bit of software then it has to be installed to be used, and it will be subject to platform quirks and problems with particular configurations.

There’s a chasm between the two worlds.

AJAX and Web 2.0 is better, but at the root it’s an attempt to make the browser behave like the desktop. And it’s subject to it’s own problems. Nevertheless, I think that this is a step towards the solution.

Here’s what I want:

  • I want to be able to make applications that are client-server in nature;
  • They should expose a web interface for when I’m not at my PC;
  • They should have a federated data-store behind them; that is, there is some data I don’t want to expose to the Internet but the data that is exposed to the net should be part of a bigger whole, rather than a copy. Alternatively if the data exposed to the net is a copy, then syncronisation should be 99.9% automatic;
  • I want to be able to run any application without being connected to the Internet, maybe with reduced functionality;
  • I want my applications to enjoy all the benefits of normal desktop interaction; the granularity of actions should be small; I don’t want to think of the world in pages, and I do want to be able to drag and drop;
  • I want to be able to try applications without an install. I’m willing to install if I decide that something is useful.
  • I want security; I don’t want my PC open to crackers.

Mostly, this vision is already achievable. (Microsoft is calling this sort of app a smart client.) But it takes hard work because you have to build the infrastructure by hand. In fact, most of the infrastructure is re-usable and should be abstracted into a tool and framework.

Now there are two or more environments that are partly suitable:

  • Java. Can run on the desktop. Can run on the server. Can run on multiple platforms. Can deliver responsive apps – witness Eclipse. But there’s no easy way to build dual-headed apps that I know of. Do you know of a way? There’s the ability to run from the web with Webstart.
  • .Net. Can run on many versions of Windows. Runs on client. Runs on server. Has good integration. Can build dual-headed apps. But it’s not great for delivering software if you don’t want the source to be readable. Granted you can get an obfuscator, but a industrial-strength obfuscator should be part of the basic package. A big downside: you need the giant 20MB runtimes to be on the client machine. There is no linker available as part of the MS package which would reduce the size of most apps and allow you to ship a single file, but you can buy one from Remotesoft. And lastly, .Net isn’t big on platforms other than Windows.

I’m sure that there are other ways of doing this too; for instance, if you install the PHP and GtK runtime on the client then you could use PHP locally and remotely. But other solutions are less integrated.

Overall, I don’t think that either of these solutions are great. It seems like it’s going to be write-n-times for a while.

Jonathan Swartz has a very interesting blog entry about moving Solaris to free software, and how this has paid off. Sun have gained 3.4 million licensees as a result. Most of them come from HP. It’s a hugely impressive achievement.

However, his post has raised a lot of questions in my mind. They are all directed at understanding whether the experience that Sun has had would be transferrable to other software projects; I’m very interested in whether free and open source can be the basis of a sustainable business model for ‘pure’ software developers. It’s clear that it is possible in some software categories – witness Red Hat and MySQL – but can the lessons be applied in a broader context?

So here we go… 

HP customers are probably switching to Solaris because of the travails that HP has been undergoing. So excluding HP customers, how many have switched? How many of them are completely new to Solaris? This would be a good indicator of the level of interest. It would also be interesting to know about the rate of adoption over time. You’d expect an early blip in the graph, but the ongoing adoptions are much more important as a measure of whether the open sourcing is sustainable.

I also wonder if there are any stats on persistence because that’s even more interesting. I know I’ve tried a lot of operating systems in my time. I’ll download them, install and work with them for a few weeks. See how I like them, and whether they are better or worse than what I’ve tried before. I’m no longer an OS/2 user, despite having spent a couple of years as a developer and integrator. Nor do I use Slackware. Red Hat. And more. I expect that all these companies consider me to be a licensee. The real measure of licensees is persistence of use. So what measures are there on persistence?

Software is a complimentary product for Sun. They sell hardware. If they can increase the sales of hardware through free software, that’s a benefit and a way to justify the expenditure on the software. I’d be interested to know something about the conversion rate to Sun hardware of licensees. If the conversion rates were low, I’d be more impressed; it would mean that despite the apparently low complimentarity, Sun are convinced that it’s beneficial move.

Jonathan is clear that companies are willing to pay money for free software and that it’s the support attached that makes the difference. So I’m interested in knowing whether the income from licensees is greater than the cost to Sun of support plus development. If it is, then it’s clear that OpenSolaris is self-sustaining and will continue to grow. If it’s not, then Solaris under this business model is a bad bet for your future as a user. Of course software development is a length-of-string problem; you can always spend more money. So what’s the level of expenditure on Solaris development? This should give an indication of the amount of development on Solaris. An alternative way to answer this would be to understand the level of community involvement in improving Solaris. A measure of the number of commits would be a good indicator of the amount of development that Solaris is experiencing if it’s compared to other similar projects.

Of course, all these measures are early-indicators. We need a few years to see whether it’s working or not, and to know if any good figures were transitory first-wave adoption. Nonetheless, I think that the facts that Jonathan gave are hugely encouraging and seem to show that Sun is on the right course. I hope that in the future we’ll have some insight into these other factors; it would give an even better picture.