TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

We're building a browser when it's supposed to be impossible

515 点作者 RMPR大约 2 年前

45 条评论

yellowapple大约 2 年前
&gt; So instead of [building the browser one feature&#x2F;spec at a time], we tend to focus on building “vertical slices” of functionality. This means setting practical, cross-cutting goals, such as “let’s get twitter.com&#x2F;awesomekling to load”, “let’s get login working on discord.com”, and other similar objectives.<p>Seems similar to how Wine is developed: instead of just going down the list of API functions to implement, the emphasis seems more on &quot;let&#x27;s get SomeProgram.exe to run&quot; or &quot;let&#x27;s fix the graphics glitch in SomeGame.exe&quot;. Console emulators (especially of the HLE variety) seem to have a similar flow.
评论 #35525073 未加载
评论 #35522155 未加载
评论 #35546953 未加载
评论 #35527276 未加载
评论 #35522381 未加载
评论 #35523956 未加载
chrismorgan大约 2 年前
Since “The reckless, infinite scope of web browsers” is depicted at the start of the article, I think it’s worth pointing out that its claim of W3C having 1,217 specs totalling 114 million words is <i>wildly</i> wrong, probably by 2–3 orders of magnitude in the total. The considerable majority of the documents considered were not specs or not web-relevant, and dozens of versions of the same thing were often counted. Source: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22617721" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22617721</a>.
评论 #35523785 未加载
评论 #35523254 未加载
评论 #35524241 未加载
alkonaut大约 2 年前
The fact there are better specs doesn’t help if a large part of the work is handling things that are outside the spec. You better show every “buggy” page similar to how the major browsers show them or the new browser will be considered defective. That’s the unfortunate reality of web tech (I wish every page with an js error or incorrectky closed tag would be a big fat error message but it isn’t). And that’s still a lot of slow guesswork I imagine.
评论 #35523324 未加载
评论 #35522107 未加载
评论 #35522399 未加载
评论 #35522953 未加载
ryanjshaw大约 2 年前
What we all REALLY care about: they went with C++ and Qt<p><a href="https:&#x2F;&#x2F;github.com&#x2F;SerenityOS&#x2F;serenity&#x2F;tree&#x2F;master&#x2F;Ladybird">https:&#x2F;&#x2F;github.com&#x2F;SerenityOS&#x2F;serenity&#x2F;tree&#x2F;master&#x2F;Ladybird</a>
评论 #35521930 未加载
评论 #35521973 未加载
评论 #35522564 未加载
评论 #35526585 未加载
评论 #35522000 未加载
评论 #35523965 未加载
cubefox大约 2 年前
This post doesn&#x27;t give reasons to doubt that building a new state of the art browser is basically impossible now. It might well be possible to build a new browser that kind of works on many popular websites, and that would be surprising enough. But the amount of work needed to build something comparative to the rendering engines of Chrome, Firefox, or Safari, something really usable, would probably take decades rather than years. If it is possible to catch up at all. (I remember once seeing a graph which compared software projects by lines of code, and browsers were only topped by a few things like major operating systems.)
评论 #35527344 未加载
评论 #35524667 未加载
epilys大约 2 年前
Chrome wasn&#x27;t built in a day.
评论 #35521968 未加载
评论 #35522884 未加载
评论 #35522264 未加载
评论 #35522032 未加载
评论 #35522025 未加载
评论 #35521872 未加载
nicoburns大约 2 年前
The specs really are <i>drastically</i> better than they used to be. Compare the modern specification for CSS Table Layout (<a href="https:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;css-tables-3&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;css-tables-3&#x2F;</a>) with the older CSS2 one (<a href="https:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;CSS2&#x2F;tables.html" rel="nofollow">https:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;CSS2&#x2F;tables.html</a>). The older one doesn&#x27;t even attempt to define the &quot;automatic layout algorithm&quot; at all!
评论 #35525099 未加载
tester756大约 2 年前
I&#x27;m finding it weird that unlike other non-trivial projects like OSes or compilers,<p>people often discourage building web browser engine because it is &quot;hard&quot; or something like that<p>like... how is it different from building a compiler?<p>You gotta build HTML parser, CSS parser, figure out a fancy structure to represent those concepts and modify at fly.<p>Also there&#x27;s difference between making it work and making state of the art.<p>That persons says that there&#x27;s shitton of RFCs - yea sure, but you don&#x27;t aim to support everything from the beginning.<p>Let&#x27;s start with HTML + CSS, then build basic js interpreter
评论 #35522213 未加载
评论 #35522179 未加载
评论 #35521964 未加载
评论 #35522140 未加载
评论 #35522069 未加载
评论 #35522130 未加载
评论 #35522341 未加载
评论 #35522808 未加载
评论 #35522368 未加载
评论 #35521919 未加载
评论 #35522012 未加载
评论 #35521834 未加载
评论 #35521937 未加载
nicoburns大约 2 年前
I&#x27;ve been working on CSS Layout as a library recently[0] (we have Flexbox and CSS Grid support so far). It seems to me that librifying everything (much like is already done with JS engines) could be a good approach to making building a new browser engine more accesible.<p>Because that way any one wanting to build a new one can starting by pulling in a bunch of libraries (layout, rendering, etc), and then just customise the bits they need (ideally publishing them as a new iteroperable library that others can also use).<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;DioxusLabs&#x2F;taffy">https:&#x2F;&#x2F;github.com&#x2F;DioxusLabs&#x2F;taffy</a>
评论 #35532716 未加载
评论 #35522607 未加载
pyentropy大约 2 年前
He should&#x27;ve put &quot;browser <i>engine</i>&quot; in the title which is the impressive part - there are far too many Chromium wrappers around ;)<p>And this is much more than that: custom JS interpreter, SVG, CSS renderers and so on...
dolmen大约 2 年前
I recommend to listen to Andreas Kling (the leader of that project and the author of the post) interview on the Corecursive podcast to learn about his background in working on web browsers code: <a href="https:&#x2F;&#x2F;corecursive.com&#x2F;serenity-os-with-andreas-kling&#x2F;" rel="nofollow">https:&#x2F;&#x2F;corecursive.com&#x2F;serenity-os-with-andreas-kling&#x2F;</a>
thrdbndndn大约 2 年前
Others have already mentioned performance is one of the hard part.<p>Another aspect is that for any complex, large-scale project like browser, lots of, if not most of, effort is actually in the long tail: to make 90% or even 99% websites work probably is as hard as making the rest 1%.<p>So while the team probably could cruise through when working on current gen spec and popular sites like Discord&#x2F;Twitter, it&#x27;s what left is going to be a nightmare to manage at the end.<p>But again, nothing is impossible, and I really look forward to having a new browser engine in the wild.
评论 #35522103 未加载
rvz大约 2 年前
Web browsers are a moving target, just like operating systems. Anyone can &#x27;build there own&#x27;; but I&#x27;d also say that it is <i>close to impossible</i> to build a secure and viable competing web browser that correctly implements the specification better than Chrome.<p>The two most important keywords in Drew&#x27;s blogpost is *serious* and *security*. There is not <i>one</i> mention of either of those words in this blog post; hence Drew&#x27;s points still stands unchallenged.<p>You can try, but so did Servo which was a &#x27;serious attempt&#x27; and not even the Rust hype could convince the masses that it was better than Chrome.
评论 #35522182 未加载
评论 #35521831 未加载
评论 #35521998 未加载
choeger大约 2 年前
I think that there <i>will</i> be a new successful browser one day - and it will be disruptive. But it needs two properties:<p>1. A unique use case or feature that cannot be easily implemented in the existing browsers. Something that breaks the current architecture and turns the current use cases into afterthoughts. (&quot;oh, yeah, right we actually need to render html somehow at some point, can the intern do it?&quot;)<p>2. A significant breakthrough in software engineering productivity, a major step in terms of abstraction <i>and</i> safety. Something like the combination of a LLM and formal methods.<p>This browser does not check these two boxes (using C++, albeit hopefully a more modern dialect, and targeting plain old browsing). So it is certainly great for the spec - and should be paid for by the W3C, IMO, great for the people developing this as an exercise, but it will never dethrone Chrome.
评论 #35523000 未加载
samwillis大约 2 年前
I think a potentially interesting use case for Ladybird is as a &quot;contenteditable&quot; polyfill. With their dependancy free stack I&#x27;m guessing it&#x27;s not out of the realms of possibility to compile it to WASM and HTML canvas.<p>Having to only target one rendering engine when developing a rich text editor would be much better than the current nightmare it is.<p>(There would be an accessibility problem to solve, we need some new APIs for screen readers and canvas)<p>It&#x27;s a lot of fun to watch them build Ladybird, and a testament to what a small passionate team can do.
评论 #35521936 未加载
lysecret大约 2 年前
This is exactly the type of thing why I am so excited about LLMs. If they make use widely more productive we can build huge things like this and take on the monopolies in the space. It might lead to a wave of &quot;thought impossible to build&quot; products.
评论 #35524754 未加载
评论 #35524309 未加载
spiffytech大约 2 年前
&gt; Deferring on performance work<p>I&#x27;ll be curious to see how this plays out. History seems to show that boosting performance later is a monumental challenge.<p>Early Chrome showed that Firefox was leaving a lot of performance on the table, and it took Firefox a long time to catch up.
评论 #35524467 未加载
anileated大约 2 年前
It’s not that difficult to build a browser, but it’s very difficult to build your own browser engine, and kudos to Ladybird devs for that undertaking!
评论 #35521908 未加载
评论 #35522400 未加载
severak_cz大约 2 年前
I think there is an important aspect of it which Andreas glimpsed over - do it incrementally. While Ladybird is not yet on par with more mature engines it already works for a lot of webpages just fine.
评论 #35521897 未加载
评论 #35522023 未加载
qikInNdOutReply大约 2 年前
I wish there was a auto-migration framework, if one software product like my browser is corrupted aka sells out, it packs my settings into a neutral interface file and automatically migrates to a still untouched browser or offers me a list to chose from. Like Nomadic herds of animals, hunted by predators, ever elusive, never caught..
mkl95大约 2 年前
Building a web browser is a difficult, but attainable task. On the other hand, getting the UX right is a gargantuan task that even big tech struggle with.
评论 #35523054 未加载
评论 #35521950 未加载
bsder大约 2 年前
The problem isn&#x27;t the web browser. The problem is that your Javascript engine has to be <i>staggeringly stellar</i> or your web browser will feel like it&#x27;s encased in molasses.<p>I wish them luck, though. We could use some real competition in the web browser space again.
throwaway71271大约 2 年前
honestly the web is so broken, i think it is beyond repair, i just want to run the website through some LLM to get the content out and show it in lynx and be done<p>i dont want to consent to be tracked, i dont want to login, i dont want a presonalized feed, i dont want to subscribe to your news letter, i dont want your ads, ethical or not<p>js is still an issue, but maybe a day will come when i can say to the model &#x27;pretend you are js interpreter; what is text the output of this minified react garbage and show it as markdown&#x27; and just pipe it to lynx or w3m or worse case eww
评论 #35522429 未加载
0xbadcafebee大约 2 年前
If your team&#x27;s just 5 people, having a strong leader can make the difference. But with a whole business, it&#x27;s no longer about one strong leader. The more people you have, the more you have to invest in levelling up individual performance. Almost universally that doesn&#x27;t scale, so instead you work on process, and use that process, not individual leadership, to ensure better results.
jongjong大约 2 年前
This is great. Refreshing to read something which talks about complexity as a real and important issue (not as a positive or neutral aspect of a system). I&#x27;ve been hoping for a browser like this since the day I tried to download the Chromium repo and found out how large it was. Also, I noticed that it had a large number of external dependencies which made it very difficult to actually dig into the code.
评论 #35527336 未加载
drtgh大约 2 年前
I would suggest to design the browser&#x27;s core for being able to natively support features homologous to:<p>· uMatrix : A version with even more extended filtering characteristics. With special attention to javascript calls&#x2F;loads control.<p>· uBlockOrigin.<p>· DecentralEyes.<p>· CookieAutodelete: Special attention to cached content deletion after leave an specific site and to add previous write permissions.<p>These are essential and needed features within any browser.
评论 #35523372 未加载
tabtab大约 2 年前
Since there&#x27;s already plenty of HTML browsers, instead explore an unserved need, such as a stateful GUI markup browser &amp; standard. HTML&#x2F;DOM is missing many expected GUI idioms, and has an inherent text positioning flaw:<p><a href="https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;CRUDology&#x2F;comments&#x2F;10ze9hu&#x2F;missing_or_defective_gui_idioms_in_htmldom&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;CRUDology&#x2F;comments&#x2F;10ze9hu&#x2F;missing_...</a><p>GUI&#x27;s, desktops, and mice are still needed for biz and productivity. HTML browsers have been a goofy mess for this, requiring bloated buggy JS libraries with long learning curves. Let&#x27;s Make Gui&#x27;s Great Again! (No, I&#x27;m not a Don fan, BTW, but his trollisms are catchy.)
buovjaga大约 2 年前
Linus Groh of LibJS is an Invited Expert in TC39: <a href="https:&#x2F;&#x2F;linus.dev&#x2F;posts&#x2F;road-to-working-on-serenityos-and-ladybird-full-time&#x2F;" rel="nofollow">https:&#x2F;&#x2F;linus.dev&#x2F;posts&#x2F;road-to-working-on-serenityos-and-la...</a><p>ECMAScript conformance test results looking good, 87-88% passing at the moment: <a href="https:&#x2F;&#x2F;libjs.dev&#x2F;test262&#x2F;" rel="nofollow">https:&#x2F;&#x2F;libjs.dev&#x2F;test262&#x2F;</a><p>I see weekly summary articles about Ladybird development are now being published: <a href="https:&#x2F;&#x2F;linus.dev&#x2F;posts" rel="nofollow">https:&#x2F;&#x2F;linus.dev&#x2F;posts</a>
al2o3cr大约 2 年前
5000 feet up the mountain: &quot;I&#x27;m climbing Everest solo without oxygen even though it&#x27;s supposed to be impossible. How come I&#x27;m making such good progress?!&quot;
评论 #35524289 未加载
SpecialistK6466大约 2 年前
I would love to see this being adopted and ported as a alternative, light browser for other &quot;esoteric&quot; OSes like Haiku, legacy OS X, and even OpenBSD (which has performance issues with Firefox)
mrweasel大约 2 年前
I absolutely love that Andreas Kling doesn&#x27;t care about it being hard&#x2F;impossible, and just dives straight in with pure optimism. It&#x27;s absolutely wonderful to see the joy and positivity.
评论 #35527724 未加载
zellyn大约 2 年前
Andreas, if you&#x27;re reading this… have you folks thought about building a new ACID-type test that covers the gaps in the existing ones? Seems like it would be incredibly useful.
voytec大约 2 年前
Great news! Would love to see a browser not controlled by GOOG.
nashashmi大约 2 年前
My dream browser is one that is a single file package. There used to be a qtwebkit browser before but it stopped developing.
shp0ngle大约 2 年前
I know that this is more of an &quot;can we do it?&quot; experiment, so I feel kind of bad for ciriticising. It&#x27;s a great feat to get this far.<p>But I was disappointed that it just crashes on any github page... and SerenityOS github is literally the first link on the Ladybird default homepage :)<p>edit: oh it doesn&#x27;t crash on github page, it crashes on the github issues page.
KingOfCoders大约 2 年前
It must be impossible, Mozilla spent more than $5billion for a 3% market share.
评论 #35522713 未加载
评论 #35522392 未加载
meerita大约 2 年前
I think adoption and maintenance will be the hardest parts of the project.
评论 #35522888 未加载
评论 #35522245 未加载
Animats大约 2 年前
Google vs. the web has become &quot;embrace, extend, devour&quot;.
shadowtree大约 2 年前
Wouldn&#x27;t this be a perfect task for an LLM? Ingest all relevant web specs (HTML, CSS, JS, ...) and pick a language - start prompting for components.<p>Really wonder where the event horizon for really functional programming is.
smackdam大约 2 年前
It&#x27;s time to takeover chromium monopoly
cryptonector大约 2 年前
Drew DeVault isn&#x27;t wrong.
nmiculinic大约 2 年前
I’m curious as to why on this
评论 #35524233 未加载
poisonborz大约 2 年前
Did he really wrote &quot;having an experienced leader (me)&quot; as one of the points.
评论 #35522352 未加载
评论 #35522864 未加载
评论 #35523174 未加载
评论 #35522875 未加载
评论 #35522972 未加载
NotYourLawyer大约 2 年前
Why not just fork Firefox?
评论 #35523400 未加载
评论 #35523321 未加载
jack_riminton大约 2 年前
Given how insanely fast both processors and internet speeds are nowadays, what’s the point?