6 ms·
Creating a good cross-platform GUI framework is probably harder than creating a good cross-platform language.
by ashtonkem 7y ago
Creating a good cross-platform GUI framework is probably harder than creating a good cross-platform language.
- davidcorbin 7y ago100% correct
- choward 7y agoPossibly, but that's if you include the part about making it look/feel native. If you just provide the tools the are just focused on the language and framework and let the people who care about making it look native on whichever platform it's running focus on that then I think it's doable. Unlike things like react native you wouldn't be actually using the native components necessarily unless you can implement the UI frameworks components in terms of them. Otherwise they would need to be written from scratch.
- giancarlostoro 7y agoHeck if you go the Sciter route you can have a very well known approach but without going full Electron about it.
- ashtonkem 7y agoA native look and feel is definitely an implicit assumption I held. You’re right that eliminating this requirement changes the level of difficulty significantly.
- jolux 7y agoI’ve thought enough about this problem that I don’t think it’s possible to recreate a “native” experience with a cross-platform app. You end up compromising on the nativeness every time. It makes more sense to me to use native GUI frameworks and program your functional logic in something like Rust.
- fmxexpress 7y agoEmbarcadero was able to do it with Delphi. Android, iOS, macOS, Windows, and Linux. Single codebase single UI. It looks like the bear is in keeping up with all the platform updates all the time though.
- realharo 7y agoWhether it is actually good is subjective though. There are tons of existing cross-platform UI frameworks (Qt, wx, libui, JavaFX, TornadoFX, ...). The comment above says "Everybody would jump to Swift [for new projects] if it meant a cross-platform GUI framework." And yet people are still wondering why Electron ends up being the technology of choice for so many desktop apps.
- chadcmulligan 7y ago> Electron ends up being the technology of choice for so many desktop apps. probably because of the large number of JS only developers.
- yoz-y 7y agoI’d say electron became popular thanks to HTML, not JavaScript. IMO HTML is by far the “easiest” to use GUI framework because it is so unconstrained. It will end up a mess, but eventually you can get the result you want. This is not the case with native frameworks which come with a larger sets of rules on how they can be used.
- veidr 7y agoCreating a good cross-platform GUI framework is probably harder than creating a good cross-platform language. Way way way way way harder, I'd think. It's basically never been done in the modern era. All the successful ones from the past look (and work) like garbage on a modern desktop computer (I use gnucash for my dad's business, ha ha). SwiftUI is an interesting re-think, though, and as a Windows 10 user, I can tell you that the current "native" experience sucks green potatoes. There are like 9 or 12 different UI technologies I must interact with each month. All with different text sizes and massively inconsistent UI paradigms. So I think there is an opportunity here. But, I bet SwiftUI → Web will come first. And if that happens, SwiftUI on Windows, and desktop Linux, will be a no-brainer and will happen. And if it doesn't happen, then probably SwiftUI won't matter outside of the Apple ecosystem, and that will mean Swift won't matter much in the end, either. (EDIT: I don't mean Apple need do this and I don't expect they will. But SwiftUI is just an API; anybody could port it to whatever environment they want, and there are already some nascent third-party efforts to implement it for HTML/web.) Full disclosure disclaimer: former NewtonScript programmer
- coldtea 7y ago>Way way way way way harder, I'd think. It's basically never been done in the modern era. Also never been really tried, except by second tier companies with small recourses like Trolltech/QT, or even smaller open source attempts like Wx.
- andrekandre 7y agodidnt openstep use the native win32 for the ui on windows?
- coldtea 7y agoYes, for like 2 years, then it went under...
- diegof79 7y agoSun tried with Swing.. and they were not a second tier company at the time. Also previous versions of OSX (before the rename to macOS) included a special theme of Swing to make apps to look more native in OSX (Jobs was happy to announce that OSX supported Java... when Java was sexy). Then when RIA was a buzzword Sun/Oracle tried to modernise Swing without success. Today the only big Swing apps that I know are Netbeans and maybe IntelliJ (but I think that IntelliJ has tons of customisations on top of it). So is even hard for a big company too. I guess the problem is that the framework will be always behind the OS, and you need to recreate all the styles or to create a thin layer with the common denominator between platforms. Is interesting that different approaches to cross-platform UI (draw all vs thin layer) goes back to Smalltalk. AFAIK the idea of Swing drawing all the UI came from VisualWorks, while the thin layer of SWT came from IBM VisualAge
- tinus_hn 7y agoRight now people are using Electron. ‘Better’ is not that high a hill to climb.
- fetbaffe 7y agoPersonally I wouldn't mind creating a new UI for every platform I need to support as long as I could use the same language with the same build tools and reusing components between them.
- jakearmitage 7y agoLazarus would like to have a word with you.