1 |
On Thursday 11 February 2010 09:31:21 Walter Dnes wrote: |
2 |
> On Wed, Feb 10, 2010 at 02:18:43PM +0000, Neil Bothwick wrote |
3 |
> |
4 |
> > On Wed, 10 Feb 2010 07:57:57 -0500, Walter Dnes wrote: |
5 |
> > > > but D-Bus provides a standard way for applications to communicate |
6 |
> > > > with one another and removing it can stop your desktop working as |
7 |
> > > > it should. |
8 |
> > > > |
9 |
> > > Then how did things manage to work on my systems for the past 9 |
10 |
> > > years, |
11 |
> > > |
12 |
> > > pray tell? |
13 |
> > |
14 |
> > Because nine years ago, Linux desktop software didn't use interprocess |
15 |
> > communication. Of course things will still work, but not necessarily |
16 |
> > everything. For example, Network Manager uses D-Bus to tell programs when |
17 |
> > your Internet connection is available and not, so your mail client goes |
18 |
> > into offline mode rather than pointlessly trying to access your mailbox. |
19 |
> > KDE4 uses it quite extensively, ust as KDE3 used DCOP. |
20 |
> |
21 |
> There is too much solution-in-search-of-a-problem here. XMMS followed |
22 |
> the original Unix philosophy... it did one thing did it right, namely |
23 |
> playing audio. Unfortunately, XMMS was hard-coded to use a now obsolete |
24 |
> GTK library. |
25 |
|
26 |
Unfortunately, that's analogous to a business employing 5 people, all of whom |
27 |
do their own thing all the time with no inter-person communication and no co- |
28 |
ordination. Perhaps they might scribble a note on a white board once a day, |
29 |
but that's about it. |
30 |
|
31 |
> The "successor" to XMMS is Audacious. It seems to subscribe to the |
32 |
> Microsoft philosophy, and tries to do everything under the sun, and |
33 |
> pretends it's a server, which requires dbus. Is it *REALLY* necessary? |
34 |
> I used XMMS to play mp3's and Live365.com. I ended up switching to |
35 |
> mpg123 for both functions when XMMS was dropped, and then to the Flash |
36 |
> player for Live365. I emerged Audacious, but unmerged it when I saw the |
37 |
> post-install warning that said not to submit any Audacious bug reports |
38 |
> if I don't have dbus installed. |
39 |
|
40 |
Modern desktops are integrated, because that's what users want. Any two apps |
41 |
should be able to inter-communicate wherever that communication makes sense. |
42 |
|
43 |
Example: You have any old arbitrary email client. A mail contains a URL. Click |
44 |
it. The URL should open in your preferred browser, whatever that should be. |
45 |
Please note that any email client should support launching any browser, |
46 |
whether the dev built in support for it or not. Yes, I know there are the xdg* |
47 |
scripts, but tally up the number of things a user would want to work like |
48 |
this, tally up the number of scripts in the infinite number of locations this |
49 |
will take, and then ask the user to "pick one". |
50 |
|
51 |
Example: Notifications. I have 3 (yes, three!!) kinds of popups that show up |
52 |
here daily. There's KDE's system which is the majority of them, some GTK apps |
53 |
throw popups in the top right corner where I don't want them and them then |
54 |
there's Skype which does it's own thing. God, you gotta love proprietary |
55 |
sekrit apps </sarcasm>. The solution is a notification service, apps send |
56 |
their notifications to it and the service does whatever the user configured it |
57 |
to do with the notification. Note that the user is in control here, the user |
58 |
says what happens with popups and does it in one central place and the apps |
59 |
does one thing and one thing only with it's notifications: sends them. It's |
60 |
like syslogger, letting the app concentrate on it's real purpose (which is not |
61 |
logging, and definitely is not making sure it doesn't clobber log files from |
62 |
any other apps that might be running). |
63 |
|
64 |
See where this is going? Do you need a hundred more examples? |
65 |
|
66 |
When you have arbitrary, unknown (at install time) sources of data that may |
67 |
interoperate with other arbitrary, unknown (at install time) sinks of data, |
68 |
good data modelling says that a known broker of data should sit in the middle, |
69 |
which is generic enough for anything to be able to use it. |
70 |
|
71 |
And the transport for that is dbus. |
72 |
|
73 |
Just to bring this back to your original statement of Unix philosophy. IPC on |
74 |
modern desktops conforms exactly to the Unix philosophy. Apps were moving away |
75 |
from that and were becoming IM clients cum custom loggers cum notifiers cum |
76 |
<insert any other crap here>. |
77 |
|
78 |
Standardized IPC is moving back TOWARDS the Unix philosophy, not away from it. |
79 |
Apps can now concentrate on their core function, and hand over the integration |
80 |
aspects to something else dedicated to IPC and nothing else. The apps now |
81 |
merely does the minimum required to hand over data to the service via a |
82 |
messaging bus. |
83 |
|
84 |
Which if you look at it in that light, is EXACTLY the same rationale as a |
85 |
syslogger. Do you use a syslogger? Why? |
86 |
|
87 |
If you don;t like all this integration stuff, and you have every right to not |
88 |
like it, then you should uninstall KDE and use Openbox (or similar lightweight |
89 |
WM). These WMs exist for users that do not want desktop integration. One thing |
90 |
you cannot have is the latest KDE without it's integration features. |
91 |
|
92 |
|
93 |
-- |
94 |
alan dot mckinnon at gmail dot com |