- Let's write a web browser.
- In order to write a web browser, we'll first need to write a programming language to write the web browser in.
- We started writing a programming language for web browsers, but our programming language turned out to be so good at writing operating systems that now we're rewriting the Linux kernel in it, and that's taking up enough time we had to put the web browser on hold

Hold on is Rust just the grandest exercise in yak shaving ever committed

(The actual answer to this question is no, because the Intel x86 chip originally started as a project to build a dumb display terminal to use as a keyboard/monitor frontend for mainframes. They were like hmm, the chip we made for that one dumb terminal is pretty good, could we just sell it by itself?)
@mcc the curse of the temporary replacement/fix/hack strikes from the past
@Ronflaix @mcc As they say "there is nothing more permanent than a temporary solution"
@mcc Really? I thought it was a follow-on to the 8080, which was a follow-on to the 8008, which was a follow-on to the 4004, which was designed for calculators.

@AlgoCompSynth @mcc The designer of the 4004 fixed up the design of the 1201, which had been designed as a single-chip implementation of the Datapoint 2200 terminal's discrete circuits. (Datapoint had walked away from the deal because the 1201 was slower than their discrete implementation, even though the discrete version was a serial circuit.)

The fixed 1201 was renamed the 8008 and marketed as an upgrade of the 4004, but it had nothing in common from a design point of view.

@mcc The Wikipedia article that statement is from is misquoting its sources.

The 8086 _was_ designed to have assembly-level compatibility with the 8080 which in turn descended from the 8008. But the same is true for say the Zilog Z80 (designed by the same people that designed the 8080).

But that doesn't mean the 8086 was designed for the same use cases the 8080 was.

@mcc At the time, ~nobody was using higher-level langs to write code for 8-bit CPUs, so the (albeit somewhat superficial) source-level compatibility was useful to get SW up and running.

This part in the article is wrong though:

"Whereas the 8086 was a 16-bit microprocessor, it used the same microarchitecture as Intel's 8-bit microprocessors (8008, 8080, and 8085). This allowed assembly language programs written in 8-bit to seamlessly migrate.[7]" Not true, and the source doesn't claim this.

@mcc The 8086 had a different microarchitecture from the 8-bit Intels (it was a 16-bit CPU for crying out loud!). What the source states is "The 8086 is software-compatible with the 8080 at the assembly-language level." which is true, if you use the right assembler.

But the compatibility we're talking about really is skin-deep at best. This was the CPU equivalent of Steve Bournes (of Bourne shell fame) infamous "make it ALGOL" macros for C: https://research.swtch.com/shmacro

research!rsc: Bourne Shell Macros

@mcc FWIW the actual source is here: https://archive.org/details/8086808880286ass0000scan/page/12/mode/2up and goes on "with some minimal translation, existing 8080 programs can be reassembled and executed on the 8086. To allow for this, the 8080 registers and instructions appear as subsets of the 8086 registers and instructions."

All totally reasonable, but it doesn't make the 8086 an expanded 8080 any more than the existence of Rosetta 2 on Apple Silicon makes 64-bit ARM an expanded x86-64.

8086/8088/80286 assembly language : Scanlon, Leo J : Free Download, Borrow, and Streaming : Internet Archive

xvi, 378 p. : 24 cm

Internet Archive
@mcc Itanium 2 was pretty good at DGEMM
@mcc With x86 being essentially a CTC architecture, I'm not sure Intel has ever made a successful CPU architecture, and not for lack of trying
@bobayaga This is a pretty good post, out of curiosity, do you know why it might have been sent 5 times? (Like if you couldn't get it to go through and hit post a few times that's fine, just curious if mastodon.social is doing something weird.)
@mcc There seemed to be a connection problem between Tusky and my instance that caused a bunch of retries
@bobayaga @mcc
They even tried with the move to 64-bit, but what is the instruction set we use called? amd64? That must really stick in Intel's craw from time to time. (:
@DopeGhoti @bobayaga @mcc to the point they refer to it as x64, x86-64, or Intel 64, (not IA-64) but never amd64
@mcc bonus, you can run it in the browser! (When the browser will be finished... or in any existing one!)
@tdelmas I'm going to build servo in webasm and then host servo inside of itself
@mcc @tdelmas I herewith hypothesise that we all live inside a web browser.
@hllizi @mcc @tdelmas some say the Matrix is written in rust 🙃
@chibani @hllizi @tdelmas Says here they've switched to Go https://github.com/matrix-org
The Matrix.org Foundation

A new basis for open, interoperable, decentralised real-time communication - The Matrix.org Foundation

GitHub

@mcc @chibani @tdelmas I'll have to get acquainted with go. So many people use, so many people obviously like it, good, clever and beautiful people, but all I ever think about when I hear the name is "it uses products for error management".

There must be something to it, I'll have to find out.

@hllizi @chibani @tdelmas Well, having learned Go for a project last year, what I can say is that it's a well considered, well thought out, compelling language with a totally miserable error handling idiom that makes me not want to use the language

Also it's really frustrating they don't have iterators and expect you to use for(;;), which in my opinion is the real billion dollar mistake. "NULL" is fine as long as it's opt-in

@mcc The Ladybird browser project has its own programming language and an OS too.
@finagle @mcc sounds like Yakt is kinda on the backburner on this point.
(And before anyone asks: no they’re not porting it to Rust either. There’s some reasoning for this, and was also the genesis behind making this other language).
@mcc if you wish to make a web browser from scratch, you must first invent the universe
@mcc meanwhile most of the tech world runs on the thing that someone cooked in a weekend to make do while waiting for the good, proper thing.
@mcc at what point did people branch off to try and make their browser an operating system?
@mcc It is still quite far away from the TeX yak shave, but yes.
@mcc Ladybird also has this vibe :

- let's build an os to change my mind.
- our os works but we can't do anything with it.
- let's build a browser.
- that's not as hard as we thought.
- let's replace most of our external dependencies with our code.
(WE ARE ARE)
- most website bugs, let's work it out.
- make it fast now
- our engine is used by many projects and challenge chromium monopoly.
@mcc You underestimate yak shavers
@[email protected] there is too much technical debt from the 70s and needs paying
@mcc (Or, are webbrowsers secretly operating systems?)