5 ms·
No one likes that, but 1) HTML/CSS/JS is sill the only truly cross-platform (mac/windows/linux/web/ios/android/etc.) UI platform/ecosystem in 2016, and it will
by raquo 10y ago
No one likes that, but
1) HTML/CSS/JS is sill the only truly cross-platform (mac/windows/linux/web/ios/android/etc.) UI platform/ecosystem in 2016, and it will probably stay that way in the foreseeable future because OS makers love their walled gardens.
2) An app's memory efficiency is not a top 10 priority of an average solo-or-small-team developer's concerns, because that's not what most users pay for.
Electron/NW.js apps will only become more common, so I hope things will improve with asm.js/webassembly/etc.
- fdgdasfadsf 10y agoOn point (1) you've kind of loaded the comparison by including web in that list...
- raquo 10y agoIt's a common business scenario: start out as a web app, then as business picks up let's start providing native apps. Or the other way: start out with a native app on the platform we most care about + a web app for "access from anywhere".
- gr3yh47 10y agoPython would like a word with you about point 1)
- corv 10y agoPython on iOS?
- baldfat 10y agoWell I have yet to see Python make a decent cross platform application on all of those platforms especially iOS and Android. I love Python but people over state its benefits and effectiveness.
- Loic 10y agoPython is wonderful for business logic and scientific computations. HTML/JavaScript is wonderful to make beautiful interactive user interfaces. So at the moment, I am using PyQt/PySide and load my HTML/JavaScript/ReactJS GUI in a webview with a simple bridge object between my Python code and the JavaScript code. As soon as I need native interactions with the file system, etc., I am using Python, which is robust and proven (and I am used to it). For example, if I need a dialog to save a file, I just use QFileDialog. At the end, because of a clear separation between the GUI and the computation/system interactions with the bridge object, I just need a different bridge object to have everything running fully online. One point is of course that I am not developing for phones and tablets, I package everything with pyinstaller for the good old desktop users.
- raquo 10y agoHonest question – how do you build cross-platform application UI in python?
- mixedCase 10y agoKivy.
- eyko 10y agoI'm not familiar with the Python ecosystem but I imagine there are bidings for GTK, QT, or other UI toolkits. The same applies to most (popular) languages. The claim that HTML/CSS/JS is the "only" truly cross platform stack is simply not true. The main hurdle that other languages faced was not having a native UI. For example, GTK on OSX or Windows did not feel native. Key bindings were often not native. Similar story with Java (was it Swing?). The HTML/JS/CSS combo has exactly the same issue (it's not comparable to a native GUI - Cocoa or whatever it is.
- falcolas 10y ago> The main hurdle that other languages faced was not having a native UI. Electron faces this same hurdle, but with a twist. It just doesn't care; it picks a rendering target (the web) and simply uses it everywhere. Perhaps that's the approach QT and others need to take as well: stop trying to match Apple's UI on Apple, and Windows' UI on Windows.
- mgkimsal 10y ago> stop trying to match Apple's UI on Apple, and Windows' UI on Windows. Great idea, but make sure it at least looks/feels good. I remember Swing stuff from the late 90s and... IMO the primary issue wasn't so much that "it doesn't look like Windows" but that ... it was a very poor experience. Copy/paste/keys - yeah, that's an annoyance, but if the UI is clean, friendly, easy to understand and be productive on, people can look past the differences of the native host OS. Swing (and GTK and others) really don't provide a 'better' UX (imo).
- woah 10y agoI use a network simulation software inside of lubuntu inside of a VirtualBox inside my Mac. VirtualBox is a stream of headaches, and you suffer a big performance hit. What I wouldn't give for the software to serve an http/css/js interface so that I could run it with docker or natively instead.
- vetinari 10y agoMake sure that the virtual machine has "paravirtualization interface: kvm" setting for linux guests, that the guest tools are installed and if you really use network, adapter type: virtio-net doesn't hurt. And also, that you have enough RAM. Then, virtual machines in VirtualBox are fine.
- woah 10y agoThanks! Good samaritan :)
- reitanqild 10y agoJava as well for basically anything but iOS. C# might even cover that now.
- __derek__ 10y agoXamarin, I reckon?[1] [1]: https://www.xamarin.com/ https://www.xamarin.com/
- st3v3r 10y agoPython can work on desktop, but it's solutions for mobile are iffy at best.
- adamnemecek 10y agoThere's also Qt but they have been moving in the web direction too.
- lostInTheWoods3 10y agoAnd don't forget JavaFX
- adamnemecek 10y agoDo people use that?
- Florin_Andrei 10y agoIt would be interesting to see the evolution of memory usage for the popular platform du jour from the earliest decades until today. My uneducated guess says it will be an exponential.