On Wed, Aug 11, 2010 at 3:23 PM, Alexandre Bergel <[email protected]>wrote:
> > Yes please don't add that. > > This is not my intention. But I just discovered some bugs in my test > because I instantiated a class that shouldn't be instantiated since it is > abstract. > If now we close our eyes and dream about a clean oo language. Will > forbidding to instantiate an abstract class a wished feature? > > I am also against of this change. We should continue to have flexible language and not to convert this in Java. In addition, I MAY want to instantiate Abstract classes. Sometime you are doing prototypes, or TDD, and you want to instantiate an object of an abstract class. Even if you have a subclassResponsability. I don't care. Maybe I am not testing that right now, nor showing that to my client. I think the correct way to detect your kind of problems is with Lint. If it is not already done, maybe it could be added. Cheers Mariano > Cheers, > Alexandre > > > > > On Wednesday, August 11, 2010, Stanislav Paskalev <[email protected]> > wrote: > >> And it will also require modifying the Pharo by Example book that says > >> that there's nothing wrong with instantiating abstract classes and > >> that there is no *abstract* class marker in this sense, only abstract > >> methods. > >> > >> So, why would try to convert Pharo to another language ? > >> > >> Stanislav Paskalev > >> > >> > >> On Wed, Aug 11, 2010 at 3:43 PM, Alexandre Bergel <[email protected]> > wrote: > >>> Hi! > >>> > >>> Just wondering. What about redefining new into: > >>> -=-=-=-=-=-=-=-=-=-=-=-= > >>> Behavior>>new > >>> "Answer a new initialized instance of the receiver (which is a > class) with no indexable variables. Fail if the class is indexable." > >>> self isAbstractClass ifTrue: [ self error: 'An abstract class > cannot be instantiated' ]. > >>> ^ self basicNew initialize > >>> -=-=-=-=-=-=-=-=-=-=-=-= > >>> > >>> This may break a lot of code however. > >>> > >>> Cheers, > >>> Alexandre > >>> -- > >>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > >>> Alexandre Bergel http://www.bergel.eu > >>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > >>> > >>> > >>> > >>> > >>> > >>> > >>> _______________________________________________ > >>> Pharo-project mailing list > >>> [email protected] > >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > >>> > >> > >> _______________________________________________ > >> Pharo-project mailing list > >> [email protected] > >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > > -- > > Lukas Renggli > > www.lukas-renggli.ch > > > > _______________________________________________ > > Pharo-project mailing list > > [email protected] > > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > -- > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > Alexandre Bergel http://www.bergel.eu > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > > > > > > > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >
_______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
