Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

If I have a personal programming project that I plan to port in another language so it could run in other environments, would it be more ideal to start porting the code as soon as possible and work on two versions concurrently? Or would that slow down my production a lot, and should I wait until I have finished some key components of the program?

share|improve this question

closed as primarily opinion-based by Thomas Owens Jul 23 '15 at 14:42

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

If your goal is portability, why are you porting to C++ from C#? You can use Mono to deploy directly to almost any major platform. – World Engineer Sep 29 '11 at 3:17
Well, to be specific, it's an XNA project and XNA hasn't been implemented on Mono, yet. – Chris C Sep 29 '11 at 3:19
Makes sense, thanks for the clarification. – World Engineer Sep 29 '11 at 3:20
What's the purpose for this project? Education, experience, to build a project portfolio? Depending on your purposes, it might be better to press onward with your current solutions and have a more robust, polished product rather than worry about targeting a number of environments. – Thomas Owens Sep 29 '11 at 3:44
I'd say the most important two are for a portfolio and to build experience, in that order. – Chris C Sep 29 '11 at 4:26
up vote 2 down vote accepted

Speaking from experience, you do not want to get yourself caught maintaining two separate versions of your pet program.

  • Adding new funcionnalities becomes a pain. If you're lucky, it would take twice the time to implement. If you're not, you would find limitations in one language and have disparities between the two versions of the program.

  • Bug tracking gets very tricky, as you inevitably will have to deal with implementation specific details.

  • As mentionned C++ anc C# are far more different than they look.

I would suggest you start porting to C++ as soon as possible, as it will probably be easier to port something small and concise.

share|improve this answer

C# and C++ are more than different enough that I'd advise just skipping C#. You'll only get into habits that you will have to quickly unlearn once you get to C++- like excessive dynamic allocation and inheritance, for example, and programming to a framework is very different to programming without one. You won't really learn any useful skills.

The two are vastly more different than you appear to realize. Unless you actually will still need the C# version when you're finished in C++, I'd just never make the C# one to begin with.

share|improve this answer
Actually I've had some extensive C++ experience before but took a break from it for a while to learn C#. Edited my question so you can get a better idea of where I'm at. – Chris C Sep 29 '11 at 15:33

I'd reply in a consultant's favorite way: "It depends" ;)

Namely, upon the following parameters:

  • do you need a small time to market?
  • how much additional work will you cause by waiting with the port? How much architecture and implementation specific to C#(-libraries) are you doing?
  • have you gained enough experience with your C# solution yet so that you are confident that you will do most things right when reimplementing in C++?
share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.