Thursday, January 10, 2008

AOSta - Smalltalk Optimization

As I read more Ruby code I find the object model in Ruby more elusive. At some times Ruby seems to be downright prototypical in its object system. I'm also thinking that the lack of static typing makes code much harder to follow. How does one see the overall design? Smalltalk too has this difficulty, the lack of static typing makes code hard to read because there is no statement of what type is required, and then again there is hard work for the programmer to establish what type is required by reading the code.

So smalltalk and ruby are both promising and related languages with difficulties: (i) no easy way except in comments for programmers to make statements about types, (ii) they run slow, (iii) the apparent merge of the IDE and the program being developed feels wrong to a traditional C/Ruby/Java programmer. AOStaA takes an interesting approach to the optimisation of smalltalk, thus addressing point (ii).

Here is a presentation on Aosta:
http://www.esug.org/data/ESUG2003/aosta.pdf

Here is a good page with stuff about smalltalk in general:
http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=smalltalk_videos

Here is a good video giving a history of smalltalk and talking a bit at the end about Aosta:
http://video.google.com/videoplay?docid=-8988857822906068209

All pretty interesting, but of course quite a lot to take in.

Point (iii) above is just a feeling. It seems like it would lead to bloatware and it seems it would make it harder to integrate good solutions, e.g. Mercurial and the Debian packaging systems. The problem with locking into one technology and not playing well with others it that amongst open source projects, maybe 1 in 100 is really well done, if you can choose from all open source projects you're better off than if you can only choose from a subset.

No comments: