The debate between Sparohok and myself concerned optimization vs. expressiveness for backtesting, not real time execution of a system. I assumed your post was also talking about backtesting.Quote from linuxtrader:
On the first point I can tell you that I would never approve a project where the design engineer did not know the limitations of their system design: If they cant predict how their system will respond to a spike in demand/load or a change in the problem regime then I simply send them back to their desk to rework their idea before I approve a dollar of funding towards implementation time.
I agree completely with you regarding the need to handle real time market bandwidth/spikes when executing a system. However, I would consider this a core design necessity, on par with code correctness, or else merely a real time hardware/bandwidth requirement. It is not what I would consider a âdesign limitâ which you previously equated with cost, performance and scalability in the established context of backtesting systems.
Not wholly incompetent, yes.On the second point our experience differs: at a certain level in most businesses people are not wholly incompetant.
Thatâs odd. There are plenty of dead end designs created by even highly competent programmers. Read on...I've never met anyone that produces a design that can not be improved upon in subsequent iterations.
This may be true for consumer or business software applications where compatibility and familiarity must be prioritized. It is NOT true for trading system development, where there are no rules. If you impose rules or "design limits" as you previously described in terms of cost, performance, and scalability, you will only diminish your chances of success.However if you start with a good system design that matches the problem regime and you are careful in your implementation then you can arrive at something that requires very little change over a broad spectrum of applications.
Yes, very few techniques are secret. You are wrong on the first point. Many programmers and architects really are incompetent. You do realize that it is often not the technically superior solution that prevails? Notice how applications are still not being written for Linux as aggressively as for Windows, even though Linux has some compelling technical and cost advantages? Notice how insecure MS Windows is without any third-party firewalls and anti-virus? Notice how Intel is finally giving into their own engineers saying that it is wrong to keep increasing clock speed and pipeline depth, just about abandoning Pentium 4, while AMD is beating them with a better design? History may regard the entire Pentium 4 architecture as a mistake. Tell me again how there arenât incompetent programmers/engineers out there, and Iâll point out more counter examples.The idea that most programmers are incompetent is not true today: very few techniques or practices are secret today ... part of the reason why software people are commoditized and seeeing their incomes decrease or stagnate.
