What Sun got wrong

88 points by j11g


david_chisnall

Sun did a lot of other things wrong. I only saw it from the outside but when your corporate dysfunction is obvious from thousands of miles away it’s clear you need to do something different.

With SPARC, they had a fairly solid architecture that, with a few tweaks (asynchronous spilling of register windows!) could have been an amazing architecture. And they structured the company to guarantee that this would never happen.

They had a hardware team and a software team that could have done co-design but they rarely involved the software team early. I can’t remember when SPARC got a broadcast invalidate for instruction caches but it was long after Solaris identified that this was a bottleneck because each mmap with an executable mapping needed an IPI and rendezvous with all cores. This really hurt process creation time on multicore systems and UNIX really encourages short-lived processes. When you added JIT compilers (hmm, Java, I think Sun had some interest in that…) then it was much worse.

Near the end they had the Niagara and Rock teams working on SPARC. One was building simple in-order cores that would scale to massive multicore and multithreaded systems. The other was focused on single-threaded performance. These should have been targeting different market segments and aiming to eventually produce heterogeneous SoCs with a small number of Rock-project cores and a large number of Niagara-project cores. Instead, they were set up as competing teams. And they were joint custodians of the SPARC ISA. Nothing went into SPARC unless both teams agreed and, because they hated each other, nothing went in because if one team liked it then the other would hate it on principle.

The biggest example of this was Project Maxwell. This added a backwards-compatible object-indexed memory model on SPARC, ran young-generation GC in hardware in the cache and provided a mechanism for promoting objects to the old generation on cache eviction. With this, the Java+Solaris+SPARC stack would have performed amazingly well. Internal infighting killed it and Java ran better on x86 Linux than SPARC Solaris.

When your own software runs better on your competitor’s hardware (and better on their OS) than your own, you’ve done a lot of things wrong.

koala

To me, this is more of an example of how tech excellence is just a small factor in success.

Just Java or ZFS are enough to get into computing history, and they did so much more.

(And I feel Oracle was responsible for a big chunk of accessibility of GNOME. My theory is that they were one of the last companies trying to sell UNIX-like workstations to governments and they had to provide accessibility.)

I'm quite nostalgic for them.

I was in university 1997-2002. They had a lab with Sun workstations and we all wanted to have the subjects that required going there. Some departments had Linux labs, but the main labs did not offer Linux as a boot option for a while. So the Solaris workstations were the first chance for many of us to use "serious" UNIX workstations.

At my first job, we had Sun servers for production. I have fond memories of learning the hard way that not all UNIX are the same, by running killall in a production server. I think that was very helpful and nowadays I still try to stick to POSIX in scripts (and switch to Python quickly).

I also think Sun used to throw one of these mousemats in every order. I got one of these that I kept after I left that job. I loved that mousemat, so nice quality and... well, I'm also nostalgic of the Sun logo. (Many of my university notes had scribbles of the logo all over the corners.) Unfortunately, I left the mousemat too much time in the Sun (ironic), and it is nearly destroyed. I wish I could get one again, or even the graphic assets for the mousemat to use somewhere else.

edit: NOOO. Apparently, Cloudflare bought the slogan "the network is the computer".