• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Cross platform development: Was: Deprecated methods in NSDocument
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Cross platform development: Was: Deprecated methods in NSDocument


  • Subject: Re: Cross platform development: Was: Deprecated methods in NSDocument
  • From: Erik Buck <email@hidden>
  • Date: Thu, 24 Nov 2005 21:20:58 -0500

Some folks I know will groan because I am even posting in this thread. My thoughts on the subject are so well known to so many...

For a mainstream desktop application (not a special purpose tool with few users):

A) Java model with AWT or Swing GUI - This won't satisfy very many people on any platform.
B) Java model with Cocoa GUI - This only works on Mac and is not well supported.
C) Java model with Win32 or .Net GUI - This only works on Windows and is not well supported.
D) C/C++ model with Carbon GUI - This only works on Mac and is IMHO a hellish dev environment
E) C/C++ model with Cocoa GUI - This only works on Mac
F) C/C++ model with Win32 or .Net GUI - This only works on Windows (is Mono ready yet?)
G) C/C++ model with wxWindows/xt or other cross platform GUI - This won't satisfy very many people on any platform
H) C# model with .Net GUI - This only works on Windows (is Mono ready yet?)
I) Objective-C/Foundation model with Cocoa/Appkit GUI - This only works on Mac but is a fantastic dev environment
J) Objective-C/Foundation model with Win32 GUI - This only works on Windows and is not well supported
K) TCL/Python/Ruby other script language model with hooks to native GUI - This won't satisfy very many people on any platform.


Did I miss any viable options ?


Bottom line:
If we take away all options that are not well supported or won't satisfy many people or have hellish dev environments, I think the only option left is a C/C++ model with Cocoa GUI on Mac and Win32/.Net GUI on Windows.


P.S. Obviously other people may determine what is a hellish dev environment differently that I do and that may change the analysis of the options. The big players like Adobe, Apple, and Microsoft all use C/C++ model with Carbon on Mac and Win32 on Windows. Maybee they know what they are doing irrespective of legacy code bases?

History:
The precursor to Cocoa, Openstep, was deployed on Windows before it was ever deployed on a Mac. Openstep was/is a very nice solution for cross platform development. You could use Interface Builder, Project Builder, EOModeler, D'OLE, PDO, etc. and deploy for Openstep Mach 68K, Openstep Mach x86, Openstep Solaris, Openstep for HPUX/Pa RISC, and Openstep Enterprise for Windows NT/2000.


There is/was a difference of opinion about how "native" an Openstep application felt on each platform. From my perspective, Microsoft tried so hard to copy NeXTstep (the precursor to Openstep) when they built Windows 95 and Windows NT that Openstep applications felt more native than former Windows 3.1 applications felt. My companies products were much more widely deployed on Windows NT than any other platform, and we never had a single complaint about the products' integration with the platform. In fact, we provided some components of our Openstep products as ActiveX components so they could be embedded in MS Word, Excel, etc.

A couple of years after Apple bought NeXT, Apple refused to sell more deployment licenses for Openstep at any price and reneged on their often repeated commitments to provide no or low cost Windows licenses of "Yellow Box".


_______________________________________________ Do not post admin requests to the list. They will be ignored. Cocoa-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Prev by Date: [ANN] AMRollOverButton patched class
  • Next by Date: Apple Defined UTIs
  • Previous by thread: [ANN] AMRollOverButton patched class
  • Next by thread: Apple Defined UTIs
  • Index(es):
    • Date
    • Thread