Hacker News new | ask | show | jobs
by red_admiral 2074 days ago
This is the kind of project that I'd hope the Linux Foundation or similar could take an interest in financing too.

Until, at least, all major modern OSes come with a built in scriptable headless browser engine, which would be a game-changer. Something-like-electron-or-sciter where you don't have to download the runtime for each individual application.

Also, of course, not a walled garden: the windows "modern apps" store can sort of do this I think, but there are lots of good reasons not to go down that path.

4 comments

"Until...all major modern OSes come with a built in scriptable headless browser engine, which would be a game-changer."

Ah, yes. Internet Explorer, they called it. Built right into the OS. A game changer. Funny how the meaning of something (goodness/badness/motives/...) can change as circumstances change.

I think for "all major modern OSS" to apply we need at least Windows and macOS support. Internet Explorer never fit this description.

Edit: This comment is wrong - looks like IE did fit this description before my time. :-)

People forget that when OS X launched IE was the default browser :)
IE on Mac was a different code base, different layout engine, and did not run ActiveX plugins.

It was a good browser at the time, and helped move the OS X platform forward. Perhaps even a vital part of the software support available at release.

But it wasn't IE6.

All that corporate ActiveX, DCOM software could not be deployed on it.

Microsoft grew multiple platforms to address this, for 20 years, but that's another story (that may also be relevant to the article).

Plus there was an X Windows version that ran on Solaris. I'm sure making it work on Linux would have been quite possible had they wanted to.
Internet Explorer ran on macOS back when it was relevant. It got discontinued after Safari was released. Also, Internet Explorer was ported to various Unices. It just never got ported to a Linux-kernel based OS.

If software like this is FOSS, relies on open standards, and is designed architect independent it can be run on virtually anything. Including something which is rising in popularity.

Not only was there IE for Mac -- at the time, it was actually a pretty decent browser. Bit rotted over time, but there was a stretch when your choices were a really janky Netscape and IE for Mac, and the choice as I recall it was pretty easy.
Not only was it pretty decent, it was far more standards compliant than the Windows IE. I don't think they actually shared much code wise. At least developing for IE on Mac felt like adding another browser to test.
The first computer I bought with my own money was an iMac running at 266 Mhz (not the first gen running 33Mhz slower!), Mac OS 8 something and Internet Explorer 5 I think.

Google didn't exist or wasn't evil yet and finding things was quite difficult specially at dial-up "speed".

> Until, at least, all major modern OSes come with a built in scriptable headless browser engine

One of the main advantages of shipping your own browser like Electron or SciterJS is that it's a fixed, stable target where you can be a lot more confident about browser compatibility because you're only supporting a single browser + version.

#2. Browsers are for browsing - desktop and mobile application UI requires far more than that.

Browsers are catching up of course but... Who would thought that the thing for reading pages will need access to your file system or make screenshots...

#3. UI engine must have natural and effective means to use native code - to be embeddable and extendable by hosting application.

In native app world you don't need WebAssembler for example - you can run native code you need natively.

> #3. UI engine must have natural and effective means to use native code - to be embeddable and extendable by hosting application.

It does! Most browsers are written in "native code" and use it to do layout. When you use an <input /> field on a website, you get a natively rendered UI widget with native OS behaviour!

"It does!" at some extent that is far from being adequate for native UI needs.

Consider that you need add <word>...</word> element that will implement natively MS Word editing area. This will allow you to define MS Word editing chrome in HTML/CSS but keep core editing functionality native and effective.

Consider implementation of <tabs> native element/behavior: https://github.com/c-smile/sciter-sdk/blob/master/include/be...

This is a demo of how native code can extend DOM - adding native "drivers" of app specific DOM elements. Yet there are other examples of native behaviors: https://github.com/c-smile/sciter-sdk/tree/master/include/be...

Essentially native behavior can do anything that built-in elements can do, even drawing on the same surface that the rest of DOM is using.

Good luck with achieving anything like that in browsers, or in Electron, or with WebAsm or whatever.

Exactly, but we can check for feature support and adapt accordingly. We did it for the seen for years.
What if you have no browser for the platform at all?

What should you do if you need your app to run on W2000 for example (IE 6.0 anyone?) ?

Sometimes people do need that: https://sciter.com/necromancing-sciter-on-windows-2000/

Right, but I'm getting the sense that people may have done it for years, but all that did was engender a desire to never have to worry about compatibility again
It really is the age old debate between static and dynamic libraries.
I think macOS and Windows are covered in that regard, though with different JavaScript and HTML engines. A normalizing layer above could be an interesting approach.
They already do. Macs have Webkit, and I'm sure Windows has an equivalent.