title: Feasible to switch to objective-c on these platforms and situation?
body: <p>I've written most of a game engine using C++ that runs on OSX and iOS (Xcode 3.5 so, GCC), Linux (GCC), and Windows (Vis Studio 2010).  It uses stl vector for collections of objects.  It implements message passing.  The engine is using OpenGL on the iOS platform and will eventually use OpenGL on all platforms and potentially DirectX on windows.</p>
  
  <p>I really don't like C++, although I have a very strong understanding of it.  I'm a C programmer and after an introduction to Objective-C a year ago, I realized it's ideal for how I work and think.  So it would be a huge advantage for me to switch to Objective-C.  Unfortunately, the beautiful world of OSX/Cocoa isn't the reality of Windows or Linux.. or is it?</p>
  
  <p>I am sure a Cocoa/Apple/NeXT evangelist will provide me with a masterpiece of an answer here</p>
  
  <p><strong>Edit:</strong></p>
  
  <p>Looks like Cocotron and GNUstep are 2 options, with GNUstep being more mature but seeming to have more baggage such as requiring a runtime.  </p>
  
  <p><strong>I need a solution that can fit these requirements:</strong></p>
  
  <ul>
  <li>Able to compile, run, debug Objective-C on all platforms</li>
  <li>Able to use the Cocoa API calls on all platforms (ie NSString, NSNumber..)</li>
  <li>Endusers should be able to install and run my app without installing anything extra, or at a minimum my installer should be able to easily and non-pervasively install anything (such as a runtime) <strong><em>GNUstep requires runtime, Cocotron does not</em></strong></li>
  <li>Explains what issues I may hit.  For example, will I be able to use the provided Cocoa stuff for parsing XML?  What about CFSocket?  What about CG?  Where does the solution end and I go in to the realm of OS-specific libraries that aren't ported?</li>
  </ul>
  
  <p><strong>Ideal:</strong></p>
  
  <ul>
  <li>Can support closures (blocks) on all platforms so that I can use GCD and libdispatch as it becomes available, even if it boils down to less efficient situation on non-native platforms</li>
  <li>An API to allow Core Data type data management (I'm dreaming here), even if it boils down to less efficient situation on non-native platforms</li>
  <li>A forward-looking solution that will maybe use LLVM since that seems to be the way things are moving</li>
  </ul>
  
  <p><strong>Do NOT Require:</strong></p>
  
  <ul>
  <li>GUI functionality such as drawing NSView etc</li>
  <li>IDE functionality except on OSX</li>
  <li>Objective-C 2.0</li>
  <li>Objective-C++</li>
  <li>Garbage Collection</li>
  <li>Ease of <strong>my</strong> setup: that is, it's OK if this is a pain for me to set up and configure to get working, as long as the working solution fits my needs and allows me to write code that will be easy (portable as per requirements above) and doesn't push any of that pain on to my users.</li>
  </ul>