On 03.11.2014 04:10, Bee wrote:
On Mon, Nov 3, 2014 at 1:52 AM, Sven Barth <pascaldra...@googlemail.com
<mailto:pascaldra...@googlemail.com>> wrote:

    How will you be cross platform if you access Cocoa directly?

Take a look at Delphi. From a single source code base, we can compile it
for Windows and Mac. Hardly any changes are required. But if you want to
target Mac using FPC, I believe you have to use objective-pascal to
access Cocoa API which is not compatible with Windows API. That's where
the cross platform breaks. Am I right? CMIIW.

Another example, take a look at Oxygene --another pascal language
variant by RemObjects-- is able to target OSX, iOS, .Net, Mono, and
Android natively without ruining their pascal syntax. Why can't FPC be
like that? I don't understand because I'm not a compiler guy. :)

Any explanation would be very much appreciated. Thank you.

That's because FireMonkey abstracts all those APIs for you. The LCL by Lazarus has the same target: no matter whether you are on Win32/64, GTK, Qt, Carbon, Cocoa, whatever you get the same set of APIs (the API provided by the LCL) and you don't (normally; bugs not withstanding) need to care about platform differences.

Even if you'd directly access Cocoa using Object Pascal means you would not be compatible with Object Pascal codes on other platforms. The same is true for Delphi by the way. They interface with Cocoa code using COM interfaces which are not used on the Windows platform (for this purpose). Two different API sets!

Also using Objective Pascal does in no way mean that you can not use Object Pascal. You can mix them as you want and you can use Objective Pascal classes in Object Pascal code and vice versa (otherwise this feature would be rather useless).

So please use Objective Pascal. It will save you from quite some trouble to implement the APIs manually (afterall there is a reason why we implemented Objective Pascal).

Regards,
Sven
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to