5 ms·
He's also talked about this on the CoRecursive Podcast: Andreas: Well, I don’t know that I ever had a real direction with it. But in the beginning, I remember
by quux 5y ago
He's also talked about this on the CoRecursive Podcast:
Andreas: Well, I don’t know that I ever had a real direction with it. But in the beginning, I remember feeling kind of frustrated with finding myself using Linux again and thinking it’s nice to be back on Linux. Everything is snappy. And the developer experience is really great, but I sure do miss having the source code for everything.
Adam: This is a fascinating distinction to draw.
Linux is open source. Everyone has access to the code. But if you listen to episode 70 with Joey Hess talking about Debian, making changes can be a bureaucratic process. And that’s just for one distribution. There are hundreds of Linux distributions. Even if it’s a one line change, it could take years to get that upstreamed and spread into various Linux distributions. If you listen to episode 67 about Zig, that was one of Andrew’s motivations behind creating Zig.
But meanwhile, Andreas has another strategy at Apple. Everything was in one place, and everything was built internally.
Andreas: And when you’re in that environment, it’s extremely powerful.
https://corecursive.com/serenity-os-with-andreas-kling/ https://corecursive.com/serenity-os-with-andreas-kling/
- oh_sigh 5y agoIt seems like the problem is power distance and social credit. Random developer trying to get one line of code changed may run up into a gigantic wall. What about with Linus? The "problem" with Serenity OS is that yes, now Andreas will have all the power he wants and can get that one line change without the bureaucratic process. But what about when some random user comes along and wants to change the code? They better start programming on Tranquility OS.
- akling 5y agoIf you look at the contributors graphs[1] on our GitHub repository, you'll find that folks other than myself have added tens of thousands of lines of code. I'm not quite the power-hungry gatekeeper you might imagine :^) Regardless, the issue I have with the mainstream FOSS desktop system isn't about any one project's development process, but rather the fact that there are hundreds of independent development processes, each controlling a small fraction of the whole system. Doing any kind of cross-subsystem work in that environment becomes a significant undertaking, and that's what I'd like to avoid. [1] https://github.com/SerenityOS/serenity/graphs/contributors https://github.com/SerenityOS/serenity/graphs/contributors
- throwaway82652 5y ago>but rather the fact that there are hundreds of independent development processes, each controlling a small fraction of the whole system. Doing any kind of cross-subsystem work in that environment becomes a significant undertaking Hi Andreas, hope you are doing well. This is very wrong. There are a lot of distributions of Linux and BSD that try very hard to ship as one cohesive system. Your issue doesn't make any sense. You would find it even more the case if you tried to do something like create a whole userspace from scratch and ship that, but you've already shown otherwise how that's possible. You need to get over this false reasoning or you will find yourself in the same narrow box that a lot of Linux distributions get trapped in. That's my experience anyway from seeing a lot of failures in Linux distributions with poorly defined goals. In any case thanks for making this project, I hope it's not the last OS you design.
- awesomekling 5y agoPlease point me to one of these Linux systems where the kernel, drivers, windowing system, GUI framework, networking libraries, image format decoders, font rasterizers and all CLI and GUI applications plus the libraries that support them are developed cohesively within a single project and not assembled from 3rd party sources.
- throwaway82652 5y agoAndreas, that request makes no sense. You didn't write all that code in Serenity either. Other people (a.k.a. third parties) helped out. I assume a lot of the algorithms are standard too so you didn't come up with those either. I don't want to disparage your effort but please give credit where credit is due. Please also don't underestimate the amount of work an OS like Ubuntu does to get everything to function together, it may not be perfect but if you plan to grow to the size of Ubuntu then you sign up for about the same amount of work. It's not particularly relevant if the code came from in house or not. I get what you're trying to say about vertical integration but even Apple ships a ton of common open source components because it's not practical to write every single thing again from scratch. I also get that it's fun to write your own drivers, GUI controls, TCP stack, image decoders, font rasterizers and such. It's hard for me to see how this is supposed to be "cohesive" when most of the tasks here are implementing standard things that every other OS has, even more so when this is another clone of Unix with a Windows 98 style GUI on top of it. I mean just thinking about something like a web browser, probably a good 95% of that is implementing the DOM/CSS/Javascript engines. It's a great achievement but has nothing to do with SerenityOS at all and gains nothing from any kind of perceived cohesion. It's just apparent to me this is a really weak selling point, you can do much better than defining yourself as the OS that blatantly copies features but considers it unacceptable to copy code. That's the failing of a lot of bad NIH-syndrome Linux distributions, don't fall into that trap. You need to come up with a good selling point that isn't just "we are another Unix but we hate Linux and refuse to collaborate with them". So many other people have tried that and got nowhere. It's critical for the long term success of your project to move past this.
- hutzlibu 5y ago"There are hundreds of Linux distributions." There probably are hundreds of linux distributions exactly because people do not want to wait years for their change to ship, so they create their own project ...
- throwaway82652 5y ago>Even if it’s a one line change, it could take years to get that upstreamed and spread into various Linux distributions. If you listen to episode 67 about Zig, that was one of Andrew’s motivations behind creating Zig. No, I'm sorry. This is a very, very bad reason to start a new project from scratch. If you want to avoid bureaucracy then it's not hard to create yet another Linux or BSD distribution, countless people have done it. Once your project grows larger you will find bureaucracy creeping back in again because you have to make some of the same decisions. Do I accept breaking change A versus breaking change B? How do I force people to test a patch across thousands of machines at once before accepting it? How do we reach consensus on subjective things like fonts and icons? And so on. These projects have plenty of other reasons to exist, it's not like they don't. This is just a poor explanation for why they exist. I hope nobody mentions this nonsense again in an interview.