|Known for||Avahi, PulseAudio, systemd|
Lennart Poettering (born 15 October 1980) is a German software engineer working for Microsoft and the original author of PulseAudio, Avahi and systemd.
Poettering was born in Guatemala City but grew up in Rio de Janeiro, Brazil, and Hamburg, Germany. Poettering worked for Red Hat from 2008 to 2022. He then joined Microsoft.
Since 2003, Poettering has worked on more than 40 projects, mostly written in C. He is the developer and maintainer of several free software projects which have been widely adopted by Linux distributions, including PulseAudio sound server (2004), Avahi zeroconf implementation (2005), and systemd init system (2010).
Poettering is known for having controversial technical and architectural positions regarding the Linux ecosystem.
His style has brought accusations that he is working against long-standing Unix philosophy, which he addressed in his blog post The Biggest Myths. For instance, Poettering has advocated speeding up Linux development at the expense of breaking compatibility with POSIX and other Unix-like operating systems such as the BSDs. He took this position because of his experience in writing some other low-level components in the desktop stack. He invites other developers to do the same. Poettering recommends also reading The Linux Programming Interface but ignoring the POSIX-specific parts.
In 2011 Poettering, one of the main developers of PulseAudio, praised the Windows and macOS audio stacks as "more advanced" and called Open Sound System "a simplistic 90's style audio stack" without relevance for a modern desktop.
Also in 2011, when asked why the Linux desktop hadn't been widely adopted by mainstream users, he answered that: "Linux is still too fragmented...[and] needs to be streamlined...". In 2014 Poettering published an essay criticising how software in Linux distros is commonly packaged, updated, and deployed; and laid out proposals that he, Kay Sievers, Harald Hoyer, Daniel Mack, Tom Gundersen and David Herrmann, had for how the architecture should be changed.
The controversy around systemd culminated in personal attacks and alleged death threats against Poettering. Poettering went on to put some blame on Linus Torvalds and other kernel developers for being bad role models for encouraging an abusive discussion culture on technical disagreements.
In 2017, Poettering received the Pwnie Award for Lamest Vendor Response to vulnerabilities reported in systemd.
Many of my previous projects (including PulseAudio and Avahi) have been written to be portable. Being relieved from the chains that the requirement for portability puts on you is quite liberating. While ensuring portability when working on high-level applications is not necessarily a difficult job it becomes increasingly more difficult if the stuff you work on is a system component (which systemd, PulseAudio and Avahi are).
we still can't fully match competing audio stacks like CoreAudio [...] Both Windows and macOS have much better integrated audio stacks than we have. [...] in general the CoreAudio stack is definitely more advanced than ours. [...] there's no doubt that it [the Windows audio stack] is probably still a better integrated audio hacking experience to develop for Windows. [...] OSS is a simplistic 90's style audio stack. I doesn't really have any relevance for what you need for a modern desktop.
POSIX is really an encapsulation of some choices that various Unix systems made along the way, rather than a body of text that got standardized and then implemented. According to Poettering, Linux should use its position as "market leader" (in the market of free Unix-like operating systems) and try out some new things. If developers don't force themselves into the constraints of the POSIX API, they could develop some really innovative software, like systemd shows. When these new developments happen to turn out really interesting, other operating systems could eventually adopt them as well.
Not having to care about portability has two big advantages: we can make maximum use of what the modern Linux kernel offers these days without headaches -- Linux is one of the most powerful kernels in existence, but many of its features have not been used by the previous solutions. And secondly, it greatly simplifies our code and makes it shorter: since we never need to abstract OS interfaces the amount of glue code is minimal, and hence what we gain is a smaller chance to create bugs, a smaller chance of confusing the reader of the code (hence better maintainability) and a smaller footprint.
In fact, the way I see things the Linux API has been taking the role of the POSIX API and Linux is the focal point of all Free Software development. Due to that I can only recommend developers to try to hack with only Linux in mind and experience the freedom and the opportunities this offers you. So, get yourself a copy of The Linux Programming Interface, ignore everything it says about POSIX compatibility and hack away your amazing Linux software. It's quite relieving!
I think we weren't innovative enough in the interface, and we didn't have a convincing message and clear platform. If you accept MacOS as benchmark for user interfaces, then we weren't really matching it, at best copying it. I think this is changing now, with GNOME 3 which is a big step forward as an interface for Linux and for the first time is something that has been strictly designed under UI design guidelines. So we now have a better interface, leaves the message and the clear platform. Linux is still too fragmented, and a developer targeting Linux will have to choose from a variety of APIs, a bazaar of somewhat matching but mostly just chaotic choices that will work on some systems but not on others. I think it would be in our greatest interest to streamline the platform top to bottom, and thus have a clear message what the Linux OS is. And of course, I believe my work in cleaning up the lower levels of our userspace stack is helping to work in that direction. Getting a clear message out what Linux is supposed to be is definitely a social issue, but to make that happen the Linux platform needs to be streamlined first, and that's a technical task, and not done yet.