Hugo Hacker News

Not-a-Linux distro review: SerenityOS is a Unix-y love letter to the ‘90s

KronisLV 2021-08-18 11:40:04 +0000 UTC [ - ]

The author also has a YouTube channel, where he posts more of the development process: https://www.youtube.com/c/AndreasKling/videos

Personally, it's very interesting to see both someone so positive, but also so technically capable. It feels like that's an optimal situation for both building something nice, as well as developing a small and interesting community around it.

qwerty456127 2021-08-18 13:31:17 +0000 UTC [ - ]

What begs to emerge in the SerenityOS world is a form-centric visual RAD IDE like Delphi/VisualBasic/VisualStudio-WinForms. Powered by a higher-level (than C++) language preferably. And high-level (automatic memory management, first-class Unicode strings) languages don't have to be heavy, VisualBasic did quite well on 486s. But I don't actually mind C++, I enjoyed Borland C++ Builder (a Delphi clone I used because I never learned Pascal) and QNX PhAB and had no problem with C++ (but I didn't really enjoy MS VisualC++ MFC which required you to code the UI manually).

I hope the actual GUI toolkit is engineered with potential support for visual designers in mind.

It is also interesting to note how well do legacy Windows controls integrate with the system so old Windows apps running on modern Windows versions enjoy seamless support of modern user IO facilities which didn't exist when they were born (autocompletion, spell checking, dictation, screen reading, etc).

KronisLV 2021-08-18 14:06:38 +0000 UTC [ - ]

On this note, is there any modern RAD solution like that, that's not essentially in maintenance mode, slowly dying or abandoned altogether?

The closest that i can think of is Lazarus for FreePascal: https://www.lazarus-ide.org/

It allows for native applications for a variety of platforms, is open and free and isn't constrained to a single OS like WinForms are. Things might improve with the new .NET versions somewhat and Java is also passable (with either Swing or JavaFX), but at least Java doesn't really feel native and needs JDK, as does .NET.

Is Electron one of the only modern options (that isn't native though, only cross platform), or am i missing out on a whole class of lovely tools out there?

qwerty456127 2021-08-18 14:45:57 +0000 UTC [ - ]

Lazarus is rather cool but even after you learn Pascal (which is rather alien to modern programming) the built-in not-so-smart code editor feels somewhat painful to use after VisualStudio and IntelliJ. These 2 entry barriers make it feel overly vintage and demotivate from using it.

As for Electron - the idea of learning the web front-end stack and designing UIs from scratch (rather than composing them from common controls), just to produce insanely heavyweight executables compatible with a limited set of platforms (e.g. Lazarus is much more cross-platform, it can even run on Haiku) doesn't sound inspirational at all.

badsectoracula 2021-08-18 14:58:54 +0000 UTC [ - ]

> built-in not-so-smart code editor feels somewhat painful to use after VisualStudio and IntelliJ

What is missing from Lazarus' editor? I never used IntelliJ but from my experience with Visual Studio (up to 2019 IIRC) i've found Lazarus' editor to actually be more featureful than VS in pretty much everything i tried: syntax completion (ctrl+space), code completion (automatically writing code for missing declarations, syncing interface and implementation, implementing abstract methods, overriding parent class functions, etc), code navigation, etc.

qwerty456127 2021-08-18 15:04:02 +0000 UTC [ - ]

> What is missing from Lazarus' editor?

Perhaps it actually is good, I probably just didn't dedicate enough time to discover all its features. Or maybe all the cool stuff was added right after I tried it (it's been some years already). I mostly mean context-aware completion suggestions, refactoring and code navigation. I already can't remember what exactly was missing (I didn't find) when I tried.

> I never used IntelliJ but from my experience with Visual Studio

VisualStudio + ReSharper ≈ IntelliJ.

badsectoracula 2021-08-19 06:56:11 +0000 UTC [ - ]

Lazarus had what i describe for at least a decade. However one thing that might happen is that you didn't notice them because some of the functionality is under different shortcut keys.

For example Ctrl+Space will do context aware completion (e.g. will put similar types to the context near the top) but other forms of code completion, like automatic variable declarations, creating definitions in implementation section for for declarations in the interface section, etc are done with Ctrl+Shift+C. It has a bunch of different shortcut keys for different stuff and you need to go through both the main menu (Source menu mainly) and the context menu (Refactor and Source) to find them. Also some of the default settings aren't ideal (IMO), so you may want to check the Codetools category in the options that controls some of Lazarus' behavior there.

badsectoracula 2021-08-18 14:55:03 +0000 UTC [ - ]

> On this note, is there any modern RAD solution like that, that's not essentially in maintenance mode, slowly dying or abandoned altogether? > > The closest that i can think of is Lazarus for FreePascal: https://www.lazarus-ide.org/

Well, Lazarus is exactly what you are asking for. Its GUI designer is leaps and bounds ahead pretty much every other GUI designer for desktop applications and the IDE integration with the underlying framework is second to none. The project isn't only under active development but has more developers than it ever had.

The WinForms you mentioned feels like some abandoned beta that barely provides Delphi 1 level functionality in terms of "RAD-ness" and other frameworks abandon the entire RAD idea altogether, regressing back to glorified resource editors like you'd see in 16bit Windows back in 80s.

javajosh 2021-08-18 14:43:36 +0000 UTC [ - ]

IntelliJ includes a Swing builder (and is itself written with Swing).

The product that I miss for little SMB projects is Access. It was the best option for building single-user CRUD apps with a really thoughtful bundle of features. (It totally fell over with multi-user, and every user needed a license for the runtime (with some exceptions) and VBA had some major warts, but in terms of DX it was great)

qwerty456127 2021-08-18 22:21:01 +0000 UTC [ - ]

> The product that I miss for little SMB projects is Access. It was the best option for building single-user CRUD apps with a really thoughtful bundle of features.

Try Gupta Team Developer. It's an SQL-centric binding-driven visual RAD tool where you draw the controls visually and basically bind them to SQL queries. It was pleasure and fun to use the last time I tried. To me it felt way better than Access.

qwerty456127 2021-08-18 15:42:24 +0000 UTC [ - ]

> IntelliJ includes a Swing builder

Nice to know. I thought they deprecated soon after they added it.

> and is itself written with Swing

Is there a way to configure it to look like actual Swing[1]?

[1] https://docs.oracle.com/cd/E37069_01/html/E37073/figures/ide...

javajosh 2021-08-18 16:39:30 +0000 UTC [ - ]

It's been a while, but Swing has a "Pluggable Look and Feel" (PLAF) where the default is Swing. See https://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/...

BTW here's a link to the component - it's called GUI Designer. https://www.jetbrains.com/help/idea/components-of-the-gui-de...

qwerty456127 2021-08-18 16:51:09 +0000 UTC [ - ]

I know and that's why I ask. I mean I would like to configure an existing pre-built non-free Swing app (a JetBrains IDE) to use the default Swing PLAF (the PLAF NetBeans used the last time I tried it) instead of the one the original developer has bundled.

zozbot234 2021-08-18 14:53:15 +0000 UTC [ - ]

Glade for Gtk+ is another one, but it does seem to be unsupported these days. Gtk+ devs are apparently expected to write down their UI design by hand, with no visual or RAD workflow.

qwerty456127 2021-08-18 15:10:01 +0000 UTC [ - ]

IIRC Glade was just a standalone UI designer (not an IDE), wasn't it? I actually tried QtDesigner + PyCharm and liked both but lack of the integration feels itchy. Very usable but not nearly as pleasant as VisualStudio with WinForms.

foldr 2021-08-18 15:17:59 +0000 UTC [ - ]

As I remember it, Glade would output an XML document structure representing the UI which could then be loaded via libgtk. It seemed like a nicer model than code generation, though I don't remember much about how it worked.

qwerty456127 2021-08-18 15:22:35 +0000 UTC [ - ]

> As I remember it, Glade would output an XML document structure representing the UI which could then be loaded

QtDesigner does exactly this for Qt (and you have to run a command to generate the Python code from the XML then). Good enough, better than nothing but still not an actual IDE where you can just click on the button you drawn and jump to the code seamlessly or select a function you already wrote to be an event handler right in a control properties window.

This adds an extra step of actually "building" the UI which prevents you from changing things on the fly.

This may sound unimportant but when you have it the actually integrated way like in the VisualStudio WinForms Designer, building an app actually feels like painting with Bob Ross - satisfying and productive. And doing the UI and the code in different apps feels like having separate kitchens (rooms) for cutting the food and for roasting it.

In fact I imagine my ideal app dev tool as cross-platform VisualStudio WinForms with WPF-like bindings and programmed in F#. Oh boy that could be a pleasure I would pay some month salaries of mine to get.

garaetjjte 2021-08-18 16:49:00 +0000 UTC [ - ]

>still not an actual IDE where you can just click on the button you drawn and jump to the code seamlessly or select a function you already wrote to be an event handler right in a control properties window

QtCreator does work like that.

pjmlp 2021-08-18 17:14:20 +0000 UTC [ - ]

Delphi and C++ Builder, Qt, .NET, and XAML C++ (alongside WinUI) could still be an option if powers that be at Microsoft finally starting listening to feedback.

dleslie 2021-08-18 15:22:12 +0000 UTC [ - ]

Gambas exists and has regular updates still, is an open source Visual Basic clone.

http://gambas.sourceforge.net/en/main.html

pjmlp 2021-08-18 13:51:55 +0000 UTC [ - ]

On a side track, MFC C++ is the best offer current on MS stack for C++, as rediculous as it may seem.

They introduced a C++ Builder like with C++/CX for WinRT, but apparently too many people inside Redmond wasn't happy to have it around, so now you get to use its replacement (C++/WinRT) as back on Visual C++ 6.0 and ATL.

Pity that C++ RAD tooling similar to C++ Builder is seen as not for real developers.

So the trend to write GUIs by hand on C++ is the only path known to many devs.

jcelerier 2021-08-18 14:48:09 +0000 UTC [ - ]

> Powered by a higher-level (than C++) language preferably.

Yet C++ allowed them to write literally all that OS in a ridiculously small amount of time.

Anyways, with Qt support (https://github.com/SerenityOS/serenity/pull/9362) you can likely soon use Qt Creator for your RAD needs.

pjmlp 2021-08-18 17:26:49 +0000 UTC [ - ]

1990's C++ frameworks like Powerplant, OWL and VCL were great.

Qt is the only one left carrying that flag.

C++ has all the tools to make it as easy as VB/Delphi kind of development, yet too many spoil it by sticking to what I would call C+.

I was quite disappointed to the way XAML C++ has become, but apparently the teams that used WRL seem to be happy, more to them, rest of us are sticking with C# now.

trashburger 2021-08-18 13:44:13 +0000 UTC [ - ]

There used to be a visual form builder. Nobody used it to build applications, so it was eventually removed. Nowadays, GUI stuff for most applications are written in the GML language, which is Serenity-specific. You can look through the source code to see examples.

qwerty456127 2021-08-18 15:14:01 +0000 UTC [ - ]

Why did it have to be removed? Why not just put it in maintenance mode without adding new features if there is not enough demand?

akling 2021-08-18 15:41:51 +0000 UTC [ - ]

I built it, believing it was going to be useful. In the end, it was not. There's no point in keeping unused features around, since the system is just for ourselves.

Since then, we've built a markup language for interface design (GML) which has made GUI development significantly easier, so that's what we're focusing on instead. If someone wants to build a visual design tool on top of GML, they are obviously free to do so, but as with everything else in SerenityOS, people work on what they themselves are interested in. :)

qwerty456127 2021-08-18 15:45:26 +0000 UTC [ - ]

I see. Thank you. I will try the GML.

PS: By the way, do your neighbours know you are a genius developer superhero? :-)

breakfastduck 2021-08-18 14:14:14 +0000 UTC [ - ]

Thats begging to emerge just generally! Nothing has really filled the gap VB left.

skywal_l 2021-08-18 11:56:17 +0000 UTC [ - ]

I encourage anyone to look at the code. It's clean C++, you can get into it pretty easily. The author encourage code clarity and the fact that the whole OS (kernel, libraries, userland) is all in the same repo makes it easy to navigate and understand.

I think the objective of the author is not to make the most complete, fastest, shiniest OS ever, but have something that works, that's usable, fun to work on and educational to look at.

1_player 2021-08-18 12:21:27 +0000 UTC [ - ]

I would like to contribute, but modern C++ looks positively alien to me. I am an experienced developer and know C like the back of my hand, any pointer on how to learn to write 2010's C++ without going through the absolute basic tutorials?

paulirwin 2021-08-18 14:02:05 +0000 UTC [ - ]

The other link posted here is great info but might be a bit overwhelming. Some of the highlights of modern C++ to look into:

Lambda functions

Smart pointers = less need for *

Move semantics = less need for pointers, efficient pass/return-by-value

Type inference with `auto`

`nullptr` = strongly-typed null pointer type sans macros

`constexpr` = compile-time programming sans macros

Deleted functions = can prevent things like accidental copies

Range-based `for` = very similar to Java's for-each

That should mostly catch you up from C++03 to C++11-ish (language features only; there's plenty more to explore with library changes). C++14 and 17 had some refinements to those items so review the above in a current context for additional enhancements to them. C++20 adds some major things like concepts and modules, but starting there might not be the best idea to get up to speed.

(I'm a C++ amateur and hobbyist, so I might not be using 100% correct terms above! I'm also a very, very minor SerenityOS contributor.)

ImprobableTruth 2021-08-18 13:09:34 +0000 UTC [ - ]

Stroustrup basically wrote a book for people like you, called A Tour Of C++, directed at experienced C/'old school' C++ programmers who want to learn modern C++. It's pretty short too (only like 200 pages) - can easily be read in a weekend.

ryanianian 2021-08-18 12:54:51 +0000 UTC [ - ]

I was in a similar situation to yours when work required me to become a C++17 expert practically overnight.

Bjarne (inventor of the language) has a "blue book" that is very good and pretty comprehensive (if a bit dry and academic). I read it cover to cover in a couple days - not really retaining everything but learning what I didn't know. Then I read Scott Meyers's Effective Modern C++ to get up to date on the latest thinking and really nail down some of the finer points.

YMMV but this worked well for me to get a good feel for C++ the language. Mastering the STL and/or Boost is a journeyman job, though, as is mastering (any) build system. Of course there is no substitute for firing up the editor and writing real code.

the_only_law 2021-08-18 13:32:02 +0000 UTC [ - ]

C++ is the one language that actually scares me. I’ve seen several people say things along the lines of “I’ve been learning C++ for 10 years” and I have trouble finding introductions to the language that actually teaches all the features added over the years , and not just as “C with classes”.

pjmlp 2021-08-18 17:31:01 +0000 UTC [ - ]

C++ is undoubtedly a complex language, however I think most disregard how complex others also are.

For example, when checking the feature list of latest versions from Python, Java, C#, F#, Typescript as a couple of examples.

the_only_law 2021-08-18 19:30:09 +0000 UTC [ - ]

I suppose I agree, I lost track of Python and C# recently myself.

stephen82 2021-08-18 13:07:18 +0000 UTC [ - ]

faraaz98 2021-08-18 12:26:43 +0000 UTC [ - ]

I haven't worked with c or c++ in a long time but I found the repo so beautifully usable it's great

qwerty456127 2021-08-18 16:06:33 +0000 UTC [ - ]

> I think the objective of the author is not to make the most complete, fastest, shiniest OS ever, but have something that works, that's usable

There already are enough of OSes which work and are usable. To me it seems the goal here is just beauty in all the possible aspects.

throw0101a 2021-08-18 11:57:32 +0000 UTC [ - ]

> […] it does borrow a couple of concepts from FreeBSD—its license (2-clause BSD), and a "ports tree" software management system similar to FreeBSD's.

If anyone wants a third-party software repository for their OS project, it's worth checking out NetBSD's pkgsrc:

* https://en.wikipedia.org/wiki/Pkgsrc

It's multi-platform (Linux, BSD, macOS, Solaris, AIX, QNX, etc), and so has a lot of infrastructure for portability already set up:

* https://www.pkgsrc.org/#index4h1

rbanffy 2021-08-18 13:37:46 +0000 UTC [ - ]

> It's multi-platform (BSD, macOS,

I absolutely love MacPorts. It's packages done right.

plextoria 2021-08-18 16:31:11 +0000 UTC [ - ]

pkgsrc support is worked on by a dev: https://github.com/SerenityOS/serenity/pull/9268

I also gave a go at cross-compiling pkgsrc for SerenityOS. Will resume if I find some free time in the future.

boricj 2021-08-18 17:12:26 +0000 UTC [ - ]

I'm indeed working on it (meta-issue progress tracking is over there: https://github.com/SerenityOS/serenity/issues/8605). However, bootstrapping pkgsrc is a stressful test of reliability, stability and POSIX-compliance for any operating system, let alone a hobbyist one. I've yet to have a pkgsrc bootstrap finish successfully without hitting a bug, deadlock, coredump, kernel panic or some combination thereof. It's like repeatedly stubbing one's toe on a sharp POSIX edge.

That's not counting actually building packages inside SerenityOS (pkgsrc doesn't support the kind of cross-compilation we'd need to build packages on a Linux host for a SerenityOS target), which will probably expose lots of other bugs, race conditions and limitations.

klaussilveira 2021-08-18 16:52:44 +0000 UTC [ - ]

It's not just nostalgia, but good, efficient design work: https://twitter.com/tuomassalo/status/978717292023500805

klaussilveira 2021-08-18 13:00:19 +0000 UTC [ - ]

Not related, but related: I could definitely use a consistent, coherent, pixel-perfect Windows 95 theme package for Linux. QT, GTK, DE does not really matter, as long as they blend in properly. Something like the adapta-project.

qwerty456127 2021-08-18 13:09:13 +0000 UTC [ - ]

I also wouldn't mind (and would certainly donate to) a "consistent, coherent, pixel-perfect" (and also kept up-to-date to be easily installable on recent distros, covering Qt, GTK and GTK3) themes imitating the actual SerenityOS, as well as Windows 98 (not a radical Windows 95 fan), Windows XP, Windows Vista (it was shitty but pretty), MacOS 9.2, QNX6 Photon, Haiku and Swing[1]. Perhaps even Windows 3.11 (OMG I loved its Control Panel icons). And I've once seen a picture some other exotic retro UI which I found beautiful but I could never find it again and don't know which platform it was (I thought it was some modern Amiga but apparently it wasn't, some sort of Unix perhaps, but no Unix screenshots I found actually looked like that).

Needless to say the themes would have to be extended to accommodate the features of the relevant toolkits like GTK3 complex window titles and KDE's optional always-on-top and always-on-bottom buttons (I actually want every stacking window manager to have these two, I use both of them a lot).

And I would also want these for Windows 10 (and 11 obviously), not just Linux. Themes for some actual apps (e.g. Firefox) also needed.

I wonder if there already is enough of aging millennials appreciating retro GUIs to form a market.

[1] https://docs.oracle.com/cd/E37069_01/html/E37073/figures/ide...

pessimizer 2021-08-18 13:51:33 +0000 UTC [ - ]

I'm entirely in support of this entire thread. It would really murder the soul of change for change's sake Linux UI people if users were allowed to stay on Windows XP UI forever, but with modern features and bugfixes.

yjftsjthsd-h 2021-08-18 15:33:39 +0000 UTC [ - ]

> It would really murder the soul of change for change's sake Linux UI people if users were allowed to stay on Windows XP UI forever, but with modern features and bugfixes.

If you're used to the other side of the fence, CDE [0][1] is 28 years old and perfectly usable on modern systems, not as a theme or recreation, but simply as the same software that once dominated the Unix desktop scene. Sometimes I enjoy running it when I get fed up with the "modern" world and just want to work on a system that's nigh-indistinguishable from decades ago.

[0] https://en.wikipedia.org/wiki/Common_Desktop_Environment

[1] https://sourceforge.net/projects/cdesktopenv/

BoxOfRain 2021-08-18 13:23:40 +0000 UTC [ - ]

My favourite ever OS theme was Mac OS X 10.4 "Tiger", that period of Aqua was just so cheerful and friendly compared to everything before or since. I'd love to be able to skin modern macOS back to Tiger's theme but the best I can do is giving Firefox a brushed metal theme!

1ark 2021-08-19 05:01:41 +0000 UTC [ - ]

It might be worth watching how the development of helloSystem plays out, and maybe contributing.

https://hellosystem.github.io/docs/

BoxOfRain 2021-08-19 09:49:25 +0000 UTC [ - ]

I've never heard of this, cheers for the heads up! I'll definitely have a look into it.

anthk 2021-08-19 01:35:26 +0000 UTC [ - ]

B00merang themes has all of those and Win 3.11 themes too.

Not for icons but Chicago 95 makes a good approximation.

qwerty456127 2021-08-19 02:04:34 +0000 UTC [ - ]

Interesting. I'll take a look. Thank you very much.

gnyman 2021-08-19 09:55:52 +0000 UTC [ - ]

I recently came across XP4Q ( https://xpq4.sourceforge.io ) when I was looking for a long-term stable desktop with traditional look.

Tried it out on an old MacBook and the look was great, but then I got bogged down in the standard get-trackpad-and-wifi-working.

Not sure how far the "pixel perfectionism" goes, but the few hours I used it (before breaking X11) it felt good.

anthk 2021-08-18 13:03:13 +0000 UTC [ - ]

Check Chicago95

klaussilveira 2021-08-18 16:48:45 +0000 UTC [ - ]

The problem with Chicago 95 is that it is not consistent. Check the padding/margin on these buttons:

https://raw.githubusercontent.com/grassmunk/Chicago95/master...

Now compare to these:

https://raw.githubusercontent.com/grassmunk/Chicago95/master...

Or here:

https://raw.githubusercontent.com/grassmunk/Chicago95/master...

Everything is off. Compare to the real thing:

https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2F4...

https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2F...

Or compare to SerenityOS. That's good UI work.

theandrewbailey 2021-08-18 17:26:00 +0000 UTC [ - ]

Those Chicago95 screenshots might be a bit out of date. Some of the systems I use have the latest Chicago95 on them, and it either doesn't bother me, or I'm so focused on doing things in applications (or on anything but the UI theme) that it doesn't bother me.

squarefoot 2021-08-18 13:00:04 +0000 UTC [ - ]

Compiled and (admittedly briefly) tested yesterday. It's small, and fast although run virtualized. There are some quirks here and there, but for an OS in its infancy it's normal. Not an easy task, however I'd like one day to see it ported to ARM platforms. All those small and cheap Pi-like boards or TV boxes seem just the right platforms for it.

bla3 2021-08-18 13:21:18 +0000 UTC [ - ]

Lots of discussion of SerenityOS yesterday on https://news.ycombinator.com/item?id=28206840 too.

nickelcitymario 2021-08-18 13:52:05 +0000 UTC [ - ]

I'm impressed by everything about this project, but the idea of re-writing everything from scratch would seem to doom this project to obscurity. No?

How can any open-source project compete if it doesn't lean on other open-source projects? Am I missing something?

This approach seems to guarantee that they can do a handful of things better than anyone else (because they control the whole stack), but not enough things to ever be truly complete OS for any given market segment.

Unless 1000 developers fall in love and choose to participate and compensate for the absence of other OS code, I don't see how this can grow sustainably. I'd love to be wrong, though.

breakfastduck 2021-08-18 14:03:15 +0000 UTC [ - ]

Compete for what?

It's an OS being build from scratch born from the desire to do it, and to have all things in it built from scratch. The project has immense activity.

I absolutely HATE this kind of comment, with it being especially annoying to read on hacker news. Why the hell does everything have to be about gaining a market segment. Why can't something be for the joy of it.

nickelcitymario 2021-08-19 15:14:16 +0000 UTC [ - ]

"Hate" seems a bit harsh. I started out by saying how much I love everything about the project.

If it's not intended to gain mass adoption, then that's fine. I see from some comments that it was started as a way to keep the original maker's mind busy during recovery. I respect that. It doesn't HAVE to be about gaining market share. But when I see a really cool project, it's hard not to immediately look at what would prevent me from using it or what might prevent it from gaining mass adoption.

To your point about being annoyed by seeing this on hacker news... you do realize this is a forum maintained by a VC firm, right? This is kinda the place for discussing how new ideas in tech can grow and be disruptive to the market. I'm not saying that's the only thing we can discuss, but it seems weird of you to hate it when this topic comes up. It's an underlying subtext to everything on HN. Am I wrong?

incanus77 2021-08-18 16:12:46 +0000 UTC [ - ]

This. Linux wasn’t made to compete, either. Nor was PHP. Or even Perl. Serenity hearkens to a time when people made — and shared — things out of passion and the drive to create and refine. It’s what drew me to software development in the first place — an internet-enabled open playground of passion, trial and error, learning, and making.

city41 2021-08-18 16:56:13 +0000 UTC [ - ]

I totally agree with you, don't get me wrong. But I can't help but feel a little sad knowing SerenityOS will never be my daily driver. I feel the same way about Haiku OS.

nickelcitymario 2021-08-19 15:14:54 +0000 UTC [ - ]

This was the point I was trying to make. You made it better.

2021-08-18 14:56:13 +0000 UTC [ - ]

nonameiguess 2021-08-18 14:13:54 +0000 UTC [ - ]

It's named "serenity" OS after the serenity prayer recited in AA meetings, because the developer started this as a way to keep his mind occupied to overcome alcoholism. I think it has been a wild success for that purpose and is one of the more beautiful examples of using software for the promotion of personal excellence rather than commercial excellence. Obscurity is not an impediment to accomplishing this goal.

natechols 2021-08-18 16:03:22 +0000 UTC [ - ]

I too was reading the article and wondering "why..." until I saw the mention of addiction. This is an excellent reason to write a complete operating system from scratch, congratulations to the author.

Deukhoofd 2021-08-18 13:55:28 +0000 UTC [ - ]

You'd be surprised by how many developers fell in love and chose to participate.

https://github.com/SerenityOS/serenity/pulse/monthly

Santosh83 2021-08-18 14:02:10 +0000 UTC [ - ]

From what I understand, they are porting some established software like Qt and GCC, and presumably if there is enough interest and volunteers, more applications. However they also aim to write a core set of apps specially for Serenity from scratch, so it seems like the best of both worlds to me: a set of native, integrated programs designed to showcase the OS's specialities, with ports of popular FOSS programs, and since Serenity does aim to be "Unix-like", it shouldn't be too hard.

The incumbents in the field are absolutely overwhelming in their existing functionality, which makes it an extremely steep slope to climb for an upstart, unless they aim to fulfil a specialised niche. Linux struggled for years with lack of drivers. That's always the one of the chief roadblocks. If the OS can drive a broad range of hardware, then automatically users and ports of software will happen, but if it can only recognise a few generic devices then it will remain hobbyist. But thanks to the complexity of modern hardware, the task of even adapting Linux's drivers would be an enormous undertaking.

hnlmorg 2021-08-18 14:02:20 +0000 UTC [ - ]

> Unless 1000 developers fall in love and choose to participate

They're already half way there :)

Plus the goals of this isn't to be another Linux or Windows or whatever. It's to be an opinionated platform that's personal to the developers. That means even as long as there is just one developer on it, then the project is succeeding in its goal.

nickelcitymario 2021-08-19 15:20:59 +0000 UTC [ - ]

> They're already half way there :)

There's 84 contributors, but over 500 pull requests. That's not the same thing.

But: I hear you (and all the others) on the point that the purpose is just to create something cool and fun, not to solve any specific need in the market. That's cool and interesting. It'll probably never become an OS that I want to use productively, but it's still cool and there's nothing wrong with that.

michaelgrafl 2021-08-18 13:58:48 +0000 UTC [ - ]

This project feels more like a lover-letter to me than an attempt to compete against other operating systems.

I really dig it, although I don't expect to ever use it productively. And I love that the development is documented on YouTube.

lawl 2021-08-18 13:54:44 +0000 UTC [ - ]

> How can any open-source project compete if it doesn't lean on other open-source projects? Am I missing something?

It doesn't want to compete. It's a system for them, by them, based on the things they like.

ThrowawayR2 2021-08-18 15:08:18 +0000 UTC [ - ]

> "... the idea of re-writing everything from scratch would seem to doom this project to obscurity. No?"

I'm sure the same was said of Linux 0.01 in the '90s, which was also the golden age of proprietary UNIXes. "From small beginnings come great things", as they say.

qwerty456127 2021-08-18 21:49:46 +0000 UTC [ - ]

> Porting a modern browser like Firefox or Chromium to an entirely new operating system is arguably as difficult as writing one from scratch

Sadly this sounds quite obvious. But, out of curiosity, does it have to be? Let's imagine we actually write a modern web browser from scratch. Can't we design it the way it would be easy to port to other OSes because it would implement all the actual HTML and CSS features in a platform-independent logic layer on top of a portable renderer layer?

Remember how many platforms did the original Opera support back in the days. I remember running it natively on QNX. And it was the most modern and standard-compliant browser.

qwerty456127 2021-08-18 21:20:53 +0000 UTC [ - ]

By the way I believe many retro-lovers would also appreciate a 2-panel commander-style file manager.

And as I always thought it doesn't actually have to be a separate app. It could be enough to make a standard file browser window aware of a the nearmost window of the same class and send files there on F5/F6 press.

qwerty456127 2021-08-18 21:07:31 +0000 UTC [ - ]

I've taken a look at the screenshots and discovered the fact SerenityOS supports theming. This makes me want to share my opinion on this: big light elements in the dark theme (like the display frame in the display settings) and big dark elements in the light theme (like the terminal) are annoying (in addition dark terminal also can be very hard to read when the sun shines straight into your display). Although both of the examples I have given look this way because this is the classic way for them to look, I'd love to see an option to automatically style everything (the terminal specifically, the display settings decoration doesn't matter much but it can also be fixed just to make it perfect) them in accordance with the system theme gamma.

In fact this is why I don't use (on Linux and Windows) dark themes actually: because there are many apps which don't support dark themes and look like huge white bulbs when your system is dark (and most of the apps which do support dark themes still require manual re-configuration every morning/evening instead of just complying to the OS-level switch).

pram 2021-08-18 11:52:04 +0000 UTC [ - ]

I love the idea, and I love strong visions, but why not something closer to Motif/CDE? In my mind at least, when I think of 90s workstations, I don't think of Windows 95.

majewsky 2021-08-18 12:06:59 +0000 UTC [ - ]

More current-day developers are nostalgic for Windows 95/NT than for Motif because of sheer exposure. It's the same for me: Windows NT UIs have a vibe of "good old days" for me, whereas Motif UIs feel like ancient history that is unrelated to me personally.

qwerty456127 2021-08-18 12:45:40 +0000 UTC [ - ]

I've never used a pre-OSX Mac but still find the screenshots lovely. I've even styled my Linux window decorations after MacOS 9.2. I find it an optimal middle between heavily retro and modernly sleek themes.

the_only_law 2021-08-18 13:34:10 +0000 UTC [ - ]

Not a MacOS type UI, but I like WindowsMaker, which tried to emulate NeXTSTEP.

qwerty456127 2021-08-18 14:58:56 +0000 UTC [ - ]

By the way, what's the difference between WindowMaker and AfterStep?

anthk 2021-08-19 01:37:36 +0000 UTC [ - ]

AfterStep had millions of bells and whistles. And the default theme was too horrible and gaudy like an LSD trip.

anthk 2021-08-18 13:05:58 +0000 UTC [ - ]

It depends. NT users with Linux (specially Slackware) with FVWM and a bunch of Lesttif/GTK1 tools for sure they are nostalgic on Motif and even Athena. At least a bit.

qwerty456127 2021-08-18 12:43:03 +0000 UTC [ - ]

Motif would probably be a little too much. I always perceived Motif as the ugliest GUI toolkit I've ever seen. Now as I age I started to appreciate retro GUIs and began seeing some charm in Motif but it certainly requires some intentional "will to love". Or maybe it is just an acquired taste like surströmming or something like that.

And someone related to the SCO Group can probably patent-troll you if you use it. There are no giants like RedHat and Novel to protect SerenityOS in such an event the way they protect Linux.

yjftsjthsd-h 2021-08-18 15:36:44 +0000 UTC [ - ]

I'm not aware that SCO ever owned patents, just claimed to have copyrights, and Motif has been open source for years.

qwerty456127 2021-08-18 16:55:58 +0000 UTC [ - ]

> Motif has been open source for years.

So has Linux, yet SCO didn't hesitate to spend enormous amount of lawyer-hours attacking it.

AFAIK even simple scroll bars and double clicks are patented, the patent holders (Microsoft and Apple, IIRC) just have generously allowed the GNU/Linux community to use them.

isr 2021-08-19 01:24:10 +0000 UTC [ - ]

I don't know if you mentioned scrollbars as a rhetorical argument, or literally. But if the latter, then ... (queue rant) ...

What? Even scrollbars? Shows just how broken, regressive and anti-innovation the US Patent system is.

Its part of software legend how Jobs et al learned of these concepts through early exposure to Smalltalk. There are numerous videos of Jobs himself talking about it (with requisite amounts of awe). I'm sure most people here already know the history.

Theres even the interesting tale of how Jobs critiqued the scrolling (he prefered something smoother than line-by-line scrolling), and Dan Ingalls live coded a solution in a few minutes.

"Prior art" indeed :)

perryizgr8 2021-08-19 12:49:22 +0000 UTC [ - ]

This OS is written entirely in C++. The interesting thing is that I couldn't find a single class! I love modern C++.

tuckerpo 2021-08-18 14:04:41 +0000 UTC [ - ]

: ^ )

severak_cz 2021-08-18 14:10:37 +0000 UTC [ - ]

I think that SerenityOS would benefit from porting to something like RaspberryPi. That would give them usable hardware support.

breakfastduck 2021-08-18 14:13:28 +0000 UTC [ - ]

As Andreas himself routinely says in Q&As - If you're interested in it then build it. This is an OS for developers.

They don't have a 'plan' for hardware support. They work on what each individual developer is interested in working on. If you want to add compatibility with the pi then fill your boots!

severak_cz 2021-08-18 17:05:36 +0000 UTC [ - ]

I know. However my C++ skills are almost non existent. :-(

But I keep to throw this idea over over. Maybe someone adopt it one day (and I will definitely beta test that later).

NoGravitas 2021-08-18 18:07:33 +0000 UTC [ - ]

"If this desktop doesn't look hauntingly familiar to you, you either didn't live through the '90s, or perhaps just didn't live through them right."

In fact, I used OS/2 through the early '90s, and Linux through the late '90s and early 2000s, so I missed this era altogether, and I don't think I lost anything through it. It wasn't until 2006 I had a job that required Windows, so I didn't use anything between 3.11 and XP.

rbanffy 2021-08-18 13:36:39 +0000 UTC [ - ]

> "we imported four or five C standard library functions from NetBSD or something like that. But those were gotten rid of over time. We're free of third-party code now, with the exception of the build process."

I'm scared of whatever is their crypto support...

breakfastduck 2021-08-18 14:08:02 +0000 UTC [ - ]

Go fix it then. That's the point of the project.

Or are you just throwing out comments without even looking at it?

yjftsjthsd-h 2021-08-18 15:39:03 +0000 UTC [ - ]

Not them, but this is the one place where that attitude seems reasonable: I am not a crypto expert, and therefore can't audit their crypto code, and the refrain is "don't roll your own crypto (unless you really know what you're doing)", so unless one of the devs is a crypto expert then it is 100% reasonable to both be rather worried that they're rolling their own and also unable to do anything about it.

Deukhoofd 2021-08-18 15:51:33 +0000 UTC [ - ]

Serenity is not really designed for everyday use, but more for enjoyment and as a learning experience for the developers. It's not really reasonable to be worried about it from that point of view, as of course it's not professional crypto, it's written by someone who wanted to learn more about it, and figure out how it'd work in a modern system.

rbanffy 2021-08-18 15:27:46 +0000 UTC [ - ]

I fix the software I use. Random commenters are not entitled my time and attention. I've learned to avoid rolling out my own crypto and suggest others learn it too. One shouldn't be proud of reinventing the wheel unless it's significantly better wheel.

So, is it?

edit: they use libtls, so I guess they aren't "free" from third party code after all.

wander_homer 2021-08-19 05:14:31 +0000 UTC [ - ]

What kind of attitude is that? Why shouldn't someone be proud of themselves, when they manage to implement a crypto library? It's not like they're asking you or anyone else to use it with sensitive data and they're not pretending it's secure or on par with others.

The whole OS is a learning process for almost everyone involved and they have every right to feel proud of every little step they take. Like do you think the best in class crypto libraries out there just popped into existence or their authors wrote the perfect code on their first try? All of them were inferior wheels at one point, and all of them made mistakes and learned from them.

breakfastduck 2021-08-19 13:32:57 +0000 UTC [ - ]

It's impressive how hard you're missing the point of the project.

somethingor 2021-08-18 18:49:25 +0000 UTC [ - ]

Serenity’s LibTLS is Serenity-specific code.

tristan957 2021-08-18 18:40:43 +0000 UTC [ - ]

That is not the libtls you are thinking of. That is a homemade library.

ThrowawayR2 2021-08-18 14:48:56 +0000 UTC [ - ]

Surely you could've expressed your concerns in a more constructive way?

In any case, according to their GitHub page, they use libtls, which is also apparently associated with OpenBSD.

akling 2021-08-18 15:37:55 +0000 UTC [ - ]

LibTLS is our own original code [1], it has nothing to do with OpenBSD (or any other library that happens to share the name.) :)

1. https://github.com/SerenityOS/serenity/tree/master/Userland/...

ThrowawayR2 2021-08-18 16:38:24 +0000 UTC [ - ]

Oh, my mistake. There also exists a libtls that is part of https://www.libressl.org/ which is a fork of OpenSSL that is associated with OpenBSD, so it seemed like a reasonable assumption that they are the same.

rbanffy 2021-08-18 15:29:35 +0000 UTC [ - ]

So, they aren't "free of third-party code now" after all. Good for them.