Forward with permission from Juan Vuletich Fri, 04 Nov 2011 08:42:03 -0300

Hi Folks,

I'm answering you off-list because I'm not subscribed to the Pharo list.
Feel free to forward this there, if you wish.

I think it is great to put focus on simplicity (an objective value) over
easyness (a subjective value). Rich also makes a good critic to usual
practices, including the dichotomy between understanding and TDD (test
driven development).

However, the value of simplicity is not something new. The difference
between essential complexity and accidental complexity is the heart of
"No Silver Bullet — Essence and Accidents of Software Engineering" (by
Fred Brooks, 1986) and "There Is a Silver Bullet" (by Brad Cox, 1990,
http://drdobbs.com/184407534). It is also central to Smalltalk, see
"Design Principles Behind Smalltalk" (by Dan Ingalls, 1981,
http://classes.soe.ucsc.edu/cmps112/Spring03/readings/Ingalls81.html).
These three articles might be the most important writings on software
engineering ever.

The problem with this discussion is that everybody will claim simplicity
is a crucial objective of their project. However, Pharo and Squeak don't
realize (or don't want to realize) that simplicity appears only by
removing complexity, never by adding more of it.

Cuis is a Squeak fork with the #1 objective of being simple and
understandable. It is the result of more than 10 years suffering the
accidental complexity in Squeak, comparing with other Smalltalks,
together with a lot of reflection and work, by me and others. It is, I
believe, the only Smalltalk in active development that pursues this
objective of the original Smalltalk-80 project. You can get it from
http://www.jvuletich.org/Cuis/Index.html . Browse it a bit. Take
statistics (lines of code, etc). Compare. You might have a nice surprise.

Jimmie, you asked "How can we move Pharo to be a better answer to Simple
vs. Easy?". My answer is: start anew. Rebase on top of Cuis. Give up
feature list as a priority, and focus on simplicity. Make a list of the
features in Pharo that are really important, and not part of Cuis, and
turn them into optional packages. Make that list as short as possible!
Worry more about code quality and less about discarding potentially
useful stuff, that is not good enough.

Cheers,
Juan Vuletich


Reply via email to