Search code examples
linqms-solver-foundation

How to evaluate the pros and cons when changing language


I am working in a company that develops computing kernels. Their design is simple : it's a library in c++ which only has one function available to compute results out of available data.

There are essentially four steps in every one of these kernels :

  • retrieve xml content (format has been defined in an XSD file) and store into objects

  • define a mathematical problem using the above objects

  • use a solver to find a solution (or the optimal solution)

  • export results into a new xml file

Currently, our resources are very much model-oriented in terms of capabilities and interests (and not so much into programming). Obviously we want to make the environment as friendly and efficient as possible. We are evaluating the use of c# using LinQ and Microsoft Solver Foundation as a replacement for c++ and home-made tools.

My questions are :

  • Can LinQ and Solver Foundation do all that ? How easy would it be to use ?

  • What would be the gains/losses of changing the environment for our resources (time to learn and rewrite, efficiency, etc.) ?

  • Are there other interesting options that i should consider ?


Solution

  • You would get huge benefits by switching to C#/LINQ in terms of working with the XML and even with a lot of the math. There would be a slight learning curve (so that's a con), but in just a couple of weeks, I'm sure you'll be laughing at how much easier coding C#3/LINQ is.

    I say this from experience... and I specifically mentioned "C#3" (as opposed to just C#), because when I convinced my fellow C#2 colleagues to move to 3/LINQ, they experienced the above :)