17 ms·
The web browser I'm dreaming of
- reayn 5y ago'just need someone to write it now'
- warpech 5y agoSounds like Firefox 1.0 has all the author needs, just disable iframes, hook in a modern JS engine and you're good to go.
- oneplane 5y agoSounds like the author isn't a normal web user. Nobody is going to pour millions into a browser that the typical user doesn't want.
- folkhack 5y ago100% they are not a normal web user, I am stating this as a fact. > WebRTC: "real-time communication capabilities", in a web browser. Pepperidge farm remembers when chat apps weren't running in browsers. It seems to me that they want media/experience/communications-rich features removed from the browser, in-lieu of your local OS/software suite. To me, the core feature of "the browser", and the web for that matter, is open standards communication + cross platform dissemination of information... rich-media included (video, audio, RTC). This list would take us back 10-20 years to when the browser was still a fledgling platform for development by ripping out a TON of features that people use on a daily basis. --- Overall the article feels like a daily Gentoo user trying to call shots on what their ideal version of Windows would look like: 1. Your ideals vs. the product the world uses are two very different things. 2. Sure it's a valid thought experiment, but I personally wouldn't spend the time writing/marking-up/citing a 152-item bulleted list expressing an ideal that will never happen.
- deleted 5y ago[deleted]
- cuddlybacon 5y ago> It seems to me that they want media/experience/communications-rich features removed from the browser, in-lieu of your local OS/software suite. I got this impression too. I dislike that their solution seems to be nerfing web-browsers in hopes that developers begrudgingly go back to desktop apps instead of buffing the tools used for building desktop apps so that they're what people want to develop.
- dijit 5y agoHeh. This is my friends blog. Anyway, I’ll repeat here what I told him on IRC: you’ll have a hard time if you’re waiting for a memory safe web renderer. Servo is far from there. I use qutebrowser (which uses QtWebEngine underneath, which uses Chromium even more underneath) and I love it to death (even though it consumes 24GiB of ram right now). I even had a mini project to make qute backend onto Servo which _mostly_ was working until I gave up because even basic websites didn’t render correctly with Servo. But otherwise I think Qute ticks all his boxes, because you can disable so much of what the engine is doing- but even though it’s python it depends, hard, on C++ components, like Qt and Chromiums renderer and… you can’t turn off subsets of the JavaScript language.
- zxzax 5y agoYou might consider advising your friend to shy away from the "rant" and "hot take" styles, I know it's popular among bloggers and twitter users but it's pretty uninteresting reading for someone who's read this type of post about web browsers for what feels like the 1000th time... If it was feasible from a technical and business standpoint for the chromium team to cut costs and remove 95% of the features added in the last 5-10 years, they would have done it by now!
- dijit 5y agoI will not be advising him of that because I share his opinion that the web is fast becoming/has become an application delivery system and not a document reading system with some media additions; in fact many here reading this will say "duh!" because they assume this is a good thing. I don't think it's a good thing, I think it's inefficient and used against people as much as it's used _for_ people. Standards such as "WebUSB" are just incredulous. The fact that some very smart people managed to get a javascript renderer to go real fast seems to have spawned millions of people just to dump garbage into it constantly, and -require it to be enabled- to do things that used to be possible without it.. it's shockingly bad for accessibility, bad for performance, bad for my ram. But I guess you don't have to worry about _my_ ram. I'm very sure it's profitable to turn the web into an application platform, and it _is_ delivering a lot of actual value to a lot of people, certain things would never be possible, but it's abused too, and honestly it takes a lot away, privacy among them... but we can't talk about that as an industry because half of the people in it depend on that ecosystem being maintained. I'm not going to go as far as to say that "the web" is the new oil industry; because we have no oil spill equivalent and we havent gone to war about it (though the e-waste due to inefficiencies and "everyone has 8G of ram, right!?" is likely not helping the ecological situation). But the industry is propped up because it's too big to fail now, and you're damned if you get in the way.
- bryanrasmussen 5y agoI too am excited for the day when bespoke browser development will be a product niche serving the very far end of the long tail.
- dkarras 5y ago"I personally don't have a use for X and it expands the attack surface so it shouldn't be included. These other things I want, while they can also expand the attack surface are fine."
- folkhack 5y ago"And I'm going to post links to merged/released Chromium issues that have been in 'Fixed (Closed)' status for 2 years to make my security-conscious case against X while I'm at it!" (referring to controller/gamepad support)
- karamanolev 5y agoI completely disagree with the author. The browser allows a distribution model that vastly improves, in a lost of cases, on the alternatives. Not always, of course, but those alternatives can be harder to maintain, legacy desktop apps. I love a lot of things that desktop apps stand for - control of one's data, more privacy, less tracking, etc. But that's what businesses want, not something using the web exposes. WebGL can allow 3D medical, engineering and other productivity visualizations and learning. WebRTC allows people to mess less with installing 8 different conferencing apps and keeping them up to date. A built-in PDF viewer allows it to update frequently along with the browser and if properly sandboxes is probably more secure than installing some random PDF viewer setup.exe from somewhere. Gyroscope, accelerometer and compass APIs allow me to install fewer crappy small ad-packed native apps that I'll use one in a blue moon. Should they be gated by proper permissions? Sure. Why should I trust a random native app with more data than a random website? I can probably continue with a lot more of these. They boil down to some of: * If I wouldn't bother installing a native app, then allowing the web to do it enables another use case for me. * If I don't want to trust a website with a piece of data (gated by permissions), why would I trust a native app? * The fact that someone wants to use the web just for document browsing doesn't mean there aren't large swaths of users who benefit greatly for using it for many other things. * There are security holes in the browser. Installing native applications is, in a lot of cases, more dangerous.
- omegalulw 5y agoThis is a rosy picture of the browser but one of the reasons I really dislike my browser exposing all this is privacy: all if this is stuff that companies can use to uniquely identify you.
- pmlnr 5y ago> medical You surely don't want medical data on the web, right? What could possibly go wrong?
- kencausey 5y agoPerhaps, but keep in the mind that Intranets exist. It is possible to have 'private' web services.
- pmlnr 5y agoIf you find a way to build dillo with js support, you'll have it.
- chrismsimpson 5y ago“I don’t want WASM or JIT hacks” (paraphrased). The author clearly doesn’t understand the von Neumann architecture.
- leotaku 5y agoApparently I also don't? I fail to see the connection you are making.
- Santosh83 5y agoHe is saying that all data is ultimately (potentially) code...
- chrismsimpson 5y agoThat and the fact you're going to have to pay for your sandboxed abstractions somehow with optimisations.
- leotaku 5y agoI get that this is the von Neumann architecture. What I don't get is how not understanding it connects to not wanting WASM or JITs in your web browser. Note also that the author explicitly mentions they are not that concerned with JavaScript performance and would instead prefer a supposed simpler and easier to understand interpreter.
- diegocg 5y agoWhat we need is OS-level innovation that allows to safely run remote applications. Inferno partly went in that direction, but nothing else seems to have done any better AFAIK.
- MaxBarraclough 5y agoJava tried, but failed. Personally I think it's fair to say Java didn't try hard enough. It never took sandboxing of untrusted code very seriously (compared to, say, modern web browsers). It also made things awkward for the user, expecting them to install and maintain a JVM rather than hiding that away and delivering a native experience.
- qwerty456127 5y ago> Written in a memory-safe-ish language that a plebeian like me can understand, review and contribute to, like rust and go or even lua or V, but please no lisp, elisp or haskell. Would "a plebeian like them" care to explain why they don't like Lisp? Lisp as I see it is just the ultimate syntax of "(function argument argument)" and there is nothing more to learn unless you take a specific Lisp and compare it to others. I hardly even understand why do people keep inventing languages which are not lisps (and why does everybody seemingly find C-like syntax more intuitive).
- nerdponx 5y agoOne possible reason: Lisp-like languages more or less require decent text editor support for productivity, otherwise you'll be stuck counting close parens. The same is not necessarily true for most other languages.
- kazinator 5y ago1980's original Bill-Joy-derived vi can do this: it has a :set lisp mode for indentation, and % for jumping between matching parentheses. "Can it match and indent parentheses" is pretty much a minimal viability test for any programming editor from the past 40 years.
- qwerty456127 5y agoIf only somebody at Microsoft had willpower to ad this in Notepad Lisp would quickly become much more popular. IMHO.
- deleted 5y ago[deleted]
- jstimpfle 5y ago> why do people keep inventing languages which are not lisps Apparently people like to make syntax optimized for what they do most frequently. I like C programming, and not having a concise syntax to dereference, index, and access struct members would drive me nuts. Something like foo->bar.baz += quux(42); is not too rare to have to write, but feels very natural to write this way. In Lisp, that would be terrible in comparison. Sometimes, just sometimes, I try to add some metaprogramming and imagine how nice it would be to code in Lisp, only to realize soon after that I was overthinking it. It's a rare situation that the "special" syntax that is in my preferred language causes friction for what I do. 99% of the time, it is there to support me, to help me read and write code faster.
- qwerty456127 5y ago> maybe tabs By the way I always believed no app should implement their own tabs. A window manager should take care of this. Nevertheless now I feel like a browser is a reasonable exception given how many tabs I open in it every day.
- mplewis 5y agoWhy does the author think JS/TS would be useful in the browser without the APIs we have today? Most people want to do things online aside from reading text.
- joshstrange 5y agoThis was extremely perplexing for me, I saw that and thought "Ok, I like that, let's see what other ideas you have" but then I got to all the API's they want removed and that's of no interest to me. It seems the author pines for a simpler web, one that only uses JS/TS for tiny UI reasons (think jQuery-type operations) and ignores the world of web apps.
- dijit 5y agoWould be nice to have two classes of browser you could switch between. a Webapp browser which is full fat and heavy, like an OS with task managers and so on. (this is what Chrome is today) and a basic web browser for reading news, banking, watching youtube or commenting on forums. The issue is that we're all forced to always run #1, which leads to developers thinking every site should be a full fat webapp... when webapps should be reserved for actually advanced things like games or google maps.
- ergot_vacation 5y agoA lot of this comes down to taste, but for my money almost everything about this is wrong. The first thing a web browser needs is a non-profit, propped up by an enormous endowment, so that they can stay independent in the face of unthinkable pressure and sabotage attempts from the tech monopolies. The second is to enshrine one concept above all others: you are building a tool for the users. Not for yourself, and not for any company. Serve the users. Do not harm or exploit them. The third is to understand that a web browser in the modern era is no longer a document viewer: it's a weapon of war. It must be assumed that every page you load is trying to do something nefarious to the user, from low grade like dark patterns and ads to high grade like phishing and full-on malware and hacking attempts. Start from a point of extreme skepticism. Nobody can be trusted, including (especially) not leading tech companies. The fourth is to get rid of cancerous, masturbatory habits in programming like chasing after whatever language is most hip and stylish this week. Only three things matter: How efficient is the program, how secure is the program, and how quickly can you build it? These obviously pull in different directions, so a balance will have to be struck, but the point is there's no space for chasing languages or programming practices for vague ideological aspirations. Tried-and-true over shiny and new. A new browser is definitely needed, and probably won't happen thanks to a near complete market capture by tech monopolies. But the solution to current issues isn't to make a browser that's even more drenched in them. Edit: I will agree with the author on one thing though, which is that modern browsers do too goddamn much. Scale the shit back.
- freediver 5y ago> The first thing a web browser needs is a non-profit, propped up by an enormous endowment, so that they can stay independent in the face of unthinkable pressure and sabotage attempts from the tech monopolies. Why not simply a good old fashioned paid product?
- fungiblecog 5y agoLost me at no lisp...
- pavpanchekha 5y agoI'm not going opine on the list of removed features, but if the author is interested in a browser that's easy to understand, written in a memory-safe language, and (heh) eschews performance in favor of simplicity... May I recommend the book I'm writing about how web browsers work? https://browser.engineering https://browser.engineering It implements a (very simple) web browser in about 1000 lines of Python, and it's pretty easy to extend with new features (many of which are exercises in the book). I'm working on the seventh chapter right now---it adds tabs.
- axiosgunnar 5y agoHi, this looks interesting, but I personally preferred the style of https://hpbn.co/ https://hpbn.co/. There, instead of teaching me how to implement my own internet, it gave me a high level overview of networking history and design decisions. After reading that book I can now keep those constraints in the back of my head when developing web applications. I would love to read something like that for browsers: Instead of teaching me how to write a browser in Python (which is cool I guess for a weekend project if one is into that), it would show me a high level history and design decision overview and explain what was difficult and how it was solved, what hacks were necessary, what is still an unsolved problem, etc. My hope would be that from such a website I could take away key bits of information that I could leverage in daily coding, say „DOM nodes earlier in the document get rendered faster than later in the document because X“ or „display: none is much more costly than opacity 0 because X“ or „XSS attacks will never be able to be 100% solved because X“ or something like that. I hope my feedback is useful? Good luck anyways!
- pavpanchekha 5y agoThanks. I agree a sort of "design decisions behind web browsers" would be an interesting book, and some of the later chapters we're writing now (11 and onward) have more of that flavor. But there's a lot of background knowledge necessary to even fill in those "X"s. You know, all the major browsers are, like, tens of millions of lines of code, bigger than (say) the Linux kernel. And unlike the kernel, there's no good overview out there on the basic architecture and the basic concepts, stuff like the layer tree or the task queue or hit testing. It's hard to discuss, say, why one DOM API is slower than another without having those concepts in mind. So, like, DOM nodes earlier get rendered faster (if the network is real slow and if ...) because they arrive over the network earlier. "display: none" is a lot cheaper because it doesn't produce a layout object, while opacity 0 probably goes all the way to the layer tree. XSS attacks are hard because JS can be embedded into HTML without being demarcated or separated from it. But these explanations presume some understanding of browser networking and the layout tree and the JS environment. For some simple things the "folk understanding" of these things suffices, but the joy of the toy web browser isn't that it's a fun weekend project, it's that each of those concepts is something you can pull up on the screen, read, and then understand as a concrete piece of code.
- EugeneOZ 5y agoI want Evian from my kitchen tap. Who cares. It wouldn’t look like a useless hysterical whining, if there would be something constructive, or at least some explanations to these “I want” lines.
- roca 5y agoThey don't just want a different Web browser, they want a completely different Web that is much less useful. The difference is quite stark. You can build a different Web browser. You can't decree that henceforth all Web sites will conform to your preferred subset of Web features. Ranting and dreaming is fine, but the title is a bait and switch.
- asddubs 5y agoi do have some sympathy to the author's point but this strikes me as overly conservative. e.g. iframes have a lot of genuinely good use cases in being a completely seperate unit. e.g. try doing something like codepen without iframes. embedded widgets that need some sort of backend or a form that needs to be seperated from user-supplied html. i'm also appreciative of things like e.g. webcam support and webrtc, since it means i don't have to run proprietary always-on applications on my actual operating system, which don't have to ask permission for anything. and some are also just weird. favicon svg support? why do you care if favicons support one additional image format? should we get rid of jpg as well? maybe only use bmp for everything, then we can simplify things further and not have to include any complicated decoders in the browser
- ajklsdhfniuwehf 5y agocodepen would be even BETTER if it weren't for frames being coopted into the defacto medium for ads via iframes.
- asddubs 5y agoadvertisers will always find a way to be as annoying as possible, no matter what subset of technology you allow
- ajklsdhfniuwehf 5y agotrue. but the point of the article everyone is missing is that by assuming you will have even the kitchen sink available to everyone at all times, is the problem.
- TheJoYo 5y agoi want a web browser with javascript execution permissions builtin.
- smallstepforman 5y agoThe author has just described WebPositive, the Haiku native browser. None of those (mis)features ;)
- jeffreyrogers 5y agoI've never understood the obsession with memory-safe languages. I get that they are easier to program in and they eliminate certain classes of bugs, but most end users don't care. They just want a product that works. The security argument also makes less sense for browsers because most web app exploits are unrelated to memory safety.
- EugeneOZ 5y ago“they are easier to program”? quite contrary.
- jeffreyrogers 5y agoI wrote "they are easier to program in", which I think most people would agree with. Go is obviously a much easier language than C++. It is hard to find a memory-safe language that is harder to program in unless it is something like Haskell, which is hard because it is foreign to most programmers not because of memory safety per se. Edit: Maybe Rust is harder to program in than C++, I'm not sure (don't know Rust really). But probably most people who find Rust hard would be writing buggy C++ programs and Rust is preventing them from making bugs that they would otherwise not be aware of.
- deleted 5y ago[deleted]
- EugeneOZ 5y agoNo, Rust isn’t harder. I just had a wrong understanding of the “memory-safe language” term. Sorry, I thought it’s about guarantees that Rust gives, but looks like the bar (from the official term) is much lower. Sorry for misunderstanding.
- jeffreyrogers 5y agoNo problem!
- 5y ago
- unnouinceput 5y agoQuote: "Handwriting recognition: why." Because when I see some image written in Russian alphabet having a little canvas where I can draw those cyrillics and gets recognized automatically and later translated it's a great utility. Like it or not, internet is global and various alphabets do exists.
- MobiusHorizons 5y agoPersonally I disagree with the mix of features / lack of features the OP is going for, but I totally understand the desire to play with some aspect of the browser to make it fit a long-tail use-case. I wish for a composable set of utilities that can be put together into a browser even if they aren't very good. For instance, I have often wanted to experiment with a CLI browser that had js support. If A platform existed that just allowed me to swap out the renderer with my own thing it would make that dream easier. I'm curious how far one could get by leveraging jsdom inside of node or quickjs. Clearly the result would be compromised, but if it is even slightly usable, it may fill the needs of the OP and other experimenters.
- swiley 5y ago>Notification You can usually globaly turn it off and it's way less spammy than "Download our mobile app if you want to see the rest."
- willswire 5y agoAs someone who writes web extensions, I have to disagree with many entries under the “ Useless API” section. The storage and permissions api’s are two that I use on a daily basis.
- Santosh83 5y agoMaybe folks who want a user-centric browser can contribute to the one being developed from scratch as part of the SerenityOS project? It has no plans (and no man power) to become another heavyweight Chrome clone, and it is the perfect development ground to take the browser in a simplified, user-centric direction.
- mdoms 5y agoSo the author wants to make browsers much worse on ideological grounds? Cool ok man, you do you. I'll keep watching Netflix and using full-blown web apps in my much better browser.
- burlesona 5y agoI think the author is pointing out reasonable expectations for a web browser, but did not get the memo that “web browsers” are now portable operating systems and we’re not going back. I have strongly mixed feelings about that, FWIW.
- binarynate 5y agoThe alternative to WASM isn't idiomatic JavaScript, it's workarounds like asm.js. Saying that browsers shouldn't have WASM is like saying an operating system shouldn't support binary programs just because you prefer interpreters. If you don't like a technology like WASM or WebGL, then simply don't use it. WASM is an important building block for the web platform, though, and it's not going away.
- anfilt 5y agoThis brings up something, I have wanted for a while. Something similar to about:config in FF, but is just enable/disable for every javascript API. An additional thing would the ability to make certain API always return a certain value, or write my own dummy function in JS to get around breaking sites. Like some things I can disable in FF in about:config, but others I can not. Otherwise, I have to modify and compile FF and hope I don't break any extensions I use. A similar thing would also be nice for HTML elements.
- warpech 5y agoThis is a great idea. There are times I want to disable web fonts, audio, video or even images.
- yarg 5y agoWhat's his problem with WASM? It's not intended as a language to use directly, but rather as a compiler target - allowing for the use of modern languages in a tightly sandboxed environment. It has huge potential - it's not unreasonable to imagine a future where pages of media content incorporate their own codecs for any image, audio and video formats. One thing that's an issue in that regard is trust, but there's an issue for that: https://github.com/WebAssembly/design/issues/1413 https://github.com/WebAssembly/design/issues/1413.
- masswerk 5y agoRegarding Quirks mode: HTML came with a promise, namely that any documents written would be universally readable for a long time with minimal application requirements. This is probably the single most important feature that made the Web such an important and successful publishing platform. (No, it was not invented for short-lived social media content.) Documents, once published, should be accessible without further maintenance. (This is, why you should think twice, when introducing yet another web standard. You will have to maintain it for a very long time. Think of standards as conceptual debt.) There are so many important and even crucial documents, that would become unavailable. E.g., if you are interested in computer history, you know what I mean. About every document that isn't just copy-and-paste content is behind a http-only browser warning and written in a standard that dosen't comply with html5. The premise that everybody would be able to republish the content is somewhat mistaken. What's the way around this? A common effort to preserve these documents, maybe by an automatic translation layer? Well, this is quirks mode… PS: Now one could suggest to have special browsers for legacy content. But, how would this work out with any links? You were to break the principal premise of the Web by introducing a fundamental schism. Now there are two kind of webs, and you'd probably need two kind of links.
- Rhedox 5y ago'Everything I don't use is bloat.'
- reilly3000 5y agoNailed it. There are thousands of engineering hours and millions of users for almost every feature the author claimed was useless.
- Semiapies 5y agoThe proper answer to laundry lists of features/non-features like this is, "Start writing it." Doubly so when one wish is written in a language I know. Triply so when he doesn't want so many features. It doesn't take "millions" to write a browser that doesn't have all that functionality. Look at the SerenityOS project for just one example.
- timw4mail 5y agoOne thing that really bugs me about modern web browsers is that they require modern hardware, due to the absurd amount of APIs they have to implement, which makes them more difficult to build. This is also an issue for mobile. The modern hardware also masks the performance issues of the typical mountain of Javascript webapp. The fact that most webapps require an "evergreen" browser just makes this worse. I'd like to see a scaled back browser, perhaps implementing the 90-95% use-case of apis actually in popular use.
- forgotpwd16 5y agoI don't see how the desktop metaphor is at odds with picture-in-picture. It creates a window which the window manager allows moving around. In-browser screenshot tool is useful since it allows you to take a screenshot when scrolling, that is when a part bigger than the displayed page is required. Also it can screenshot a specific element. Not sure what tool the author is using but none I've tried allowed to do this.
- TobTobXX 5y agoThe problem is that a cross platform API for consistent GUIs is a problem that is only solved by th HTML5/CSS3/JS stack. And because of that, everyone wants to develop for that stack, which creates demand for these APIs.