Should choose Oxygene or RemObjects C# for develop a product run all platforms?

Hi,

I want to develop a product, i can run all platforms (Desktop, Window phone, android. iOS),
What should i choose between Oxygene and RemObjects C#?
Which item support better?

Thanks,
Kai

Technically is doesn’t matter in my opinion. If you own a license for both languages your’e able to mix .pas and .cs files in a sinlge project. RO C# and Oxygene are ‘just’ Languages for the one and the same compiler backend.

RO C# currentty doesn’t support the Windows UI side (WinForms, WPF, Silverlight, ASPX and so on).
Oxygene does supporting the Windows side. But this difference shouldn’t be relevant for a cross platform application, because you can put your apps functionality for Windows easiely in a separate RO C# or Oxygene ‘none UI’ Assembly, which you can reference in a regular MS C# Windows project.

The missing Windows UI support in RO C# is more a benefit then a restriction. To develop the native Windows UI stuff I take the regular MS C# rather then Oxygene. That’s because the ‘eco system’ around MS C# is perfect to develop Windows stuff, with tools like CodeRush or ReSharper, with wizard support for the great UI Frameworks like DevExpress. The ‘tooling stuff’ for Windows UI around MS C# is much more matured than for Oxygene.

So, if you use MS C# for the WIndows UI and RO Elements for the Windows Business logic, iOS and Android, the remaining question is, what elements language you prefer.
I prefer Oxygen’s Pascal for the native iOS development, because I came from Delphi and love the Oxygene Language.
But for cross platforn stuff (iOS and Windows) I use primary RO C# combined with MS C#, because it’s difficult for me to type in Pascal into the one file and type C# in the other. The permanent rethinking between “:=, =” “!= <>” “begin end {}” or “var Type name, var name:Type” is not easy. :wink:

So my final recommendations are:

  • Take RO C# and MS C# if you’ll work on all platform projects at the
    same time.
  • Use MS C# for the Windows UI and any Elements language
    you’d like, if you develop one platform project after the other.
  • Don’t try it to do with Firemonkey.
2 Likes

Hi Jensw,

thanks you for your answer,
i understood but could you please tell me some Pros and Cons when choose RO C# or Oxygene when develop one application will run all 3 platform . (.NET, Java, Cocoa)
I need some info from person have experience about 2 language.

Thanks,
Kai

Oxygene, RO C# and Silver are just frontend languages for the same backend.
Imho it realy doesn’t matter what language you’ll take.

Oxygene and RO C# have generaly small differences. For example Oxygene does supporting “code contracts”, C# doesn’t. In RO C# is it easier to handle attributes then in Oxygene, and so on. I’m sure there is a Wiki article somewhere.
But this language specific differences exists on all 3 platforms.

Alike each platform has it’s own API benefits that Elements can support exclusively on that specific platform. But this doesn’t depend on the Elements frontend language, rather than the target platform itself.

Perheaps anybody else can describe this a bit better …

@jensw_2000 is right. It really doesn’t matter which you choose. It’s personal preference. There isn’t one that is inherently better for cross platform than the other.

Oxygene is RemObjects’ baby and they can add new language features as they see fit. With C# they’ve taken a different approach and stuck to the standard. When writing cross platform code though it makes little difference as you tend to use common denominator features and they are pretty much the same in both languages.

With Oxygen, what tools i can use to make UI more beautiful… (ex: WPF, Devexpress,Telerik UI , or some thing else)

I own a DevExpress Universal Subscription and can use all of the DevExpress controls with Oxygene
BUT …

You can NOT use any of the DevExpress wizards (project wizard, “new DevExpress item” wizard …).
Additionally you DON’t have all the “item templates” from DevExpress for Oxygene. DevExpress is delivering templates for C# and VB.Net.

This make the usage of the DX UI Framework with Oxygene less efficient in comparison to C#. As result it doesn’t make a lot of sense to create UI intensive projects with DevExpress and Oxygene.
With this restrictions you can use all of the DX UI controls (drag it on a form and use it).

Additionally CodeRush doesn’t understand RO C# multi-part method names. :wink:

@jensw_2000

Thank you for your support!!

Kai