On Wed, Aug 11, 2010 at 3:23 PM, Alexandre Bergel <alexandre@bergel.eu> 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 <kshorg@gmail.com> 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 <alexandre@bergel.eu> 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
>>> Pharo-project@lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project@lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> Lukas Renggli
> www.lukas-renggli.ch
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project@lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel �http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project