July 31st, 2008, 1:01 pm
Use/learn whatever tool makes your life the easiest, that is, the most productive.I think that when designing large, complex systems where performance is a hard constraint there is no other choice than to use C++. You will pay for this through a longer development cycle however.In general it is never a bad thing to be multilingual.Matlab is typically used as a prototyping/exploratory tool. If you know C++, matlab is straight forward. Being familiar with matlab's toolboxes is a definite advantage when working under a deadline.For the C#/Java question... My shop is strictly C#/.NET, say what you will about Microsoft, their tools have a lot of polish, there is a reason that 99% of the world uses their product. C# and Java are very similar languages, the biggest difference between them I would say is the frameworks at their disposal. In this respect .NET is clearly superior: better functionality, better performance, better documentation. The downside is vendor/platform lock in. One thing that is hard to over look is the integration the MS tools have. If you are working in QF chances are your end users are going to want to look at some kind of spreadsheet and that means excel. VSTO is really quite good, way better than VBA, you are able to leverage all of the .NET functionality through either VB.NET or C# and basically 'host' the components in any office program. No other software vendor even comes close to this kind of functionality. Finally, Visual Studio is by far the best IDE out there, although Netbeans is becoming pretty usable.Of course if you are developing cross platform apps, Java is the only way to go.Hopefully that wasn't too rambling...