From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <5d375e920806021337m51160c64rf20e0e1f96aca522@mail.gmail.com> Date: Mon, 2 Jun 2008 22:37:52 +0200 From: Uriel To: "Fans of the OS Plan 9 from Bell Labs" <9fans@9fans.net> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <483D8DBE.4090005@cableone.net> <200805282337.11349.yann.morin.1998@anciens.enib.fr> <20080601151213.GA10795@nibiru.local> <5d375e920806021225w3a98fec0l87ae4499838ae91b@mail.gmail.com> <13426df10806021255y4122f46h34a88ebb8480f29e@mail.gmail.com> Subject: Re: [9fans] crosstool fails on gentoo Topicbox-Message-UUID: b2283bd6-ead3-11e9-9d60-3106f5b1d025 Oh, but Sun (who else?) has the solution! When I was speaking at FOSDEM I came across a Dtrace guy. He was boasting about how wonderful it was to be able to debug and profile stuff with this huge kernel hack (third biggest subsystem in the Solaris kernel, forgot exactly how many, but a few hundred thousand lines of code). In the end to do stuff 99% of which can be done in Plan 9 with iostat and acid, and the other 1% can be done with print statements and careful thought. But no, he told me, they needed this whole new layer of complexity (IIRC it includes even a bytecode interpreter/compiler inside the kernel), because I didn't understand how hard it had become to debug software this days, you had a bug, and you had to go from apache, to the Java Application Server, to Oracle, to the file system, etc, etc. millions and millions of lines of code, and it had become impossible to debug or profile applications anymore, because the issue could be anywhere in this huge stack... so what they do? they add *yet another layer of complexity so you can look at all that stuff at the same time*. And even more funny was to see the BSD and Lunix folks falling all over themselves to be the first ones to get the same thing for their systems. The idea of simple and sane interfaces between simple and carefully designed components is totally lost, it is all about extensibility (XML!) and 'standards' (more XML!), and if you want to make things faster, of course the solution is to add a huge layer of caches and other magic... (I still laugh every time I think of distcc) But the worst is when they say 'ok, this has got out of hand, we have to go back and start from scratch'. They end with epitomes of 'second system syndrome', as seen in apache 2. which is about a hundred times more complex than apache 1, and adds a dozen new layers of abstraction (in the name of performance, portability and generality, of course!), Firefox (I stopped counting millions of lines of code a while ago), Java, and so many others. But enough ranting and rambling for today, just remember what Gordon Bell said, because nobody else will: "The cheapest, fastest, and most reliable components are those that aren't there." Peace uriel On Mon, Jun 2, 2008 at 10:09 PM, Eric Van Hensbergen wrote: > On Mon, Jun 2, 2008 at 2:55 PM, ron minnich wrote: >> >> I keep reviewing papers that want to simplify things by ... adding >> another layer of software! >> > > That's a really great observation. I see it all the time as well, for > some reason simplification has come to mean add new layers of > abstraction. But it is a false simplification, it may simplify the > API, but the overall system complexity increases (and usually lead to > a decrease in system efficiency). All productivity factors become > harder (development may be easier, but debugging, performance > debugging, and management typically become more difficult). > > Someone really needs to remind folks that "system simplification" > involves a reduction in the number of layers, not an increase in them. > > -eric > >