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