User: Password:
|
|
Subscribe / Log in / New account

Mmm

Mmm

Posted Dec 12, 2012 0:21 UTC (Wed) by hummassa (subscriber, #307)
In reply to: Mmm by commodorejohn
Parent article: Haiku edges toward general release

Your rant sounds to me like you have not used a recent version of KDE.


(Log in to post comments)

Mmm

Posted Dec 12, 2012 2:08 UTC (Wed) by commodorejohn (guest, #88219) [Link]

Not in a while, no. (I think the last time was when I had Fedora 11 on my Eee...early 2009, so some early KDE 4 version.) But KDE's standards are only good for KDE software. If you want something that isn't part of the KDE project, or that doesn't have a tweaked version available, then you're still stuck with the problem of using whatever the programmer happened to decide was "good enough" for a graphical frontend to whatever code they really wanted to be working on. The same goes for GNOME, for Unity, and so on and so forth; the whole problem with Linux usability is that it's little insular islands of standardization in a sea of "whatever."

And anyway, that still doesn't solve the problem of the underlying system just being too drat complex. A desktop OS just really should not be built out of forty years of cruft layered onto a mainframe OS from the '70s.

Mmm

Posted Dec 12, 2012 10:04 UTC (Wed) by hummassa (subscriber, #307) [Link]

> The same goes for GNOME, for Unity, and so on and so forth; the whole problem with Linux usability is that it's little insular islands of standardization in a sea of "whatever."

You do know that this is a generalized problem, not a Linux problem, don't you? If you use enough, diversified, Windows or OSX software, you'll see yourself in the same situation. (Yes, there are more than one toolkit to develop under Windows and under OSX and yes, they "feel" as different as Qt vs GTK...)

Anyway, get a good (Arch or Kubuntu) version of KDE4 and you have mostly any software you want, Qt/KDE-ized, and most GTK software also will look/feel nice if you use QtCurve. I personally use kubuntu + chrome + libreoffice + eclipse/poweredbypulse + lazarus + virtualbox.

> And anyway, that still doesn't solve the problem of the underlying system just being too drat complex.

Nothing solves that. Windows is VMS, the rest of us (including BeOS/Haiku, you can open a terminal and type "ls -l" there) is Unix. Operating systems are complex beasts. You see "forty years of cruft layered", I see "forty years of evolution, trial and error to solve find heuristics to unsolvable problems." It is a good thing. Every single, "younger", other-lineage OS got stuck in their growing pains by the 90s and died. Some examples: Mac OS 9 -- had to be replaced by unix, even after IBM and Apple spent some millions (billions and billions? :-D) with Taligent/Copland; Windows 95/98, son of MS/DOS, son of CP/M -- had to be replaced by VMS before the monstrosity of Windows ME broke the company; Every Single Smartphone/Palmtop/Tablet OS -- replaced by unix.

Mmm

Posted Dec 12, 2012 19:07 UTC (Wed) by commodorejohn (guest, #88219) [Link]

You do know that this is a generalized problem, not a Linux problem, don't you? If you use enough, diversified, Windows or OSX software, you'll see yourself in the same situation. (Yes, there are more than one toolkit to develop under Windows and under OSX and yes, they "feel" as different as Qt vs GTK...)

It is a generalized problem, yes - but it's much worse in the Linux software ecosystem than on any other system I've ever used. Windows and Mac software vary, but not by nearly as much.

Nothing solves that. Windows is VMS, the rest of us (including BeOS/Haiku, you can open a terminal and type "ls -l" there) is Unix.

Well, for starters, Windows is only VMS deep down at the kernel level, as far as I've been able to find out. MacOS wasn't Unix until 2001. But more importantly: BeOS and Haiku are not Unix. The presence of bash notwithstanding. It does not share an API with Unix, it's object-oriented and not pipe-based, it doesn't use either the classic Unix or BSD file hierarchies (indeed, it organizes things in completely the opposite way from traditional Unix.) It is not based on Linux or any other Unix-derived kernel. In fact, they specifically state that it is not Linux, because so many people like to assume that any open-source OS must be Linux in some form or another.

Operating systems are complex beasts. You see "forty years of cruft layered", I see "forty years of evolution, trial and error to solve find heuristics to unsolvable problems." It is a good thing. Every single, "younger", other-lineage OS got stuck in their growing pains by the 90s and died.

Operating systems are complex, alright. But just because you spend forty years developing solutions does not mean that you should stick with them. Modern-day Unix is like an archaeological tell; you can trace pretty much the entire history of computing from 1970-present by stripping away successively lower layers until you arrive at the bottom, where you're left with serial ports, threads, and a filesystem. That's interesting from a historical-record standpoint, to be sure, but it also means that you're carrying forty years' worth of baggage around with you.

There might be an argument to be made for that in environments like server rooms, where you want known entities with definite compatibility a lot more than you want a sane design. But in a desktop context, it's just ridiculous. There's no reason, from the perspective of a desktop user, that things should be this complicated, that getting a system up and running again if it's broken should involve digging through scripts that call scripts that call applications that call scripts to find where the problem is.

How often has Unix as a whole been refactored? Why hasn't more of this complexity been stripped away? Because it's clung to with a religious tenacity, and anyway, a large number of open-source developers aren't interested in doing things that make life easier for anybody but open-source developers. And you wonder why you didn't win the desktop war.

Or, as the Haiku FAQ puts it:

Linux-based distributions stack up software -- the Linux kernel, the X Window System, and various DEs with disparate toolkits such as GTK+ and Qt -- that do not necessarily share the same guidelines and/or goals. This lack of consistency and overall vision manifests itself in increased complexity, insufficient integration, and inefficient solutions, making the use of your computer more complicated than it should actually be. Instead, Haiku has a single focus on personal computing and is driven by a unified vision for the whole OS. That, we believe, enables Haiku to provide a leaner, cleaner and more efficient system capable of providing a better user experience that is simple and uniform throughout.

Sounds a lot more palatable to me.

And as an aside:

Some examples: Mac OS 9 -- had to be replaced by unix, even after IBM and Apple spent some millions (billions and billions? :-D) with Taligent/Copland;

Mac OS 9 did have to be replaced, yes - but nobody said it had to be replaced by Unix. It was replaced by Unix because Steve Jobs came back from NeXT and wanted to make sure that everybody knew that this was his company again. It could've been BeOS, if either Apple or Jean-Louis Gassée had been less stubborn. And Taligent/Copland didn't fail because they weren't Unix, they failed because of internal politics and poor project management.

Mmm

Posted Dec 12, 2012 19:34 UTC (Wed) by raven667 (subscriber, #5198) [Link]

Well, for starters, Windows is only VMS deep down at the kernel level, as far as I've been able to find out. MacOS wasn't Unix until 2001. But more importantly: BeOS and Haiku are not Unix. The presence of bash notwithstanding. It does not share an API with Unix, it's object-oriented and not pipe-based, it doesn't use either the classic Unix or BSD file hierarchies (indeed, it organizes things in completely the opposite way from traditional Unix.) It is not based on Linux or any other Unix-derived kernel. In fact, they specifically state that it is not Linux, because so many people like to assume that any open-source OS must be Linux in some form or another.

What in the heck? Aside from WinNT systems where the system works like VMS all other systems are Unix or Unix-like including desktop or consumer systems like Mac OS X/iOS and Android or webOS. Even the systems which are not Unix clones like QNX and BeOS are Unix-like in their userspace API, including features like environment variables, pipes, fork(), file descriptors, etc.

What falsifiable assertions are you prepared to make and what evidence will you use to back them up, or are you content to just make commentary that sounds like a PHB trade-rag, with apparent misunderstandings of what an OS or API is? What exactly is this crufty baggage that is so damaging, do you have a list of system calls or features?

Mmm

Posted Dec 12, 2012 21:46 UTC (Wed) by hummassa (subscriber, #307) [Link]

Funny thing "BeOS is not Unix": I just got one of the test files from haiku source, and gcc-ed into an executable. Under linux. Without any patch. And it ran! Ha, ha! Try THAT with a Windows-compilable source.

Mmm

Posted Dec 12, 2012 21:59 UTC (Wed) by hummassa (subscriber, #307) [Link]

> It is a generalized problem, yes - but it's much worse in the Linux software ecosystem than on any other system I've ever used. Windows and Mac software vary, but not by nearly as much.

Nobody *makes* you install lots of diverse based software to use Linux. And in the same cases where you would do so in Windows or MacOS, this are the cases where it happens under linux. All in all, I work everyday with the three OSes: Windows7, Kubuntu Quantal, and Mountain Lion. My office suite is LibreOffice 3.5 in all three, as my browser is Chrome 24. My two IDEs of choice are Eclipse and (by Pascal necessity) Lazarus -- though I keep slipping into Vim73 when I have to do small changes or big, many-files-swooping changes. My media management (photos, music) is done mostly under the linux machines, so I use the platform tools (digikam, amarok) and they are GREAT (I chose the platform for the tools, not the other way around). And for the movies and TV shows I have XBMC. The other tools I use are the KDE tools; kmail, krita, scribus, ... no other "out of place" programs. And if I send a file to print under LibreOffice or Chrome, they happily open the KDE print dialog, so, they don't seem "out of place" either.

And no configuration complexity: when I get a new computer, I install the OS from the CD, and it's up and running, with a simple enough control panel to install new printers, configure monitors etc.

Backwards compatibility, once more

Posted Dec 13, 2012 0:06 UTC (Thu) by man_ls (guest, #15091) [Link]

You make good arguments. However, I am not sure that the background idea is completely sound. I would like to point you to a subtle contradiction in your message:
  • When systems have evolved in a common direction you complain that the result is a lot of cruft and shows the legacy.
  • But when projects have broken with the past and evolved in different directions, then you complain that there is no unifying vision.
The underlying theme is the same old tension explained in this classic Spolsky article.

You will notice that the only way to keep backwards compatibility is to keep the cruft and polish it. Many packages in a modern distro have preferred this route: Linux, X Window System, Bash, emacs (and vim). But, as others have pointed out, all this baggage is actually useful: it codifies many use cases which have not disappeared magically but are still used by someone. Whenever a specific bit is not used by anyone it will decay naturally. Just browse the Debian-PowerPC archives for an example.

On the other hand, when compatibility is not a requirement developers are free to break with the past. The result is not always to the liking of everyone: we have seen many recent examples with PulseAudio, systemd, Gnome 3 and Ubuntu Shell, to keep it short. In an unconstrained environment such as the GNU/Linux ecosystem, it is inevitable that some people will prefer compatibility, and others will prefer to take a different route of their own.

Breaking with the past and bringing everyone else aboard can apparently be achieved only in a very reduced environment or when there is a controlling entity, and even one of these conditions may not be enough: Microsoft has tried to peddle Windows Vista and now 8 without success, and in the reduced *BSD world there are many competing distros. Perhaps Haiku can do what it does (break with everything) only because it has no inertia and few developers. We will see.

Mmm

Posted Dec 13, 2012 11:51 UTC (Thu) by jwakely (guest, #60262) [Link]

> How often has Unix as a whole been refactored?

At least once, as Plan 9 from Bell Labs.

Mmm

Posted Dec 16, 2012 4:29 UTC (Sun) by bronson (subscriber, #4806) [Link]

If only. It was a rewrite suffering serious second system syndrome.

Mmm

Posted Dec 16, 2012 17:31 UTC (Sun) by renox (subscriber, #23785) [Link]

>If only. It was a rewrite suffering serious second system syndrome.

Uh? You should elaborate on your criticisms because it's not obvious at all what you're referring to.

Mmm

Posted Dec 17, 2012 1:02 UTC (Mon) by bronson (subscriber, #4806) [Link]

Hm, I thought that was pretty clear. Maybe this helps? http://c2.com/cgi/wiki?WhatIsRefactoring in particular the section on the differences between refactoring and rewriting. I don't think you'll find anyone claiming Plan9 is a refactored Unix. It's always been a proud start-from-scratch effort.

My lament is that, at this point, Plan9 is dead in the water and its team members are using Unix in their day jobs again. If it had followed a longer, more conservative schedule, maybe starting from a working Unix base, it might have seen more success. Ah well. Now it's competing with Haiku and the Hurd for the cleanest software that nobody uses. :)

Mmm

Posted Dec 17, 2012 8:51 UTC (Mon) by renox (subscriber, #23785) [Link]

> Hm, I thought that was pretty clear. Maybe this helps? http://c2.com/cgi/wiki?WhatIsRefactoring

Bleah, this page is a mess, the perfect example of a wiki gone wrong.

> I don't think you'll find anyone claiming Plan9 is a refactored Unix. It's always been a proud start-from-scratch effort.

Bah who cares about the implementation details, it is still considered to be the "successor" of Unix as it takes the same concepts but goes further with those concepts.

> My lament is that, at this point, Plan9 is dead in the water and its team members are using Unix in their day jobs again. If it had followed a longer, more conservative schedule, maybe starting from a working Unix base, it might have seen more success.

Maybe, but note that Plan9 stayed proprietary during a long time even when there were Free implementations of Unix..

Mmm

Posted Dec 17, 2012 11:33 UTC (Mon) by hummassa (subscriber, #307) [Link]

> Bleah, this page is a mess, the perfect example of a wiki gone wrong.

The argument here is: Plan9 is NOT a refactoring of Unix because, in the words of Martin Fowler, "Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure."

The original phrase from bronson was: "It was a rewrite suffering serious second system syndrome." (referring, obviously, to Plan9). Going by stages:
it IS a rewrite of Unix, and if you define second-system syndrome as "the tendency of small, elegant, and successful systems to have elephantine, feature-laden monstrosities as their successors", then Plan9 /could/ be construed as having this, altough I think it was more of an hyperbole than a factual statement.

IMHO Plan9 is quite elegant itself (but I *do* think Limbo is a monstrosity /per se/), and I agree with you that it did not lose momentum because of featuritis or other stuff, but because it stayed close where other unixen opened up.

Mmm

Posted Dec 17, 2012 12:58 UTC (Mon) by renox (subscriber, #23785) [Link]

> but I *do* think Limbo is a monstrosity /per se/

Uh why? I like it very much.
I'm not alone as Go has some success and it is very similar to Limbo..

Mmm

Posted Dec 17, 2012 14:51 UTC (Mon) by hummassa (subscriber, #307) [Link]

> Uh why? I like it very much.

And I respect your opinion and you are certainly entitled to it.

> I'm not alone as Go has some success and it is very similar to Limbo..

Don't even get me started on Go... (hint: WHY OH $DEITY WHY) :-D

Seriously, both languages are "C on steroids". Full of shorthands, but none of the shorthands *I* would use. IOW, poorly-Huffmann-encoded for me. YMMV.

Mmm

Posted Dec 17, 2012 18:05 UTC (Mon) by bronson (subscriber, #4806) [Link]

My "second system" statement was clumsy... I meant it in the "attempt all the things you did not get to do last time" sense. I forgot about the "neutron star of features" definition.

Mmm

Posted Dec 27, 2012 9:51 UTC (Thu) by jwakely (guest, #60262) [Link]

I don't think the post I replied to was using refactoring in the strict sense (how do you refactor "as a whole" anyway?) and who said anything about it being a success or used? That wasn't the question.

The post I was replying to was talking about revisiting the ideas behind unix and removing historical cruft. Plan 9 does that (along with adding a lot of new ideas and new features, as to be expected from a research OS)

Mmm

Posted Dec 17, 2012 13:52 UTC (Mon) by tialaramex (subscriber, #21167) [Link]

"It does not share an API with Unix, it's object-oriented and not pipe-based"

This is false, although it's in line with BeOS / Haiku propaganda.

Here's an example of one of the classes from Be's "object-oriented" API: BStatable. BStatable is a class for getting at file metadata. It has methods like GetPermissions which return 32-bit integers with bitmasks in them that you can compare to some eerily named constants like S_IXOTH even though multi-user doesn't really work on BeOS (or Haiku).

This is hopefully already feeling very familiar if you know anything about Unix, and otherwise totally bizarre - but let's peel back the covers a bit. How is this BStatable "object" implemented? Oh here we are, there's a system call named "stat" which returns a big flat data structure just like in every Unix.

Now BStatable is an especially hilarious example because of its transparent naming, but this is what's going on throughout most of BeOS and thus Haiku too. Take something Unix systems did in the 1980s, smear another layer on top in C++ and say "Pay no attention to the man behind the curtain" in your best Oz voice. By throwing everything from code for handling joysticks to a class that represents a dialog box into the same library you can give the impression that this is a comprehensive solution, but it's really just a vast utility library, it's doing no more (and sometimes less) than Qt but without the benefit of being cross-platform.

It is no surprise that getting _developers_ to fall for this is harder than finding users who want to go along with the propaganda without knowing any specifics.

Haiku mostly deviates from BeOS in being _more_ like a modern Unix. You will see claims that this is just for "compatibility" but in practice most of the changes involved were _fixes_. Being more like Unix means being less _broken_.

Mmm

Posted Dec 18, 2012 10:12 UTC (Tue) by dgm (subscriber, #49227) [Link]

Here you did it again.

You just ruined all the fun, don't you see? That Haiku download sitting in some directory on my hard drive doesn't make me feel 1337 anymore. I suddenly feel an urgency to go and download Microsoft's Singularity. Ah, yessss.


Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds