Re: [Pharo-users] Unintuitive behavior of class-side initialize

2014-08-28 Thread kilon alios
you can read the book here

https://www.gitbook.io/book/kilon/pbe

main repo is here

https://github.com/SquareBracketAssociates/UpdatedPharoByExample

Sure exercises are always a good idea. We use pillar syntax which is quite
simple, drop off to irc chat #Pharo at freenode to discuss the detail
though most things are already well documented about the process of
contributing to the book.

I have ported so far 4 chapter and I am in chapter 5 , Damien has port one
chapter and Stephan partly ported another so we around 50% of the book.





On Thu, Aug 28, 2014 at 1:51 PM, Ignacio Sniechowski 0800na...@gmail.com
wrote:

   Kilon,
 Do you have a preview version of the updated book?
 I would love to see it.
 Also would you consider adding some exercises will be a good addition? I
 think solet me know and i guess i can merge the project i've started to
 the updated book.
 Best
 Nacho

  Enviado desde Molto http://www.moltoapp.com/app?tag=ipad_sig para iPad

  De: kilon alios
 Enviado: miércoles, agosto 27, 2014 09:50 a.m.
 Para: Any question about pharo is welcome
 Asunto: Re: [Pharo-users] Unintuitive behavior of class-side initialize

 I will be adding an Introduction to Object Orientation chapter to the
 new updated Pharo By Example online book, so I will add this to the
 chapter. The chapter will target people not familiar with Object
 Orientation and people new to coding. Its not an immediate target but it
 will happen till the end of the year.


 On Wed, Aug 27, 2014 at 3:44 PM, Mariano Martinez Peck 
 marianop...@gmail.com wrote:




 On Wed, Aug 27, 2014 at 8:22 AM, webwarrior r...@webwarrior.ws wrote:

 As class is just an object in Smalltalk, it would be reasonable to
 believe
 that #initialize message is always sent to class on creation.

 However, that's not true. It is only sent to classes that redefine
 #initialize. Also sending super initialize may lead to problems.


 Ohhh yes. There is always a time for every Smalltalkers where you
 discover that doing super for class side initialize is not a good idea.
 Here was my time:
 http://forum.world.st/super-initialize-is-not-a-good-idea-for-Behaviors-td3086162.html


 None of these is mentioned in documentation (I assume Pahro By Example is
 the official one). It only says that #initialize is sent when class is
 loaded into memory.

 I think either this behavior should be made more consistent, or
 excplicitly
 mentioned in the docs.



 +1 to the documentation





 --
 View this message in context:
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042.html
 Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.




 --
 Mariano
 http://marianopeck.wordpress.com





Re: [Pharo-users] Unintuitive behavior of class-side initialize

2014-08-28 Thread Ignacio Sniechowski

thanks,
Im familiar with pillar as incontributed some stuff for the pharo for the 
enterprise.
I will take a look. Also
Thanks for your video tutorials, they are really awesome.
Please please continue to add more.
Take care
Nacho

Enviado desde Molto para iPad

De: kilon alios
Enviado: jueves, agosto 28, 2014 08:02 a.m.
Para: Any question about pharo is welcome
Asunto: Re: [Pharo-users] Unintuitive behavior of class-side initialize

you can read the book here

https://www.gitbook.io/book/kilon/pbe

main repo is here

https://github.com/SquareBracketAssociates/UpdatedPharoByExample

Sure exercises are always a good idea. We use pillar syntax which is quite 
simple, drop off to irc chat #Pharo at freenode to discuss the detail though 
most things are already well documented about the process of contributing to 
the book. 

I have ported so far 4 chapter and I am in chapter 5 , Damien has port one 
chapter and Stephan partly ported another so we around 50% of the book. 





On Thu, Aug 28, 2014 at 1:51 PM, Ignacio Sniechowski 0800na...@gmail.com 
wrote:
Kilon,
Do you have a preview version of the updated book?
I would love to see it.
Also would you consider adding some exercises will be a good addition? I think 
solet me know and i guess i can merge the project i've started to the 
updated book.
Best
Nacho

Enviado desde Molto para iPad

De: kilon alios
Enviado: miércoles, agosto 27, 2014 09:50 a.m.
Para: Any question about pharo is welcome
Asunto: Re: [Pharo-users] Unintuitive behavior of class-side initialize

I will be adding an Introduction to Object Orientation chapter to the new 
updated Pharo By Example online book, so I will add this to the chapter. The chapter will 
target people not familiar with Object Orientation and people new to coding. Its not an 
immediate target but it will happen till the end of the year.   


On Wed, Aug 27, 2014 at 3:44 PM, Mariano Martinez Peck marianop...@gmail.com 
wrote:



On Wed, Aug 27, 2014 at 8:22 AM, webwarrior r...@webwarrior.ws wrote:
As class is just an object in Smalltalk, it would be reasonable to believe
that #initialize message is always sent to class on creation.

However, that's not true. It is only sent to classes that redefine
#initialize. Also sending super initialize may lead to problems.


Ohhh yes. There is always a time for every Smalltalkers where you discover that 
doing super for class side initialize is not a good idea.
Here was my time: 
http://forum.world.st/super-initialize-is-not-a-good-idea-for-Behaviors-td3086162.html
 
None of these is mentioned in documentation (I assume Pahro By Example is
the official one). It only says that #initialize is sent when class is
loaded into memory.

I think either this behavior should be made more consistent, or excplicitly
mentioned in the docs.


+1 to the documentation 
 



--
View this message in context: 
http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.




--
Mariano
http://marianopeck.wordpress.com




Re: [Pharo-users] Unintuitive behavior of class-side initialize

2014-08-28 Thread Christophe Demarey

Le 27 août 2014 à 19:04, p...@highoctane.be a écrit :

 Yeah don't do super initialize unless you know why on the class side.
 
 That being said class side initialize is pretty cool when loading new 
 packages and setting everything up automagically.
 
In my opinion, it would be better to have a package initialization method for 
that purpose. 



smime.p7s
Description: S/MIME cryptographic signature


Re: [Pharo-users] Unintuitive behavior of class-side initialize

2014-08-28 Thread kilon alios
ah nice then you already a contributor and you dont need permission to add
to updated pbe repo.

thank you for the kind words, when I started making them I had some doubts
about how good they will be so I am very glad that people find them useful
and that motivates me to keep making them. The video tutorials will
continue non stop and soon as I finish with the core of pharo I would like
to dive into Morphic.




On Thu, Aug 28, 2014 at 2:05 PM, Ignacio Sniechowski 0800na...@gmail.com
wrote:

   thanks,
 Im familiar with pillar as incontributed some stuff for the pharo for the
 enterprise.
 I will take a look. Also
 Thanks for your video tutorials, they are really awesome.
 Please please continue to add more.
 Take care
 Nacho

  Enviado desde Molto http://www.moltoapp.com/app?tag=ipad_sig para iPad

  De: kilon alios
 Enviado: jueves, agosto 28, 2014 08:02 a.m.
 Para: Any question about pharo is welcome
 Asunto: Re: [Pharo-users] Unintuitive behavior of class-side initialize

 you can read the book here

 https://www.gitbook.io/book/kilon/pbe

 main repo is here

 https://github.com/SquareBracketAssociates/UpdatedPharoByExample

 Sure exercises are always a good idea. We use pillar syntax which is quite
 simple, drop off to irc chat #Pharo at freenode to discuss the detail
 though most things are already well documented about the process of
 contributing to the book.

 I have ported so far 4 chapter and I am in chapter 5 , Damien has port one
 chapter and Stephan partly ported another so we around 50% of the book.





 On Thu, Aug 28, 2014 at 1:51 PM, Ignacio Sniechowski 0800na...@gmail.com
 wrote:

   Kilon,
 Do you have a preview version of the updated book?
 I would love to see it.
 Also would you consider adding some exercises will be a good addition? I
 think solet me know and i guess i can merge the project i've started to
 the updated book.
 Best
 Nacho

  Enviado desde Molto http://www.moltoapp.com/app?tag=ipad_sig para iPad

  De: kilon alios
 Enviado: miércoles, agosto 27, 2014 09:50 a.m.
 Para: Any question about pharo is welcome
 Asunto: Re: [Pharo-users] Unintuitive behavior of class-side initialize

 I will be adding an Introduction to Object Orientation chapter to the
 new updated Pharo By Example online book, so I will add this to the
 chapter. The chapter will target people not familiar with Object
 Orientation and people new to coding. Its not an immediate target but it
 will happen till the end of the year.


 On Wed, Aug 27, 2014 at 3:44 PM, Mariano Martinez Peck 
 marianop...@gmail.com wrote:




 On Wed, Aug 27, 2014 at 8:22 AM, webwarrior r...@webwarrior.ws wrote:

 As class is just an object in Smalltalk, it would be reasonable to
 believe
 that #initialize message is always sent to class on creation.

 However, that's not true. It is only sent to classes that redefine
 #initialize. Also sending super initialize may lead to problems.


 Ohhh yes. There is always a time for every Smalltalkers where you
 discover that doing super for class side initialize is not a good idea.
 Here was my time:
 http://forum.world.st/super-initialize-is-not-a-good-idea-for-Behaviors-td3086162.html


 None of these is mentioned in documentation (I assume Pahro By Example
 is
 the official one). It only says that #initialize is sent when class is
 loaded into memory.

 I think either this behavior should be made more consistent, or
 excplicitly
 mentioned in the docs.



 +1 to the documentation





 --
 View this message in context:
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042.html
 Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.




 --
 Mariano
 http://marianopeck.wordpress.com






[Pharo-users] Unintuitive behavior of class-side initialize

2014-08-27 Thread webwarrior
As class is just an object in Smalltalk, it would be reasonable to believe
that #initialize message is always sent to class on creation.

However, that's not true. It is only sent to classes that redefine
#initialize. Also sending super initialize may lead to problems.

None of these is mentioned in documentation (I assume Pahro By Example is
the official one). It only says that #initialize is sent when class is
loaded into memory.

I think either this behavior should be made more consistent, or excplicitly
mentioned in the docs.



--
View this message in context: 
http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] Unintuitive behavior of class-side initialize

2014-08-27 Thread Mariano Martinez Peck
On Wed, Aug 27, 2014 at 8:22 AM, webwarrior r...@webwarrior.ws wrote:

 As class is just an object in Smalltalk, it would be reasonable to believe
 that #initialize message is always sent to class on creation.

 However, that's not true. It is only sent to classes that redefine
 #initialize. Also sending super initialize may lead to problems.


Ohhh yes. There is always a time for every Smalltalkers where you discover
that doing super for class side initialize is not a good idea.
Here was my time:
http://forum.world.st/super-initialize-is-not-a-good-idea-for-Behaviors-td3086162.html


 None of these is mentioned in documentation (I assume Pahro By Example is
 the official one). It only says that #initialize is sent when class is
 loaded into memory.

 I think either this behavior should be made more consistent, or excplicitly
 mentioned in the docs.



+1 to the documentation





 --
 View this message in context:
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042.html
 Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.




-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-users] Unintuitive behavior of class-side initialize

2014-08-27 Thread kilon alios
I will be adding an Introduction to Object Orientation chapter to the new
updated Pharo By Example online book, so I will add this to the chapter.
The chapter will target people not familiar with Object Orientation and
people new to coding. Its not an immediate target but it will happen till
the end of the year.


On Wed, Aug 27, 2014 at 3:44 PM, Mariano Martinez Peck 
marianop...@gmail.com wrote:




 On Wed, Aug 27, 2014 at 8:22 AM, webwarrior r...@webwarrior.ws wrote:

 As class is just an object in Smalltalk, it would be reasonable to believe
 that #initialize message is always sent to class on creation.

 However, that's not true. It is only sent to classes that redefine
 #initialize. Also sending super initialize may lead to problems.


 Ohhh yes. There is always a time for every Smalltalkers where you discover
 that doing super for class side initialize is not a good idea.
 Here was my time:
 http://forum.world.st/super-initialize-is-not-a-good-idea-for-Behaviors-td3086162.html


 None of these is mentioned in documentation (I assume Pahro By Example is
 the official one). It only says that #initialize is sent when class is
 loaded into memory.

 I think either this behavior should be made more consistent, or
 excplicitly
 mentioned in the docs.



 +1 to the documentation





 --
 View this message in context:
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042.html
 Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.




 --
 Mariano
 http://marianopeck.wordpress.com



Re: [Pharo-users] Unintuitive behavior of class-side initialize

2014-08-27 Thread webwarrior
This is not something fundamental to OOP, just specific to Pharo or 
Smalltalk.

Take for example Python. It has similar object model (objects, classes, 
metaclasses). Every time class is defined (either by class keyword, or 
by type() function, or by calling a metaclass), its metaclass' __init__ 
method is called.
Usually you don't need to redefine metaclass' __init__ method, because 
class attributes are initialized in class definition. But when you do, 
it works as expected.

27.08.2014 15:50, kilon.alios [via Smalltalk] написав(ла):
 I will be adding an Introduction to Object Orientation chapter to the
 new updated Pharo By Example online book, so I will add this to the
 chapter. The chapter will target people not familiar with Object
 Orientation and people new to coding. Its not an immediate target but it
 will happen till the end of the year.


 On Wed, Aug 27, 2014 at 3:44 PM, Mariano Martinez Peck [hidden email]
 /user/SendEmail.jtp?type=nodenode=4775051i=0 wrote:




 On Wed, Aug 27, 2014 at 8:22 AM, webwarrior [hidden email]
 /user/SendEmail.jtp?type=nodenode=4775051i=1 wrote:

 As class is just an object in Smalltalk, it would be reasonable
 to believe
 that #initialize message is always sent to class on creation.

 However, that's not true. It is only sent to classes that redefine
 #initialize. Also sending super initialize may lead to problems.


 Ohhh yes. There is always a time for every Smalltalkers where you
 discover that doing super for class side initialize is not a good idea.
 Here was my time:
 
 http://forum.world.st/super-initialize-is-not-a-good-idea-for-Behaviors-td3086162.html

 None of these is mentioned in documentation (I assume Pahro By
 Example is
 the official one). It only says that #initialize is sent when
 class is
 loaded into memory.

 I think either this behavior should be made more consistent, or
 excplicitly
 mentioned in the docs.



 +1 to the documentation




 --
 View this message in context:
 
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042.html
 Sent from the Pharo Smalltalk Users mailing list archive at
 Nabble.com.




 --
 Mariano
 http://marianopeck.wordpress.com




 
 If you reply to this email, your message will be added to the discussion
 below:
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042p4775051.html

 To unsubscribe from Unintuitive behavior of class-side initialize, click
 here
 http://forum.world.st/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=4775042code=cmVnQHdlYndhcnJpb3Iud3N8NDc3NTA0MnwzOTM0MDk5MzI=.
 NAML
 http://forum.world.st/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml






--
View this message in context: 
http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042p4775088.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.

Re: [Pharo-users] Unintuitive behavior of class-side initialize

2014-08-27 Thread kilon alios
ok officially I am confused are we talking about initialise at the instance
side or class side  (metaclass) side ?

I am  a python coder myself but I have not done any metaprogramming .

If it is a metaprogramming thing then yes it wont go inside my intro
chapter since this is advanced topic and metaprogramming is already covered
by PBE on a separate chapter so that can be added there. Since I am not
experienced with metaprogramming it would be better if people experienced
with Pharo and metaprogramming would write the documentation .


On Wed, Aug 27, 2014 at 6:16 PM, webwarrior r...@webwarrior.ws wrote:

 This is not something fundamental to OOP, just specific to Pharo or
 Smalltalk.

 Take for example Python. It has similar object model (objects, classes,
 metaclasses). Every time class is defined (either by class keyword, or
 by type() function, or by calling a metaclass), its metaclass' __init__
 method is called.
 Usually you don't need to redefine metaclass' __init__ method, because
 class attributes are initialized in class definition. But when you do,
 it works as expected.

 27.08.2014 15:50, kilon.alios [via Smalltalk] написав(ла):

  I will be adding an Introduction to Object Orientation chapter to the
  new updated Pharo By Example online book, so I will add this to the
  chapter. The chapter will target people not familiar with Object
  Orientation and people new to coding. Its not an immediate target but it
  will happen till the end of the year.
 
 
  On Wed, Aug 27, 2014 at 3:44 PM, Mariano Martinez Peck [hidden email]
  /user/SendEmail.jtp?type=nodenode=4775051i=0 wrote:
 
 
 
 
  On Wed, Aug 27, 2014 at 8:22 AM, webwarrior [hidden email]
  /user/SendEmail.jtp?type=nodenode=4775051i=1 wrote:
 
  As class is just an object in Smalltalk, it would be reasonable
  to believe
  that #initialize message is always sent to class on creation.
 
  However, that's not true. It is only sent to classes that
 redefine
  #initialize. Also sending super initialize may lead to problems.
 
 
  Ohhh yes. There is always a time for every Smalltalkers where you
  discover that doing super for class side initialize is not a good
 idea.
  Here was my time:
 
 http://forum.world.st/super-initialize-is-not-a-good-idea-for-Behaviors-td3086162.html
 
  None of these is mentioned in documentation (I assume Pahro By
  Example is
  the official one). It only says that #initialize is sent when
  class is
  loaded into memory.
 
  I think either this behavior should be made more consistent, or
  excplicitly
  mentioned in the docs.
 
 
 
  +1 to the documentation
 
 
 
 
  --
  View this message in context:
 
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042.html
  Sent from the Pharo Smalltalk Users mailing list archive at
  Nabble.com.
 
 
 
 
  --
  Mariano
  http://marianopeck.wordpress.com
 
 
 
 
  
  If you reply to this email, your message will be added to the discussion
  below:
 
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042p4775051.html
 
  To unsubscribe from Unintuitive behavior of class-side initialize, click
  here
  
  NAML
  
 http://forum.world.st/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml

 


 --
 View this message in context: Re: Unintuitive behavior of class-side
 initialize
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042p4775088.html

 Sent from the Pharo Smalltalk Users mailing list archive
 http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html at Nabble.com.



Re: [Pharo-users] Unintuitive behavior of class-side initialize

2014-08-27 Thread webwarrior
class-side initialize.

I don't think it can be considered a metaprogramming in Smalltalk.

In Python, yes, messing with metaclass is metaprogramming. But things 
are a bit different there and metaclasses are very rarely used [explicitly].

27.08.2014 19:05, kilon.alios [via Smalltalk] написав(ла):
 ok officially I am confused are we talking about initialise at the
 instance side or class side  (metaclass) side ?

 I am  a python coder myself but I have not done any metaprogramming .

 If it is a metaprogramming thing then yes it wont go inside my intro
 chapter since this is advanced topic and metaprogramming is already
 covered by PBE on a separate chapter so that can be added there. Since I
 am not experienced with metaprogramming it would be better if people
 experienced with Pharo and metaprogramming would write the documentation .





--
View this message in context: 
http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042p4775103.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.

Re: [Pharo-users] Unintuitive behavior of class-side initialize

2014-08-27 Thread p...@highoctane.be
Yeah don't do super initialize unless you know why on the class side.

That being said class side initialize is pretty cool when loading new
packages and setting everything up automagically.

Phil
Le 27 août 2014 18:33, webwarrior r...@webwarrior.ws a écrit :

 class-side initialize.

 I don't think it can be considered a metaprogramming in Smalltalk.

 In Python, yes, messing with metaclass is metaprogramming. But things
 are a bit different there and metaclasses are very rarely used
 [explicitly].

 27.08.2014 19:05, kilon.alios [via Smalltalk] написав(ла):

  ok officially I am confused are we talking about initialise at the
  instance side or class side  (metaclass) side ?
 
  I am  a python coder myself but I have not done any metaprogramming .
 
  If it is a metaprogramming thing then yes it wont go inside my intro
  chapter since this is advanced topic and metaprogramming is already
  covered by PBE on a separate chapter so that can be added there. Since I
  am not experienced with metaprogramming it would be better if people
  experienced with Pharo and metaprogramming would write the documentation
 .


 --
 View this message in context: Re: Unintuitive behavior of class-side
 initialize
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042p4775103.html
 Sent from the Pharo Smalltalk Users mailing list archive
 http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html at Nabble.com.



Re: [Pharo-users] Unintuitive behavior of class-side initialize

2014-08-27 Thread kilon alios
yeah python does not need initialisation for class variables like it does
for instance variables, but then same applies for instance variables, for
example you can add instance variables and even instance method after the
instance is created , pharo does something similar too.

Well OOP is a deep subject and this is an advanced topic that I would not
want to put in an introductionary chapter.

I had issues with initialise on class side recently where i was told i had
to initialise the class myself instead I chose to go down the ifNil route
and initialise my class variables inside other methods.  This way I avoided
the creation of an initialise method, and probably i will avoid using it in
the future too. From what I see most classes (metaclasses) dont use an
initialise method either.


On Wed, Aug 27, 2014 at 7:33 PM, webwarrior r...@webwarrior.ws wrote:

 class-side initialize.

 I don't think it can be considered a metaprogramming in Smalltalk.

 In Python, yes, messing with metaclass is metaprogramming. But things
 are a bit different there and metaclasses are very rarely used
 [explicitly].

 27.08.2014 19:05, kilon.alios [via Smalltalk] написав(ла):

  ok officially I am confused are we talking about initialise at the
  instance side or class side  (metaclass) side ?
 
  I am  a python coder myself but I have not done any metaprogramming .
 
  If it is a metaprogramming thing then yes it wont go inside my intro
  chapter since this is advanced topic and metaprogramming is already
  covered by PBE on a separate chapter so that can be added there. Since I
  am not experienced with metaprogramming it would be better if people
  experienced with Pharo and metaprogramming would write the documentation
 .


 --
 View this message in context: Re: Unintuitive behavior of class-side
 initialize
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042p4775103.html
 Sent from the Pharo Smalltalk Users mailing list archive
 http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html at Nabble.com.



Re: [Pharo-users] Unintuitive behavior of class-side initialize

2014-08-27 Thread webwarrior
I've also chosen ifNil route.
However, in that case you either:
- break encapsulation by providing accessors
- have to invoke initializing method in every method that uses class 
instance variables or class variables

27.08.2014 20:31, kilon.alios [via Smalltalk] написав(ла):
 yeah python does not need initialisation for class variables like it
 does for instance variables, but then same applies for instance
 variables, for example you can add instance variables and even instance
 method after the instance is created , pharo does something similar too.

 Well OOP is a deep subject and this is an advanced topic that I would
 not want to put in an introductionary chapter.

 I had issues with initialise on class side recently where i was told i
 had to initialise the class myself instead I chose to go down the ifNil
 route and initialise my class variables inside other methods.  This way
 I avoided the creation of an initialise method, and probably i will
 avoid using it in the future too. From what I see most classes
 (metaclasses) dont use an initialise method either.


 On Wed, Aug 27, 2014 at 7:33 PM, webwarrior [hidden email]
 /user/SendEmail.jtp?type=nodenode=4775110i=0 wrote:

 class-side initialize.

 I don't think it can be considered a metaprogramming in Smalltalk.

 In Python, yes, messing with metaclass is metaprogramming. But things
 are a bit different there and metaclasses are very rarely used
 [explicitly].

 27.08.2014 19:05, kilon.alios [via Smalltalk] написав(ла):

   ok officially I am confused are we talking about initialise at the
   instance side or class side  (metaclass) side ?
  
   I am  a python coder myself but I have not done any
 metaprogramming .
  
   If it is a metaprogramming thing then yes it wont go inside my intro
   chapter since this is advanced topic and metaprogramming is already
   covered by PBE on a separate chapter so that can be added there.
 Since I
   am not experienced with metaprogramming it would be better if people
   experienced with Pharo and metaprogramming would write the
 documentation .

 
 View this message in context: Re: Unintuitive behavior of class-side
 initialize
 
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042p4775103.html
 Sent from the Pharo Smalltalk Users mailing list archive
 http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html at
 Nabble.com.




 
 If you reply to this email, your message will be added to the discussion
 below:
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042p4775110.html

 To unsubscribe from Unintuitive behavior of class-side initialize, click
 here
 http://forum.world.st/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=4775042code=cmVnQHdlYndhcnJpb3Iud3N8NDc3NTA0MnwzOTM0MDk5MzI=.
 NAML
 http://forum.world.st/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml






--
View this message in context: 
http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042p4775111.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.

Re: [Pharo-users] Unintuitive behavior of class-side initialize

2014-08-27 Thread kilon alios
I assume you mean there will be an inheritance issue if I want the
variables to be inherited with a default value by the subclasses, which is
a valid concern. Other than that you can have accessors for it as far I
know . But yeah in that case of inheritance you need some kind of
initialise method.

I have not played with class instance variables so no clue about that part.


On Wed, Aug 27, 2014 at 8:38 PM, webwarrior r...@webwarrior.ws wrote:

 I've also chosen ifNil route.
 However, in that case you either:
 - break encapsulation by providing accessors
 - have to invoke initializing method in every method that uses class
 instance variables or class variables

 27.08.2014 20:31, kilon.alios [via Smalltalk] написав(ла):

  yeah python does not need initialisation for class variables like it
  does for instance variables, but then same applies for instance
  variables, for example you can add instance variables and even instance
  method after the instance is created , pharo does something similar too.
 
  Well OOP is a deep subject and this is an advanced topic that I would
  not want to put in an introductionary chapter.
 
  I had issues with initialise on class side recently where i was told i
  had to initialise the class myself instead I chose to go down the ifNil
  route and initialise my class variables inside other methods.  This way
  I avoided the creation of an initialise method, and probably i will
  avoid using it in the future too. From what I see most classes
  (metaclasses) dont use an initialise method either.
 
 
  On Wed, Aug 27, 2014 at 7:33 PM, webwarrior [hidden email]
  /user/SendEmail.jtp?type=nodenode=4775110i=0 wrote:
 
  class-side initialize.
 
  I don't think it can be considered a metaprogramming in Smalltalk.
 
  In Python, yes, messing with metaclass is metaprogramming. But
 things
  are a bit different there and metaclasses are very rarely used
  [explicitly].
 
  27.08.2014 19:05, kilon.alios [via Smalltalk] написав(ла):
 
ok officially I am confused are we talking about initialise at
 the
instance side or class side  (metaclass) side ?
   
I am  a python coder myself but I have not done any
  metaprogramming .
   
If it is a metaprogramming thing then yes it wont go inside my
 intro
chapter since this is advanced topic and metaprogramming is
 already
covered by PBE on a separate chapter so that can be added there.
  Since I
am not experienced with metaprogramming it would be better if
 people
experienced with Pharo and metaprogramming would write the
  documentation .
 
 
 
  View this message in context: Re: Unintuitive behavior of class-side
  initialize
  
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042p4775103.html

  Sent from the Pharo Smalltalk Users mailing list archive
  http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html at
  Nabble.com.
 
 
 
 
  
  If you reply to this email, your message will be added to the discussion
  below:
 
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042p4775110.html

 
  To unsubscribe from Unintuitive behavior of class-side initialize, click
  here
  
  NAML
  
 http://forum.world.st/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml

 


 --
 View this message in context: Re: Unintuitive behavior of class-side
 initialize
 http://forum.world.st/Unintuitive-behavior-of-class-side-initialize-tp4775042p4775111.html
 Sent from the Pharo Smalltalk Users mailing list archive
 http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html at Nabble.com.