Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2019-12-24 Thread Torsten Bergmann
To clarify: I was never was for the dot and always favoured the :: notation for 
namespaced classes. With that one one could 
create classes like:

  Seaside::Component
  Core::Boolean
  Model::Person
  GLM::BrickListModel
  Tx::FontAttribute

(see my post on http://forum.world.st/Separator-in-class-names-td4926162.html 
from 2016). I know this from SmalltalkMT 
system and it worked nicely. 


Anyhow: Namespace discussion pop up each year - often in December and mostly 
because we still not have them ;)

The oldest reference you can find is from 2010:   
http://www.jarober.com/blog/blogView?entry=3462762798
mentioning a Google summer of code project.

Then Germán Leiva demonstrates this Namespaces project in Pharo 
https://www.youtube.com/watch?v=n4I7fSVNX2A
then it was declared dead:   
http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/2012-June/066765.html

Then there was a discussion from 2012:
http://forum.world.st/Pharo-and-Namespaces-td4636635.html
and one in 2016  http://forum.world.st/Separator-in-class-names-td4926162.html


Having proper namespaces would avoid such strange things as in 
https://github.com/pharo-spec/Spec/issues/813
and solve many other issues (but introduce new ones as well). 

But as always it is a question of time and resources. It's not only about 
introducing the namespaces itself - 
it would also mean to change the tools to support them.


With Pharo 8 now more experiments are possible into bootstrapping an own Pharo 
(possibly with Namespaces):

  1. One can bootstrap an own image / have it's own personal "Pharo" using 
Bootstrap to do experiments

https://github.com/pharo-project/pharo/tree/Pharo8.0/bootstrap

https://rmod.inria.fr/archives/papers/Poli15a-Onward-Bootstrapping.pdf

  2. A class now knows about its environment

environment
"Return the environment in which the receiver is visible"
 ^Smalltalk globals

 and OpalCompiler supports an environment in the CompilationContext.
 
 So basically you can compile into a second environment withing the 
existing running image.

  3. There is an experiment on modules called Metalo:

  https://github.com/guillep/metalo

According to what Stef wrote on Discord in #bootstrap channel:

  "The idea is that we want to be able to edit dynamically module (package 
+ namespace) without for example having to 
   remove a full hierarchy of classes when just we change an import 
statement in a module.
   Our goal is to split Smalltalk globals into multiple namespaces one per 
module."
  "Metalo includes also supports for editing module, bootstrapping a kernel 
with modules and new class definitions."

 Dont know about its state.
 
  4. There is a tool called "Candle" to help you bootstrapping own images:

   https://github.com/carolahp/pharo/tree/candle

 so one could bootstrap an own kernel with namespace support or other.


Bye
T.




> Gesendet: Montag, 23. Dezember 2019 um 01:18 Uhr
> Von: "Esteban Maringolo" 
> An: "Any question about pharo is welcome" 
> Betreff: Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern 
> Smalltalk)
>
> There are two uses for namespacing:
> 1. Avoiding class name collisions between different packages
> 2. Modularization
> 
> I don't have the use cases for 2, but Torsten had an idea to support
> the dot in the class name, that'd solve the problem 1. (e.g.
> Chronology.Date and YourPackage.Date).
> 
> Esteban A. Maringolo
> 
> On Sun, Dec 22, 2019 at 8:57 AM ponyatov  wrote:
> >
> > What is the modern state of namespaces support? Maybe in Pharo 8 (or 9)
> >
> > I'm going to model some generic async Smalltalk in Pharo, package-bounded
> > namespaces can save me from prefixing every class name.
> >
> >
> >
> > --
> > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> >
> 
>



Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2019-12-23 Thread Kasper Østerbye
On 23 December 2019 at 01.31.00, Ronie Salgado (ronies...@gmail.com) wrote:

P.S: A bigger problem that I remember from that ESUG discussion is having
namespaced/modularized selectors and extension methods. :)

Was there ever any reasonable solution/proposal to that issue ?

Best,

Kasper


Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2019-12-22 Thread Ronie Salgado
I do not like the idea of using a dot in class names because dot is already
used to separate expressions in a sequence. I am pretty sure that using dot
may introduce several ambiguities in the parsing process. For example, the
following with the current parser will produce the same AST:

someMethod
>   Chronology.Date
>

vs

someMethod
>   Chronology.
>   Date
>

Using spaces for supporting namespace in theory allows for an
implementation that does not require to make several modifications to the
compiler (except for efficiency reasons). Using some other separator such
as two colons ( :: ) may also solve this parsing ambiguity problem. A
single colon ( : ) also posses this ambiguity problem because it could
clash with keyword message sends.

P.S: A bigger problem that I remember from that ESUG discussion is having
namespaced/modularized selectors and extension methods. :)

Best regards,
Ronie


El dom., 22 dic. 2019 a las 21:20, Esteban Maringolo ()
escribió:

> There are two uses for namespacing:
> 1. Avoiding class name collisions between different packages
> 2. Modularization
>
> I don't have the use cases for 2, but Torsten had an idea to support
> the dot in the class name, that'd solve the problem 1. (e.g.
> Chronology.Date and YourPackage.Date).
>
> Esteban A. Maringolo
>
> On Sun, Dec 22, 2019 at 8:57 AM ponyatov  wrote:
> >
> > What is the modern state of namespaces support? Maybe in Pharo 8 (or 9)
> >
> > I'm going to model some generic async Smalltalk in Pharo, package-bounded
> > namespaces can save me from prefixing every class name.
> >
> >
> >
> > --
> > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> >
>
>


Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2019-12-22 Thread Esteban Maringolo
There are two uses for namespacing:
1. Avoiding class name collisions between different packages
2. Modularization

I don't have the use cases for 2, but Torsten had an idea to support
the dot in the class name, that'd solve the problem 1. (e.g.
Chronology.Date and YourPackage.Date).

Esteban A. Maringolo

On Sun, Dec 22, 2019 at 8:57 AM ponyatov  wrote:
>
> What is the modern state of namespaces support? Maybe in Pharo 8 (or 9)
>
> I'm going to model some generic async Smalltalk in Pharo, package-bounded
> namespaces can save me from prefixing every class name.
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>



Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2019-12-22 Thread ponyatov
What is the modern state of namespaces support? Maybe in Pharo 8 (or 9)

I'm going to model some generic async Smalltalk in Pharo, package-bounded
namespaces can save me from prefixing every class name. 



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-20 Thread Jimmie Houchin
Thanks for the reply and for your explanation and Pharo's position on 
this idea and on the subject of namespaces and modules. I was simply 
offering a solution that was presented at Smalltalks conference.


My use of Pharo is in the small. I do not in general see or know the 
problems associated with namespaces. I may see consequences in other 
people's software I use in Pharo because of the naming of classes. But 
it is them that dealt with the problem. I am very unqualified to comment 
or address either of these issues. I just didn't know who had seen the 
video and if it offered a solution or not. Thank you for engaging the 
conversation so that we have a position on record regarding a publicly 
available video which offers their view on a solution. You addressed one 
of the things I do love about Pharo and its expressed goals is that it 
seeks to offer real working solutions. I am okay that the hard things 
take time, and am happy that they are being addressed even if it takes 
some time. Pharo is shaping up very nicely.


Thanks.

Jimmie


On 10/20/2017 04:07 AM, Stephane Ducasse wrote:

For the record at ESUG at Prague there was a really interesting
discussion about namespace and some people working with newspeak
mentioned that the namesapce there was a hell. And I trust these
people. So good luck.

For the record we are working and we are making progress on module
system for Pharo but as I explained at ESUG this year. We do not want
just to have a namespace. We want a system that does not kill the live
programming experience.
Imagine you have two browsers opened:

- in N3 one one you inherit from a class A import from N1
- then in N1 you decide to move that class A to N2

Should the system discard all the subclasses from A n N3 because it
cannot find anymore the class A?

This is why we are working on
  - during year we remove harcoded reference to Smalltalk
  - Undefined classes (read the IWST 2017 paper)
  - new class definition
  - model for class definition
  - real life programming supporting module system.

So each time I hear about namespace, I think that the best way to get
a namespace system for Pharo is to help doing something else.
This way we can concentrate on building a real working solution for
Pharo. But since we have many other things to do then it takes time.

Stef





On Fri, Oct 20, 2017 at 2:30 AM, Jimmie Houchin  wrote:

Absolutely. I have contemplated giving it a try. But when I go look at the
mailing list, it looks like such a lonely place. I still might give it a go.
It looks interesting.

Jimmie


On 10/19/2017 05:20 PM, Ben Coman wrote:

btw, are you aware that Newspeak is developed on top of the CogVM that
Pharo, Squeak, Cuis all share?
cheers -ben

On Fri, Oct 20, 2017 at 12:27 AM, Jimmie Houchin 
wrote:

I watched this video a year ago and was intrigued. I have not thought
about it deeply and do not know consequences of this model. However, Gilad
is a smart man who has thought deeply about these things and has experienced
consequences as a language designer. But it does sound interesting and I
wonder if it would potentially be a solution to the namespace or modularity
problems.

https://youtu.be/pM0Hz4pFDZM

He is talking about Newspeak in 2016 and what I refer to is its use of
Nested Classes.

No Global Namespace
 No Global Variables
 No Pool Variables
 No Class Variables
 No Class Instance Variables

I have no idea if it would work for Pharo or what would be involved in
implementing such. Or even if the community or leaders would even care to
explore that direction. I have not seen it discussed here.

Just wanted to toss his discussion of these ideas into the arena of ideas
for Pharo.

Jimmie



On 10/13/2017 07:53 AM, Esteban A. Maringolo wrote:

2017-10-13 5:55 GMT-03:00 Norbert Hartl :

Am 13.10.2017 um 10:24 schrieb stephan :

On 13-10-17 09:55, Thierry Goubier wrote:

Because namespaces, by essence, come with serious issues. I won't take
someone seriously on namespaces until he can cite those faithfully.

Let's start with the misconception that namespaces are about
modularisation


+1

+1 to this as well.

Having modularization is like having security, very hard to add them
later if you didn't include it in the original design.

I'm using VisualWorks these days, and I find its namespaces something
more of a hassle than a real use.

If we could name Classes with a dot, that could solve most of what
namespaces are used for in practice: avoiding name colissions.
That's why most of the popular frameworks have prefixes like Zn, WA,
RB, and so on and so forth. But now I'm used to prefixes, I don't need
them. :)

Modularity is a different beast, if you look at how some modules work
in JS, like AMD, you see that in practice they avoid collisions by
importin what they need from a module, and assign it to a "namespace"
(it is not, but works as such), so they get 

Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-20 Thread Stephane Ducasse
For the record at ESUG at Prague there was a really interesting
discussion about namespace and some people working with newspeak
mentioned that the namesapce there was a hell. And I trust these
people. So good luck.

For the record we are working and we are making progress on module
system for Pharo but as I explained at ESUG this year. We do not want
just to have a namespace. We want a system that does not kill the live
programming experience.
Imagine you have two browsers opened:

   - in N3 one one you inherit from a class A import from N1
   - then in N1 you decide to move that class A to N2

   Should the system discard all the subclasses from A n N3 because it
cannot find anymore the class A?

This is why we are working on
 - during year we remove harcoded reference to Smalltalk
 - Undefined classes (read the IWST 2017 paper)
 - new class definition
 - model for class definition
 - real life programming supporting module system.

So each time I hear about namespace, I think that the best way to get
a namespace system for Pharo is to help doing something else.
This way we can concentrate on building a real working solution for
Pharo. But since we have many other things to do then it takes time.

Stef





On Fri, Oct 20, 2017 at 2:30 AM, Jimmie Houchin  wrote:
> Absolutely. I have contemplated giving it a try. But when I go look at the
> mailing list, it looks like such a lonely place. I still might give it a go.
> It looks interesting.
>
> Jimmie
>
>
> On 10/19/2017 05:20 PM, Ben Coman wrote:
>
> btw, are you aware that Newspeak is developed on top of the CogVM that
> Pharo, Squeak, Cuis all share?
> cheers -ben
>
> On Fri, Oct 20, 2017 at 12:27 AM, Jimmie Houchin 
> wrote:
>>
>> I watched this video a year ago and was intrigued. I have not thought
>> about it deeply and do not know consequences of this model. However, Gilad
>> is a smart man who has thought deeply about these things and has experienced
>> consequences as a language designer. But it does sound interesting and I
>> wonder if it would potentially be a solution to the namespace or modularity
>> problems.
>>
>> https://youtu.be/pM0Hz4pFDZM
>>
>> He is talking about Newspeak in 2016 and what I refer to is its use of
>> Nested Classes.
>>
>> No Global Namespace
>> No Global Variables
>> No Pool Variables
>> No Class Variables
>> No Class Instance Variables
>>
>> I have no idea if it would work for Pharo or what would be involved in
>> implementing such. Or even if the community or leaders would even care to
>> explore that direction. I have not seen it discussed here.
>>
>> Just wanted to toss his discussion of these ideas into the arena of ideas
>> for Pharo.
>>
>> Jimmie
>>
>>
>>
>> On 10/13/2017 07:53 AM, Esteban A. Maringolo wrote:
>>>
>>> 2017-10-13 5:55 GMT-03:00 Norbert Hartl :
>
> Am 13.10.2017 um 10:24 schrieb stephan :
>
> On 13-10-17 09:55, Thierry Goubier wrote:
>>
>> Because namespaces, by essence, come with serious issues. I won't take
>> someone seriously on namespaces until he can cite those faithfully.
>
> Let's start with the misconception that namespaces are about
> modularisation
>
 +1
>>>
>>> +1 to this as well.
>>>
>>> Having modularization is like having security, very hard to add them
>>> later if you didn't include it in the original design.
>>>
>>> I'm using VisualWorks these days, and I find its namespaces something
>>> more of a hassle than a real use.
>>>
>>> If we could name Classes with a dot, that could solve most of what
>>> namespaces are used for in practice: avoiding name colissions.
>>> That's why most of the popular frameworks have prefixes like Zn, WA,
>>> RB, and so on and so forth. But now I'm used to prefixes, I don't need
>>> them. :)
>>>
>>> Modularity is a different beast, if you look at how some modules work
>>> in JS, like AMD, you see that in practice they avoid collisions by
>>> importin what they need from a module, and assign it to a "namespace"
>>> (it is not, but works as such), so they get modules first, and
>>> namespacing later.
>>>
>>> Regards,
>>>
>>> Esteban.
>>>
>>
>>
>
>



Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-19 Thread Jimmie Houchin
Absolutely. I have contemplated giving it a try. But when I go look at 
the mailing list, it looks like such a lonely place. I still might give 
it a go. It looks interesting.


Jimmie


On 10/19/2017 05:20 PM, Ben Coman wrote:
btw, are you aware that Newspeak is developed on top of the CogVM that 
Pharo, Squeak, Cuis all share?

cheers -ben

On Fri, Oct 20, 2017 at 12:27 AM, Jimmie Houchin > wrote:


I watched this video a year ago and was intrigued. I have not
thought about it deeply and do not know consequences of this
model. However, Gilad is a smart man who has thought deeply about
these things and has experienced consequences as a language
designer. But it does sound interesting and I wonder if it would
potentially be a solution to the namespace or modularity problems.

https://youtu.be/pM0Hz4pFDZM

He is talking about Newspeak in 2016 and what I refer to is its
use of Nested Classes.

No Global Namespace
    No Global Variables
    No Pool Variables
    No Class Variables
    No Class Instance Variables

I have no idea if it would work for Pharo or what would be
involved in implementing such. Or even if the community or leaders
would even care to explore that direction. I have not seen it
discussed here.

Just wanted to toss his discussion of these ideas into the arena
of ideas for Pharo.

Jimmie



On 10/13/2017 07:53 AM, Esteban A. Maringolo wrote:

2017-10-13 5:55 GMT-03:00 Norbert Hartl >:

Am 13.10.2017 um 10:24 schrieb stephan
>:

On 13-10-17 09:55, Thierry Goubier wrote:

Because namespaces, by essence, come with serious
issues. I won't take
someone seriously on namespaces until he can cite
those faithfully.

Let's start with the misconception that namespaces are
about modularisation

+1

+1 to this as well.

Having modularization is like having security, very hard to
add them
later if you didn't include it in the original design.

I'm using VisualWorks these days, and I find its namespaces
something
more of a hassle than a real use.

If we could name Classes with a dot, that could solve most of what
namespaces are used for in practice: avoiding name colissions.
That's why most of the popular frameworks have prefixes like
Zn, WA,
RB, and so on and so forth. But now I'm used to prefixes, I
don't need
them. :)

Modularity is a different beast, if you look at how some
modules work
in JS, like AMD, you see that in practice they avoid collisions by
importin what they need from a module, and assign it to a
"namespace"
(it is not, but works as such), so they get modules first, and
namespacing later.

Regards,

Esteban.








Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-19 Thread Jimmie Houchin
I watched this video a year ago and was intrigued. I have not thought 
about it deeply and do not know consequences of this model. However, 
Gilad is a smart man who has thought deeply about these things and has 
experienced consequences as a language designer. But it does sound 
interesting and I wonder if it would potentially be a solution to the 
namespace or modularity problems.


https://youtu.be/pM0Hz4pFDZM

He is talking about Newspeak in 2016 and what I refer to is its use of 
Nested Classes.


No Global Namespace
    No Global Variables
    No Pool Variables
    No Class Variables
    No Class Instance Variables

I have no idea if it would work for Pharo or what would be involved in 
implementing such. Or even if the community or leaders would even care 
to explore that direction. I have not seen it discussed here.


Just wanted to toss his discussion of these ideas into the arena of 
ideas for Pharo.


Jimmie


On 10/13/2017 07:53 AM, Esteban A. Maringolo wrote:

2017-10-13 5:55 GMT-03:00 Norbert Hartl :

Am 13.10.2017 um 10:24 schrieb stephan :

On 13-10-17 09:55, Thierry Goubier wrote:

Because namespaces, by essence, come with serious issues. I won't take
someone seriously on namespaces until he can cite those faithfully.

Let's start with the misconception that namespaces are about modularisation


+1

+1 to this as well.

Having modularization is like having security, very hard to add them
later if you didn't include it in the original design.

I'm using VisualWorks these days, and I find its namespaces something
more of a hassle than a real use.

If we could name Classes with a dot, that could solve most of what
namespaces are used for in practice: avoiding name colissions.
That's why most of the popular frameworks have prefixes like Zn, WA,
RB, and so on and so forth. But now I'm used to prefixes, I don't need
them. :)

Modularity is a different beast, if you look at how some modules work
in JS, like AMD, you see that in practice they avoid collisions by
importin what they need from a module, and assign it to a "namespace"
(it is not, but works as such), so they get modules first, and
namespacing later.

Regards,

Esteban.






Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-13 Thread Esteban A. Maringolo
You're mixing modularization, namespacing, packaging and parametrization.

If we're speaking about modules/namespaces I rather call them as such,
not Pink Elephant.
Having an agreement on the terms semantic is important for any communication.

To me a module is not a factorization for the bootstrap process nor
the proper packaging to enable partial loading, a module must be
reified as such.

The only Smalltalks I remember had something closer to a module were
VisualSmalltalk and maybe VisualWorks binary parcels can be thought as
modules, but strictly speaking none of them implement modules as such.
Only Modtalk tried to do that, but the project seems defunct now.

Regards,

Esteban A. Maringolo


2017-10-13 12:00 GMT-03:00 Dimitris Chloupis :
> Modularisation is coming whether you like it or not
> its called
>
> Bootstrap
>
> And the more modular the image will get the more will get closer to
> namespaces anyway. So frankly all I have to do is wait and if I can of
> course contribute ;)
>
> You can call it Bootstrap or the Pink Elephant for all I care, in the end
> for me its about having multi layer system. That's all I care.
>
> But you wont get an argument from me the more about the fact that the more
> we wait the harder will get but again, I am not a Bootstrap contributor so I
> have no right to complain. I really admire those people :D
>
> Modularisation for personal project is super easy to do,if you do it from
> the start that is,  its the existing code that is a pain in the hat to
> modularise when until fairly recently even colors were hard coded into the
> IDE.
>
> On Fri, Oct 13, 2017 at 3:55 PM Esteban A. Maringolo 
> wrote:
>>
>> 2017-10-13 5:55 GMT-03:00 Norbert Hartl :
>> >
>> >> Am 13.10.2017 um 10:24 schrieb stephan :
>> >>
>> >> On 13-10-17 09:55, Thierry Goubier wrote:
>> >>> Because namespaces, by essence, come with serious issues. I won't take
>> >>> someone seriously on namespaces until he can cite those faithfully.
>> >>
>> >> Let's start with the misconception that namespaces are about
>> >> modularisation
>> >>
>> > +1
>>
>> +1 to this as well.
>>
>> Having modularization is like having security, very hard to add them
>> later if you didn't include it in the original design.
>>
>> I'm using VisualWorks these days, and I find its namespaces something
>> more of a hassle than a real use.
>>
>> If we could name Classes with a dot, that could solve most of what
>> namespaces are used for in practice: avoiding name colissions.
>> That's why most of the popular frameworks have prefixes like Zn, WA,
>> RB, and so on and so forth. But now I'm used to prefixes, I don't need
>> them. :)
>>
>> Modularity is a different beast, if you look at how some modules work
>> in JS, like AMD, you see that in practice they avoid collisions by
>> importin what they need from a module, and assign it to a "namespace"
>> (it is not, but works as such), so they get modules first, and
>> namespacing later.
>>
>> Regards,
>>
>> Esteban.
>>
>



Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-13 Thread Dimitris Chloupis
Modularisation is coming whether you like it or not
its called

Bootstrap

And the more modular the image will get the more will get closer to
namespaces anyway. So frankly all I have to do is wait and if I can of
course contribute ;)

You can call it Bootstrap or the Pink Elephant for all I care, in the end
for me its about having multi layer system. That's all I care.

But you wont get an argument from me the more about the fact that the more
we wait the harder will get but again, I am not a Bootstrap contributor so
I have no right to complain. I really admire those people :D

Modularisation for personal project is super easy to do,if you do it from
the start that is,  its the existing code that is a pain in the hat to
modularise when until fairly recently even colors were hard coded into the
IDE.

On Fri, Oct 13, 2017 at 3:55 PM Esteban A. Maringolo 
wrote:

> 2017-10-13 5:55 GMT-03:00 Norbert Hartl :
> >
> >> Am 13.10.2017 um 10:24 schrieb stephan :
> >>
> >> On 13-10-17 09:55, Thierry Goubier wrote:
> >>> Because namespaces, by essence, come with serious issues. I won't take
> >>> someone seriously on namespaces until he can cite those faithfully.
> >>
> >> Let's start with the misconception that namespaces are about
> modularisation
> >>
> > +1
>
> +1 to this as well.
>
> Having modularization is like having security, very hard to add them
> later if you didn't include it in the original design.
>
> I'm using VisualWorks these days, and I find its namespaces something
> more of a hassle than a real use.
>
> If we could name Classes with a dot, that could solve most of what
> namespaces are used for in practice: avoiding name colissions.
> That's why most of the popular frameworks have prefixes like Zn, WA,
> RB, and so on and so forth. But now I'm used to prefixes, I don't need
> them. :)
>
> Modularity is a different beast, if you look at how some modules work
> in JS, like AMD, you see that in practice they avoid collisions by
> importin what they need from a module, and assign it to a "namespace"
> (it is not, but works as such), so they get modules first, and
> namespacing later.
>
> Regards,
>
> Esteban.
>
>


Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-13 Thread Esteban A. Maringolo
2017-10-13 5:55 GMT-03:00 Norbert Hartl :
>
>> Am 13.10.2017 um 10:24 schrieb stephan :
>>
>> On 13-10-17 09:55, Thierry Goubier wrote:
>>> Because namespaces, by essence, come with serious issues. I won't take
>>> someone seriously on namespaces until he can cite those faithfully.
>>
>> Let's start with the misconception that namespaces are about modularisation
>>
> +1

+1 to this as well.

Having modularization is like having security, very hard to add them
later if you didn't include it in the original design.

I'm using VisualWorks these days, and I find its namespaces something
more of a hassle than a real use.

If we could name Classes with a dot, that could solve most of what
namespaces are used for in practice: avoiding name colissions.
That's why most of the popular frameworks have prefixes like Zn, WA,
RB, and so on and so forth. But now I'm used to prefixes, I don't need
them. :)

Modularity is a different beast, if you look at how some modules work
in JS, like AMD, you see that in practice they avoid collisions by
importin what they need from a module, and assign it to a "namespace"
(it is not, but works as such), so they get modules first, and
namespacing later.

Regards,

Esteban.



Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-13 Thread Dimitris Chloupis
I am against the very idea of special syntax. Even python uses special
syntax as nothing more than syntactic sugar to make the code more readable
from the point of view of not everything looking the same. I agree with the
concept of everything being an Object.

I also dont like the idea that we tend to not have a clear cut border
between the IDE and the language/library. Of course I think IDE
functionality as much as namespaces is concerned (within the borders of my
understanding) is essential. But should be seperate and the IDE act mostly
as a visualisation tool and automation tool.

My problem , is that the Pharo operates on a global space , so lets say i
do what I said above I still dont avoid name collisions. Because MyInstance
outside MyModule should diffirent from MyInstance inside MyModule.

It could become possible by masking the names from the user.

So that there is no conflict between

MyModule MyInstance
and
MyModule2 MyInstance

unless you introduce of couse similar to python the optional feature of
collapsing the scope.

We already have Packages which tie in with Metacello, so I was think about
Modules or however we want to call them as a layer between. I am fine with
metacello personally. Its the name collisions that only concerns me and not
forcing me to use unique names. Of course a module can contain other
modules.

I know how to do this for my projects , I would manipulate the IDE into
displaying Modules as a seperate row in System Browswer , Packages will
continue being the the up most container. And for name of a class I would
add the name of the Module to the class , if I wanted to keep supporting
the existing enviroment , but hack it so it appears to the user as 2
seperate things

so for user will see

MyModule MyInsance myMessage:

 but it  Would be for the system
MyModuleMyInstance myMessage:

which would make sense from naming persepctive even to an outsider not
using the module system and would not require for him to install the modue
library
and essentially

MyModule MyInstance
act as you said via Message not understood as a reference to
MyModuleMyInstance . A unary message returning a reference to an instance
or class or other object.

of course you will have a class like ModuleGenerator to handle the
technical details for you

Version control , dependencies and other technicallities would be handled
normally as usually by Metacello with MyModule pointing also to the correct
configuration , baseline, whatever.

At least thats my general idea of it.

On Fri, Oct 13, 2017 at 2:16 PM Thierry Goubier 
wrote:

> Hi Kilon,
>
> then the discussion is a bit different. As your example points out, the
> syntax is already there, but the notion of a module is still open and ties
> into the package management.
>
> I've played a bit with Metacello to have a working "project" concept
> synchronized with Metacello, and I could imagine providing module like
> objects (the baseline itself?) giving access to more generic names instead
> of the internal, prefixed ones.
>
> One suggestion maybe: what about trying it for yourself with one of your
> projects? With a kind of overall class which has the name of the module,
> and automatically adding methods to it (or a #doesNotUnderstand: that
> handles those) for all the classes in the module, removing from the class
> name the prefix? It would allow an experiment, to see how the code looks
> like and if it is understandable, or if a special syntax is necessary.
>
> Thierry
>
>
> 2017-10-13 11:51 GMT+02:00 Dimitris Chloupis :
>
>> to be more specific what I mean because apparently I may know nothing
>> about namespaces , I was talking in terms of Python's module and package
>> system
>>
>> even though python uses special syntax "import" to import a module, a
>> source file, the real functionality is actually a method but of an object
>> dealing with the handling of modules and packages , packages are basically
>> file directories containing mutliple modules
>>
>> as soon as you do the import the syntax is the usual object syntax
>>
>> so
>>
>> Dog.bark()
>>
>> can be anything
>> 1) A class method call, Dog being the class
>> 2) A instance method call, Dog being the instance
>> 3) or a function call, Dog being the function , which is also an object
>> (methods in python are basically function object taking the reference to an
>> instance as first argument, hence why the weird syntax of adding self as
>> first argument when we define instance method) and Dog is the module
>> imported.
>>
>> of course in case (3) you can collapse the module "name" so you can do
>> only bark() if you import via "from Dog import *" which means from module
>> Dog import every object.
>> But from import is frown upon in the python world because obviously it
>> makes it easier to have name collision which is what the module system try
>> to avoid in the first place.
>>
>> So the equivelant of pharo would be
>>
>> MyModule 

Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-13 Thread Thierry Goubier
Hi Kilon,

then the discussion is a bit different. As your example points out, the
syntax is already there, but the notion of a module is still open and ties
into the package management.

I've played a bit with Metacello to have a working "project" concept
synchronized with Metacello, and I could imagine providing module like
objects (the baseline itself?) giving access to more generic names instead
of the internal, prefixed ones.

One suggestion maybe: what about trying it for yourself with one of your
projects? With a kind of overall class which has the name of the module,
and automatically adding methods to it (or a #doesNotUnderstand: that
handles those) for all the classes in the module, removing from the class
name the prefix? It would allow an experiment, to see how the code looks
like and if it is understandable, or if a special syntax is necessary.

Thierry


2017-10-13 11:51 GMT+02:00 Dimitris Chloupis :

> to be more specific what I mean because apparently I may know nothing
> about namespaces , I was talking in terms of Python's module and package
> system
>
> even though python uses special syntax "import" to import a module, a
> source file, the real functionality is actually a method but of an object
> dealing with the handling of modules and packages , packages are basically
> file directories containing mutliple modules
>
> as soon as you do the import the syntax is the usual object syntax
>
> so
>
> Dog.bark()
>
> can be anything
> 1) A class method call, Dog being the class
> 2) A instance method call, Dog being the instance
> 3) or a function call, Dog being the function , which is also an object
> (methods in python are basically function object taking the reference to an
> instance as first argument, hence why the weird syntax of adding self as
> first argument when we define instance method) and Dog is the module
> imported.
>
> of course in case (3) you can collapse the module "name" so you can do
> only bark() if you import via "from Dog import *" which means from module
> Dog import every object.
> But from import is frown upon in the python world because obviously it
> makes it easier to have name collision which is what the module system try
> to avoid in the first place.
>
> So the equivelant of pharo would be
>
> MyModule MyInstance myMessage:
>
> or if you include packages as well
>
> MyPackage MyModule MyInstance myMessage:
>
> which follows pharo syntax and OO design. That's my general idea at least.
>
> Please enlighten me :)
>
> On Fri, Oct 13, 2017 at 12:30 PM Dimitris Chloupis 
> wrote:
>
>> On Fri, Oct 13, 2017 at 11:31 AM Thierry Goubier <
>> thierry.goub...@gmail.com> wrote:
>>
>>> 2017-10-13 10:12 GMT+02:00 Dimitris Chloupis :
>>>
 fair enough you think namespaces are not the right solution, what you
 think is the right solution then ?

>>>
>>> I told you. Namespaces are a solution, but they come with issues.
>>>
>>>
>>
>> Then I misunderstood you but I am geniouly interested in what those
>> problems are and I think the infromation is something others will find
>> interesting as well.
>>
>> No. In the HPC world, a common held position is that Fortran code is 30%
>>> faster than C++.
>>>
>>
>> Cannot even rememeber the last time a 3d graphics developers mentioned
>> Fortran.I occasional frequent forums and mailing lists plus keeping in
>> contact with Blender developers.
>>
>> I have heard that Fortran can outperform C++ in numeric computation
>> around the percentage you mentioned but first time I heard that its
>> generally faster.
>>
>> Language Benchmark seems to strongly disagree
>>
>> http://benchmarksgame.alioth.debian.org/u64q/compare.php?
>> lang=ifc=gpp
>>
>> of its widely criticized but then what benchmark is not
>>
>>
>>> Remember that part of my job is to write compilers.
>>>
>>>
>> I knew that you write compilers (SmaCC) I did not realise you are a pro
>> and especially on ones that generate highly optimised machine code
>>
>>
>>> I'm also consider a guy to talk to when someone has deep issues with
>>> some of the new features of C++... even if I don't do C++, I can often
>>> reframe what the feature means in the overall scheme of programming
>>> languages.
>>>
>>
>> On other hand I have close to zero experience on compilers
>>  .
>>
>>
>>> I find it very interesting. I consider that current compilers are very
>>> good optimising code that is written in a language that obscures the
>>> developper intent in the first place.
>>>
>>
>> I lost you there, you mean compilers for other languages than C++ ?
>>
>> As I told you, I work in a world where performance is paramount and C++
>>> is strongly criticized for the fact its incidental complexity makes it very
>>> very hard to reach or maintain performance levels (compared to Fortran,
>>> say).
>>>
>>> Thierry
>>>
>>>
>>
>> And I "work" in a world that C++ is the undisputed king , that's 3d
>> graphics , though I must admit I 

Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-13 Thread Dimitris Chloupis
to be more specific what I mean because apparently I may know nothing about
namespaces , I was talking in terms of Python's module and package system

even though python uses special syntax "import" to import a module, a
source file, the real functionality is actually a method but of an object
dealing with the handling of modules and packages , packages are basically
file directories containing mutliple modules

as soon as you do the import the syntax is the usual object syntax

so

Dog.bark()

can be anything
1) A class method call, Dog being the class
2) A instance method call, Dog being the instance
3) or a function call, Dog being the function , which is also an object
(methods in python are basically function object taking the reference to an
instance as first argument, hence why the weird syntax of adding self as
first argument when we define instance method) and Dog is the module
imported.

of course in case (3) you can collapse the module "name" so you can do only
bark() if you import via "from Dog import *" which means from module Dog
import every object.
But from import is frown upon in the python world because obviously it
makes it easier to have name collision which is what the module system try
to avoid in the first place.

So the equivelant of pharo would be

MyModule MyInstance myMessage:

or if you include packages as well

MyPackage MyModule MyInstance myMessage:

which follows pharo syntax and OO design. That's my general idea at least.

Please enlighten me :)

On Fri, Oct 13, 2017 at 12:30 PM Dimitris Chloupis 
wrote:

> On Fri, Oct 13, 2017 at 11:31 AM Thierry Goubier <
> thierry.goub...@gmail.com> wrote:
>
>> 2017-10-13 10:12 GMT+02:00 Dimitris Chloupis :
>>
>>> fair enough you think namespaces are not the right solution, what you
>>> think is the right solution then ?
>>>
>>
>> I told you. Namespaces are a solution, but they come with issues.
>>
>>
>
> Then I misunderstood you but I am geniouly interested in what those
> problems are and I think the infromation is something others will find
> interesting as well.
>
> No. In the HPC world, a common held position is that Fortran code is 30%
>> faster than C++.
>>
>
> Cannot even rememeber the last time a 3d graphics developers mentioned
> Fortran.I occasional frequent forums and mailing lists plus keeping in
> contact with Blender developers.
>
> I have heard that Fortran can outperform C++ in numeric computation around
> the percentage you mentioned but first time I heard that its generally
> faster.
>
> Language Benchmark seems to strongly disagree
>
> http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=ifc=gpp
>
> of its widely criticized but then what benchmark is not
>
>
>> Remember that part of my job is to write compilers.
>>
>>
> I knew that you write compilers (SmaCC) I did not realise you are a pro
> and especially on ones that generate highly optimised machine code
>
>
>> I'm also consider a guy to talk to when someone has deep issues with some
>> of the new features of C++... even if I don't do C++, I can often reframe
>> what the feature means in the overall scheme of programming languages.
>>
>
> On other hand I have close to zero experience on compilers
>  .
>
>
>> I find it very interesting. I consider that current compilers are very
>> good optimising code that is written in a language that obscures the
>> developper intent in the first place.
>>
>
> I lost you there, you mean compilers for other languages than C++ ?
>
> As I told you, I work in a world where performance is paramount and C++ is
>> strongly criticized for the fact its incidental complexity makes it very
>> very hard to reach or maintain performance levels (compared to Fortran,
>> say).
>>
>> Thierry
>>
>>
>
> And I "work" in a world that C++ is the undisputed king , that's 3d
> graphics , though I must admit I try to stick with Python as much as I can.
>
> In any case my point was that if namespaces can be done in a badly design
> language , should be possible in Pharo and easier. Not ease, just easier.
>
> Of course that's just a wild assumption but I hope this thread do not only
> disaprove my assumption but said a light in the real challanges of
> namespace implementation
>
>


Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-13 Thread Dimitris Chloupis
On Fri, Oct 13, 2017 at 11:31 AM Thierry Goubier 
wrote:

> 2017-10-13 10:12 GMT+02:00 Dimitris Chloupis :
>
>> fair enough you think namespaces are not the right solution, what you
>> think is the right solution then ?
>>
>
> I told you. Namespaces are a solution, but they come with issues.
>
>

Then I misunderstood you but I am geniouly interested in what those
problems are and I think the infromation is something others will find
interesting as well.

No. In the HPC world, a common held position is that Fortran code is 30%
> faster than C++.
>

Cannot even rememeber the last time a 3d graphics developers mentioned
Fortran.I occasional frequent forums and mailing lists plus keeping in
contact with Blender developers.

I have heard that Fortran can outperform C++ in numeric computation around
the percentage you mentioned but first time I heard that its generally
faster.

Language Benchmark seems to strongly disagree

http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=ifc=gpp

of its widely criticized but then what benchmark is not


> Remember that part of my job is to write compilers.
>
>
I knew that you write compilers (SmaCC) I did not realise you are a pro and
especially on ones that generate highly optimised machine code


> I'm also consider a guy to talk to when someone has deep issues with some
> of the new features of C++... even if I don't do C++, I can often reframe
> what the feature means in the overall scheme of programming languages.
>

On other hand I have close to zero experience on compilers
 .


> I find it very interesting. I consider that current compilers are very
> good optimising code that is written in a language that obscures the
> developper intent in the first place.
>

I lost you there, you mean compilers for other languages than C++ ?

As I told you, I work in a world where performance is paramount and C++ is
> strongly criticized for the fact its incidental complexity makes it very
> very hard to reach or maintain performance levels (compared to Fortran,
> say).
>
> Thierry
>
>

And I "work" in a world that C++ is the undisputed king , that's 3d
graphics , though I must admit I try to stick with Python as much as I can.

In any case my point was that if namespaces can be done in a badly design
language , should be possible in Pharo and easier. Not ease, just easier.

Of course that's just a wild assumption but I hope this thread do not only
disaprove my assumption but said a light in the real challanges of
namespace implementation


Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-13 Thread Dimitris Chloupis
"Let's start with the misconception that namespaces are about modularisation

Stephan "

  Well I can only for speak for Python because is where I used  namespaces
the most and the language I am most experienced with. Namespaces in python
are merely objects that come with a collection of method speciallised in
the handling of source code files , individuals and in collection with all
the objects contained in them , cause everything in python apart from the
core synstax are object.

Last time I checked, objects even in Pharo are abour modularistation so it
stands to reason that at least in Python namespaces are too.

Maybe your refer to something else ?


Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-13 Thread Norbert Hartl

> Am 13.10.2017 um 10:24 schrieb stephan :
> 
> On 13-10-17 09:55, Thierry Goubier wrote:
>> Because namespaces, by essence, come with serious issues. I won't take
>> someone seriously on namespaces until he can cite those faithfully.
> 
> Let's start with the misconception that namespaces are about modularisation
> 
+1

Norbert



Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-13 Thread Thierry Goubier
2017-10-13 10:12 GMT+02:00 Dimitris Chloupis :

> fair enough you think namespaces are not the right solution, what you
> think is the right solution then ?
>

I told you. Namespaces are a solution, but they come with issues.


>
> As much I hate C++ , no I will have to disagree with your there, bad
> language design sure, but many of the "bad design" choices they make are
> based on the fact that this is a pure performance orientated language. Oh
> and we still wait for the real C++ alternative. Rust people claim they are
> close, D people claim they are close, everyone claims its very close, but
> still no alternative. Well I dont count C becaue its not OO, even if you
> claim C++ an abomination of OOP. I can guarantee that the dude that will
> come up with a language as fast as C++ and much better design he is going
> to make a fortune. In the mean time , those that have to use C++ will
> continue to use C++ and wait for the extemely remote competition to catch
> up. In the mean time C++ is the undisputed king in its speciality.
>

No. In the HPC world, a common held position is that Fortran code is 30%
faster than C++.

Remember that part of my job is to write compilers.

I'm also consider a guy to talk to when someone has deep issues with some
of the new features of C++... even if I don't do C++, I can often reframe
what the feature means in the overall scheme of programming languages.


>
> Unfortunately coming up with a top performance language is a lot more than
> language design, live coding and OOP. Took ages for C and C++ to get to the
> level of optimisation they are nowdays. That's no easy feat even if you or
> I dont find interesting.
>

I find it very interesting. I consider that current compilers are very good
optimising code that is written in a language that obscures the developper
intent in the first place.


>
> So yes the modules that C++ will come up with, will be as ugly as hell,
> templates that suppose to be there as an alternative to dynamic typing etc
> are ugly as hell, but I dont see much protest in getting them removed. And
> there cases you cannot even use these "improvements" because ... well
> performance issues. While other languages worry how many times slower they
> are compared to C++, C++ worries about how much percentage of performance
> it loses with each added feature. C++ exits in a diffirent universe than
> the one that Smalltalk, Python, Ruby etc exist on and is a very lonely one.
>

As I told you, I work in a world where performance is paramount and C++ is
strongly criticized for the fact its incidental complexity makes it very
very hard to reach or maintain performance levels (compared to Fortran,
say).

Thierry


>
> On Fri, Oct 13, 2017 at 10:55 AM Thierry Goubier <
> thierry.goub...@gmail.com> wrote:
>
>> Hi Kilon,
>>
>> disclaimer: I've used Parcplace Smalltlk without namespaces, then
>> VisualWorks with namespaces.
>>
>> 2017-10-13 9:08 GMT+02:00 Dimitris Chloupis :
>>
>>> Personally I dont get it, we find the path to bootstrap the pharo image
>>> clear and we cannot see the path to namespaces ?
>>>
>>
>> Because namespaces, by essence, come with serious issues. I won't take
>> someone seriously on namespaces until he can cite those faithfully.
>>
>>
>>>
>>> it makes zero sense to me
>>>
>>> Plus what you say, countless and countless of implementation of
>>> namespaces out there. And again what you say about perfection.
>>>
>>> If C++ can improve, If C++ can dream of namespaces planning the
>>> introduction of modules(in future version) in replacement (not removal) of
>>> his awful header file format I think we got the excuse to be confident
>>> we can come up with something decent.
>>>
>>
>> C++ is about adding incidental complexity to the development process,
>> i.e. how to make something complex where it could be done in a simpler way.
>>
>> So I'd be very wary of any innovation coming from that direction.
>>
>>
>>>
>>> We develop a freaking IDE for crying out loud.
>>>
>>> No it wont be a walk in the park, no it wont get done in one or next
>>> version, and no it cannot be an individual our outside effort. But we have
>>> the community super qualified to do it.
>>>
>>
>> And qualified enough maybe to also see it doesn't make that much of sense.
>>
>> Please remember that the design of a programming language consists not
>> just in a laundry list of features, but also in making judicious choices of
>> what to *omit* and, more importantly, in establishing design principles
>> that are easy to understand [Steele, 2003]
>>
>> Thierry
>>
>>
>>> On Fri, Oct 13, 2017 at 8:51 AM Ben Coman  wrote:
>>>
 On Thu, Oct 12, 2017 at 8:52 PM, Sean P. DeNigris <
 s...@clipperadams.com> wrote:

> horrido wrote
> > Having separate namespaces would be really good.
> > VisualWorks has them. Why not Pharo?
>
> I can't remember ever hearing disagreement on this subject. It 

Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-13 Thread stephan

On 13-10-17 09:55, Thierry Goubier wrote:

Because namespaces, by essence, come with serious issues. I won't take
someone seriously on namespaces until he can cite those faithfully.


Let's start with the misconception that namespaces are about modularisation

Stephan




Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-13 Thread Thierry Goubier
Hi Kilon,

disclaimer: I've used Parcplace Smalltlk without namespaces, then
VisualWorks with namespaces.

2017-10-13 9:08 GMT+02:00 Dimitris Chloupis :

> Personally I dont get it, we find the path to bootstrap the pharo image
> clear and we cannot see the path to namespaces ?
>

Because namespaces, by essence, come with serious issues. I won't take
someone seriously on namespaces until he can cite those faithfully.


>
> it makes zero sense to me
>
> Plus what you say, countless and countless of implementation of namespaces
> out there. And again what you say about perfection.
>
> If C++ can improve, If C++ can dream of namespaces planning the
> introduction of modules(in future version) in replacement (not removal) of
> his awful header file format I think we got the excuse to be confident
> we can come up with something decent.
>

C++ is about adding incidental complexity to the development process, i.e.
how to make something complex where it could be done in a simpler way.

So I'd be very wary of any innovation coming from that direction.


>
> We develop a freaking IDE for crying out loud.
>
> No it wont be a walk in the park, no it wont get done in one or next
> version, and no it cannot be an individual our outside effort. But we have
> the community super qualified to do it.
>

And qualified enough maybe to also see it doesn't make that much of sense.

Please remember that the design of a programming language consists not just
in a laundry list of features, but also in making judicious choices of what
to *omit* and, more importantly, in establishing design principles that are
easy to understand [Steele, 2003]

Thierry


> On Fri, Oct 13, 2017 at 8:51 AM Ben Coman  wrote:
>
>> On Thu, Oct 12, 2017 at 8:52 PM, Sean P. DeNigris 
>> wrote:
>>
>>> horrido wrote
>>> > Having separate namespaces would be really good.
>>> > VisualWorks has them. Why not Pharo?
>>>
>>> I can't remember ever hearing disagreement on this subject. It seems the
>>> only questions have been: 1) how to do them *right*,
>>
>>
>> The default position would be leveraging someone else's experience, so
>> this begs the question, what is wrong in namespace implementations in VW,
>> Gemstone, Squeak (as our immediate neighbours, then plus Dolphin,
>> SmalltalkX, other languages)
>> Are there been any research papers around comparing these?
>>
>> I found the "Pharo on Gemstone VM" talk impressive.  The "develop on
>> Pharo deploy on Gemstone" philosophy seems like a nice synergy for Pharo's
>> commercial future.  So a naive approach would be to do namespaces just like
>> Gemstone.  Maybe its not the best, but would it be "good enough" --
>> perfection being the enemy of done and all that jazz.
>>
>> cheers -ben
>>
>>
>>> and 2) where they fall on the endless prioritized todo list
>>>
>>


Re: [Pharo-users] Namespaces (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-13 Thread Dimitris Chloupis
Personally I dont get it, we find the path to bootstrap the pharo image
clear and we cannot see the path to namespaces ?

it makes zero sense to me

Plus what you say, countless and countless of implementation of namespaces
out there. And again what you say about perfection.

If C++ can improve, If C++ can dream of namespaces planning the
introduction of modules(in future version) in replacement (not removal) of
his awful header file format I think we got the excuse to be confident
we can come up with something decent.

We develop a freaking IDE for crying out loud.

No it wont be a walk in the park, no it wont get done in one or next
version, and no it cannot be an individual our outside effort. But we have
the community super qualified to do it.

On Fri, Oct 13, 2017 at 8:51 AM Ben Coman  wrote:

> On Thu, Oct 12, 2017 at 8:52 PM, Sean P. DeNigris 
> wrote:
>
>> horrido wrote
>> > Having separate namespaces would be really good.
>> > VisualWorks has them. Why not Pharo?
>>
>> I can't remember ever hearing disagreement on this subject. It seems the
>> only questions have been: 1) how to do them *right*,
>
>
> The default position would be leveraging someone else's experience, so
> this begs the question, what is wrong in namespace implementations in VW,
> Gemstone, Squeak (as our immediate neighbours, then plus Dolphin,
> SmalltalkX, other languages)
> Are there been any research papers around comparing these?
>
> I found the "Pharo on Gemstone VM" talk impressive.  The "develop on Pharo
> deploy on Gemstone" philosophy seems like a nice synergy for Pharo's
> commercial future.  So a naive approach would be to do namespaces just like
> Gemstone.  Maybe its not the best, but would it be "good enough" --
> perfection being the enemy of done and all that jazz.
>
> cheers -ben
>
>
>> and 2) where they fall on the endless prioritized todo list
>>
>