Live data from Hacker News

The destructive desktop — Linux in trouble?

blog.ngas.ch

71–80 of 80 posts

Re: The destructive desktop — Linux in trouble?

#71
post #68

Earlier quoted context omitted.

Totally agree; other inaccuracies are: "However, the Linux incarnation of OSS was a particularly simplicistic one which only supported one sound channel at the same time and only very rudimentary mixing." That's incorrect. The sound channel limitation depended on the hardware you had installed. So did the mixing capabilities. If the hardware supported it, OSS exposed the additional capabilities. Those of us with Soun…

Despite all the incorrect or misleading facts (you spotted quite a few more than I did) I can totally relate to what I think was the author's intention in writing it: Magic. Modern linux distributions are doing many things in a way that is, at best, surprising and, at worst, undebuggable. "Any sufficiently advanced technology is indistinguishable from magic" comes to mind quickly. Working with Linux in the 90s was su…

yeah, it's a tradeoff. If the software does more, then the software is more complex... OK, but, sometimes it's nice that it does more. People are used to other systems (iOS, Android, Windows, MacOS) and those are setting the bar pretty high. They are all extremely complex systems that do a lot.

Everyone wants a simple system... as long as it has just this one thing that they need... and this one other thing...

This author seems to feel there was some way in which the software could do everything it does and there would be no downsides... you know, here and there in some detail it's probably true that the tradeoff is wrong. But that's just saying "all software could be better" or "all software has bugs" or something - true, but not an actionable insight.

I get the guy's frustration. But you know, there's no need to wrap the emotion up in non-factual hypotheses about source code that one is not familiar with.

Software sucks. We all know it. Using your imagination to diagnose why isn't going to get anyone anywhere ;-)

There probably are some improvements possible if we all go look at the source and get the real info.

Re: The destructive desktop — Linux in trouble?

#72
post #39

This article is not well-informed. I worked on or sat next to people who worked on a lot of the stuff mentioned. So you can take me as biased or as having a clue or both as you wish. A general point, the changes described here have been over the course of something like 15 years. So the article seems to be making a "stuff keeps changing!" point... but we are talking about over 15 years. Think about changes to hardwar…

Disclaimer I'm a curmudgeon and I think you're clueless. And no, I don't consider it ad-hominem to point out cluelessness, it's a form of ignorance, and ignorance can be cleared up by study. So rather than point out how wrong he is, ask 'what is he trying to say?' and deal with that.

This is an exemplar from your comment that leads me to this observation, you write (first quoting the author):

""Writing X11 programs with xcb and proper RPC APIs like SUNRPC or Thrift should be more than good enough."

This 100% misunderstands why dbus is used. The first goal of dbus is not to send a message from process A to process B; it's to keep track of processes (help A find B, have them each know when the other goes away). The messaging is important but in many ways secondary."

I would suggest that it points out a 100% misunderstanding on remote procedure calls. Your defense of dbus asserts that its primary function is to 'keep track of processes' which would suggest its name should be 'dlocate' or 'dmonitor' but its 'dbus' because most of the traffic on it is like a 'bus' where data goes from point A to point B.

The original author points out that all of the 'features' of dbus which are not directly related to interprocess communication could have been implemented on top of the existant architecture. People have done that, they called them 'location brokers' back in the 80's. And what the folks who invented dbus missed was all of the research about what makes for good network protocols like Andy Birrell's seminal paper on the RPCs or work done at Sun, Xerox, Apollo and elsewhere.

You wrote:

"Overall, the article doesn't understand the big picture of why all this new stuff was needed."

But that wasn't what the article is about at all, it was asking the question why is all the substructure re-invented every time? The author rants at how Linux's tendency to constantly recreate every wheel every time is hugely destructive and wasteful.

The real problem, which is not mentioned explicitly but I suspect is at the root of this entire rant, is that it is infinitely easier to create in Linux than it is to fix. When there is a problem with the way desktop events get delivered you can either fix the broken system or you can invent an entire new one. Too often, for reasons which are not well reasoned or supported, people create. I see three reasons for that:

1) It is hard to have two smart, outspoken, and opinionated people work on the same piece of code.

2) If you can choose between "the person who fixed Y" or the "the person who created Z" on your resume, inevitably people lean to the latter.

3) When all you want is feature 'X' which should notionally come from system 'Y', it takes less work to create a new system Z which does all the things you personally need from Y and has X as a new feature. Than it is to understand all of the users of Y and what they need and then incorporating X into that.

And lets close with this bit, you wrote:

"if someone could show up and make the desktop UI stuff behave well with the "unix way" they would have done it."

They have, Motif and SunTools were both such then, Windows and MacOS are examples today. I think you could successfully argue that Linux is on the brink of proving that Free Software is a fundamentally broken model of software development, and use the window system as the exemplar of that argument. The closest counter example we have is Canonical which, as well all know, is well loved by all folks who work on Free Software.

The linked rant boils down to 'Linux sucks because nobody can be bothered work with somebody else's code.' which is of course an exaggeration (but what are rants if not emotional expressions of frustration through hyperbole rhetoric?). If you cannot see the danger that poses to its lively hood then yes, you are by definition clueless.

Re: The destructive desktop — Linux in trouble?

#73
post #39

This article is not well-informed. I worked on or sat next to people who worked on a lot of the stuff mentioned. So you can take me as biased or as having a clue or both as you wish. A general point, the changes described here have been over the course of something like 15 years. So the article seems to be making a "stuff keeps changing!" point... but we are talking about over 15 years. Think about changes to hardwar…

Disclaimer I'm a curmudgeon and I think you're clueless. And no, I don't consider it ad-hominem to point out cluelessness, it's a form of ignorance, and ignorance can be cleared up by study. So rather than point out how wrong he is, ask 'what is he trying to say?' and deal with that. This is an exemplar from your comment that leads me to this observation, you write (first quoting the author): ""Writing X11 programs w…

Don't know what to tell you. I was in the room and writing the code on a lot of this, and what you're saying doesn't correspond to the whys and the whats that were on the whiteboard at that time.

"It is hard to have two smart, outspoken, and opinionated people work on the same piece of code."

But all the stuff discussed here - dbus, gstreamer, EWMH, GNOME, etc. - has had dozens (e.g. EWMH, dbus), hundreds (e.g. gstreamer) or even thousands (e.g. GNOME, Fedora, Ubuntu) of contributors. And that's not counting all the people that build on top of those things, it's only counting the ones who contribute to them directly.

"it is infinitely easier to create in Linux than it is to fix"

I've always found in open source that it's harder to find people to create, than to fix. I mean yeah, there's a background noise of a thousand 1-person projects being born and dying every day. But the big projects with momentum are full of dedicated people primarily interested in incremental change.

Most of the technologies we're talking about here are in the range of 6-12 years old, with no significant overhaul or replacement in that time. For perspective, Firefox (as "Phoenix") appeared 9 years ago, and Mac OS 10.0 is 10 years old. It feels tough to argue that Linux is moving faster than Apple, Microsoft, Google, web tech, etc. It's relatively stable as OS's go.

Sure, Solaris and IRIX are (were?) even older and there was prior art on all sorts of fronts. If you'd like to argue that the original Linux desktop efforts should have copied more from those: you're probably right on some of the specifics. It's easy to say this or that could be slightly better if you look at a huge piece of software like a full Linux distribution. What counts is the software that exists, not the software we all coulda woulda shoulda written.

There were a few hundred people who probably worked on or around Linux desktop IPC back then, and I think zero argued that SUNRPC was a good option. Maybe it was, and someone could have showed up to prove it in code. They did not. Instead, a number of other systems were coded and tried (MICO, ORBit, DCOP, IPC-over-X11, even SOAP), and in the end dbus caught on as a working solution. By that time everyone had a lot of hard knocks and knew what problems they were trying to solve. All the solutions people tried worked fine for sending a message. That was not what differentiated these approaches. The problems to solve included things like how to cross boundaries between systemwide daemons and user session; how to discover, activate, and track other apps and daemons; licensing issues; a least-common-denominator implementation that all the projects were willing to use; security model; etc. At some point dbus cleaned up everybody's ad hoc hacks and experiments, and now Linux is pretty uniform about using it and has been for years. Is it perfect? Not at all. It was just the first thing to be good enough and it stuck.

If someone comes along and does something legitimately better and worth switching to, then I'm sure Linux will do so, and take a lot of heat for it too.

"So rather than point out how wrong he is, ask 'what is he trying to say?' and deal with that."

Well, I think he's trying to say what he says, which is "please don't write software which requires any of the Gnome/KDE and DBus API. Writing X11 programs with xcb and proper RPC APIs like SUNRPC or Thrift should be more than good enough."

This is nonsense.

The idea to use raw xcb rather than GTK or Qt or HTML: come on. You'd spend months getting to the point where you had crappy buttons and scrollbars working. Replicating user-expected and mandated functionality provided by the toolkits is a multi-year task to do _poorly_. You'd never, ever finish writing your app (and it'd suck, too).

On the IPC front: you'd be adding yet another way to do it and thus more complexity. It's fine to say SUNRPC should have been chosen in 2001, but it wasn't, and rewriting hundreds of apps today is nuts. Whatever your dbus annoyances, you could solve them in one place and fix the whole system.

More importantly, most of the newfangled (= 6-12 years old) crazy ideas that this post complains about, exist for some good reasons that the author of the post doesn't seem to be aware of. You could certainly build a system _involving_ SUNRPC or Thrift that would work. But you'd have to innovate on top with an understanding of the problem space. And what's the end-user benefit of that, at this point in time?

I'd argue it's a big old zero.

But if someone shows that there's enough benefit, I hope a new idea wins on the merits (and the running code).

Re: The destructive desktop — Linux in trouble?

#74
post #65

Earlier quoted context omitted.

>How is modularization and code reuse a bad thing? The problem he is complaining about sounds like a lack of modularity to me: being forced to pull in dependencies that he won't be using at all.

He's using hash tables, so he's using glib2, and that's far better than everyone implementing their own hash table.

False dichotomy. Libraries that provide basic data structures should not have external dependencies. The issue isn't whether or not to use libraries, it is how the functionality of the libraries is organised.

Re: The destructive desktop — Linux in trouble?

#75
post #43

Earlier quoted context omitted.

I suspect that the author is used to the old interface, involving manually writing shell scripts that call ifconfig and friends. And now he's pissed off because he can't do that anymore and concludes that the system must suck, or that his "freedom" is in jeopardy because his old way is no longer supported. Well I see things differently. Users should be free from interference from ancient and non-user-friendly cruft.…

You can still do all of that. NetworkManager is far from the only way to get your box to connect to the internet.

It does have a tendency to intrude if you don't explicitly configure it not to, or remove it if you're not going to use it. I always forget to tell it not to configure /etc/resolv.conf, and always get confused when DNS lookup breaks.

Re: The destructive desktop — Linux in trouble?

#76
post #70

Earlier quoted context omitted.

As others have pointed out, NetworkManager has a CLI.

If you think nmcli qualifies as command line network configuration, you've never done any advanced network configuration at all. nmcli is a bad joke, with all the limitations of NetworkManager itself, and a really crappy interface to boot. iproute2 is the gold standard of command-line network configuration on Linux, and for good reason. That NetworkManager conflicts with it instead of taking proper advantage of it is…

Yes. I was never advocating advanced configuration. Since when did Windows and OS X allow advanced network configuration through the command line? NetworkManager is supposed to be a simple, user-friendly tool. My mother does not know what "static IP addresses" or "DHCP" or "gateway" are, she just wants the damn wifi to work. Can you imagine her typing in iproute2 commands?

Re: The destructive desktop — Linux in trouble?

#77
post #5

This is factually wrong: Then you try to figure out how to configure NetworkManager from the command line. There's no tool in the entire distribution which lets you do that nmcli lets you configure network manager through command line http://manpages.ubuntu.com/manpages/maverick/man1/nmcli.1.ht...

Factually wrong, effectively right.

Between 1998 and 2008 I always configured my networks by hand on Debian machines. Then I switched to Ubuntu for my desktop. After the first upgrade, X wouldn't start. As a result, I had no network connection, because that is set up by the NetworkManager applet (which is completely braindead: you don't need an applet to have a network connection start automatically).

Then I found there just wasn't any CLI interface to configure the network. Or at least: I didn't know which one it was. When I found out (it was network-manager-cli or something back then), it wasn't installed. Well gee, thanks, it's not like it doesn't happen regularly with Ubuntu upgrades that you get stuck on the cli...

Re: The destructive desktop — Linux in trouble?

#78
post #70

Earlier quoted context omitted.

If you think nmcli qualifies as command line network configuration, you've never done any advanced network configuration at all. nmcli is a bad joke, with all the limitations of NetworkManager itself, and a really crappy interface to boot. iproute2 is the gold standard of command-line network configuration on Linux, and for good reason. That NetworkManager conflicts with it instead of taking proper advantage of it is…

Yes. I was never advocating advanced configuration. Since when did Windows and OS X allow advanced network configuration through the command line? NetworkManager is supposed to be a simple, user-friendly tool. My mother does not know what "static IP addresses" or "DHCP" or "gateway" are, she just wants the damn wifi to work. Can you imagine her typing in iproute2 commands?

Windows allows some, I've had to mess with it in the past. Mac OS X allows all the command line network configuration you would expect of a BSD, since, well, it basically is a BSD, while at the same time having a great, user-friendly configuration interface for the 80% case.

I don't care about your mother, she shouldn't be on the command line in the first place, and if she were with nmcli, you'd still have to explain all those terms to her (and they're very basic terms, I refuse to believe your mother is actually that stupid, mine sure isn't).

You've entirely missed the point -- repeatedly. Your mother gets to configure from a friendly GUI limited to the functionality she needs, but anyone who needs anything more advanced is screwed out of it because they can't have the GUI and direct access to underlying functionality, because the former actively impedes the latter. This is a uniquely Desktop Linux state of affairs, no other OS behaves like that.

Re: The destructive desktop — Linux in trouble?

#79
post #63
post #53

Earlier quoted context omitted.

You still don't need to configure NetworkManager to get a network connection. You can use the old methods (/etc/network/interfaces or /etc/sysconfig/network-scripts) instead.

Those are not the old methods - were they ever portable beyond debian? The old method is ifconfig. I don't care about linux any more, but on FreeBSD ifconfig still works, as it has for at least 20 years. If it becomes impossible to use KDE programs without using networkmanager, that will be a real irritation for me.

/etc/sysconfig is Red Hat. /etc/network is Debian.

Of course ifconfig (or better yet, the ip) still work.

Re: The destructive desktop — Linux in trouble?

#80
post #43

Earlier quoted context omitted.

You can still do all of that. NetworkManager is far from the only way to get your box to connect to the internet.

It does have a tendency to intrude if you don't explicitly configure it not to, or remove it if you're not going to use it. I always forget to tell it not to configure /etc/resolv.conf, and always get confused when DNS lookup breaks.

apt-get purge it!
Post reply on HN