1

I'm looking for some language that will allow me to write GUI as easy as (or easier) in WPF but that would be really cross platform. Mono, Silverlite etc. are nice but either does not support WPF or are not reliable, complete, does not support Linux... I will use it to rewrite some older WPF application so that they could be run on Mac and Linux as well.

Here are my requirements

  1. Syntax and programming techniques similar to C# and WPF. Especially, I need the language to offer markup style of GUI design like in WPF. That means not the old fuzzy code way like Swing.
  2. Good GUI performance granted without using low level techniques (as in WPF)
  3. The language does not need to be interpreted (by VM) it could be compiled but I prefer to have garbage collection and high level programming rather then dealing with pointers, destructors etc.
  4. C# great syntax features like lambda expressions, LINQ, properties, etc. would be appreciated.

Is there any such language? Are there any other options for porting those applications to Mac and Linux (besides mono)?

10
  • 2
    Really, all your requirements are obviously begging for a cross-platform version of C#: Similar syntax to C# + garbage collection + high level programming + LINQ and lambda expressions = C#. Why doesn't Mono fit your needs, exactly? Commented Aug 15, 2012 at 23:32
  • 3
    @Daniel Mono doesn't support WPF. Commented Aug 15, 2012 at 23:35
  • 1
    @Daniel "WPF" is a name (Mono supports a ton of things that have "Windows" in the name, and cites lack of interest as the sole reason WPF doesn't follow suit). Few - if any - of the WPF widgets are Windows-specific and the programming model is obviously platform-agnostic. The implementation is, of course, tightly coupled to low-level Windows-specific APIs. Commented Aug 15, 2012 at 23:43
  • 1
    @drasto - Unreliable on Linux? Mono powers one of the most popular media players on Linux. Commented Aug 15, 2012 at 23:54
  • 1
    Why is silverlight not an option? It is similar to WPF in the way you develop for it (XAML+code), and it is cross-platform. Commented Aug 16, 2012 at 0:08

1 Answer 1

4

Unfortunately, there is no directly "C#/WPF" equivalent that is really cross platform. Mono using Moonlight is probably the closest thing, though you've ruled it out for various reasons.

The closest option, in terms of overall feature set, is likely to use Qt. This does have a very different programming model (C++ instead of C#), though there is a lot done there to ease memory management, and the signal/slot mechanism does provide (some) of the same advantages you get with .NET.

That being said, this is still vastly different. QML is very different than XAML (though both attempt to provide a markup style of design). However, it does provide powerful, high-level graphics programming, and is truly cross platform (and supported very well on non-Windows platforms).

Sign up to request clarification or add additional context in comments.

6 Comments

+1 Looks like worth having a look on it. Thank you I'll study this option closely.
Can Qt be used with another language for code behind then C++?
@drasto Yes, though it does make C++ much nicer, so it's not as bad as you'd think. PyQt works fairly well, though - see: riverbankcomputing.co.uk/software/pyqt/intro
I'm in the process of studying it. Anything else then python? Say Ruby, Java...?
@drasto Qt Jambi for Java (qt-jambi.org) but I've heard mixed things about it - I have no personal experience with it. I used PyQt for a bit, but decided just using C++ was almost always nicer.
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.