There are plenty of respectable people who maintain "home pages" with much simpler HTML than what is possible, and news.ycombinator.com gets a lot of love for keeping its classic look.
All this to say, I'd like if the people who have a lot of overlapping agreement on this would agree on a subset to use, and I'd be happy with a browser that didn't do everything google's did.
I run with uMatrix which shuts off a lot of google functionality, and I never whitelist google.com domains just to prove that I don't have to, the world doesn't end. It's a relatively small number of sites that just won't work.
I, personally, would love to see some alternative engines to the monoculture of Blink and it's WebKit cousin, other than just Gecko/Quantum. Something to take the place of what KHTML used to have before being gobbled up into WebKit; or just another (ideally, open source) choice to experiment on.
site: https://www.ladybird.dev
code: https://github.com/SerenityOS/serenity/tree/master/Ladybird
I'll bite... why? Most websites follow HTML and ECMAScript. Why do you need to do anything Google does? Isn't the whole point of this project to decouple from what big tech companies do?
The vast majority of websites don't want to follow whatever Google-only shit they've come up with most recently, whether it's adtech, AMP, DRM, or whatever.
The basic thing I am saying is that if you call it a web browser and use the same core protocols etc., you have a practically infinite (for an individual) set of requirements to implement and will never be truly compatible.
What ideas like Tersenet and systems like Gemini propose is similar to what you say, except even simpler. HTML and ECMAScript are quite complex and have a lot of challenging expectations as far as performance and flexibility.
The idea is to try to break things off in a clean way that is feasible to implement without having to worry about a fuzzy and ever-expanding definition of what you have to support.
But what the parent is saying is you don't have to be compatible with 100% of websites. If you build a browser with good HTML/CSS/Javascript handling, you'll be compatible with the large majority of the web. Yes, there are other specs that are in use by a tiny portion of the web. But your browser can still exist if it doesn't support them. Users of that website will know or find out that they can't use your browser for that, but for every other user that browser could be exactly what they need.
> without having to worry about a fuzzy and ever-expanding definition of what you have to support.
It's only ever-expanding if you're trying to keep up with the Jones's. You can define a subset of the web you want to support and build a clean, small browser that supports that.
Will you? I very much doubt this is the case.
Because Google is following the old Microsoft playbook of "embrace/extend/extinguish". They throw shit at the WWW consortium partially to see what sticks, but also in the hopes that websites will adopt the shit, forcing other browsers to add the shit to be able to display those sites.
Google is incentivized to do this because, since nobody else can keep up with the shit-flinging, users switch to Chrome. Then Google gets everyone's data for free, further strengthening their monopoly.
That said, I fully support people trying to build new browsers.
They were only falling behind in performance on google’s web pages such as youtube. Read that comment: https://news.ycombinator.com/item?id=18697824
I agree, that's why I didn't say driven until proven innocent. I'm just pointing out that the concept of innocent until proven guilty does not apply, as we have no moral imperative to treat corporations fairly. We're not claiming that any person at Google did something immoral, but that the structure of the corporation resulted in an immoral act. An 'unjust conviction' (so to speak) would not result in a person being imprisoned without cause, so we are free to make the most reasonable decision without the burden of "beyond a shadow of a doubt".
For the record, I'm still not claiming that it was 100% done intentionally, I'm just explaining why I'm inclined to believe something based on circumstantial evidence. Courtroom procedure is designed to protect people (in a perfect world), so I'll only adhere to it if there's someone to protect. I don't think Google is deserving of my, or anyone's, protection.
[1] https://hub.packtpub.com/youtubes-polymer-redesign-doesnt-li...
[2] https://news.ycombinator.com/item?id=17612139
[3] https://www.reddit.com/r/programming/comments/91i0mc/youtube...
Now, when you pivot to layout and design, the sheer versatility of HTML and CSS is evident. We've gone from classic float and position-based layouts to the modern and responsive techniques offered by Flexbox and Grid Layout. There's the multi-column layout mimicking newspaper designs, the older table layouts now reserved for tabular data, and the extremely vital responsive designs tailored through media queries and adaptive or fluid strategies. This ability to create almost any layout imaginable, combined with the impressive array of APIs, really emphasizes the parallel between browsers and traditional OSes, with the browser now serving as a robust platform for intricate and expansive applications, just like an OS would.
Furthermore, when we talk about traditional OS features, IPC (Inter-Process Communication) is one that stands out – and browsers have their own spin on it. Web Workers and Shared Workers, for instance, enable concurrency by allowing scripts to run in the background without blocking the main thread, which is eerily reminiscent of how OS processes function. The Push API and Server-sent Events can be viewed as a form of "message-passing" mechanism, fostering communication between the server and the browser. And the crown jewel: sandboxing. Browsers inherently sandbox web pages to protect the user, ensuring that potentially harmful code is isolated and can't wreak havoc on the user's system. This level of isolation and security is paramount in an OS, and the browser pulls it off with finesse. Combine this with the robust Web APIs and versatile layouts, and the case for browsers as modern-day operating systems becomes quite compelling.
Another striking resemblance between browsers and operating systems emerges when we consider the world of programming languages. Just as multiple languages can be compiled to target a specific OS, an impressive variety of languages are designed to compile down to JavaScript or WebAssembly for execution in the browser. TypeScript, CoffeeScript, Elm, Dart, and even Kotlin and Scala have flavors that target the web, reflecting the vastness and diversity of this ecosystem. WebAssembly (or wasm) further elevates this paradigm, acting like a low-level bytecode, and welcoming languages like C, C++, and Rust to the web arena. This proliferation of languages and the ability to compile them for a unified runtime environment (the browser) is reminiscent of how diverse programming languages compile to binaries for a specific OS. The flexibility and broad reach of the web's "compilation target" underscore the browser's position as a de facto operating system of the modern web era.
People care about quite a lot of those APIs.
And I asked it to list all of them because it helps make my point.
But just to clarify, this is the first time I have generated a comment, and it was a collaborative effort between me and GPT-4 that lasted like fifteen minutes. It wasn't just a lazy "here is the comment, reply to it".
I was trying to make a better comment. In particular the point I was trying to make was about the sheer scope of web platform functionality and APIs. Which there are so many web APIs that I was using ChatGPT as a research tool. Even GPT-4 said "wow, I can't list _all_ of the APIs, there are too many of them".
Also, I don't see anything on that guidelines page that says anything about AI-generated content being disallowed, so you might consider updating it.
Also, how do you determine if a comment is AI-generated or not? Because the previous version which I had asked it to refine to be in my voice was closer to my writing voice but actually less substantive.
So I had a slightly worse comment ready to go (didn't make the point as well) but I decided to reply with the comment that was better even though it was easier to detect as AI-generated.
I don't think you would have threatened me if you really wanted me on the site. I make a lot of comments on HN, probably spending too much time on here. And I can be fairly, lets say, bold about the content of the comments.
I do remember a recent incident where someone was advertising that they would spend two weeks to build out a basic chatbot for a minimum of $10,000. I can guarantee that person was hoping to spend a half-day or less if they found a customer for a truly simple bot. So the advertisement and business model was dishonest and borderlining on a scam because it misrepresented the time and effort involved and deliberately overcharged for a simple project. That's why I commented on that post.
But I understand that you don't have time to try to parse out how some comments that are obviously on shaky ground might be warranted in some cases.
If you do ban me then I will miss HN. But also, if I am investing a lot of time into this and the comments or submissions aren't appreciated overall, then even for myself, I should reevaluate the use. Maybe socializing just isn't for me, even on a web forum.
Maybe we need Mozilla (and others) to make an independent Javascript "VM" that everybody can use.
https://en.wikipedia.org/wiki/List_of_ECMAScript_engines
Mozilla's:
Not really. If you limit your scope by saying that you're building a hypertext document viewer, it suddenly becomes approachable. A lot of the functionality is all that PWA stuff no one asked for and no one is using for anything good anyway.
WebSQL? IndexedDB? Service workers? WebGL? WebGPU? WebBluetooth? WebRTC? Just act like it all doesn't exist. 99% of actual websites — not web "apps" — would not lose any functionality.
Recall that UNIX (and C) were built (and adopted) in response to perceived over-complexities in contemporary systems.
Maybe in 20 years we’ll recall + interact with Chrome like how people in the 80s recall + interacted with Multics or OS/360.
To complete the analogy, I guess you’d expect to see this browser come out of former Safari interns/engineers at Apple.
Sounds like Andreas Kling: https://www.techgamingreport.com/new-ladybird-web-browser-wh...
You don't speak for everybody.
It's ok if you don't like to use PWAs but that doesn't mean nobody does or that they're worthless.
I am. But I'm biased because I'm primarily an Android developer who turned into a web and backend developer for some projects (I still do Android as well). So naturally, web app (not web site) development feels cumbersome to me. It's like trying to build a proper app UI with a souped up version of Word macros and layout engine. I much prefer native apps. Smithereen will have a client API eventually, when all features I deem necessary for version 1.0 will have been implemented. The large remaining ones are photo albums and discussion boards in groups. The yet-unreleased direct messages need some finishing touches as well.
> It's ok if you don't like to use PWAs but that doesn't mean nobody does or that they're worthless.
Well, that's my point — Chrome and Firefox and Safari, being "mainstream" browsers, try their best to satisfy everyone. They support PWAs, they have extensive accessibility support (that's scarily complex as well!), they implement all those APIs and standards that are complex but mostly unused, etc.
If I were to build my own web browser from scratch, it'd have a warning in the readme along the lines of "if you require accessibility and/or PWA functionality, this is not for you, use one of the more advanced browsers".
Install to homescreen is great for customers that don’t want to go through the app store yet still want their employees to have “an app” (something with an icon on the home screen).
Some are even offline-capable.
But, importantly, they shouldn't lose their core functionality (if they're written well) because that's the "Progressive" part of PWA. If you don't use the feature or your browser doesn't support it, the website should still have basic functionality. One of the big ideas behind PWAs is "progressive enhancement", where you layer on features that may not be supported everywhere but add value when they are supported.
And a progressively built browser that doesn't implement every spec goes hand-in-hand with that. I think having more under-featured browsers like that would push webdevs into caring more about progressive enhancement.
What percentage of user driven web traffic is done through 'web "apps"' and what percentage is 'actual websites'
It is really hard to engage with your comment in a constructive way, if you start by insulting everthing on the web, that is not a simple document (with comments).
So I get it, you don't like the web as a plattform for apps. And it surely is not perfect. But do you have a better plattform independent alternative to offer?
My main gripe with using the web stack for building apps is that, unlike proper GUI framework, your platform is not made out of the same kind of code that you're writing. For example, there's a number of predefined layout algorithms that you can choose from and then control some of their parameters, but you can't write your own layout algorithm. You can kinda draw your custom controls, but both <canvas> and SVG are not without their own shortcomings compared to real GUI frameworks. A web browser is a glorified scriptable word processor so it's not surprising that it acts like one.
Yes, there are "paint worklets" and "layout worklets" as proposals. That kinda makes it better but still feels like an ugly workaround. The declarativeness of HTML and CSS, extremely awkward for building app-like UIs with, is also never going anywhere.
Of course you can - in javascript. What is stopping you? (except that you don't like it)
You can also ditch the DOM alltogether and only use the canvas/webgl and maybe your language of choice via emscripten and wasm, if you really cannot stand js/ts.
The web as a plattform is very, very powerful. The app you make, you can ship by simply sending a link. And people can just try it out without installing something and all quite save in a sandbox.
So none of your solutions are better suited than the web stack, if you intend to target the maximum audience with the minimum hazzle. You have to beat that, if you want to overcome the web.
Also, can you give me one example of a nice looking app in swing? Websites are optimized for enabling good UI and UX. Because the moment a user is confused - he is gone very quickly. And people can also customize their experience. I use dark reader and ublock.
HTML and everything around it is often a ugly chaotic mess, but a incredibly powerful one.
If you mean by setting `position: absolute` and then using left/top/right/bottom to position your element, that won't work. You can't plug your code into the browser's layout dispatching mechanism to correctly react to size changes, reflows and all that. You can do that in any native UI framework.
> The app you make, you can ship by simply sending a link.
Depends on what it does. If it needs to store data locally and/or work with files for example, doing that on a website that runs in a browser is a pain in the ass both for the developer and the user. Last time I checked, if you want to generate a file for the user to save, you have to encode it into base64 and "open" it as a data: URI. Isn't that utterly bonkers?
> Also, can you give me one example of a nice looking app in swing?
IntelliJ IDEs.
> Websites are optimized for enabling good UI and UX.
Is that the reason there's so much whitespace everywhere these days? Is that also why all controls are so confusing that you sometimes have to try interacting with them to understand what they do?
> Because the moment a user is confused - he is gone very quickly.
Not everyone's goal is to simply have as many users as possible.
Erm, but it does? You can listen to resize events and you can get the exact width and height values of all the elements in the DOM. I am using that technic since I switched to the web (when box layout did not exist yet).
The only problem with this is, that you can create performance bottlenecks easily, as reading clientWidth might trigger a forced reflow. So it might not be easy at first to get everything right, but it is totally possible.
Also you can just use a different GUI framework or build your own.
"Not everyone's goal is to simply have as many users as possible."
Mine neither, but those who do (the majority) made sure, the web is suitable to be used by even the most tech illiterate people. My mother can surf the web to get mostly what she wants - but she cannot use a file browser, nor does she really know what a file is (and she does not want to know).
"> The app you make, you can ship by simply sending a link.
Depends on what it does."
Sure, if you want native file system access, you would be breaking the sandbox. And yes, this is my biggest pain point with the web as well - that it often cannot decide whether it serves untrusted websites or enables app developement where the user trust the app. For example there is no (easy) way to get the pixel data from html elements, because of security. Which makes sense for malicious add filled websites, but not when developing something real, where the user could give permission. Here the focus on the dumbest users who just all allow everything, so the browsers have to protect them and allow no one to use proper permissions is really annoying. Because yes, I also would just like to have file access and other things permissions don't allow.
Speak for yourself. This is a crappy attitude honestly, you might want to keep an open mind on things you don’t have an interest in
I always suspect that it's not that they couldn't do what you describe per se, it's that they couldn't do that within other shareholder driver parameters to make them want to do it.
But more valuable to them is that people are using a browser they control (no matter the tech within) - which is why they try to push you to edge however they can.
The browser is so comprehensive in functionality and APIs, and such a challenge to keep up with Google's constant churn of new features and total dominance, that not even Microsoft could do it.
Here is my somewhat related pet project: Tersenet. https://github.com/runvnc/tersenet It's just a concept, virtually no implementation. But I deliberately picked a set of requirements that are designed to be feasible for people to implement. Much less involved than a full web-browser.
Also related is the Gemini project which is a real thing and quite practical: https://geminiprotocol.net/ That inspired my ideas for Tersenet.