Platform Differences
In general, our goal is to keep the Oxygene language as consistent between platforms as possible. Most language and Compiler features discussed in the Oxygene section and elsewhere in these docs will work the same or similar, across all Elements platforms.
That said, due to differences in the underlying platfroms, there will be a few differences. This topic will highlight the most important differences on the Oxygene language side, and you should also check out the Differences topic in the Cross-Platform section of this site, for a more thorough discussion of all differences as they apply to all Elements languages.
- On .NET and Java, the
block,delegate,method(and legacy)functionandprocedure) keywords work identically to declare a Block. On the other more-native platfroms, onlyblockanddelegatedeclare a true block, whilemethod,functionandproceduredeflare more traditional function pointers w/o a "self" reference. See here for more details. - ARC and the
stronf,weakandunretainedStorage Modifiers are supported on platforms that use ARC, Cocoa. - The
lifetimestrategykeyword for Life-Time Strategies is only supported on Island-backed platforms. - The
optionalkeyword for Interfaces methods is supported only on Cocoa. unsafecode is not supported on Java, and all code is assumed to beunsafeon Cocoa and Island, making the keyword ignored/unnecessary on that platform.- Generic co/contra-variance is supported on .NET only.
- Differences in [Pointer References in Oxygene for Cocoa](Pointer References in Oxygene for Cocoa).
parallel forloops,parallel sequences andqueryable sequences are currently only supported for .NET.- Special Java( Platform)-style exception handling extensions and the
raiseskeyword will be a new platform difference, once implemented.
See Also
- Differences topic in the Cross-Platform section