11
lxmcf
6y

Can anyone recommend a good cross platform way to develop GUI applications?

Looking at building an IDE for GMS-2 to add a new workflow but can't find any good GUI's...

(I want to use C# and yes i would ask on stack overflow but im more likely to get help here and not get called a dick head... Maybe)

Comments
  • 2
    Maybe Xamarin? I've heard good things about it.
  • 3
    The go-to way to build Cross-Platform GUIs would be Qt, but that requires C++ or Python
  • 1
    Bridge.NET - Make use of JS Frameworks with C#
    https://bridge.net
    https://github.com/bridgedotnet/...

    Sciter C/C++ bindings for C#
    https://github.com/MISoftware/...
  • 1
    @PrivateGER xamarin is for mobile only (android/ios)

    I think he is saying about desktop environments
  • 1
    Oh, okay.
  • 1
    JavaFX
  • 3
  • 1
    @nicofee I would be very surprised if there were no C# language bindings for QT. I haven't paid that much attention, but they probably exist. If not, GTK does have C# bindings, but it's uglier (IMO) and harder to run on Windows.
  • 1
    @powerfulparadox GTK# in Linux --> hell
  • 0
    @CozyPlanes True. Then again, C# itself wasn't really designed as a cross-platform language.
  • 0
    @powerfulparadox what exactly makes C# not cross platform?
  • 0
    @sSam There is a difference between not cross-platform and not *designed* as cross-platform. C# is a Microsoft project as part of the .NET platform, which was designed to make Windows programming more interoperable. That is not a platform-agnostic design goal.
  • 0
  • 0
    @sSam That came much later. It doesn't count as a counterexample for that reason. .Net Core is retrofitting C# to other platforms (after the Mono project established the market, by the way) not an inherent part of the design.
  • 0
    @powerfulparadox what does it matter what its design goals were, what matters what it currently is. C# didn't have to change to be usable with .NET core. What is it that Java has that it makes it cross-platform that C# doesn't?
  • 1
    @sSam It absolutely matters. C# was tightly integrated with COM and the .NET framework. Yes, the basic language can be ported anywhere. That was the goal of the Mono project. But the knowledgebase of the people using it was stuck with Windows-centric idioms, which makes clean cross-platform code difficult. .Net core is (in essence) Microsoft attempting to impose Windows design standards on other OSs.

    Java has its own damages, but it was actually designed as a platform-agnostic system, which means that libraries are not going to assume single-platform without explicit mention (something most C# programmers have never had to think about on a Windows-only platform)

    I'm not trying to say that change is impossible or that original design intent is the only thing that matters. I am saying that language design often conforms to the originally intended purpose, and that such design constraints might not be conducive to good cross-platform code.
  • 1
    @sSam Let's face it: Cross-platform is hard. Every attempt that has ever been made is inherently flawed in some way, since not even platforms based on the same basic design are fully compatible. (Reference the history of Unix, Linux, etc.) Cross-platform code is an abstraction at sufficiently high level that there will always be breakdowns somewhere. That it even works at all is a testament to the insane amounts of work that people have put into maintaining the illusion. (Take QT as an example. It's not "really" cross-platform, it's a common API to multiple GUI platforms which are designed to behave in a conformant manner across platforms. It's not the same code across platforms, which is what cross-platform should mean.)

    I don't think we necessarily disagree as much as it might seem. I simply care about the semantics of design and implementation more than you do.
Add Comment