Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I've watched a few of this guy's videos, and it's deeply impressive. He reminds me of the grizzled old guys from the 1980's that actually know the deep internals of an OS. They didn't just take it in school, they lived and breathed it. He's the guy that made the 'myth' of a 10x coder a reality for me.

I get this is his passion project, but part of me wonders what he could accomplish working on the rough edges of linux.



> I get this is his passion project, but part of me wonders what he could accomplish working on the rough edges of linux.

I've watched/listened to more than a few of his videos. Something that he has expressed on more than one occasion is an appreciation for the kind of deep vertical integration that he saw at Apple because they control the entire stack. He's going for something in that direction in Serenity and it, for example, means that they're not taking on low-level dependencies on other projects.

Anyway, this is perhaps a roundabout way of saying that I don't think he'd be all that interested in hacking on Linux - a project that very much goes against that kind of integration.


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/


It 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.


If 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


>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.


Please 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.


Andreas, 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.


What frustrates you about Linux is exactly what drew me into FreeBSD. Have you looked into the BSDs and their development model? For example, the FreeBSD kernel and the base operating system are developed as a cohesive unit like you described.

I've been watching videos of your baby progress over the years. I love the look and guiding philosophy. You should be immensely proud of what you've accomplished. But without leveraging the existing drivers, GUI frameworks, decoders from BSD or Linux, I fail to see how it can ever be more than a toy OS. However your vision implemented on a BSD base, could be the next Solus.


The BSDs are proof of what I'm saying. Sure the base OS is developed and released together. Meanwhile the stuff in the ports tree (the programs users actually want to run) is very similar to every common Linux distribution.

Also FreeBSD in particular has several Linux compatibility APIs and shares drivers with Linux whenever it's possible. As a founder it's tempting to fantasize about building your own universe but everyone comes back to reality eventually.


Even Windows and OSX borrow code from Freetype and such.

Windows had an embedded Prolog interpreter for the network settings, a TCP/IP stack borrowed from BSD, and so on.

Then, with OSX... multiply that for 200.

On Harfbuzz: https://wikiless.org/wiki/HarfBuzz?lang=en


>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.


"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 ...


By his own admission he basically did nothing but coding all day long for most of his life, to the point where if he took a long vacation he'd be worried about getting rusty. For SerenityOS he basically holed up in a cabin for 6 months coding. At dayjob it was "60-80 hours a week", not forced but because he wanted to do it.

That kind of sustained and focused work compounds over time and you just get better and better I guess. Reading stories like his makes me think I'm probably in the wrong industry because I don't enjoy coding that much and definitely have a ton of other things I'd rather do.


I don't think someone who enjoys coding that much is neurotypical, and I think you can be both neurotypical and a great programmer.


> Reading stories like his makes me think I'm probably in the wrong industry because I don't enjoy coding that much and definitely have a ton of other things I'd rather do.

You're fine. Comparing yourself to Andreas Kling vis-a-vis coding is like saying you're going to stop playing the guitar because you're not Jimi Hendrix. Andreas Kling, while impressive and inspiring, is not normal.

Most people, myself included, don't want to do any one thing for 80+ hours a week. That's okay. If you enjoy working as programmer, just keep on trukin' and don't worry about what others are doing.


Thanks, that is a good analogy and definitely helped me!


I don't think there's anything at all wrong with only coding 40 hours a week or less.

SerenityOS is an amazing accomplishment but it's just a hobby project without massive resources like major projects have.

Most real world apps have tons of devs that don't do 60 hours, the modern dev process just doesn't need it, unless you're doing large things entirely done by small teams.


Linux's rough edges form a fractal.


A fractal with loops


A fractal with loops is a Chaotic Map. https://en.wikipedia.org/wiki/List_of_chaotic_maps


Wow thanks for the link! These are beautiful




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: