[Pharo-project] Stack should be reimplemented with Array

Stéphane Ducasse stephane.ducasse at inria.fr
Tue Oct 19 07:21:31 EDT 2010


On Oct 19, 2010, at 1:23 AM, Igor Stasenko wrote:

> On 19 October 2010 00:25, Levente Uzonyi <leves at elte.hu> wrote:
>> On Mon, 18 Oct 2010, Igor Stasenko wrote:
>> 
>>> Stephane, i could say more:
>>> - i don't like how LinkedList implemented.
>>> 
>>> I don't see why it should mimic things like #at: #at:put: at all..
>> 
>> It's not mimicing those methods. A list usually support things like this,
>> but the user should know the consequences.
>> 
> 
> The consequences of such approach is much more far-reaching: leads to
> bad design practices, crappy application performance,
> and then tons of bugs and workarounds.
> 
>>> IMO this protocol should be pruned from it, to not provoke uses which
>>> completely do not fit for given data structure.
>> 
>> I'm not sure if it's okay to remove features, because users lacking really
>> basic CS knowledge may use them the wrong way.
>> 
> 
> Imo, we should prohibit this from the beginning. Standard, core
> classes should not contain an API, which could lead to
> careless, abusive programming techniques.

Yes and we should have comments comments comments and comments.

> IMO, a kernel APIs should serve not only as an implementation of basic
> system funcionality, it also must serve as guide,
> how to best use these facilities, so people will learn what is the
> right way to use it.
> 
> We should teach users to use right tools for things they need.
> 
> 
>>> 
>>> Removing/inserting into the middle of list is quite ineffective
>>> operation (O(n)),
>> 
>> As long as you don't give away the link objects, it's O(n), otherwise it can
>> be O(1).
> 
> giving away link objects... oh, that's the worst thing, which could
> possibly happen :)
> 
>> 
>>> while inserting at the begginning/end of list is O(1).
>>> 
>>> Lists are sequenceable.. but sequenceable ~~ indexable. Period.
>> 
>> Sequenceable is indexable, but good performance is not guaranteed.
>> 
> Unless you representing an infinite collection(s).
> Streams are good example of sequenceable, however non-indexable containers.
> 
> 
>> 
>> Levente
>> 
>>> 
>>> --
>>> Best regards,
>>> Igor Stasenko AKA sig.
>>> 
>>> _______________________________________________
>>> Pharo-project mailing list
>>> Pharo-project at lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>> 
>> 
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project at lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>> 
> 
> 
> 
> -- 
> Best regards,
> Igor Stasenko AKA sig.
> 
> _______________________________________________
> Pharo-project mailing list
> Pharo-project at lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project





More information about the Pharo-dev mailing list