Live data from Hacker News

Web Browser Engineering

browser.engineering

21–30 of 64 posts

Re: Web Browser Engineering

#21
It's now nearly impossible to build a web browser from scratch because of runaway explosion of web browser features, and proprietary API extensions.

W3C here is unfortunately a part to the problem.

Standardisation is good, but letting google pour streams halfassedly written RFCs onto other browsermakers is not good.

Non-enforcement of standards is also bad, and it's bad to extend W3C privileges to companies who themselves selectively implement their own proposals, so others' browsers can't match their behaviour.

Re: Web Browser Engineering

#22
post #21

It's now nearly impossible to build a web browser from scratch because of runaway explosion of web browser features, and proprietary API extensions. W3C here is unfortunately a part to the problem. Standardisation is good, but letting google pour streams halfassedly written RFCs onto other browsermakers is not good. Non-enforcement of standards is also bad, and it's bad to extend W3C privileges to companies who thems…

Actually a from-scratch web browser is being built:

https://www.fastcompany.com/90611677/flow-ekioh-web-browser-...

Also you should take a look at the WHATWG because it’s far more relevant than the W3C nowadays.

Re: Web Browser Engineering

#24
post #6
post #5

Earlier quoted context omitted.

A browser is basically an operating system inside an operating system. The funny thing is we can have the MINIX microkernel discussions all over again :)

Looking at the book's table of contents, I disagree. Browsers may resemble OSes by the size of the code base or by the amount of optimization involved, or by their importance for the modern world, but not by the types of technologies involved. I doubt the Browsers course will intersect a lot with OSes course. EDIT: Reading you comment again I suspect you might have been joking :)

Which part of OSs do you expect not to be covered?

There's IPC. There's memory management. There's process management. There's network management. There's security. There's device management.

They all happen at a slightly higher layer, but they all exist similar to an OS. (I'm not sure if the higher layer makes it easier or harder to understand - but in terms of what you need to know, an OS class or three is definitely helpful)

Re: Web Browser Engineering

#26
post #21

It's now nearly impossible to build a web browser from scratch because of runaway explosion of web browser features, and proprietary API extensions. W3C here is unfortunately a part to the problem. Standardisation is good, but letting google pour streams halfassedly written RFCs onto other browsermakers is not good. Non-enforcement of standards is also bad, and it's bad to extend W3C privileges to companies who thems…

Actually a from-scratch web browser is being built: https://www.fastcompany.com/90611677/flow-ekioh-web-browser-... Also you should take a look at the WHATWG because it’s far more relevant than the W3C nowadays.

"The total word count of the W3C specification catalogue is 114 million words at the time of writing. If you added the combined word counts of the C11, C++17, UEFI, USB 3.2, and POSIX specifications, all 8,754 published RFCs, and the combined word counts of everything on Wikipedia’s list of longest novels, you would be 12 million words short of the W3C specifications"

https://drewdevault.com/2020/03/18/Reckless-limitless-scope....

No idea how Flow does it, but building a browser is nearly impossible.

Re: Web Browser Engineering

#27
post #24
post #6

Earlier quoted context omitted.

Looking at the book's table of contents, I disagree. Browsers may resemble OSes by the size of the code base or by the amount of optimization involved, or by their importance for the modern world, but not by the types of technologies involved. I doubt the Browsers course will intersect a lot with OSes course. EDIT: Reading you comment again I suspect you might have been joking :)

Which part of OSs do you expect not to be covered? There's IPC. There's memory management. There's process management. There's network management. There's security. There's device management. They all happen at a slightly higher layer, but they all exist similar to an OS. (I'm not sure if the higher layer makes it easier or harder to understand - but in terms of what you need to know, an OS class or three is definite…

> IPC, memory management, process management, network management.

I imagine the non-trivial parts of these are done for the JS VM (correct me if I'm wrong), and therefore a VM design course would have more intersection with Browsers with respect to these disciplines than an OS course.

> security

This one is everywhere, it has no special connection to OSes.

> They all happen at a slightly higher layer

Slightly?! That's an understatement of the week! The difference in abstraction levels is huge here and the specifics of the two levels are very, very different.

> in terms of what you need to know, an OS class or three is definitely helpful

Sure. But I think it's as useful as any systems programming course. I can agree that systems programming is a good preliminary for both Browsers and OSes, and learning either of the two will teach you a good deal about systems programming, but I doubt they will repeat each other.

Re: Web Browser Engineering

#28

I can't wait for Browser Engineering to show up as a university course a la compilers, operating systems, networks, etc.

Author here.

That's exactly what we are hoping for.

http://browser.engineering/preface.html

So far, my co-author Pavel has taught from this book multiple times (including this semester). In the spring at least one other university will offer a course. We'll list all known courses offerings on the website.

Also, if anyone would like to teach from this book, please get in touch!

Re: Web Browser Engineering

#29

As a front end developer, I am really happy to see resources like this. Developing for the browser is a real challenge. I think working with html / css /js has been a neglected skill for a long time - most software engineers look down on that type of work and its rarely covered in comp sci course work. Still, its good to see a lot of progress has been made, this book included. My only critique - why use python instea…

Author here. I wrote up my answer here: http://browser.engineering/blog/why-python.html Basically: server-side JavaScript is just not as widely known as Python, and it'd be additionally confusing when our browser starts running JavaScript. And in-browser JavaScript is a bit too restricted (by things like the same-origin policy) to do the whole thing inside a browser.

Great blog design, btw! I love the way it displays footnotes (if you can call them that now) on page margins.

Does it have RSS?

Re: Web Browser Engineering

#30

Earlier quoted context omitted.

Actually a from-scratch web browser is being built: https://www.fastcompany.com/90611677/flow-ekioh-web-browser-... Also you should take a look at the WHATWG because it’s far more relevant than the W3C nowadays.

"The total word count of the W3C specification catalogue is 114 million words at the time of writing. If you added the combined word counts of the C11, C++17, UEFI, USB 3.2, and POSIX specifications, all 8,754 published RFCs, and the combined word counts of everything on Wikipedia’s list of longest novels, you would be 12 million words short of the W3C specifications" https://drewdevault.com/2020/03/18/Reckless-limit…

It's well known that Drew Devault count is meaningless since it includes dupes, drafts, and unrelated specs. Still, the space to cover for a from scratch browser is huge.

Flow didn't start "from scratch" recently, it's an evolution of a primarily SVG+CSS renderer for set top boxes. They also re-use Spidermonkey as their Javascript engine.

Post reply on HN