4 ms·
Modularity. I would like to see a browser that is designed as an engine, meaning that no UI/UX, or 'browsing' features are included. Much like a raw linux kerne
by kenOfYugen 11y ago
Modularity.
I would like to see a browser that is designed as an engine, meaning that no UI/UX, or 'browsing' features are included. Much like a raw linux kernel in philosophy.
I would like this ideal browser to have interoperability with various JS engines, HTML and CSS renderers, as well as the standardized specifications for the underlying network protocols. It should be 'safe' by being written in languages where safety can be guaranteed ( with the exception of human error of course ).
In essence, if an open source core for a browser existed, maybe we could all work together and build the ideal browser.
"Ideal" isn't one thing. Allowing for personal customizations while following closely the standards make the base for implementing many "ideal flavors" of browsing experience.
- mod50ack 11y agoI agree. I don't know what you mean by a safe language though. I do realize an ideal browser is different for everybody, but I wanted to know what many different people thought was interesting
- kenOfYugen 11y agoMozilla made a language in order to build their new browser engine, servo [1]. That language is Rust [2]. The reasoning was that we have been relying for too long on systems languages where memory safety [3] related bugs have caused a lot of exploits [C, C++]. In big codebases, like the browsers tend to be, bugs have many places to hide, and such bugs are very hard to spot. You can't rely on contributors being extra careful continuously, because everyone makes mistakes. So by using a programming language with a garbage collector or memory safety guarantees, like Rust, and enforcing extreme modularity, critical bugs are much easier to be spotted. [1] https://github.com/servo/servo https://github.com/servo/servo [2] https://www.rust-lang.org/ https://www.rust-lang.org/ [3] https://en.wikipedia.org/wiki/Memory_safety https://en.wikipedia.org/wiki/Memory_safety
- rhaps0dy 11y agoCorrect me if I'm wrong. Isn't this webkit?
- kenOfYugen 11y agoIsn't WebKit the rendering engine itself? The "ideal" core I was talking about should be able to use WebKit as a rendering engine.
- panic 11y agoIf no 'browsing' features are included, isn't what you're left with the rendering engine itself? It seems like WebKit's WKWebView (or WebKitWebView on gtk, or ewk_view on efl) is pretty much what you're asking for. Edit: WKView should be WKWebView, sorry
- kenOfYugen 11y agoBy no "browsing features" I mean something closer to a headless browser. Just a library. Is that what WKView is about?
- panic 11y agoYeah, it provides all the features of a browser without the UI for them. You embed the WKWebView (not WKView, I mistyped) in your browser app and call methods on it to load URLs, go back and forward, and so on.
- onion2k 11y agoI'm having a really hard time working out whether or not I agree with this idea. On the one hand my inner developer loves the idea. The notion that everything is a module, with well documented and robust APIs for communication between modules, is perfect. The browser could be all things to all people. But on the other hand there would be absolutely no additional value for a typical user. 99% of people (generalising, don't know the real number, but it's high) do no customisation to their browser. They don't even know they can. A modular browser would only benefit developers, and we can already cope with delving deep in to the internals of many browsers if necessary. So is there really any point in a modular browser? Who would it be for?
- kenOfYugen 11y agoAllow me to present an analogy between operating systems and browsers. You can install Arch/Debian Linux or Ubuntu, and there is no collision there. You build your OS the way you want it or you run an automated installation and soon you are doing work, browsing, watching movies, etc. My point is that if Debian wasn't what it is, you wouldn't have Ubuntu which offers additional value to a typical user, and be stuck with Windows forever. Choice is of value. Do you want to be stuck with Firefox, Chrome etc. knowing how hard they adapt to real needs and ignore bug fixing in favor of new features? A browser is not your 'typical' application. Browsers are in my opinion true virtual machines and should be treated as such.
- onion2k 11y agoChoice is of value. Choice also has costs. I like the OS analogy, and it highlights the potential benefits well, but we also need to consider the downside. It would load a huge amount of complexity on web developers. Rather than 5 browsers with a couple of versions of each, you'd need to start testing against a vast matrix of renderers, CSS engines, JS engines, chrome (as in browser chrome, not Chrome) plugins, etc, with versions of each and every one. Testing software on Linux is hard enough that the economics mean an overwhelming majority of software manufacturers don't bother, or they do but they only support a very limited range of versions, or they release unsupported software that it's up to you to get working. That's definitely not something I believe we want to do for the web.