3 ms·
https://en.wikipedia.org/wiki/End-to-end_principle https://en.wikipedia.org/wiki/End-to-end_principle
by gwern 5y ago
https://en.wikipedia.org/wiki/End-to-end_principle https://en.wikipedia.org/wiki/End-to-end_principle
- thaumasiotes 5y agoI think the author is going for more of https://en.wikipedia.org/wiki/Star_topology https://en.wikipedia.org/wiki/Star_topology, just with the special case added that you're simplifying a bipartite graph rather than a general graph.
- chubot 5y ago(author here) How does that relate to the article? It's definitely an important principle of network design, but the narrow waist principle is distinct. The waist isn't the middle of the network as far as connectivity; it's the architectural middle with applications on top and transports on bottom. I think these are mostly separate issues, but I'm interested in any elaboration.
- gwern 5y agoThe narrow waist falls out of the end to end principle because when you push all the intelligence out to the ends, there is often only one reasonable intermediate/substrate; and all narrow waists in your article, whether TCP/IP or text formats, are driven by end-to-end concerns. The narrow waist is the special-case of the more important principle. Anyone who thinks about these issues will be thinking about end to end, so at the very least, you should discuss why you think narrow waist is more fundamental and important than end to end. BTW, all NAPs are available online as a federal government body, all you had to do is google the title, no need to buy it: https://www.nap.edu/read/4755/chapter/1 https://www.nap.edu/read/4755/chapter/1 While we're linking things, 'commoditize your complement' https://www.gwern.net/Complement https://www.gwern.net/Complement is very relevant to web browser dynamics, and 'bitrot'/'bitcreep' are relevant to upgrading systems and choice of standards https://www.gwern.net/Holy-wars https://www.gwern.net/Holy-wars .
- chubot 5y agoThanks for the PDF link. I downloaded it and the funny thing is that it ended up at 4755(1).pdf on my computer. I had downloaded it in July, but neglected to read it, or remember that I downloaded it! BTW I found an earlier citation for the hourglass metaphor after publishing the post: https://www.oilshell.org/blog/2022/02/diagrams.html#addendum https://www.oilshell.org/blog/2022/02/diagrams.html#addendum (John Aschenbrenner in 1979, with reference to a 1984 article by Jean Bartik) ----- I see your point, but my main focus is on writing O(M + N) code, not O(M * N) code, and the narrow waist captures that. I'm making an analogy from networking to software. The linked video uses "coding the area" vs. "coding the perimeter", but even that doesn't capture the idea that there is a narrow waist that somebody actually designed! The waist is a real thing and it makes the interoperability and code reduction possible. I think the key difference is incentives: - In networking, there is a big incentive to interoperate (Metcalfe's law). And arguably the Internet "completed" this task decades ago. - In software, there is an incentive to build your own walled gardens, and not interoperate (Microsoft and Win32, Apple and iTunes, Google and the Cloud, etc.). But fundamentally there is the O(M x N) issue in both cases. Basically I'm tired of writing software for this reason :) I'm not sure I agree that the narrow waist "falls out" of the end-to-end principle even in the networking domain. See all citations about the moving narrow waist. It's far from clear what the design should be. The narrow waist isn't pure or mathematical -- it's a deep engineering compromise and can be done well or poorly. Even if it does fall out in networking, it definitely doesn't in software. Like the Unix syscall interface is small but far from trivial. It's been haphazardly extended. People argue about its design all the time. Ditto for ISAs -- the designs are heavily debated compromises. There are constant arguments about narrow waists on Hacker News. The bias I tend to see is favoring local convenience over system integrity and economy. It sounds very related to your Holy Wars article -- Thanks, I will read it and the other ones :) The Spolsky article is great and I quoted a few others here: http://www.oilshell.org/blog/2021/07/spolsky.html http://www.oilshell.org/blog/2021/07/spolsky.html ----- There are more dimensions to this that I would like to cover, e.g. https://old.reddit.com/r/programming/comments/t2bapy/the_internet_was_designed_with_a_narrow_waist/hynz9cu/ https://old.reddit.com/r/programming/comments/t2bapy/the_int... Comments appreciated. I should mention the relation to Metcalfe's law, monopolies, and the end-to-end principle later at some point in the series.