Bill Moffitt's Weblog

Bill Moffitt's Weblog

All | General | Niagara | Solaris

20040812 Thursday August 12, 2004

Standards bodies considered evil?

As you have probably guessed by now, I'm a big fan of openness. I wish the design of my Wenger swiss army knife were open so I could replace the useless awl with a corkscrew that I'd at least use once a year.

It follows that, if one is a fan of "open," one simply swoons at the mention of "standards," because standards are the way we codify what and how things are open. And, I admit, I am a big, big fan of standards and the extraordinary people who comprise standards committees. These bodies and the people who sit on them (my friend Keith Bierman being an excellent example) do a real service for commerce by documenting the boundaries between what is "open" and what is "closed" so innovation can happen smoothly. It's an extraordinary service for which we should all be grateful.

Now, it's confession time - I started here at Sun seven years ago, when I accepted the job of Product Manager for Sun's Fortran products. Why, you might reasonably ask, did I take such a job? Well, there were two important considerations: first, I had just been laid off (in the midst of the greatest boom in Silicon Valley history - late 1996) and, second, and most shameful, I genuinely love Fortran.

Now, that's a hard confession to make here in the 21st century by a guy who's supposed to be staying abreast of the frontier of technology, but you never lose that special feeling for your first love. (OK, that's not accurate - I confess, I had a torrid affair with Pascal, but Fortran was my first "adult" relationship, meaning that I made my living writing Fortran code for several years.) I cut my teeth writing enhancements to MSC/NASTRAN and porting it to new platforms like the Cray-1S and this new OS coming on to the scene called UNIX. It sounds antiquated, and I know I'm dating myself, but diving into the intricacies of moving code and COMMON Blocks around using the Cray overlay linker/loader, writing custom double-buffered I/O routines, and debugging code using a dump and a reader was hard work, but terribly fun. Throw in the fact that I needed to learn mechanical engineering on-the-job, and you've definitely got a job custom-built for a geek with a liberal arts degree.

But the reason I loved (and still love) Fortran (specifically FORTRAN 77) is really simple: it's human-readable. You can learn enough about Fortran to follow the logic of a simple programs in an afternoon; after a few weeks with it, someone with nearly no computer science background can write reasonably involved Fortran programs and get meaningful data from them. BASIC is the only other language I can think of that has this attribute, and it was invented from Fortran (or, as it was called then, FORTRAN.) Pascal and Algol are very readable as well, but I don't think that they can hold a candle to Fortran.

And therein lies my complaint: FORTRAN 77 was extremely readable, with modern flow control constructs (it-then-else, for instance) but very straightforward operators and data types. FORTRAN 77 was a natural outgrowth of FORTRAN 66 and added constructs and capabilities that had been in the leading FORTRAN compilers for some time and had proven to be popular.

Fortran 90 was not, in my humble opinion (and I'd encourage Keith to comment on this, as he was sitting on the ANSI X3J3 Fortran standards committee) a continuation of this trend; it is where Fortran (as it is now called) went off the rails. A more complete account of the process can be found in a 1990 article by Brian Meek, who concludes that the committee may not have gone far enough off the rails (and he makes a good case for it).

The reason is that a lot of things got added to Fortran 90 that made it less accessible to non-computer scientists and, thereby, made Fortran 90 code less readable. My favorite example of this is operator overloading, so "+" may mean something different in one example than in the next.

This is not something that had become an expected feature in Fortran compilers; it was something that was brought over from Smalltalk and C++ by folks on the standards committee who wanted to make Fortran a "modern" language. It's a feature that is familiar to computer scientists, but not one that would be intuitively obvious to a chemist. The only feature I know of in Fortran 90 that was a well-used extension in need of standardization was the pointer. If they had done Fortran right, Fortran "8x" would have been done in the 1980s, and Fortran 95 might not have even been necessary.

This was a breach of the implicit goal of a standards body: a standards body should only codify what they can agree is the de-facto standards and not drive the technology; they need to be the consumers in the marketplace of ideas, not the vendors. Indeed, to one of the points of Mr. Meeks's article, they did not unify the existing extensions of FORTRAN 77, which I believe has led to somewhat reduce the amazing portability (another one of the key advantages) of Fortran code.

The reason I offer this cautionary tale is because there are a lot more de-facto standards out there that will, in time, need to be made into formal standards to help drive all the new applications that will be made of the Internet. This, I believe, is a case where a standards body actually went awry by trying to "steer" the technology instead of documenting where it was, and I believe that was a mistake that hurt both the credibility of the body and the usability of the Fortran programming language.
(2004-08-12 14:11:38.0) Permalink Comments [2]

20040805 Thursday August 05, 2004

Proprietary comments...
Copyright 2004, all rights reserved, etc.

No, no, that's not what I meant by "proprietary comments." :-)

Someone objected to my identifying Red Hat Enterprise Linux as proprietary; the logic (as I understand it) being that it cannot be proprietary because one can get the source code and hack it any way one wishes.

While that's a wonderful attribute of RHEL, that doesn't keep it from being proprietary - proprietary means, simply, that someone claims ownership rights to it. While you can get the source code for all the things that comprise RHEL, and you can compile them, put them together, and even build a bit-for-bit replica of RHEL, it's not RHEL because only Red Hat owns and can grant you the rights to use the real RHEL. You may have the software, but you don't acquire the rights that Red Hat sells as part of RHEL; indeed, changing the code at all can cause you to lose rights to support.

My very good friend Larry Wake is much more articulate than I about this; those inside of Sun can easily see his thoughts on this at his Proprietary Propriety website (sorry that link doesn't work unless you're inside the Sun network), but the essence of it is that some of our competitors have chosen to describe our products as "proprietary" and then corrupt the meaning so it looks like it means "closed." Of course, just about anything that is sold is "proprietary," otherwise it wouldn't have much value. The fact that you can get all the source code for RHEL for free doesn't make it any less proprietary, and it only makes it marginally less open than Solaris. It just means the source code is freely available.

The real and important difference and distinction between operating systems is really open vs. closed. Open means it's built on open standards, and that you can move easily between different proprietary implementations of those open standards. Linux (all the distributions) and Solaris are open, and it's very easy, for instance, to move code that was built for one to run on the other. Open also means that the interfaces are freely available, so innovation can happen in the implementation of those interfaces or in what is done on top of those interfaces.

Windows, z/OS, and OS/400 are not only proprietary, they're closed. That means that code written to run on one of those operating systems cannot easily be moved to another OS because all (or nearly all) the interfaces are proprietary and cannot be replicated in other OSs. It's very difficult and expensive, in general, to move a Windows program to UNIX or Linux because so many interface calls need to be changed (or sections of the code re-architected), and the only opportunity for innovation is on top of those interfaces, not underneath them.

So Red Hat Enterprise Linux, SUSE Linux Enterprise Server, Solaris, and Windows, are all proprietary, and that's a good thing because that's how the respective companies can sell and support those products.

The important distinction to be made is not proprietary vs. non-proprietary; it's open vs. closed. Open means easy to switch, high innovation, and competition based on quality of implementation, not "lock-in." Linux and Solaris are open, Windows is closed.
(2004-08-05 10:54:42.0) Permalink

20040804 Wednesday August 04, 2004

Comments on comments To rchrd:

Yes, paragraph breaks are a good thing. Didn't realize I had to insert the html tags by hand... now using Mozilla to edit my blog entries. Please note that I have gone back and made that huge mess readable.

To anonymous:

It seems silly to put in something that I think only 100 people can make sing (and I could be off by an order of magnitude on that estimate) but the whole reason DTrace is so cool is that the folks who can really make it sing can encapsulate that brilliance in D scripts and share them with we mere mortals on the BigAdmin DTrace forum. That's one of the reasons it's so cool!

But to your comment that we should make things a whole lot simpler, especially for the non-UNIX-initiated, all I can say is "amen, brother!"

If you're an experienced UNIX sysadmin, it's pretty straightforward to set up a Solaris machine: everything is pretty much as you expect it, and some things are delightfully easy (more so than other UNIX/Linux flavors) because we've found a lot of shortcuts.

If you're not experienced with UNIX, though, I agree that it's way too complex to get started. I make the same criticism of all the UNIXes and Linuxes, by the way. Although the big Linux distros are making some strides (YAST, etc.), I'd like to see a tool that could take someone who is not really familiar with setting up a server (an office manager or student) and step them through the whole setup without making them answer questions like, "Will you use a static IP address or use a DHCP server?"

I know the question has to be answered, but it's just a daunting question if you aren't entirely sure where an IP address comes from, what is static about it, or what DHCP stands for and why you need another server for it.

I'll rant more on this topic later...
(2004-08-04 11:14:05.0) Permalink

Expensive and Proprietary UNIX in the Orwellian world Another LinuxWorld is here, and so we are once again beseiged with all the stories of the poor, oppressed IT managers who find freedom and higher budgets by replacing their old, proprietary, expensive UNIX gear (usually Sun, since we have, by far, the most UNIX gear installed worldwide) with cheap, open x86 gear running Linux. Now, finally, their lives will be perfect: no longer held captive by a single, rapacious vendor; they'll be able to do so much more with so much less that eventually they'll be able to run entire enterprises with a rack of blade servers, sleep in until 10, and spend their budgets on conferences held in Tahiti.

The problem is, of course, that the sources of these stories are increasingly suspect; when Michael Dell is telling you that the "UNIX mainframe" is dead (what the hell is a "UNIX mainframe," anyway??) you have to wonder if he just might have an axe to grind... especially since his company has decided to cancel all their servers with more than 4 CPUs...

I used to do a lot of work as a Sun spokesperson, and I was called one time to comment on one of these stories. The reporter had a real scoop: a company that was replacing this $100,000 Sun machine with a $3,000 x86-Linux server. The truth is that their business had declined, and the Sun E3000 (a 6-way UltraSPARC II machine with multiple power supplies & other high-end RAS features) they had been running for five years was overkill. They could have easily replaced it with the new SunFire V210 server for about the same price and they wouldn't have even had to buy new software or retrain their sysadmins.

I know that was a surprise to the reporter; I suspect it came as a surprise to the customer, as well, who was told by someone that Sun machines are too expensive. And, hey, the x86/Linux vendor's rep seemed to know what he was doing...

But that's the nature of the Big Lie: tell it enough times and folks accept it as the truth. Solaris is expensive (it starts at $99, and you can use it for free for development or evaluation), it's proprietary (just like Red Hat Enterprise Linux), and it's tied to expensive, proprietary Sun hardware (Solaris has run on x86 architectures for over 10 years, and SPARC is the only major architecture based on open standards - check www.sparc.org).

I understand that it's easy to dismiss me as a Sun Solaris apologist, but I should point out that I'm writing this on my Sony Pentium III laptop running (yep, you guessed it) Linux. My real concern is about the right tool for the job: Linux has some real advantages, particularly in having a community to keep up with all the perturbations in the x86 platform world (new machines, peripherals, drivers, etc.). But when it comes to the servers that run your business, the ones that are absolutely mission-critical, technology matters - you want to have every advantage you can, and that's why we're still pouring R&D into Solaris, even though Michael Dell says it's foolish.

Ah, well... at least it's a good time to start rumors. I gotta go... some folks are taking up a collection to go buy Novell. I'll give 'em twenty bucks.
(2004-08-04 10:48:35.0) Permalink Comments [4]

Calendar

« August 2004 »
SunMonTueWedThuFriSat
1
2
3
6
7
8
9
10
11
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    
       
Today

RSS Feeds

XML
All
/General
/Niagara
/Solaris

Search

Links


Navigation



Referers

Today's Page Hits: 3