<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><BR><DIV><DIV>On Aug 30, 2007, at 1:50 AM, Marcel Weiher wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><P style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">On Aug 26, 2007, at 3:10 AM, Fabio Filasieno wrote:</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <BLOCKQUOTE type="cite"><BLOCKQUOTE type="cite"><P style="margin: 0.0px 0.0px 0.0px 20.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">Smalltalk is very different - you always can add behaviour you</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 20.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">need to the other object and the application logic is distributed</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 20.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">across the system.</FONT></P> </BLOCKQUOTE><P style="margin: 0.0px 0.0px 0.0px 10.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 10.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">That's not the point, but you are right, Unix and Smalltalk are different.</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 10.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">In regard to the black boxes thing.</FONT></P> </BLOCKQUOTE><P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">I think a lot of the differences are superficial, but one seems very deep:<SPAN class="Apple-converted-space">  </SPAN>Unix's unifying principle is extensional, Smalltalk intensional.</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">That is, Unix gets its power from the fact that everything is just represented as bytes, and you can pipe those around.<SPAN class="Apple-converted-space">  </SPAN>Who cares what they mean?<SPAN class="Apple-converted-space">  </SPAN>To the refined tastes of us Smalltalkers that seems barbaric, but it is very powerful in a very pragmatic sort of way, and gets you extremely loose coupling and late binding (of things other than the fact that it's all just bytes).<SPAN class="Apple-converted-space">  </SPAN>Of course, you lose moving to higher levels of abstraction, and no, XML doesn't really do it.</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">Smalltalk, on the other hand, does really well with modelling semantics, as objects sending messages, but has a hard time extending its unifying principle outside the image.<SPAN class="Apple-converted-space">  </SPAN>Which is somewhat ironic considering the idea was connecting things and late, late binding.</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">Marcel</FONT></P> </BLOCKQUOTE></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>This is very very true.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><BLOCKQUOTE type="cite">I think a lot of the differences are superficial, but one seems very deep:  Unix's unifying principle is extensional, Smalltalk intensional.</BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>... and there is a powerful economical reason for that... on why UNIX selected an extensional unifying principle ....</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Developer x produces process A.</DIV><DIV>Developer y produces process B.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>In order to get that magical FREE method - A | B - the return value of A must match the input value B. How to maximize this benefit considering a set of methods that are developed individually but shared? Because if output and input don't match then there is no trick.</DIV><DIV>The solution is make all processes have save input and output type: use simple text ... which by the way happens to be human readable.</DIV><DIV>It's like an invisible hand has moved the UNIX guys to select a unique format to maximize common benefits under the shape of free functionality.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Fabio Filasieno</DIV><DIV><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR class="Apple-interchange-newline"></SPAN> </DIV><BR></BODY></HTML>