[Cuis] A formal presentation to the list

Casey Ransberger casey.obrien.r at gmail.com
Wed Dec 11 21:07:22 CST 2013


There's another aspect to the rewrite vs. refactor dilemma. Often times when doing a scratch rewrite of something originally written by someone else, one end up making many of the same mistakes in the original design, as well as new mistakes of one's own; in other words, history is important. 

For all its ups and downs, Smalltalk-80 was one of the most well thought out systems ever devised. Before it was released, the design was scrapped several times as the Learning Research Group studied their own artifacts. 

What I'm getting at with all of this is, there are few people IMHO who are generally qualified to build a system that's better over all for all involved than the people who laid the foundation for the work that the various direct descendants of ST-80 now continue. 

It's usually more affordable to take a great thing and make it better than it was before than to create something truly great from whole cloth, from scratch. 

But enough with me and my philosophy! Because sometimes "burning the disk packs" and starting from scratch is still the best thing to do, especially when one is looking for the new "blue plane," or in other words, a new paradigm. Good examples of scratch-built systems which learned things from Smalltalk include Self, the Lively Kernel, and most recently VPRI's Frank system. 

> On Dec 11, 2013, at 5:55 AM, Ignacio Matías Sniechowski <0800nacho at gmail.com> wrote:
> 
> Juan,
> Very interesting indeed. You should write this stuff :).
> Honestly, at least for me.
> Thanks for sharing.
> Best regards
> Nacho
> 
> 
> Lic. Ignacio Sniechowski, MBA
> 
> 
> 
> 
> 
> 
> 
>> On Wed, Dec 11, 2013 at 9:43 AM,  <juan at jvuletich.org> wrote:
>> Hi Nacho,
>> 
>> (inline)
>> 
>> > Thank you, all of you for your warm welcome.
>> > I totally agree with you. Simplicity is nothing but one side of the coin,
>> > being the other code quality. It's impossible to achieve a certain degree
>> > of simplicity and elegance without good code quality.
>> > Once thing I'm curious is about the evolution of Cuis, how was developed.
>> > In squeak.org says that it's a fork of Squeak. But closely inspecting
>> > Cuis,
>> > it dawn on me that may be it was build from scratch. It seems that
>> > unloading, correcting, fixing and shrinking Cuis is much more time
>> > consuming than -using Squeak as a guide- build from zero.
>> 
>> This is a great question. Which approach is better? Well, before Cuis,
>> I've been using Smalltalk-80 derivatives for a long time. Alan Kay, Dan
>> Ingalls, the Xerox Learning Research Group, Squeak Central,  they are my
>> heroes. It never occurred to me that I could build something as good as
>> Smalltalk-80 by myself from scratch!
>> 
>> Additionally, I started this by myself, in my free time, without any
>> financial support. I wouldn't dare to start from scratch, because I wasn't
>> sure at all I would have enough time and knowledge to bring it to a usable
>> state.
>> 
>> So, the approach was to find an area of the system that I find difficult,
>> and while trying to understand it, clean it, so it would be easier to
>> understand in the future. Rinse and repeat. Bounded work, usually between
>> one week and one month in my free time.  The advantages of this approach
>> have been:
>> - I could learn as I go. I didn't have to know everything about
>> Smalltalk-80 before starting.
>> - I always have a working system, since day one. If development stops for
>> whatever reason, the result is the best Cuis up to that moment.
>> - It is possible to adopt the really important fixes and enhancements done
>> at Squeak. For example, Closures and Cog compatibility, enhancements and
>> fixes to Compiler and stuff, many fixes to numerics stuff, etc.
>> But you are right, a properly staffed and financed team, starting from
>> scratch, could have done in much quicker :)
>> 
>> > I've taken a look at Squeak 1.3 or 1.2 and it was much simpler than let's
>> > say 3.8 or 4.4 which is impossible to follow.
>> 
>> Cuis was forked from Squeak 3.7, when 3.8 was already out, and 3.9 was in
>> the works. 3.8 added support for Unicode. I think Unicode is important,
>> but I don't agree with the approach taken. Unicode support required so
>> many deep changes that  I thought it would be easier to fork before that,
>> and port later useful fixes, than to remove Unicode from the image.
>> 
>> Removing Etoys, MVC and many other things allowed me to bring the image
>> back to 1.3 size, enabling evolution, and a deep redesign the internals of
>> Morphic, etc.
>> 
>> Cheers,
>> Juan Vuletich
>> 
>> > Pharo has lots of classes
>> > too, but everything is very good organized and once you know what is the
>> > purpose of package X, it's easy to concentrate on those that matter for
>> > the
>> > project being developed. Though IMHO I really prefer "extreme modularity"
>> > just the kernel. If you need something more, then just loaded, only those
>> > things needed for a project.
>> > Is there some guide or tutorial on morphic on Cuis?
>> > Thanks in advance
>> > Nacho
>> >
>> >
>> >
>> > *Lic. Ignacio Sniechowski, MBA*
>> >
>> >
>> >
>> >
>> >
>> >
>> > On Wed, Dec 11, 2013 at 8:00 AM, Casey Ransberger
>> > <casey.obrien.r at gmail.com>wrote:
>> >
>> >> Good to meet you! I'm in Seattle, Washington in the USA. Not terribly
>> >> far
>> >> from Ken as it happens.
>> >>
>> >> I did the main work around visual themes in Cuis, the original taskbar
>> >> (which has since been replaced with something much nicer) and an odd
>> >> little
>> >> thing for moving assets in and out of the image called ContentPack. I
>> >> also
>> >> did some work to update our icons.
>> >>
>> >> In the future I look forward to contributing to the Morphic 3 effort,
>> >> and
>> >> to help continue Juan's earlier work with mobile devices.
>> >>
>> >> I was the second committer to Cuis (after Juan) and I must say that it's
>> >> been a real joy to watch the community grow.
>> >>
>> >> It's a wonderful system. I think probably the strongest evidence that
>> >> Juan's approach has been successful is that we were able to actually add
>> >> features at the same time as removing classes and methods. Having a
>> >> smaller, more manageable core opens up possibilities like this.
>> >>
>> >> Another part of this which is important to me is the idea that "the code
>> >> is the curriculum," that the best way to make a complex system easy to
>> >> understand and learn is to include only the highest quality code we can
>> >> imagine, and avoid unnecessary complexity (or "complication") wherever
>> >> possible.
>> >>
>> >> Glad to have you on the list, Ignacio!
>> >>
>> >> --Casey
>> >>
>> >> > On Dec 7, 2013, at 5:53 AM, nacho <0800nacho at gmail.com> wrote:
>> >> >
>> >> > My name is Ignacio (aka "nacho"). I'm a smalltalker apprentice, I live
>> >> in
>> >> > Buenos Aires, Argentina.
>> >> > I came to Cuis from Squeak's homepage.
>> >> > Instantly get identified with Juan's observations, thoughts and
>> >> reflections.
>> >> > It was like reading what I expect from a simple, powerful and personal
>> >> > development system.
>> >> > Cuis is amazing. Maybe it does not have Seaside, Roassal, Athens, etc.
>> >> But
>> >> > that simplicity of only one person knowing all the aspects of the
>> >> system
>> >> is
>> >> > invaluable.
>> >> > I work in a company and most of the software I need it's developed by
>> >> me, so
>> >> > knowing the system deep it's something very important for me. And
>> >> build
>> >> from
>> >> > there.
>> >> > Thanks Juan for developing such a wonderful Smalltalk environment.
>> >> > Best regards
>> >> > Nacho
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > -----
>> >> > Nacho
>> >> > Smalltalker apprentice.
>> >> > Buenos Aires, Argentina.
>> >> > --
>> >> > View this message in context:
>> >> http://forum.world.st/A-formal-presentation-to-the-list-tp4728293.html
>> >> > Sent from the Cuis Smalltalk mailing list archive at Nabble.com.
>> >> >
>> >> > _______________________________________________
>> >> > Cuis mailing list
>> >> > Cuis at jvuletich.org
>> >> > http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>> >>
>> >> _______________________________________________
>> >> Cuis mailing list
>> >> Cuis at jvuletich.org
>> >> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>> >>
>> > _______________________________________________
>> > Cuis mailing list
>> > Cuis at jvuletich.org
>> > http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>> >
>> 
>> 
>> _______________________________________________
>> Cuis mailing list
>> Cuis at jvuletich.org
>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
> 
> _______________________________________________
> Cuis mailing list
> Cuis at jvuletich.org
> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://jvuletich.org/pipermail/cuis_jvuletich.org/attachments/20131211/7bcba2e4/attachment-0004.html>


More information about the Cuis mailing list