Hacker Newsnew | past | comments | ask | show | jobs | submit | more StephenFalken's commentslogin

Great point.

The original Usenet comp.mail.pine newsgroup post [1] by Mark Crispin (father of the IMAP protocol):

  This statement is based upon a terrible misunderstand of Postel's
  robustness principle. I knew Jon Postel. He was quite unhappy with
  how his robustness principle was abused to cover up non-compliant
  behavior, and to criticize compliant software.

  Jon's principle could perhaps be more accurately stated as "in general,
  only a subset of a protocol is actually used in real life. So, you should
  be conservative and only generate that subset. However, you should also
  be liberal and accept everything that the protocol permits, even if it
  appears that nobody will ever use it."
[1] https://groups.google.com/d/msg/comp.mail.pine/E5ojND1L4u8/i...


I don't give this reminiscence ANY credit. The very first version of Postel's law makes it VERY clear that Postel intended his law to deal with non-compliant behavior in a tolerant or "liberal" way: "In general, an implementation should be conservative in its sending behavior, and liberal in its receiving behavior. That is, it should be careful to send well-formed datagrams, but should accept any datagram that it can interpret (e.g., not object to technical errors where the meaning is still clear)."

See my potted history of Postel's law: http://ironick.typepad.com/ironick/2005/05/my_history_of_t.h...


Nice to see that so well documented: I'd only seen the one most common reference, RFC 793.

That said, it's still unclear how far this extends: the example given is of an unknown error code, which might lead you to think that the requirement is "syntactically well-formed input where you can't 100% determine the semantics." That's a far cry from the way browsers handle malformed HTML. Similarly, you have to apply some judgment concerning what an agent can interpret the meaning of.


It's pretty impressive how LEGO has changed its destiny in the last 10 years, given this: [1]

  In 2003, The LEGO Group faced a budget deficit of 1.4 billion DKK (220 million
  USD at then current exchange rates; equal to EUR 175 million),[40] causing
  Poul Plougmann to be replaced by Kjeld Kirk Kristiansen as president. In the
  following year, almost one thousand employees were laid off, due to budget
  cuts. However, in October, 2004, on reporting an even larger deficit, 
  Kristiansen also stepped down as president, while placing 800 million DKK of 
  his private funds into the company.
Right now, LEGO is the largest toy company in the world, surpassing Mattel since late 2014. [2]

[1] https://en.wikipedia.org/wiki/The_Lego_Group#Financial_resul...

[2] http://time.com/money/3268065/lego-largest-toy-company-matte...


  C is quirky, flawed, and an enormous success. While accidents of history surely
  helped, it evidently satisfied a need for a system implementation language
  efficient enough to displace assembly language, yet sufficiently abstract and
  fluent to describe algorithms and interactions in a wide variety of environments.

  -- Dennis M. Ritchie (in "The Development of the C Language" [1])
[1] http://heim.ifi.uio.no/inf2270/programmer/historien-om-C.pdf


Great point !


no, it's a really contrived point.


You raise a really interesting point about the relevance of Source Routing.

Recently I read a small but significant paper by Carl A. Sunshine [1] (from the beginning of 1977) about Source Routing and some of its implications. This was written at a time when there was still a very active community researching the fundamentals of Computer Networking.

He shows how one could build an even simpler and dumber (while still functional) core computer network with no routing infrastructure (pretty amazing concept when you think of it), no global addresses and no global node naming. All that complexity would be transferred to the endpoints, making the whole network even more configurable and adaptable to topology changes. Endpoints would have a more powerful and free participation in that network. The End-to-End Principle taken to its limits.

Is there still some deep fundamental research on the feasibility of such a large scale network based on Source Routing ?

[1] Source Routing in Computer Networks http://cartap.us/p29-sunshine.pdf


For those wishing to try and submit the problems, there is an online judge containing the ACM-ICPC World Finals since 2012 till 2015 [1].

[1] https://icpc.kattis.com/problems


A bit of UDP history by its creator [1]:

  Actually, UDP was "un-designed" by me and others.By this I mean that 
  UDP was the final expression of a process that today we would call 
  "factoring" an overcomplex design. Originally, the ARPANET end-to-end 
  protocol NCP was a "kitchen sink" oriented toward providing remote 
  teletype-centric access using the "telnet" protocol and the "FTP" 
  protocol to remote machines over a packet network.

  A group of us, interested in a mix of real-time telephony, local area 
  networks, distributed operating systems, and communications security, 
  argued for several years for a datagram based network, rather than a 
  virtual circuit based network. The group involved me, John Schoch and 
  Yogen Dalal of Xerox PARC, Danny Cohen of ISI (now at Caltech, I think), 
  and Steve Crocker, with Jon Postel as a supporter, and Vint Cerf and Bob 
  Kahn as neutral referees.

  UDP was actually "designed" in 30 minutes on a blackboard when we decided 
  pull the original TCP protocol apart into TCP and IP, and created UDP on 
  top of IP as an alternative for multiplexing and demultiplexing IP 
  datagrams inside a host among the various host processes or tasks. But it 
  was a placeholder that enabled all the non-virtual-circuit protocols since 
  then to be invented, including encapsulation, RTP, DNS, ..., without having 
  to negotiate for permission either to define a new protocol or to extend 
  TCP by adding "features".
[1] "udp and me" http://www.reed.com/blog-dpr/?page_id=6


Exactly. For those of us who like to play around with protocols over the real Internet, availability of UDP as basically a proxy IP protocol is a godsend. Well what really matters is that a few uses of UDP over the internet are well established (DNS, VOIP etc.) and that makes it hard for ISP's and middle-boxes to block arbitrary UDP ports. And that makes UDP the perfect conduit to invent custom protocols.



Thanks for that snapshot. Unfortunately it's missing a lot of the content that was available there. It's only around 1/3 of the full content.


That makes me remember the now famous quote:

  The Internet was done so well that most people think of it as a natural 
  resource like the Pacific Ocean, rather than something that was man-made. 
  When was the last time a technology with a scale like that was so error-
  -free? The Web, in comparison, is a joke. The Web was done by amateurs.

    -- Alan Kay


What year is that quote from?


2012: the full interview is here: http://www.drdobbs.com/architecture-and-design/interview-wit...

The complete quote:

Binstock: One thing about jazz aficionados is that they take deep pleasure in knowing the history of jazz.

Kay: Yes! Classical music is like that, too. But pop culture holds a disdain for history. Pop culture is all about identity and feeling like you're participating. It has nothing to do with cooperation, the past or the future — it's living in the present. I think the same is true of most people who write code for money. They have no idea where [their culture came from] — and the Internet was done so well that most people think of it as a natural resource like the Pacific Ocean, rather than something that was man-made. When was the last time a technology with a scale like that was so error-free? The Web, in comparison, is a joke. The Web was done by amateurs.

Edit to add some context:

Kay: Go to a blog, go to any Wiki, and find one that's WYSIWYG like Microsoft Word is. Word was done in 1984. HyperCard was 1989. Find me Web pages that are even as good as HyperCard. The Web was done after that, but it was done by people who had no imagination. They were just trying to satisfy an immediate need. There's nothing wrong with that, except that when you have something like the Industrial Revolution squared, you wind up setting de facto standards — in this case, really bad de facto standards. Because what you definitely don't want in a Web browser is any features.


It's amazing how much harder a decent wysiwyg is to make in web technologies than you'd think. Content editable was supposed to get us there, but needs a ton of override. Grouping key and click events into actions the way youd expect ms word to function is again not easy!


It is difficult, I agree. But that's not really the point Kay is trying to make. Why should we implement these things in the web browser? Further in the interview, Kay remarks that that is exactly the problem - that we are reinventing technologies that were around for decades (reinventing them poorly to boot, as he puts it "reinventing a flat tire").

I happen to agree with him in theory: I think it's a huge missed opportunity to force the browser to be an application delivery mechanism instead of a content-delivery mechanism (or "object"-delivery as he puts it).

But of course in practice, there are historical and political reasons as to why web-as-an-app-delivery-mechanism happened, not least of which - if we took Kay's example of MS Word - is Microsoft's unwillingness to open up the platform (or proprietary software, in general). So we had to re-solve these problems in non-proprietary ways, while forcing proprietary app providers to conform to web standards that would ultimately and perhaps knowingly cannibalize their software sales.


@raldi, "Interview with Alan Kay", 2012JUL10 ~ http://www.drdobbs.com/architecture-and-design/interview-wit... and another on ars that talks around this quote ~ http://arstechnica.com/information-technology/2013/06/parsin...


Some trivia from Wikipedia [0]:

  The movie Tron: Legacy, which revolves around a world inside a computer system, 
  features a character named Zuse [1], presumably in honour of Konrad Zuse.
[0] https://en.wikipedia.org/wiki/Konrad_Zuse#Zuse_Year_2010

[1] http://www.imdb.com/character/ch0209988/?ref_=tt_cl_t7


Some years before his death, Konrad Zuse wrote a book about his long and interesting life called "Der Computer - Mein Lebenswerk", which was later translated to an English version titled as "The Computer - My Life".


Lebenswerk means life's work, not life.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: