Saturday, June 9, 2007

Open Letter to Ian Murdock & Sun Microsystems

Dear Ian:

In your recent article "Where do I download OpenSolaris?" you solicited suggestions from the community on how Sun could make OpenSolaris a successful community project.

You are spot-on that OpenSolaris can and must be a viable alternative to Linux. To call people home to Sun, you need Linux brainshare, usershare, and buzzshare. I think you already know that you need to be a better Linux than Linux. In many ways (ZFS, DTrace, Zones, etc.) you already are better than Linux.

Please consider these, my humble suggestions for Solaris world domination. Also, though I'm pretty sure that Jonathan Schwartz is already a regular reader of my blog, feel free to circulate at Sun.

Sun already knows the first steps. It goes without saying that Sun needs to "Debianize" Solaris:
- Apt-get, dpkg, etc. In reality, the tech doesn't matter as much. You could "Susify" Solaris just as easily, but geeks seem to be more passionate about the superiority of Debian system management. Plus, that love fest with Ubuntu wasn't just a one night stand, was it?
- Aim for similar package coverage as Ubuntu. If you can apt-get it in Ubuntu, you should be able to apt-get it from Sun.
- Adopt GNU packages wherever there isn't overwhelming reason not to. Nobody wants the crusty old versions of things like sed, awk, grep, vi, etc. Dare to break script compatibility for the 5 users who don't install this stuff anyway.
- GPL Solaris. It seems superficial, but there is always going to be a contingent that will vociferously take potshots at Solaris for not being "Libre." If you can do it with Java, you can do it here.
- Drivers.

In short, Sun needs to appeal to the whole range of Linux users. Do all that, and you very well may become popular by Linux distribution standards. With a better integrated, more popular, and commercially supported back-end architecture, you might even be able to steal back some of those who have left Unix for Windows / IIS / .Net. Ultimately, it's still going to be a pretty crowded pond you'll be swimming in. What Sun wants and needs, I believe, is a mass exodus of Linux users.

Sadly, I fear Solaris is going to need to elevate its cool factor beyond ZFS, Zones, and DTrace to hook the proto-geeks who are tomorrow's sysadmins and purchasing managers. Sun is going to need to do something radical, visionary, and perhaps a little crazy to build its numbers. Oddly enough, I believe Sun already has the cards to make such a play.

Sun still has rights to a bunch of OpenStep technology. Sun should use it to build an open source Cocoa for Solaris. Furthermore, Sun should build it on Java. Specifically, Sun should build an Objective-C to Java bytecode compiler, effectively replacing the Objective-C runtime. The new features of Objective-C 2.0 like garbage collection seem like they could potentially benefit from the years of optimization that have gone into supporting those features on the JVM.

Look, both Sun and Apple are fighting variations on the same two-front war. On the Microsoft side, both are ultimately going to end up battling C# / .Net. On the Unix front, both are fighting a war against Linux. As the suits would say, there have to be some synergies there.

The perception, right or wrong, in the programming world is that Java has lost its mojo. Part of that is the mistaken impression that Java is slow. Why is that? I suspect that comes from nearly everyone having a bad experience with a Swing or AWT app at some point. Also, somewhere along the line, the syntax of Java stopped looking cooler than C++, and started looking uglier than C#, Python, or Ruby. A speedy Cocoa implementation on the JVM would go a long way toward dispelling some of those myths and user experience problems. Don't like the look of ObjC-2 or Java? Okay. How does JRuby suit you?

If Sun can manage a reasonable degree of source compatibility with apps written for Apple's Cocoa, they will have saved the world, restored Java's mojo, and will have beat Linux to the desktop. How's that for a "fuck you" to IBM?

Solaris should, by rights, be the market-leading Unix. To build your user base, you're going to need to catch 'em young, and the young generally can't afford to play in data centers. You're going to have to find them where they play, on the desktop, and to do that you're going to have to aim higher than GTK/Gnome.

Alert reader and longtime NeXT aficionado, Gary Longsine points out that the new Leopard X from the WWDC 2007 banners looks like it has a sun shining from behind. What with the ZFS and DTrace love in Mac OS X 10.5, one has to wonder.

Gary also reminded me that Jonathan Schwartz used to own Lighthouse Design who did a lot of OpenStep development. Sun has lots of OpenStep code...


Anonymous said...

here here!

GPL it and junk the old cruft.

Anonymous said...

I disagree. I've found that the BSD toolchain is much superior in terms of documentation and code quality than the GNU tool chain, so using BSD would be, in the long run, better than the GNU tool chain. Additionally, the BSD package management system, along with a few niceties from the Ports system, would blow anything from the debian system away in terms of ease of administration. So no, we don't need GNU, we need a real operating system under the hood.

Peter said...

If you dig back through the archives, you'll see that I quite like BSD (my preference really), however, I have to admit: I like grep that has a "-r" flag and sed that does "-i" quite a lot. My Apple even has those by default.

Anonymous said...

GPLing everything Sun has done will result in making Linux a black hole. You will stop it from spreading everywhere (like other Unixes and Macs, and even Windows boxen) and create this huge gravitational pull for LInux.

Is that what Sun wants? I don't think so. But I'm quite positive that what Mr. Stallman dreams of.

If Linux people have a problem with other open source licenses, that is because they license they chose is the problem. Other systems wellcome Sun's aperture.

Is Sun plays the FSF game, it will be swallowed by Linux. That would be a terrible strategic mistake.

President Leechman said...

Only components that are completely standalone should be considered for the GPL. Stallman has tried to paper over the incompatibilities between GPL2 and GPL3 by saying that you don't normally mix and match programs... no, you don't, but you mix and match libraries all the time.

So, I vote "no" to GPLing the whole thing. LGPL, CC-SA, BSDL, or MIT are far more appropriate for libraries, for kernels, for programs that take plugins, for scripting languages and runtimes.