History of Cuis
Last updated at 6:36 am UTC on 14 February 2017
Juan Vuletich writes about the history of Cuis. It is a fork of Squeak 3.7 which then was co-evolved with Squeak.
Wed, Dec 11, 2013 at 12:43 PM Reply-To:
Discussion of Cuis Smalltalk
To: Discussion of Cuis Smalltalk
> 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
> 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