Hacker News new | ask | show | jobs
by yzzxy 4244 days ago
I've been dreaming of a fully rebuilt hacker-friendly OS for a while. Trouble is, it's hard to justify development, even for FOSS, unless you can find some kind of hook for the mainstream, for reasons that may not seem apparent at first.

Chief among these concerns: isn't it a little insular to create an OS that will only be used by people with the utility to write their own software? At some point, the software must be developed on the OS it runs on, and most software will be for mainstream users (outside of server-side code). This is theoretically solved by stuff like POSIX, but now we're talking about abandoning those standards in favor of more modern ideas.

There is definitely some discussion to be had on the topic of how to build and market a new desktop OS stack in open source. I have a lot of ideas around UI/UX for both hackers and mainstream users, but I'm very conscious of how little I know about system architecture, especially after reading articles by people who have built stuff like Plan9. If people are sufficiently interested, let me know and we can start a listserv or something to bounce around ideas.

2 comments

Really at this point it's fair to say the the current Linux desktop stack is already a miracle; a backwards-incompatible rebuild is just impossible, or at least with the current state of the mainstream UI development tools.

Which, on the other hand, I think is rapidly evolving, now that OOP is out of its hype phase, and can now be evaluated a bit more (pun almost intended) objectively, and freed from its unnecessary parts, and that front-end JS and functional reactive techniques are bringing new ideas and especially terse and powerful notations and abstractions to describe UI layouts and interactions, to the table.

One can dream of an invention-of-the-C-language-like situation where a team of lone hackers harness the power of a bump in expressive power to formalize the current state of their UI metaphors and reimplement it from scratch and then build upon that at tremendous (relative) speeds...

Well, I dream.

Futzing with front-end JS frameworks is having unexpected effects on my worldview, right now.

I was just thinking about the battle that would have to be fought to keep JS away from becoming the standard scripting language. JS is a mess - there are people doing great things with it like React, but it's a mess. There's a total lack of design philosophy at the heart of the language, necessitating things like "The Good Parts."

I think the main scripting language for an OS should at be considered near-perfect when the OS begins - like C for Unix. One of the design goals for that language should be to work well for graphical UI - imagine if a framework like React had a language designed around it instead of being shoehorned onto JS. We could start talking about ideas like separating the layout, styling, and interactive components in a better balance than that between HTML, CSS, and JS.

Really my main point is - There's a conversation to be had around starting from (near) scratch. I think in the end a lot of *nix would have to be incorporated to deal with the realities of hardware and established protocols, but we could also look at starting in a VM and working towards bare metal. Or cave and include POSIX-style standards in a way that is not limiting to desktop OS design.

"At some point, the software must be developed on the OS it runs on"

I'm not sure that's really true, particularly with emulation.

Ok, how about:

"At some point, the software is most easily developed on the OS it runs on"

There are exceptions to the rule of course, but much of the time development is going to happen on the target OS or in some kind of interlinked system with the target OS.

"in some kind of interlinked system with the target OS."

I think that's very much the case, depending on just what you mean by interlinked, but that provides a strong out for developers wishing to primarily use another system.

An example would be XCode/iOS. This (as I understand it) largely requires iOS and OSX to have similar kernels.

My claim becomes strained when you move away from desktop applications. I really meant - if you're a coder, and you want to use some awesome ideal hacker desktop that moves away from the institutions of today, that desktop better be useful for consumers or you're going to be complaining about Acme BigCo not releasing their apps on your platform. Linux already gets that problem enough and it's part of a 30+ year lineage.

Obviously people on a toy OS with enough features can develop things for other platforms, but it would be nice if there was enough of a mainstream install base to allow developers to develop on the same platform they love to use.

In no respect does it require any relationship between the two kernels.

Your new claim - that you're not going to get much commercial development targeting the platform without broad appeal - is certainly very much the case. Ideally these could be run virtualized. Or maybe developers are better without the distractions :-P