"not realizing, that they built a perfect jail for themselves, without any means to escape from it and do something in real world."
Right on Igor. I hate jails. Pharo is such a breath of fresh air. I can kill myself in all kinds of ways, each of which led a step further on the path towards enlightment in coderland. Pharo|Smalltalk: also acts as a pretty good coder filter. Phil On Thu, Nov 3, 2016 at 10:15 PM, Igor Stasenko <siguc...@gmail.com> wrote: > > On 3 November 2016 at 07:11, Dimitris Chloupis <kilon.al...@gmail.com> > wrote: > >> Actually sorry Igor but you are wrong, you just defeated the purpose of >> Smalltalk. To expose you to the internals. Of course you can implement >> interfaces. You can even implement static types. You can do anything you >> want. >> >> > So, why you asking then 'why smalltalk doesn't have .... ' when you know > that in smalltalk you can do anything you want? > Yes, you can do anything you want, but not everything you can do makes > sense to do. > And it doesn't defeats the purpose of smalltalk, it just defeats the > common sense. > > And last one, i don't understand what kind of 'exposure to internals' you > are talking about. > In smalltalk people used to write a functional tests, to check that your > code behaves as intended. Now you proposing to introduce static interfaces, > borrowed from other lanuages, the only purpose of which is to declare that > your code *could* behave as intended, no guarantees , nothing. > Just a set of formal rules on top of existing ones, with ZERO end effect > and benefits. > You want it? You are free to implement it. Good look with it.. > > I wonder, why so many people think that if they put soft pillows > everywhere, seal the doors (because outside is dangerous) , and after > sealing and pillowing everything they happily rest with thought 'now we are > safe'.. not realizing, that they built a perfect jail for themselves, > without any means to escape from it and do something in real world. > > The compiler is written in Smalltalk after all. >> >> On Wed, 2 Nov 2016 at 23:02, Igor Stasenko <siguc...@gmail.com> wrote: >> >> >> If you want to ensure that your class(es) comply with certain protocol, >> just write a test that covers the protocol and checks that class instances >> will understand messages you want it to understand. >> But there's no way to restrict your class to comply to whole protocol >> once at a time, because tools made in a way, that you populating your class >> with methods, each method is add individually and compiled separately, and >> the only validation, the compiler is capable of is basically compliance >> with smalltalk syntax. And it doesn't cares about higher lever requirement, >> like whether your class turns to be 'valid' because of a method you just >> added, ready to be used and for what. >> Even more, there's no way to connect all those 'interface' formalisation >> garbage rules with send sites (the place where you actually invoking one or >> another method of one of potetial implementor of your interface), so it >> makes no sense to do any (pre)validation on whatever class/object in a >> system in order to check whether it conforms with it or not. >> That's " Why don't Smalltalk or Smalltalklike languages have checked >> interfaces?" >> >> -- >> Best regards, >> Igor Stasenko. >> >> > > > -- > Best regards, > Igor Stasenko. >