Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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
1  
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
2  
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

3 Answers 3

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

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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