4
Qchmqs
8y

been exploring the options for cross platform desktop app, and i found :
java : both awt and swing look ugly, i really like OOP of java, and the way projects are organized is easy to scale, but i need to deploy the jdk, and the speed on gui apps isn't that great
C# : (.net/ mono, i can't grasp F# and vb is stupid) looks native on windows, not so much alien on both linux/mac, and being a java cousin is a pro, i found the Eto library for mono even looks more native on *ix than winforms
wxwidgets: for C/C++ so far this looks like the best option for total native feel and performance, but man i fucking hate C code, and this looks a lot like C code, even with proper native Cpp support, maybe i should dive deeper in it
GTK+ : did any one mention C code ? because this mother fucker is plain C with macros all over the place, it made me realize why wx is promoted as Cpp friendly, i doubt I'll use this
tcl/tk : even tho ive never wrote a single line of tcl in my life, the tk lib is the default ui for both python and ruby on all supported platforms,
and i really love ruby, and Python is Usually a joy to work with
Qt : this by far looks like the best option, proper OOP in C++, bindings for python (ruby binds are outdated), almost native look and feel on supported platforms, and even has a gui builder in xml or json/js (qml) however i bet I'll use such a thing, the building tho depends on an external preprocessor "moc" and some wicked macros, also makes working with templates a fucking mess, and the heavy dependence on QObject inheritance makes integrating external libraries a bit more tiring, the signal slot system makes more sense in python than in C++, since it makes me confused about the flow of the code
lazarus: is a freepascal implementation that looks and feels like delphi, not so much for native look and feel, but good performance and easy language to handle
electron : this fat mofo is fat, it's the slowest of all options, if i want an html app, I'll just compile a stripped down webkit and deploy that
what do you think ? and did i miss something ?

Comments
  • 0
    @Artemix if i used qt i would most likely not use any binding beside pyside/pyqt because all of them seem to popup and die quickly
    also there is qtsharp that I'm praying to gods it won't die quickly
  • 3
  • 0
    you definitely haven't tried Javafx
  • 0
    @gitchboy nothing compelling about javafx tbh, feels more like using sdl to me
  • 0
    @Artemix the wikipedia page say it's discontinued by trolltech (old qt owner) I'll try it tomorrow anyway
  • 0
    @jlave215 electron is a hypster ass fat bitch, there's no sane excuse to bundle a fucking webserver in a web browser, when you can easily implement a dom and ecmascript inside a widget in any gui toolkit
  • 1
    Just set the look and feel to system default and your Swing app suddenly looks really nice. Its a one liner in a try catch that you have to execute once when your application starts:

    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

    This screenshot for example is pure java swing:
  • 1
    I'm writing a GUI system for Java but it's probably way too basic for your needs. It has its ups and downs but the main down is that I am one person and school takes most of my time. Very fast though, and based off swing. Has OpenGL mode. Size values are strings (Based off HTML - percentages, pixels, or calc() to do both). Im quite proud of what little bit is written. Fully Javadoc'd.
  • 0
    @Artemix @DarthDev I'm checking out javafx so far good, even tho it feels hacky
  • 0
    Look at Delphi https://embarcadero.com/products/...

    It can build native for all platforms.
  • 0
    What about Gtk3 with Python bindings?
  • 0
    @rayanon still count as gtk, and still written in a C like way
  • 0
    Qt is a good option, Java needs ~500mb RAM just to start the VM.
  • 0
    @stuqshwk I'm on the php hate, not the java (yeah i wrote most of my code in php, but a turd is a turd)
  • 0
    @Artemix "The JVM is fast, it is probably one of the fastest runtimes out there. It just keeps getting faster and leaner with time. Thousands of the smartest engineers are working to make it better, and even more have contributed in the last 21 years." What is that supposed to mean? Comparing e.g. C++ and Java, programs doing the same task, Java is dangerously obese. Just having a garbage collector blows your RAM usage by default. Javas personal trainer is Ronald McDonald!
  • 0
    @Qchmqs agreed :)
  • 0
    On top of that, unlike C++ Java cannot use CPU registers due to its platform independency. Java can only use the stack for calculations, which is always slower than registers.
Add Comment