Ōryōki Web Browser
oryoki.io
oryoki.io
Edge put together a really great visualization of the API surface of all the browsers. - https://developer.microsoft.com/en-us/microsoft-edge/platfor... The API surface (and bug surface) is actually pretty different these days.
Internally Blink and WebKit are also diverging reasonably rapidly. As a specific example here is the project to re-architect how blink does it's painting: https://www.chromium.org/blink/slimming-paint
EDIT: spelling
Not quite - those that employ the maintainers define the standard, as shown multiple times by Red Hat (multiple projects) and by Apple with WebKit.
IIRC, before the Blink fork, Google was pushing more commits into WebKit compared to Apple, but there was a - let's call it a difference in perspective - on a feature a Google employee wanted to implement, someone with an @apple.com email said "no". I can't remember what the issue was, but this development unfolded on webkit mailing list.
Most things based on Chromium also use more components of the Chromium stack than just Blink. For example, in WebKit multiprocess support and sandboxing is provided at a batteries-included level. But Blink just has the hooks for it, while the actual implementation of the process architecture is done by other aspects of Chromium.
This is not to say one way is better or worse, but rather that there's significant differences between being WebKit-based vs Chromium-based.
It's not perfect by any means, but it is now my favorite :)
uzbl, the one I've used the most, primarily consists of a pile of code to map callbacks to a protocol on stdin/stdout, and a handful of example scripts to communicate over that protocol - it's certainly no more "from scratch" or smaller than any other WebKit-based browser.
I expect that the other two similarly focus on UI code rather than pointlessly fiddling with WebKitGTK+'s internals - how are they not just skins (albeit of WebKitGTK+, not Chromium) as well?
Edit: Thanks very much for the links. This will be a lot of fun testing out. Just responding here to avoid triggering the anti-flamewar protection.
It wasn't easy ten years ago, and a modern browser is at least an order of magnitude more complicated (WebGL, more complicated CSS, JS support, heck I'm not even really counting JS JIT here...).
I myself jumped from Opera when they rewrote to blink
https://www.google.com/search?q=spiders&espv=2&biw=1439&bih=...
https://www.gnu.org/software/wget/
On sites that require Javascript, it is useless, of course, and even moderately fancy CSS layouts look ... interesting in it. (OTOH, no Javascript means that it practically has a builtin adblocker.)
But for sites where that is not a problem, it is incredibly fast, plus one can have dozens of tabs open, and it will rarely if ever use more than 100 MB of RAM. For browsing documentation, it usually works perfectly well.
An addition to the list: https://pwmt.org/projects/jumanji/
Has it started receiving more attention again, or acquired a new maintainer?
I realise every codebase has security bugs, but that one gave me the chills, and suggested that perhaps security approach had not been though through by the devs.
More accurately, a minimalist web browser UI for Chromium. There's nothing small about Chromium.
These people don't deserve any more Moore improvements.
If I am not missing something obvious, aren't we blaming the wrong thing?
By users, not developers.
Edit: I know, I know, I know... But you all get my point.
My girlfriend who is a non-power user regularly has 2 browsers open and her laptop is swapping constantly with it's 8G of ram.
If only that were a relevant remark. The tab with the linked Oryoki web page alone is using 250 megabytes for me. And a second tab of the same page is using an additional 230 megabytes.
Somehow I don't think that that's well utilized RAM for the ~350 kilobytes of web content. This page uses 200 megabytes as a tab, and HN isn't exactly a heavy page.
At first I was going to blame all of the garbage from rockstar brogrammers, but even the simple HN comment page tab is using 264MB of RAM on macOS. The browser itself uses an additional 208MB according to Chrome's task manager, not counting all of the extensions. Where is it all going? There's 10 lines of JS on this page and a tiny amount of CSS. Has Chrome become that bloated?
This is especially annoying when many modern "desktops" apps are just Chromium wrappers that bleed memory.
Your 208MB might not be additional, but a big subset of it could be shared with the renderer/gpu process.
If you want to know where the memory is going you can go to about://tracing and enable the memory-infra category.
If you have ram and it is not being used, it is completely wasted, if you have cpu cycles and it is not being used you are just saving on battery and not over heating the laptop.
Maybe on 3 or 4K laptops. But aren't most 1388x768 or something equally dismal? Which isn't far off 1024x768. Anyways, a 1080p frame at 32bit depth is only 8MB.
Browsers are hardly low CPU, either. I'll see things idling at 10% of an i5. Which is like 200%+ of CPUs used for web browsing of yesteryear.
All this, and web pages are slower to respond. I recently used a page that loaded a grid of images. Changing by battery/throttling had a 2s impact on load time. CPU was pegged during that time.
And, for the record, I would complain if my OS was a memory hog.
Now, get off my lawn!
/me shakes his cane at all the youngin's running around with their copious amounts of RAM
:)
I assume you're running up on your RAM because (like me) you have tons of tabs open?
If you're one of those people, consider The Great Suspender: https://chrome.google.com/webstore/detail/the-great-suspende...
Also, have the right extensions. E.g. microadblock instead of Adblock Plus, etc. etc. There's a balance to be achieved somewhere in there. :)
Unused ram is useless ram. Its a problem when you're always out of ram. But get an SSD for the odd times you swap. You won't notice it. But either way, the only time my browser is slow is if I restart it and it loads my previous 20-30 tabs all at once. It'll do its thing for 10-20 seconds then done.
I get its a lot of ram but what I don't get is why this is impacting people so much? In this day and age most of what people do is in a browser. And if you only have a tab or two and you're working outside of your browser, and you think your browser is killing your computer? Maybe its time to upgrade or add some ram.
You can get 16gb of ram for $50/$60... I abuse my machines with multitasking all day and none of them feel slow because my browser uses too much ram. Both have 16gb.
When the ASCII text of a webpage is measured in tens of kilobytes, and the RAM in hundreds of megabytes, something is wrong.
http://blog.chromium.org/2008/09/google-chrome-memory-usage-...
Providing data.
What else with my 16 or 32GB of ram am I going to do when I surf? I would happily give double the current gen ram for better performance.
(remembering most Macs come default with 8G of ram)
For example, I sometimes play very resource-hungry games and like to have a youtube video on my second monitor while I play. But that's not possible on my gaming PC, so I have to youtube-dl the video first and run it in vlc instead.
I can do all of that at the same time as is...
First of all, it's not a low end PC, it's an expensive gaming-dedicated rig barely a couple of years old. The amount of resources browsers consume is just ridiculously high.
Second, the argument that browsers should use all the resources and ram available in the world only holds if your computer is dedicated to web browsing. This is quite obviously false - I shouldn't even have to give you my case as an example. PCs are general computing machines.
Web browsers are too hungry for what they do. Not every tab is meant to run a full blown web app with webgl and megabytes of javascript code. The point I was making was that what I'm not able to do with Firefox/Chrome, I'm able to do with vlc. That is preposterous for something that wants to be "the future of the desktop".
I can youtube+[Witcher3|DarkSouls3|Skyrim+10GBMods] just fine with my 4k series i7, 16GB, GTX970.
Anybody can shift+Esc on Chrome and see how Javascript heavy pages consume a shocking amount of Memory.
This tab is consuming 98 MB of RAM. I am in incognito mode, with no plugins.
While crazy site do crazy things with JS and have crazy bad user experiences (TMZ.com makes 700+ requests and takes over 90seconds to load), 98 MB of ram for a HN tab is ridiculous. This has very little to do with JS.
Now, we have this, paraphrased from the 2012 novel _Off to Be the Wizard_ by Scott Meyer. Phillip, a time traveler from 1984, asks, "What on earth can a person do with 4 gigabytes of RAM?" Martin, from 2012, answers, "Upgrade it immediately."
Of course, things do get better over time, and some of those improvements require more RAM. Still, I wonder how much of the increases in minimum RAM requirements are actual progress, and how much are just waste. Is there even a way to answer that question? If I were to set up a machine (even a VM) running Windows 98 and Red Hat Linux 6.0 today, it probably couldn't do much on the current Internet, so I wouldn't be able to fairly evaluate how much the operating systems have actually improved.
I've been hearing discouraging things from both architecture and silicon people at Intel. It seems like they lost direction, probably because of the recent explosion of mobile/ARM.
I argue that the UX has actually gotten worse since software is becoming more bloated faster than the hardware improvements can keep up with. There are more layers of abstractions and VMs running VMs running VMs simulating DOMs listening for changes to objects to update models to trigger actions which bubble up to listeners which fire events which change data structures that eventually update some text on the screen. Consider what happens in the physical memory, at the hardware layer, to have a modern React app print a line of text when a text box is modified. Contrast this with what a terminal does and what happens in memory. Printing text to the screen in a "modern app" is now so complicated that it's effectively impossible for a human to determine the CPU instructions and memory manipulations required to do the things we're doing.
And what do we do? We make more transpilers, more frameworks, move more to the browser, split our systems across networks and around the world. Contrast saving a file to a floppy disk with uploading that same file to a "modern app" which stores it on S3 using Paperclip with Rails, as many modern apps do. Think about all the systems that file goes through, the network requests, the protocols involved, the standards required to make that happen, and the infrastructure which powers it all. Think about the data centers those VMs running that app run in, the people who oversee them, the tooling they need to run those systems. Think about all the project managers who had a hand in setting any of that up, the financial planning of each aspect, the development time spent.
Recall the time when one could reason about what goes on inside a computer at every level, when key presses registered immediately, when the memory allocations of applications and the OS they ran in made sense to humans. When it felt like magic instead of digging through a trash heap of ads to find the tiny sliver of what you needed.
what the hell are we actually even fixing anymore?
We'd need a sandboxing and module system for Javascript to solve this. A problem that is both technically complex and not 'sexy', so don't hold your breath.
No. This project is solving a different problem. Let it be.
Something is seriously wrong, and it has nothing to do with client side JS, or huge retina images, or CSS animations and rendering jank.
Someone publishes their open source experiment in minimal browser UI design, and everyone shits on it for not being a built-from-scratch web browser with low memory usage.
That's the #1 risk to HN, so we worry about it. Like many here, we've seen it happen before, and HN was literally founded on the idea of not letting it happen again—or at least trying to stave it off.
That doesn't mean we don't get the value of hard-hitting technical critique done in a right context; it means that HN is not a right context for the shitting variety. Nor do we ask users to be namby-pamby milquetoasts; we ask them to understand enough about the fragility of the community to preserve it for the future. We don't want a scorched-earth outcome.
So go ahead and make clear technical criticisms, but make them without the extra jabs that people often feel compelled to stick in. That latter behavior isn't hard technical critique anyhow, just chest-beating.
Someone built an experiment in minimalistic UI design. "Technical people" started a massive pile-on, declaring "this is stupid, this doesn't have a minimalistic codebase at all."
That's not a technical demand, and it's not identifying a product's faults. That's a demand that this project have an entirely different purpose.
Personally, I use `chromium --kiosk-mode` as my everyday browser, and this project looks like something I'd be interested in if I were on a compatible OS. Not a small codebase, not a lightweight browser, but that's not what I care about. I want something that has Chrome's features (great devtools, doesn't crash every hour like the webkit browsers I've tried) but with less UI devoted to, uh, chrome that I don't use or want or need.
IMHO, free or not, it's a product, and should be judged appropriately.
Yeah, we're criticizing the fourth word of the very first sentence of their webpage, explaining what this is:
"Ōryōki is a small web browser with a thin interface."
There's nothing small about Chromium, and adding layers onto something doesn't make it smaller. Unless they're talking about how small you can make the browser window, it's a false claim that should have been excluded from the description.
Aesthetically, it's an interesting proposal for minimalism, but technically, it's literally the opposite.
I use `chromium --kiosk-mode` as my daily browser. Chromium has features I value highly (e.g. great devtools, doesn't constantly crash like webkit), but I'd rather have a more minimalistic user interface (less space devoted to chrome I don't want to waste screen real estate on).
Note that this preference is completely orthogonal to the desire to have a lighter weight, more minimalistic browser in terms of codebase, memory usage, etc.
If HN (or any other website) turns into a "Its OK, you're among friends here" type of auto-fawning community, it would delude people into thinking they're actually doing something worth showing to people as opposed to hacking on a hobby project for their own enjoyment. (This isn't specific to the linked project)
Screenshots: http://imgur.com/a/qDGP2
CSS base (I've made a few modifications): http://twily.info/firefox/stylish/firefox-css#view
Electron makes it really easy to experiment with browser UI.
At a previous job, we built and installed and ran a system test with that faster than Firefox unpacked the source tarball. OTOH, it's quite limited, and Javascript support isn't really there yet.
Less features and slower, exactly what I was looking for.
> This is an experimental project
SLASH S
応量器 Noun 1. mendicant priest's begging bowl (Buddhist term)
It has integrations for lots of mad science distributed tech such as IPFS & dat and a permission-based filesystem API based on node's fs API.
I personally use Firefox + vimperator with menu bar, address bar and scroll bars disabled. A single line status bar has all the info I need.
I've also dabbled with some of the "micro browsers" but none was satisfactory without a lot of trouble configuring proxies, etc.
For the future, I am hoping that someone will put together a Servo based micro browser with a keyboard oriented user interface.
IIRC, back button is one of the most used UI elements of a browser.
I'd probably consider myself a power user (I work on browsers for a living), and I use and most of the features you've described. Especially scrollbars, they're a great "read progress" indicator.
On a side note, we so often forget how small is the bubble of the so-called "power users".
https://developer.mozilla.org/en-US/docs/Web/Security/Subres...
But browsing a little, I immediately had problems zooming the viewport or increasing font size. Zoom gestures don't work, and neither does ⌘+/-. I couldn't find anything in the menu for it. Double-click on text does a zoom, but not enough. And sometimes content is moved off the viewport when you zoom in.
Very cool project.
edit: I'm still playing with it... it's got nice little notifications at the top. When you click a link, it says "loading...", then "850ms", or whatever; the page load time. And then ⌘← to navigate back shows "Navigating back", "Loading...", page load. It's cool. Looks nice. Dev tools open in a new window, and I couldn't find a way to open them in a panel, but maybe that can be set in the preferences.json.
[0]: https://news.ycombinator.com/item?id=11484770OK, no, it's not the exact same, but it did take just one keystroke.
safaribooksonline.com
> Ōryōki is built with Electron on top of Chromium.
The first two lines are contradictory.