That was lost the moment the powers to be, decided it should compete with OSes as application platform.
That was lost the moment the powers to be, decided it should compete with OSes as application platform.
I can count on one hand the number of native apps I use that couldn't have their interfaces trivially represented by HTML and CSS.
If you're not building Blender, Photoshop, or Maps, odds are pretty good that your native app is just a document. And even in the case of apps like Photoshop, only the main view is special -- everything else is just menus and toolbars.
People draw a hard line between a document and an app, and I've just never been able to see that line.
P.S. Just in case it does sound like it - no, I'm not trolling. That ^ is a genuine question.
If I can translate your application's current state to an org-mode document (or any other hierarchical document format) without losing any significant information, then your interface is an interactive document. Maybe your backend is better suited for C, or needs native capabilities or something. I don't care about that. The actual interface itself is just hierarchical information.
HTML is just a way of organizing information into a tree. It's not a layout tool (even though some web devs treat it like one), it is a display format. CSS is the incidental styling that gets applied on top of that format.
For example, I have KeepassX sitting open in front of me. It has a row of buttons on the top, a tree view, and a currently selected record in a table.
Very roughly, the HTML equivalent of that is:
<ul class="toolbar">
<li>Open Vault</li>
<li>Save Valut</li>
<li>Add Record</li>
<li>Edit Record</li>
<!-- etc... -->
</ul>
<ul class="folders">
<li>My Passwords</li>
<!-- etc... -->
</ul>
<table class="entries">
<tr>
<th>Title</th>
<th>Username</th>
<th>URL</th>
</tr>
<tr data-selected="true">
<td>Some Site</td>
<td>danshumway</td>
<td>somesite.com</td>
</tr>
</table>
When I click one of the entries in that table, I'm taken to a new interactive document (basically a form) that has some fields I can change to edit my password. At no point in KeepassX do I ever see a state that couldn't be described purely in a format like org-mode.So now I try to resize KeepassX, and when it gets to below about 400-450 pixels, it refuses to get any smaller. It's not responsive. This is because it was written in some native format that was only thinking about grids and pixel-perfect positioning, and the idea that rendering content was a different concern than rendering style never occurred to anybody.
A number of native formats like GTK already use XML to lay out their interfaces. The only difference is that they're using XML as a layout tool and not as a display target. But for an app like KeepassX, rendering to an XML-like format would be a strict improvement over whatever the heck it's doing now.
The browsers themselves together with the companies that drive them, killed the web on its conceptual level, and now the browser is just a multi-platform engine to render apps that are located in remote servers (and lets not forget how they will push for cloud stack here, given the profits it will make for them).
The web got corrupted into its core concepts, and now is just a shadow of its former self.
I would like to see a future where you can just open a WASM file in the browser and it will compile/render to the screen as an application. This would alleviate the pressure put on html pages to behave as if they're something they're not. It would let html go back to, as you say, its core responsibility, which is to be an interactive document.