Financial Information eXchange or in short FIX, is an application layer protocol, adopted by a lot of organizations for financial information exchange. Refer, FIX Protocol for references.
I was introduced to it, in October, and a months work went into integrating FIX initiator application, to communicate with FIX gateways implemented by various Brokers. I struggled a bit, since there wasn't a straight forward documentation, to some developer level faqs. More so, because, I was writing a custom implementation for a broker (name cannot be disclosed), who is supposed to have the best FIX gateway among the US Brokers (ofcourse among those, who have adopted FIX).
During development, I was using g++-4.2 version, and I didn't have issues with compiling quickfix. Today, I was trying to deploy the application in my office laptop (for testing), with a fresh ubuntu installation, with g++-4.3. Compiling quickfix gave error like:
../Utility.h:179: error: 'std::strcmp' has not been declared ../Utility.h:181: error: 'std::strlen' has not been declared ../Utility.h:184: error: 'std::memcpy' has not been declared ../Utility.h:185: error: 'std::memset' has not been declared ../Utility.h:189: error: 'std::strerror' has not been declared
In the office, I have always been skeptical about using third party software, and try to follow some simple check list before adopting to one of those.
- Use if the software is well documented, with reference to existing bugs, reliability and performance issues.
- Don't use the software, if it is not being maintained for more than last 6 months.
- Avoid using application level frameworks, which is heavy weight and try to abstract a lot of programming constructs.
- See business perspective, as in if a GPL licensed software is used, then what will happen to business, when you are distributing the software.
- Use the software, if time to market is minimal.
- Use it if you cannot think of writing the same piece of software in the near future (for e.g: the linux kernel or gcc compiler.)