LWN.net Logo

Please...(again)...

Please...(again)...

Posted Aug 26, 2010 14:33 UTC (Thu) by mmcgrath (guest, #44906)
In reply to: Please...(again)... by corbet
Parent article: Systemd and Fedora 14

> I would really like to get back to a place where we can discuss the technical issues without applying terms like "Mr. A**hat"

Surely calling people names isn't good, but I share his frustration. No one in Fedora ever has the "should" conversation. It's always technical discussions. So everything that's done gets in. It's both a strength and weakness of Fedora. This has been posted, I'll post it again because IMHO this is exactly what is going on here.

http://home.comcast.net/~tomhorsley/wisdom/braindump/oss-...


(Log in to post comments)

Please...(again)...

Posted Aug 26, 2010 21:57 UTC (Thu) by marcH (subscriber, #57642) [Link]

> This has been posted, I'll post it again because IMHO this is exactly what is going on here.

This is both hilarious and quite accurate. It is only missing the last two stages.

First the Developer becomes slightly bored and not interested in re-implementing all the useful workarounds that the original piece of software featured in order to cope with the real world. Because it is so much better to fix the real world instead!

And then the final stage where the Developer becomes really bored, realizing that he has solved all the interesting problems. He then jumps on his white horse and rides to new pastures, to other crucially important pieces to entirely re-design and re-implement. It is very urgent to free users from these other broken pieces since they have been suffering from them since a few decades now! Average, boring people like you and me will be good enough for the mundane task of maintaining the current project.

Please...(again)...

Posted Aug 27, 2010 9:31 UTC (Fri) by cmccabe (subscriber, #60281) [Link]

That's hilarious. I love the Douglas Adams reference.

Seriously, though, I can understand Lennart's point of view here. With pulseaudio and systemd, he has created code that is better than what came before it. But the problem with straightening out the crooked things is that it causes a lot of short-term pain.

What I've found in the past is that when you make a big change to something, you spend more time handling "transition issues" than you do actually architecting the new solution. Usually you have provide compatibility and "legacy" modes, do extensive testing, and fix a lot of problems that have absolutely nothing to do with anything you've written, but which just happen to crop up when your new solution is place.

As you can probably guess, handling transition issues is *not* the fun part. It's the boring but difficult part. There is often a temptation to skip this part-- just like there is a temptation to put off writing good documentation. But you absolutely must not do this, or else you will make a lot of enemies.

The worst part is that if something breaks, you will be the bad guy, no matter whose fault the problem actually is. It could be a bug in the python interpreter that is being exposed by your kernel change-- and you will get the blame. The only response is to be professional about it-- to offer compatibility modes or workarounds, and get to the root cause of the problem. At some point, this is just the fate of all engineers. You never think about the guy who built your highway onramp-- until something bad happens.

Lennart's flippant response about the "noauto" change suggests that he still has to learn how to really do this right. Hopefully he'll get the hang of it. And then we can finish building that hyperspace bypass. After all, the plans *have* been on display for 50 of your earth years.

Please...(again)...

Posted Aug 27, 2010 10:46 UTC (Fri) by marcH (subscriber, #57642) [Link]

> As you can probably guess, handling transition issues is *not* the fun part. It's the boring but difficult part. [..] But you absolutely must not do this, or else you will make a lot of enemies.

... especially when you replace something inferior, but core and WORKING. You can take whatever risks you want with brand new features, but regressions? Never, ever. Even if you put an extraordinary amount of effort in implementing the best piece of software ever, people will hate you for the tiniest regressions. And you deserve it. Divas seem to forget too easily that normal people have a day job: make the system JUST WORK whatever it takes and no matter how ugly it is in the end.

PS: yeah I know, I should use RedHat. You can save your post.

Please...(again)...

Posted Aug 27, 2010 12:59 UTC (Fri) by mpr22 (subscriber, #60784) [Link]

I would say that "work, just" is more accurate than "just work".

Please...(again)...

Posted Aug 27, 2010 13:20 UTC (Fri) by mmcgrath (guest, #44906) [Link]

> ... especially when you replace something inferior, but core and WORKING.

I would disagree that the current scripts are inferior. People in our field are far to quick to dismiss the value of simplicity. systemd has several more features, I'll certainly admit that. The older / current method was great though. You'd think there was other lower hanging fruit that required attention.

Please...(again)...

Posted Aug 27, 2010 13:30 UTC (Fri) by rahulsundaram (subscriber, #21946) [Link]

Obviously, people work on what catches their attention. For a hobbyist project, we can't expect anything more. Why complain about that?

Please...(again)...

Posted Aug 27, 2010 13:48 UTC (Fri) by mmcgrath (guest, #44906) [Link]

I can't think of a worse way to design a system whole then what you just described. That's why I complain.

Please...(again)...

Posted Aug 27, 2010 13:51 UTC (Fri) by rahulsundaram (subscriber, #21946) [Link]

I don't see what you are talking about. Much of what you use on a regular basis was designed in the same way driven by self interest and tackling problems they are interested in. It might not be some low hanging fruit that you want to tackle but obviously different people have different interests. If you want to tackle a different problem, go ahead and do that.

Please...(again)...

Posted Aug 27, 2010 14:00 UTC (Fri) by mmcgrath (guest, #44906) [Link]

> Much of what you use on a regular basis was designed in the same way driven by self interest and tackling problems they are interested in.

I agree, and relative quality difference compared to what is available around it has grown wider and wider. The Linux desktop is a wasteland of disjointed features and applications that only sort of work together written by groups that have far more reach then manpower and no central design other then freedom. We've made almost no headway on the desktop in the last _10_ years. We're still sitting at 1%. I'm tired of playing this tune, I need to just accept that.

But now I'm seeing these crazy disjointed desktop bits make their way into core system parts (note: NetworkManager didn't replace network scripts for a reason in RHEL6). So now I worry that where we have made great headway (on the server) is now being put at risk by these silly disjointed 'features'.

Please...(again)...

Posted Aug 27, 2010 14:10 UTC (Fri) by rahulsundaram (subscriber, #21946) [Link]

And what is the proposed solution here? As long as you are not paying people to work on what you want, it is always going to be a distributed set of components with no central design or authority. It is sort of like evolution, messy and inefficient but noone else has proposed a better way to tackle it without throwing away a lot of money on something that might not pay dividends even years later.

Please...(again)...

Posted Aug 29, 2010 7:31 UTC (Sun) by cmccabe (subscriber, #60281) [Link]

> I would disagree that the current scripts are inferior. People in our
> field are far to quick to dismiss the value of simplicity. systemd has
> several more features, I'll certainly admit that. The older / current
> method was great though. You'd think there was other lower hanging fruit
> that required attention.

I don't think systemV init scripts are really simpler. They just push the complexity into other parts of the system.

Since they can't represent dependency information, you either have to have a slow boot time or parallelize things by hand. I have had to manually parallelize sysV scripts before, and it's not fun. The system should know what depends on what.

Since sysV init scripts only happen at boot time, or when someone changes the runlevel, you have to have a separate mechanism to handle the addition of hardware at runtime. Sometimes adding that hardware requires starting a daemon-- for example, when it's bluetooth hardware.

SystemD also subsumes portreserve and xinetd. In theory systemD could also handle restarting daemons, although I don't know if that has been implemented yet.

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