Enterprise versus The Developer

Note: I'm just an engineer at Sun.  What follows is my own personal perspective, and not to be taken as Sun's official opinion in any way.  To the best of my knowledge I'm not giving away any trade secrets, but I am speaking frankly about Sun's business model.

I attended an all-hands meeting with Rich Green (Sun's head of software) today, and there was some discussion at the end about Sun's approach to the desktop market.  During the discussion I got bitten by a sudden perspective. That happens to me a lot, but I don't often take the time to write up my perspective or try to communicate it to people.  This time I figured I'd share my ideas.

I guess you could summarize the whole rest of this essay by saying that I believe in the long run  the hearts and minds of the software developer community at large will be won or lost on the basis of the desktop. To understand what I mean by this, read on.

I use Windows at home.

As a Sun employee, I've had the usual dilemma for many years now. Should I run Solaris at home? I have a computer, I know how to do my own administration. I could run anything I wanted to. Solaris, Linux, Apple, Windows, whatever.  Today I'm running Windows at home because I don't have the time or energy to maintain more than one computer, or to maintain more than one operating system.  And windows runs the software I want to run. Games, Productivity software, random internet crap. (No snide comments about viruses please)  I have the same problems as 100 million other people, and when I have a problem, I just google "<my problem>" and up pops the answer.

So how does this relate to Sun and Sun's business?  Well, I'm getting to that.  During this discussion today about the future of Sun in the desktop market, I was listening at home on my Windows box.  But I'd spent the entire day earlier developing Solaris software.  With my Windows box.  I count myself as an engineer.  Most days, I spend most of time concerned with code.  But the vast majority of tasks I do can be done natively on Windows.  I read and write email. I update internal and external wiki sites. I browse Sun's internal web. I update bugs using a Java bugster client. I read PDF specs. I use term windows to log into Solaris machines to build things and reproduce bugs, and do other tasks.

Of course, for more intense code hacking, I need XEmacs with local NFS access to my sources, so there are some things I can't do from home. But I could do them just fine from a Windows machine at work, if I bothered to take my laptop to work.  I was operating today in what I call "hybrid developer" mode. Using one desktop OS to develop software for another OS.

Sun does Enterprise.

Sun has enterprise class hardware, lots of big iron.  Sun has an enterprise class OS, Solaris.  Sun has an enterprise class software stack with open standards based servers.  Sun's business seems to be totally oriented towards feeding large IT departments, telcos, banks, etc what they need.  Big iron.  But what about Sun's smaller rack-mount systems, you ask? And what about Sun's desktop machines? In my opinion, Sun's smaller hardware boxes are essentially spin-offs to capitalize on technology that we developed for enterprise-class machines and software.  Inside Sun we're focussed on the customers who buy our stuff.  (As a stock holder, I'm very pleased to see this!) But it represents a bias in our thinking, and a bias in Sun's internal engineering culture.

I love Solaris, but I'm not an admin.

So here my deal. I'm a Solaris developer. Wait, let me be more clear. I'm a developer of software that RUNS on Solaris.  I am NOT a developer OF Solaris. I'm not in the kernel group. I'm not in the desktop group.  My job doesn't require me to run BFU to install the latest nightly build of Solaris.  I can do Solaris system administration if I need to, but I don't do it for fun, and it's not part of my job.  I love using Solaris, but I don't love administering it. Solaris is pretty damn painful to administer compared to a desktop OS.  But that's not a fair comparison because Solaris is totally geared towards enterprise users, and not towards desktop users.

Software Updaters.

One area of functionality I wanted to talk about is web-based software installers and updaters. There are two groups of people I want to talk about here. Each group sees a problem, and is trying to solve it. And each group thinks the other group's problem is the same as theirs. (Actually, these groups are imaginary groups, because I'm really talking about perspectives and not individual people.  The perspective differences in Sun cause language problems, communication breakdown and lack of synergy between groups.)

One group has the enterprise perspective.  It's focused on things like smpatch and updatemanager for delivering Solaris patches. One group has the desktop perspective.  It's focused on things like blastwave.org and pkg-get for delivering things like Ruby compiled for Solaris x86. The desktop perspective says: Linux uses apt-get (or red carpet or whatever) to update application software and OS packages both, why can't Solaris just convert to using some better than patchadd and pkgadd? The enterprise perspective says: Well, once we get updatemanager up and running a little better, we can eventually start to include unbundled applications in our centrally controlled server-based software distribution model.  Both perspectives make perfect sense, but only if you're looking in one specific direction.

How to get Developers.

Sun has several approaches that it could use to getting Solaris developers. I'll list them in order of the impact they would have on developers: 1) Get Solaris on lots of desktops so that it will be a natural and easy starting point for new software development. 2) Embrace more fully the "hybrid" nature of much of today's Solaris development. 3) Do whatever we can to encourage multi-platform projects to support and distribute software for as many flavors of Solaris as possible.

Option 1 puts the user dead center inside a rich environment of wonderful Sun technology like dtrace, ZFS, zones, Xen support. etc, etc. This will be contagious.  If you're familiar with the Sun desktop, and you're familiar with the Sun administration commands, your software will end up working better on Solaris, and you'll be more likely to stick with Solaris. That's good for Sun. Option 2 is one step removed. Hybrid development is what I do at home.  Use a Windows, or Linux, or OS X desktop, but develop software for Solaris. If you're doing primary development on Solaris, your software will be more likely to run best on Solaris.  I might still be using Solaris as my primary development platform for the software that I build, but my daily interaction will be with a different OS. The one that runs on my desktop. Option 3 is another step removed.  Sun will benefit if more open source software is compiled and distributed for Solaris.  If Sun can make it easier to port software to Solaris, that's a step forward, too.  And there's plenty we could do to help that. All of these options are opportunities for Sun to focus on, if we really want to get more Solaris developers. Development tools support and basic OS support could be tuned towards supporting those kinds of users. 

But it's a slippery slope.

Having your OS be on the developer's desktop is the core of getting a really healthy developer community. As the user gets more and more removed from Solaris, they start to see it as just another platform that they might or might not port to.





Some side notes:

1) It was a terrible mistake removing /bin/cc all those years ago as it suddenly became much harder to develop native code on SunOS. I haven't written a line of give-away SunOS/Solaris-specific C code since then such as drivers, though obviously Java has plugged a chunk of the gap at the app level.

2) I'd love to be able to take a nice small reliable laptop such as my Sony Vaio TR5, and just run Solaris on it instead of Windoze. But I bet it's almost impossible.

And I have been drinking the Sun Kool-Aid since SunOS 3.5 days...



Posted by Damon Hart-Davis on September 18, 2006 at 07:49 PM PDT #

Your comment was marked as spam and will not be displayed.

You have to love that, sigh. Chris roller blows. :( I'll send it via email I guess, probably tonight though I might send it from work today.

Posted by Jeffrey Olson on September 19, 2006 at 01:14 AM PDT #

Thanks for your feedback Damon and Jeff. Jeff, I got your email. Good stuff. Sun could really use a good LiveCD for Solaris. I found Nexenta, so maybe I should try that out.

Posted by Chris Quenelle on September 19, 2006 at 05:47 AM PDT #

For my perspective on this, I have to agree that without it being on more desktops it seems almost non-existent for most people. My work is a windows shop, unfortunately, to the core across the entire enterprise. I would wager 98% of anyone here that is IT related has no clue that there even is a platform besides windows, mainly because that’s what their world revolves around each and every day.

Of the folks who know of anything outside of windows, over half of them refuse to even try another operating system because, for the most part, they claim its irrelevant as windows is the majority of the market and they have no need to look outside.

Of the other half, probably 1/3 of them actually have tried something other then windows and can walk the walk. The remaining 2/3 of them try to talk to the talk, but can't follow through with either the talk or the walk. One thing I hate is how folks brag it up about how they are about to try <insert some distro here, probably Ubuntu>, and they keep saying it over and over and never follow through. Even more I dislike it when I'm told I'm doing something the wrong way because I'm not using a gui for something, where as using various command line tools (God bless the unix tools port to windows) I can do the task most likely faster then they can even load their bloated GUI tool.

Personally, at home my main system is windows for various reasons (gaming with family & friends members being the leading). But outside of that my laptop has both Gentoo Linux and Windows on it, as well as sitting next to my desktop is a Mac Mini so I can learn and develop on OS X as well. I honestly am slacking in the Solaris department, though I really badly want to try it out and learn about it. Perhaps the most simple way for me will to be to throw some money at it and buy a ultra to play with, though I'm not sure when I'll be able to.

Overall, I think another reason its hard to get an OS on a developers desktop is stagnation. My very limited experience out in the work place has left me to believe most folks just don't want to, regardless of what they say, because its a hassle to do so. Even with live cd's to make it easier to try before you do anything concrete with the system. Then again, perhaps its the fact that a lot of folks believe you can't share files across the various OS's so if they develop on one, they can't work on it, or even use it, on another.

And I won't even get started on the conflicting message that’s being sent out about 64bit computing, especially related to Java and where Sun's heading with it.

Posted by Jeffrey Olson on February 01, 2007 at 07:11 AM PST #

Post a Comment:
Comments are closed for this entry.

Chris Quenelle


« July 2016