Hacker News new | ask | show | jobs
by cestith 1405 days ago
It's also a real pain to do cross-platform correctly without some abstraction layer like Qt, gtk, Wx, Tk, SDL, OpenGL, Vulkan, or something. Do you really want to write a Metal app, an MVC app, an X app, a Wayland app, and then still be asked to make a web version of it for people on the go? Look at all the work put into Wine and Proton to get Windows games - perhaps the ultimate everyday example of optimized native code - to run on Linux.

There are languages, UI tookits, cross-compiler sets, and RADs that make this easier. Qt, gtk, Wx, Tk, SDL, FLTK, and such happen to be among them. So are Flutter, Delphi (same code and RAD project on Windows, Linux, Mac, iOS, and Android), FreePascal/Lazarus (not identical to Delphi but a pretty close F/OSS alternative built around the same language and concepts), Xamarin, React Native, NativeScript, Felgo, Roslyn, GLBasic, BlitzMax, PureBasic, QB64 with Inform, Gecko2D, FireMonkey, JUCE, IMCROSS, Haxe, Webassembly, the JVM, CLR/.net Core/CIL, Scala, C#, F#, Clojure, ClojureCLR, Component Pascal, IronPython, IronScheme, PowerShell, Kotlin, Groovy, jgo, Visual COBOL (yes, really - it targets JVM), JavaScript, Raku, NetRexx, JRuby, Yeti, Fantom, JR, Pizza, and I'm sure many other tools wouldn't even exist if developing single-source applications for multiple platforms was easy with just a C or C++ compiler.

1 comments

100%