boyfarrell said:
Yeah that is good advice.
However ...
The bit of my programme that number crunchs, I will write in C. But I think by the nature of what I'm doing (modelling some physical system) would really benefit from an objective approach. I could see how in the future it would be really easy to make generalisations of my biggest object, change a few things around, and describe a new system.
I guess I'm quite jaded with the Object Oriented (OO) approach, coming from an engineering background and moving to a more scientific background. There is a fine line between an engineer and a scientist. I can't remember the source but here is a quote that best sums it up: "Engineers learn to build, scientists build to learn". And that is a very important distinction!
OO is largely an engineer's tool. If you're going to build a good OO system, you need to spend loads of time analyzing the problem and designing a solution. Coding accounts for very little when building a proper system. This is a good approach, when you are trying to build well specified systems that will last for years and years with many people working on maintaining it down the line.
If you are a scientist, this can kill your research if you aren't careful. When you are a researcher, you build systems to learn. Your requirements aren't clear, and so you need a way to quickly build a system. If you find that system doesn't work or produce the results you desire, you move to a different system. A lot of throw away code is written. This is a reason why MATLAB is so popular among scientists. It doesn't enforce any programming paradigm on you, and allows you to quickly implement your ideas to test them out. To do such a thing with OO is ... suicide if you skip the analysis and design phase, difficult and time consuming if you _do_ the analysis and design phase.
That said, my work with neural networks has been largely done without OO, but with a more structured approach (functions and records). It's been working fine, and I am at the stage where I can actually see clearly enough the problem that I'm trying to solve. Hence, after 2 years of experiments, I am now going to try and write my simulation code in an OO manner, in Java. Reasons for Java? PM me if you're interested. I'm not going to diss Objective-C on a Mac forum
.