> Kilon, great reflection. 
> We should have Pharo display Pharo Zen as exposed in Pharo Vision:

:)


> Pharo Zen
> 
> Our values and convictions are condensed in this simple list.
> 
> Easy to understand, easy to learn from, easy to change. Objects all the way 
> down.
> Examples to learn from.
> Fully dynamic and malleable.
> 
> Beauty in the code, beauty in the comments.
> Simplicity is the ultimate elegance.
> Better a set of small polymorphic classes than a large ugly one. Classes 
> structure our vocabulary.
> Messages are our vocabulary.
> Polymorphism is our esperanto.
> Abstraction and composition are our friends.
> Tests are important but can be changed.
> Explicit is better than implicit.
> Magic only at the right place.
> One step at a time.
> There is no unimportant fix.
> Learning from mistakes.
> Perfection can kill movement.
> Quality is a emerging property.
> Simple processes to support progress.
> Communication is key.
> A system with robust abstractions that a single person can understand.
> 
> 
> 
> :D
> 
> best
> 
> nacho
> 
>  
> 
> Lic. Ignacio Sniechowski, MBA
> 
> 
> 
> 
> 
> 
> 
> On Wed, Nov 13, 2013 at 11:57 AM, kilon alios <kilon.al...@gmail.com> wrote:
> I dont know exactly what you mean by eforced OOP by design. Pharo design 
> principles are not written in stone, just good habits people picked along the 
> way and they are to be found in python as well. Python actually takes OO very 
> deply , sure if , else, while are language constructs but rest assured that 
> everything else is an object. For example unlike Pharo , python allows to do 
> procedural programming , but python functions are objects in disguise . You 
> could say that python functions work similarly (but not the same , since 
> closures are not supported in python) to Pharo blocks. 
> 
> Ruby is even closer to Pharo, supporting blocks, message passing etc. Also 
> those kind of languages take clean design in code, very seriously. Just go to 
> python interpreter console and do "import this" and you will see the zen of 
> python unfold before your eyes emphasizing the good design principles you 
> will find many smalltalkers talking about. Another language taking these 
> principles very seriously is Lisp, actually Smalltalk took a lot from lisp in 
> terms of overall design and direction. 
> 
> Of course clean code in the end is a choice , there is no enforcement, you 
> will find plenty of ugly code in Pharo, Python, Ruby and Lisp . There is no 
> capital punishment for coders that don't follow these principles. Many coders 
> care only for getting the job done and feel like they dont have time to worry 
> about how clean their code is. Its a free world, or so we hope. 
> 
> On the other hand everything should be put into context and never taken as 
> the Holy Bible or Holy Grail.   
> 
> 
> On Wed, Nov 13, 2013 at 4:37 PM, Bahman Movaqar <bah...@bahmanm.com> wrote:
> @Sven
> > There is not necessarily a right and a wrong way. Design is hard to
> > explain, I am not going to try. Sorry ;-)
> 
> Of course!  I was just trying to find out the design *norm* for a small
> problem; to become familiar with the popular way of thought among
> Smalltalk'ers.
> 
> @kilon
> Thanks.  I think that may be what I need: real world examples.
> 
> As I have already admitted, I am not used to Smalltalk way of thinking.
> This is the first language I know, that enforces OOP by design, none of
> Java, Python, C++ or Scala does. It's ironic; OOP concepts and
> techniques were among the first things I was taught back in University
> but now the more I think about Smalltalk's syntax and design, the more I
> get closer to the conclusion that I didn't use pure OOP many times
> during my career. And, I believe, it was simply because the development
> platforms never enforced it the way Smalltalk does: in a clever and
> camouflaged way.
> 
> > But please do have a look at the Chronos library, it even has a
> PersianCalender, among many others.
> 
> I knew about Chronos.  Someone here, kindly suggested it about 6 months
> ago when I asked about such a thing. I'm not trying to re-write
> something like Chronos rather I'm trying to get my hands dirty with
> Pharo and also re-visit my OOP skills.  Thanks.
> 
> --
> Bahman Movaqar  (http://BahmanM.com)
> 
> ERP Evaluation, Implementation & Deployment Consultant
> PGP Key ID: 0x6AB5BD68 (keyserver2.pgp.com)
> 
> 
> 
> 
> 
> 

Reply via email to