Hello Jimmie,
Hello,
I am porting the FIX protocol to Squeak/Pharo.
http://www.fixprotocol.org/
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 Java.
http://www.quickfixj.org
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 applications.
Advise and wisdom greatly appreciated.
Thanks.
Jimmie