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