So we will, in ~5 years time have two new browser, one in Rust and one in Swift.
I hope in the process of doing it we will find new ways of doing things.
So we will, in ~5 years time have two new browser, one in Rust and one in Swift.
I hope in the process of doing it we will find new ways of doing things.
According to https://servo.org/about/ Servo currently passes ~60% of the web platform tests. Does anyone have experience how far that subset gets you on the open internet?
Hackernews and LWN render reasonably correctly in recent nightlies. Reddit does not.
New Reddit or Old Reddit?
New Reddit. Old reddit seems to work OK.
The newest Reddit - not the React version, but the Lit version that's replacing it - uses very, very modern HTML and JavaScript. I'd love to see Servo get to the point of rendering it correctly!
How many times are they going to rewrite the site? And how can you see the Lit versus React version, is there another link for it?
There is old.reddit.com, reddit.com and new.reddit.com. new.reddit.com is not the same site as reddit.com!
TIL. new.reddit seems to be a return to old.reddit in a lot of ways. It also seems really really fast unlike the current www.reddit. If they remove some annoying ads I might even be convinced to stop using old.
The only downside is that new is still being developed. Old is nice because it is shielded from their post-success incompetence. Whatever bad ideas they decide to implement will hit new first.
new.reddit.com seems to be an older layout than just reddit.com for me, one where most stuff still works (like video embeds).
At least it is faster and seems to be less bug-y.
It is so crazy. I normally use "reddit.com" but a few weeks ago i followed a link to an article on "old.reddit.com" and saw I had notifications. I clicked the item and it was all notifications from days ago. So the read status of notifications on old reddit and current reddit aren't linked?
Most pages, logged-in and logged-out, seem to be using the Lit version for me. I don't think it contained many visual changes, so you have to look for the presence of web components.
Pretty amazing how a company can overengineer a basic feed that displays images and text (and ads). New Reddit is a dumpster fire, can't imagine another rewrite is going to fix it.
Yeah, one of the weirder things is that if someone blocks you, you are not allowed to reply to any comment in the thread (for example, if someone posts a toplevel comment and doesn’t reply to anything, and you reply to some comment a dozen layers below and have an exchange with some third party, if the toplevel commenter blocks you, you can’t reply to anything including comments left by others in response to your own comment) and you get a generic “internal server error”-type pop up with no information about why the request failed.
This is most likely a server “feature” and thus a rewrite of the frontend won’t fix it but it seems like at very least the frontend could display a sane error message (assuming the backend forwards some information about the cause of the error).
Yeah, I’ve never thought anyone could build a video player worse than realplayer but they achieved the impossible.
New Reddit rendering “properly” is as useful as a chocolate fire guard. Do you want to view this content on the app? You Can Only View This Content In The App, THE APP is the WAY, JUST FUCKING DOWNLOAD THE APP!!!
At least on mobile.
Itappearsthatspacesdon'tworkformewhentyping,butitotherwiseseemsthatevencommentingonhnworksinVerso.Editingappearstoworkaswell,thoughlinebreaksdon't(maybebecauseofspaces...).
Edit (with Firefox): the above text is from Verso. Logging in works (though the session is not stored across restarts), as does both commenting and editing comments. Since space can't seem to be entered, word wrapping doesn't work with text entered in Verso, though it does seem to work when there is text with spaces (eg, this edit). A cursor also doesn't appear for me, making editing a challenge.
In my tests, it's pretty unusable atm. Probably half of websites render very wrong and servo crashes nonstop.
It cannot crash its written in Rust.
Rust can absolutely crash. It crashes ("panics" in Rust terminology) in a memory safe way but it's still a crash (please don't try to redefine the word "crash" to be more specific than it actually is).
And Rust can still have unsafe code so it can crash in memory unsafe ways too (though it is very unlikely unless you're doing things very wrong).
I'm assuming that's in reference to these tests? https://wpt.fyi/results/?label=experimental&label=master&ali...
For comparison, there are 1.9 million tests
Chrome passes 97.14%
Edge passes 96.98
Firefox passes 95.96
Safari passes 95.22
I wonder where Ladybird stands in thisYou can compare Servo and Ladybird results on wpt tests here: https://staging.wpt.fyi/results/?product=servo&product=ladyb...
Oh thanks. Seems like Servo is way ahead of LadyBird
There's still zero day exploits found in chromium, wouldn't using using this put you at a huge risk of running into malware in the wild that this browser can't protect against?
I agree, no one should ever bother writing a new browser again, too risky. We should just use chrome forever
Why not just fork chromium with all the Google analytics/tracking removed?
There's ungoogled chromium for that.
Also doing that doesn't solve the standards problem we currently have.
Google is able to push through any "standard". And those standards "unwittingly" help them maintain their search/ad dominance or prevent competitors. For example see manifest v3 or FloC (a.k.a Topics API).
Once they gain enough traction and become indispensible, you either implement them or risk losing users.
Maybe if Chromium was written in a memory-safe language there would be fewer zero-days?
Yes, and that's why Chromium moved to allow Rust code (pretty much like they did for Android).
I somewhat wonder—Firefox and Chrome are in a constant race to have the best JavaScript performance.
In general, the sites I want to browse use minimal JavaScript, prudently, if at all, just where it is strictly necessary to add little dynamic features. So, I don’t really care about JavaScript performance at all.
Optimization sometimes introduces additional complexity, which might open up the possibility of security holes (at least it seems to be the case to me, as a not-security-related programmer. I don’t know anything about security on a technical level, so I’m interested in other perspectives on this from people that actually work in those sorts of fields). I wonder if there’s room for a browser engine that ditches performance and just focuses on correctness and safety.
Rendering documents ought to not be computationally intensive, right? Advertisements of blazing fast JavaScript performance make me worry what corners have been cut.
Have a read about Servo, it is binding with SpiderMonkey as JS engine.
Is there some chance, that servo decomposed from SpiderMonkey? If it is not, I don't think anyone can tell difference between firefox and other browser use Servo.
There's a lot more to a browser than the JS engine. And in general, we would want all of the browsers JS engines to be essentially the same. I think starting with an existing engine is the most logical approach
True but at this point of time, Firefox and Servo are using the same CSS engine, same JS engine and same compositor and rendering engine.
That still leaves you with at least the layout engine, all the DOM apis, all the networking, multi process model & sandboxing, web extensions support, that are different implementations.
we would want all of the browsers JS engines to be essentially the same
You say until there is a CVE found.
The x64.dmg release[1] requires macOS 13+, why?
[1] https://web.crabnebula.cloud/verso/verso-nightly/releases
it's five years old release. Sounds reasonable or you're expecting release to work all the way back to commodore 64?
macOS 13 was released in Q4 2022.
I'd hypothesize it's due to https://github.com/versotile-org/verso/blob/07a88a86347c6763... and I thought maybe that was the lowest GH offered since they used an actual number versus "-latest" but no, GH does offer 12 https://docs.github.com/en/actions/using-github-hosted-runne...
Since they already went to the trouble of writing the GHA, I just downgraded and gave it a whirl and it both completed and the resulting artifact launched a-ok on my 12.7.6 x86_64: https://github.com/mdaniel/verso/actions/runs/10341237698/jo...
I'm posting this reply from that build, although I had to compose the answer over in FF because the textarea doesn't scroll :-D
I hope that this project will succeed.
Incidentally, Verso is also the name of Lean 4’s DSL for typesetting documentation.[1] We are running out of words in the English language.
There are two simple solutions to this:
1. Translate the word to another language.
2. Get creative and make up an original name. Mixed translations, word-bashing, not-actual-words, there's a lot of options!
Okay, so the latter isn't super easy but can be a lot of fun to do!
In this case, it seems like a play on the core dependency name than choosing the actual word of "verso": servo -> verso.
It's also the name of the most successful left-wing press in the English-speaking world:
we are running out of words
in a 1000 years we'll be making this observation across the galactic internet.
Typo dont' -> don't
Actually i prefer the dont', easy to comprehend and spell.
Wow. Every single day I’m still amazed by people.
Wouldn't dont be even easier?
It'd be nice if people stopped recommending "yet another new and exciting package manager for Windows" that you have no idea of whether you can trust it or not.
Git, Python, llvm, cmake, and curl all have perfectly normal windows installers available from their own websites, and if you're a programmer who has to, or chooses to work on Window, it's a good bet you already have either most or all of these already installed, making the job of completing your bonus objective probably one, maybe two installs at most.
Scoop is nice because, like homebrew, it's easy for package creators to create their own “buckets” and distribute packages that way.
I'm sure, but it's also "yet another package manager" because everyone has their own favourite package manager. It's a nit, but it's nice when a README.md goes "you need X, Y, and Z" and doesn't pretend you need a specific method for that. Tiny phrasing change, zero real world difference of course, but it's a nice little sign that the folks running a project know that you know what you're doing on the OS you're working with (either by choice, or by paycheque =)
Ideally, winget would be the way to go, but I haven't had good luck with it. There are a number of limitations and it doesn't feel like a polished and curated repo. It just feels like a wrapper around chocolatey, which has its own problems.
Microsoft is the reason alternative package managers exist
It might be the head cold I'm recovering from, but it took me about 3 passes to comprehend their tagline:
A web browser that plays old world blues to build new world hope
Sounds like a Fallout New Vegas reference to me. Or maybe it is referencing what FNV was referencing?
I'm healthy at the moment and I'm still not sure I understand. Poetic perhaps, but a bit nonsensical.
Old world as in the past? Older technology? Older ideas? Bad ideas?
Blues, as in the musical genre? Or the feeling it conveys? Are we riffing on it here? Plays strongly suggests music, but the blues originated from specific cultural roots tied to the end of slavery (which is implied even further by 'old world blues').
New world, as in a better tomorrow, or something more akin to a new world order?
Hope I think I get.
Isn't servo is in development for more than a decade? They already have legacy code before it even became stable, lol.
Any code is legacy code once pushed upstream
What do you mean by legacy code here?
I run away from anything with verso in it
Care to explain?
Serious Question: With risk of being hated, this is an honest question:
I've never sought out another browser than using pretty much any of the big three...
Just because I have never had any sort of personal workflow/painpoint/interest in any of these other browsers/engines, that frankly I had never heard of and then another thing pops up every few years with yet another new one that I havent heard of -- but they all seem to have lively communities...
The question is:
What is the primary drive/utility that you/others are seeking/gaining with these none FF/chrome/edge things?
Every time a new browser appears and is applauded by HN, a NetSurf dev opens a beer...
I'm happy to see work being done in integrating Servo into custom browser chrome. My dream browser would be a servo based Qutebrowser. I can only hope.
Interesting perspective!
In other exciting Servo-browser news, Servo and Redox OS have submitted a joint proposal to fund the porting of SpiderMonkey and WebRender to Redox: https://www.redox-os.org/news/this-month-240731/
If anyone is willing to put an effort in building a new browser, I have just one wish - allow embedding open-source transformers in the browser; available for both the user and websites/extensions.
And of course, they've gone with a pushover licence. Or two of them, it looks like.
doesn't work with windows
What swift browser are you referring to?
Ladybird has started using Swift.
For UI portion of their Mac OS version? What am I missing?
For everything. Swift is—at least in theory—a general purpose language, it's not exclusively for Apple technologies.
https://x.com/awesomekling/status/1822236888188498031
https://news.ycombinator.com/item?id=41208836
Swift is useless outside of macOS/iOS dev… the thing doesn’t even have namespacing. I don’t know for what reason someone would use it outside for Apple environment.
You're right but this touches the hot stove.
HN majority doesn't like hearing that ladybird et al might just be wandering around, even if the goal is catnip for the bleachers, and we should be skeptical this is the year of multiplatform Swift, because it wasn't last year if you actually tried it. Or the year before last. Or the year before that. Or the year before that year. Or the year before that one.
You can disambiguate two types with the same name from different libraries, e.g. `Factotvm.URL` and `Foundation.URL`. Do you mean something more full-featured? You are not prefixing types with three letters, if that's what you think has to be done.
I don't know if it's still the case, but there was an annoyance where you couldn't have a type with the same name as the package. But that is hardly a lack of namespaces.
But v6 is not released yet, right?
next month
For non-UI portions as well, more from the horses mouth: https://x.com/awesomekling/status/1822236888188498031
Actually, it sounds like they only just decided to use it in the future once Swift 6 is released. I would guess much of it will still be in C++ for a while.
Most likely Arc (https://arc.net/)
Arc is based on Chromium for anyone wondering. I believe part of the UI is written in Swift but the engine isn't.
I like Arc and use it (I actually never stopped using it after the first time I opened it), but I wish they weren't building off of Chrome.
Arc is a fork of Chrome if I'm not mistaken
Ladybird
The problem with these smaller webbrowsers is that you have nobody to sue if the browser turns out to leak your personal information or credentials etc. Therefore it is better to stick with browsers made by big corporations.
This is true for any software though, so if we push that reasoning to its extreme, no one should ever use any free and open source software, which I find a little bonkers.
Except browsers are more likely to leak your personal info than, say, a vector drawing program.
I'm curious what exactly you think suing Google or Apple in such a case would accomplish?
On the (long) odds that you get all the way to a successful class-action suit, the lawyers get rich, and the class members eventually end up with a free year of credit monitoring
(we have seen this over and over again in settlements for high-profile data breaches)
I'm fairly certain those big corporations are stealing that same information just paying fines and PR people to manage the backlash.
Are you really planning on suing Google for leaking personal info via Chrome?
I'd like to see Swift adopted more on non-Apple operating systems, some of the recent GTK apps written in Swift are pretty cool.
sadly Gtk's support for MacOS is best efforts only
What apps are you thinking of? Curious to check them out.
There's been a lot of work on this in the last few years with Windows support, preliminary Android support is also being worked on and should appear at some point in Swift 6.
Is there a good software engineering resource about the complexity of a web engine? I mean, we all know that is complex but what are the critical areas. Performance is one, compatibility another.
https://robert.ocallahan.org/2024/06/browser-engine.html
P.S.: This specific post was written in response to announcement of Ladybird.