Hacker News new | ask | show | jobs
by slashnull 4243 days ago
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.

1 comments

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.