<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    On 12/10/16 17:09, Alexandre poirot wrote:<br>
    <blockquote type="cite"
cite="mid:CABCHQ2gvbCh=XiW2KkSUxj3MwPUcygyRtYnCveDrcUmhNdUwjA@mail.gmail.com">
      <blockquote class="gmail_quote" style="margin:0px 0px 0px
        0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
        <div dir="ltr">
          <ol>
            <li>XPCOM / XPIDL, for better or worse, offered a boundary
              and interface system. I think those interfaces were
              originally intended to be pretty stable. Down the line, I
              seem to recall us deciding that having frozen interfaces
              there was slowing us down, and so now those interfaces are
              changed at will. I understand that we were more
              constrained because more applications were relying on the
              underlying interfaces, but this all starts to feel kinda
              familiar. Are we at risk of creating a new set of
              interfaces and silos that get holes poked through them
              over time because they slow us down instead of speeding us
              up? Are we repeating ourselves? If so, what did we learn
              last time that will make this time better?<br>
            </li>
          </ol>
        </div>
      </blockquote>
      <div>We do have some boundaries with XPCOM, some others with JSM,
        yet some others with message managers.<br>
      </div>
      <div>But that's just too many different kind of
        boundaries/interfaces. If we only had one border, everything
        would have been much better.<br>
      </div>
      <div>If you look, again, at session restore you will have to go
        through all of them and it is far from being obvious and will
        feel very hard to approach to anyone except mozilla employees
        who have to learn all these things. Web extension abstracts all
        that. The difference between a content script and a background
        page is very small. </div>
    </blockquote>
    <p>I have to disagree on this.</p>
    <p>XPCOM boundaries are per-instance boundaries, JSM is
      more-clearly-than-xpcom service boundaries, message managers are
      on-change notification boundaries.</p>
    <p>Those things are just realities in software design, and need to
      be reflected.</p>
    <p>I think it's an element of good software architecture that the
      difference between these three concepts manifests in the APIs in
      which you interact with them.</p>
    <p>Axel<br>
    </p>
  </body>
</html>