The 4th Year of SerenityOS
serenityos.org
serenityos.org
I think that kind of social endeavor isn't something a lot of maintainers can accomplish, not even those with the skills to work on such a project all by themselves.
In reality engineering is straightforward, you just need someone to show you how to properly write data structures and algorithms and to break problems down.
Andreas showed these kids this, reinvigorating the web based hacker culture I grew up in. Anything is possible and even if a problem ends up being more than you can handle at least you learned a ton along the way.
Now days searching for how to code leads you to a ton of tutorials about gluing modules together. I feel sorry for young people with that thirst who won’t be satisfied thanks to the commoditization of learning to code.
“Wish we could go back to 2004. Modern web has become toxic af” which embodies the spirit of this community pretty well I think.
Andreas Kling is the messiah that is leading a group of people that are fed up with modernity.
Sorry but you get that wrong, that's just meant for file buffer and caches etc. NOT actually bloat.
It takes advantage of sharp hindsight and correct what was bad, and more importantly keep what worked.
Other OS projects I have seen either lack vision (same as x, but written in y), or they are just for the personal learning of the developer who started it.
While "Unix-like core with the look&feel of 1990s productivity software" sounds simple, it's more than what most new OS projects I have seen provide and it very clearly signals who it's for.
The "look&feel of 1990s productivity software", communicates that the UI will use consistent elements across applications, which is something you only find in Mac OSX these days.
The Super welcoming community is the other half keeping people engaged that you are looking for.
- write the whole stack yourself so you can fix any problem or make any improvement without external dependencies or coordination - the implementation is never written in stone and it is always possible to move to something better ( which is why you need to control the whole stack ) - no problem is too big to start solving - implement something basic that works and then improve it ( see all of the above ) - evolve everything in the open
Such things have definitely happened in the past.. Not many (average) people have heard of KDE or its web engine, KHTML, but almost everybody these days uses Chrome, which, through Apple's WebKit, is descended from KHTML itself.
Serenity uses its own libraries everywhere, to the point of replacing C++'s std with their own library, AK, which might make stripping it for parts more difficult, but it's certainly not unimaginable.
If Serenity's web engine gets good enough, I can even imagine some EU government sponsoring an independent competitor to the Google / Apple browser duopoly.
It is a huge problem that a certain tech monopolist controls the most popular browser in the world and a shame that this browser was build using the free labor of naive volunteer contributors that just wanted to help out an open source project.
Linux would have never been so successful and kept being a free operating system without its GPL license. And even that turned out to be not enough protection, as the user-hostile Android system proves.
Huh? You wish SerenityOS's browser engine was not a viable competitor to the Google/Apple browser duopoly? Kind of a weird POV, if you ask me.
Whether they like C++ or not, no one’s going to want that generated C++ output as a basis for source code, and you’re not going to use the weird single source compiler either.
...and what is wrong with Mozilla? Why can't they contribute to FireFox?
I have an addictive personality, so far cigarettes are the only thing that got me and only for 4 years, but I largely stay away anything else now because I see how it effected members of my family and how easily someone like myself could go the same way.
Because of that I very much appreciate channeling yourself into something as ambitious as an operating system instead. It's actually the same way I've built any of my best work and how I've gotten even this far in my career. The line I say is: programming keeps me sane.
Yes, it takes patience and chutzpah, but I can also imagine how satisfying it is to build something from scratch and see all the pieces coming together into a working OS. And if you put your heart (and time) to it, you can build anything from scratch. A lesson the newer generation of developers still haven't fully grasped.
Congrats, good luck, and carry on!
I feel that this comment unfairly criticizes people who build on other things. This OS runs on hardware, which is someone else's API, and is a hobby project, as far as I can tell.
If someone wants to build something cool that uses others' APIs as a hobby project, more power to them.
The reason Andreas was able to build a community around SerenityOS so fast is the same reason Stallman/Linus were able to do so - everything about it is a direct clone of designs proven out by commercial OS vendors. The core is UNIX (well understood) and the GUI is Windows 2000 (well understood). The code may be fresh, but even there, it is just an ordinary C++ based OS, as conventional as can be. This means working on it is fun for the developers because there are relatively few debates over direction or design, and little risk - you know what you're getting right from the start.
But to claim that such a project is doing it all from scratch zero-rates the design aspect, which seems wrong.
I'm not quite sure how I would marry those two concepts.
I wonder if we're watching something comparable to the birth of Linux. I'm not insinuating that Linux would go away or die or anything -- that's absurd -- but I just mean perhaps over time SerenityOS will become more and more used as a "real" OS. For what purpose(s)? No idea. But the whole project really seems to have staying power.
That said, I'm fully with Andreas that having fun and simply building something because you want it to exist are valid goals in and of themselves. Couldn't be happier for him and everyone who contributes to the project.
(1) we are in a world where open source is the way.
(2) it’s somewhat a reaction to the state of modern software, both in UI paradigm and in increasing cartelization.
To me, it’s hope.
I think you're in a bubble. The world still runs primarily on closed source and proprietary software and services.
If you're into idiotic discourse, go ahead and list 1000 open source projects on SourceForge just to "strengthen" your argument.
Tell me - what do most people in industry use for: image editing, video editing, audio and sound design, CAD, EDA, ERP, EMR, logistics, finance - you know actually getting stuff done with those things you mentioned above? Never mind that the vast majority of software written is line of business software.
The landscape of free/open source software has not changed much since the 90s. The market share has increased, some of the names have changed, but it's still the same types of stuff that it excels at (languages, OSes, frameworks).
But we’re seeing a success story for open source on a scale almost never seen before when it comes to AI.
Yes, Stability AI is doing great stuff with making this tech freely available for now, but it's not clear how sustainable that is in the absence of large VC funds. The players with the bigger more stable budgets are going the proprietary route.
I kinda wonder if "streamer who develops code" could be a viable open source business model, haha.
I posted this about it at the time: https://awesomekling.github.io/I-quit-my-job-to-focus-on-Ser...
I agree. Sums up my own thinking when I started my 3D graphics system in Common Lisp a few months ago. Enjoying writing code from scratch, even basic UI widgets on top of OpenGL.
It's always humbling for me to read updates from SerenityOS :)
Kinda was expecting this but would've also liked see some critique of other languages.
Borrow checker style "Aliasability XOR Mutability" does restrict a lot of valid programs, but has some nice properties for scaling large codebases besides the obvious performance advantage of ARC. I can see how this kind of big "down payment" to restructure programs might go against the incremental/fun approach embraced for SerenityOS. More reading on AXM and it's benefits for correctness:
* https://manishearth.github.io/blog/2015/05/17/the-problem-wi...
* http://smallcultfollowing.com/babysteps/blog/2013/06/11/on-t...
* https://manishearth.github.io/blog/2015/05/03/where-rust-rea...
Ask him about "the plan" next time he goes live :)
Plus everything immutable per default is pretty sweet.
And no borrow checker, so simpler than Rust.
Honestly I could see that language take off even outside of SerenityOS.
I have since watched hours of his stream and found it super inspiring. To the extend that I now want to learn some C++ and make some contributions to the project.
It's really refreshing to see people code for fun and build whatever they feel like.
I think a lot of profesional devs lose that when they go all in on their work (which is understandable) so it's awesome to see something like this!
Congrats on the 4 years! Looking forward to what's next!
It is a good book to learn C++ the modern way, instead of a couple of appendixes in what is otherwise a C programming book.
My only concern is looking at it... I can't help but worry slightly about feature creep. We went from an OS, to an OS + Web Browser, to an OS + Web Browser + Programming Language. Next year it might add an Office Suite at this rate.
Edit: I don't mean this as a bad thing, just that it would be a shame to get so large that everything becomes half-baked and overwhelming to finish.
But in general if you have something like this, it's often better to let it go where it wanders, even if it never attains the success of Linux, etc. Forcing a restricted scope often leads to burnout which kills it even faster.
Sorry, but no, just no.
MS (correctly) recognized the threat that browser poses to OS through webaps. They bundled IE with Windows, however their bundling was a simple and effective (and monopolistic) strategy to take away market share from the then-leading browser, Netscape.
Yes, OS needs a browser. No, MS and Bill had nothing to do with that (and they artificially slowed down web the best they could - hello IE6!).
I do agree with the rest, but to credit MS that every OS needs a browser nowadays... Just no.
Their reasons are irrelevant.
OSs didn’t come with browsers. Microsoft bundled IE with Windows. Now every OS comes with a browser.
What was new was that OS was deeply connected to browser, so that uninstalling it was not an option. But that is not what GP claimed, and that is of course not a rule with newer OSs.
But anyway, let's talk about this great new SerenityOS instead. :) Over and out.
https://man.serenityos.org/man5/GML-Introduction.html
Ex.
https://github.com/SerenityOS/serenity/blob/master/Userland/...
In general the scope creep is because Kling and co are all about fun and code beauty. And to their credit, the code is beautiful. :)
People asking "Is it fun" are missing the point.
Don't 'fun' yourself into a job under terms you didn't get to negotiate, state your requirements and adjust your work funnel accordingly. I've witnessed a lot of 'fun' projects manifest themselves into serious projects that fall apart because this forethought was neglected.
Well, considering this is a fun project being worked on by volunteers (some of whom are sponsored by the community), I'm going to go out on a limb and say the answer to this question will always be "zero".
(edit: based on other comments, it sounds like donations rather than streaming revenue are the major source of income, although I bet the goodwill from having such an open development process help with the donations).
Are they? I thought the whole point of the entire project was fun.
https://github.com/SerenityOS/serenity/tree/master/Userland/...
It works out because of loose coupling + many contributors. People will work on the web browser and others will work on the main OS, and there aren’t too many conflicts or places where each team has to coordinate.
It also works because making a basic OS or web browser or programming language is not hard, 90% of the work goes into the final 10% of perfection. You can a) make minor improvements to the base OS, or b) create an entirely new program and a burst of seemingly-rapid development; SerenityOS is a passion project, so many people choose b.
Furthermore, many of the people working on the OS are still doing so, and some of the people working on the web browser may not have joined without it. So maybe it’s slowing down progress on the main OS but not by too much, the main OS is still improving.
Honestly I kind of predict people will start to branch off and work on a Serenity office, and Serenity painter and Serenity DAW and Serenity calendar and Serenity game engine. This is basically what KDE has done.
And also all of your wonderful videos that you’ve made about the development of the system over these years. That’s the most valuable part of it all for me.
Maybe you should take a break from SerenityOS and write a book about the useful/practical subset of the C++ language??
Seriously, you don't even have to know programming to contribute. Writing documentation, porting software, trying to boot on real hardware, trying out websites with the web browser, looking for bugs in the user interface... There's no such thing as a barrier to entry with SerenityOS as long as you're motivated to learn.
No, kidding... But their Jakt[1] language will make it much easier to contribute than in arcane reality of C++.
Can just open any app and you will see little things that would make for a good first PR. The codebase is also full of Fixmes, many of which are very approachable for a beginner.
Would love to see this boot on a Pi.
Happy birthday.
https://github.com/SerenityOS/serenity/tree/master/Userland/...
See also LigGPU and LibSoftGPU in the same folder.
If it'll ever get GPU support, I'd expect it to be based on QEMU/libvirt GPU acceleration rather than any direct hardware support.
Unless someone knowledgeable and motivated enough has a crack at it and writes a driver forttheir GPU, of course That's an immense task, though, so I wouldn't expect it any time soon. Maybe an Intel engineer will get bored or something.
That is a sad (though understandable) state of affairs.
No need to build a straw man.
And here: http://www.paulgraham.com/richnow.html
First DDG results for "Paul gramm get rich"