[squeak-dev] Proper Smalltalk lots of classes

Jimmie Houchin jlhouchin at gmail.com
Fri Dec 31 22:24:08 UTC 2010


I am porting the FIX protocol to Squeak/Pharo.

It is the Financial Information eXchange protocol. It is used by many 
firms in the financial industries, stocks, forex, etc.

There is good documentation and also a semi-reference implementation in 

I have a partial port started but I wanted a check with those who know 
more than I about proper Smalltalk coding.

In the Java implementation there are over 2000 classes. In the protocol 
there are approximately 90 message types and 956 field types.

I am initially creating the message classes as they form the basis of 
the protocol and the fields are simply instance variables and methods in 
the message classes.

I am not porting the Java library. I am implementing the protocol in 
Smalltalk from the documentation.

Initially I have created a Fix44Field class with its necessary variables.
There are several versions of the Protocol and FIX 4.4 is the one 
required for my application.

With this Fix44Field class I am creating a Dictionary with the 956 
different field types. I am planning on creating a constructor method 
which will create the desired field from the information in the 
dictionary about the field and its properties.

Am I way off base here? Should I really create the 956 classes necessary 
to for each field in addition to the 90 or so message classes, and then 
I don't know what else I haven't discovered yet. Having 1000+ classes 
just seems unwieldy and naively it just doesn't feel like the Smalltalk 
way. I could be wrong, but I haven't seen such an example to my memory. 
I don't know enough about Java to know if it is good Java form either.

When I have a reasonably fleshed out, tested and working solution, I 
will make the source available under a MIT license. I would love to see 
Squeak/Pharo become an out of the box viable option for trading 

Advise and wisdom greatly appreciated.



More information about the Squeak-dev mailing list