3 ms·
We're still in the middle of a shift. The killer feature of the internet is that you can give everyone the same version of your software at the same time, and e
by aristus 12y ago
We're still in the middle of a shift. The killer feature of the internet is that you can give everyone the same version of your software at the same time, and even give them all different versions (eg A/B test buckets) at will. That was why we threw out decades of infrastructure and rewrote it all again in the browser. We're still learning how to make that fast. Windows 2000, believe it or not, was a kind of apotheosis of desktop programming. By that time the era was closing.
Maybe we'll go back, but I kind of doubt it.
- snarfy 12y agoIt sounds like all we really ever needed was a universal package manager that could auto update your app. I'd rather a native app speak the network than my network-speaking browser try to be a native app.
- sp332 12y agoYou still need to build native versions for every platform your app will ever run on. If you had that, the package manager would be easy.
- dangerlibrary 12y agoThat's not so bad - all we need is some kind of consistent abstraction layer we can target on every platform/OS. wait. right. I see the problem.
- tormeh 12y agoOr you could use JVM apps. Distributing LLVM intermediate representation code and doing the final compile on end hardware could also work. Building native versions on the developing end is a foolish idea not suitable for programs in general, and it is time we abandoned the approach. It made sense at the time, but much time has passed since then. Some software might benefit from the increased obfuscation, but other than that it's just shit.
- sp332 12y agoLLVM helps, but it's not nearly enough. You need a standard library including network and GUI at least. (Edit: or statically-compile everything.) Java probably would have worked, but as I recall, Microsoft killed it.
- tormeh 12y agoYes, that's true, it can't be done tomorrow, but I think it's the right approach. I'm not very familiar with Qt, but turning the more essential parts of it into a part of a LLVM standard library shouldn't take that many years, should it? And don't most standard libraries have networking now? I'm curious how Microsoft killed Java. I assume you mean Java on the desktop?
- sp332 12y agoYeah, I mean "killed" specifically for writing web apps. And by "library" maybe I meant "runtime"? I mean you just have to send the HTML and JS to the client, and everything else for running the app is already there. I guess now, you could send a Python file written to use QT and it would work equivalently on many platforms.
- tormeh 12y agoAh, yeah, well, as long as Oracle is the steward of the most popular JVM I think we shouldn't let it run non-trusted code. I was thinking more desktop (non-web) apps, really.
- deleted 12y ago
- snarfy 12y agoI'm OK with that. What does cross platform even mean? Windows, Linux, OSX? Maybe Android and iOS? It's still easier than rewriting all of the development tools, libraries, etc in javascript and for the browser, and your app will be responsive and fast.
- sp332 12y agoA single HTML documents will load on Win95 - Win8, old Mac Systems, OS X on PPC and Intel, a huge range of software and hardware running flavors of Unix, every smartphone OS ever, and be styled "natively" for every one of them (flat, shaded, rounded, even textured). That's only if you're coding for lowest-common-factor features, but that's not even possible for most other distributed files. If you want to get fancy, and you're willing to sacrifice compatibility with less-cool platforms, JS is generally within 2x of native performance, which is plenty fast enough to feel "responsive". http://asmjs.org/faq.html http://asmjs.org/faq.html
- clarry 12y agoI'd rather have good software that just works. Don't fix it if it's not broken. Updates.. what are they? If it's not broken, it doesn't need updates. If it's broken, I probably won't be using it in the first place. Test before you release. Don't outsource testing to your users. Just like in the 90s... Web developers might think what they get to do is fun, but as a user the idea that software I use is going to change overnight without my permission is crazy. I shy away from web software. (Also, all of it tends to run far too slow on my system anyway)
- derefr 12y agoYou also need the sandboxing and zero-install properties of web software, though. Imagine if, say, we had a docker:// URL scheme, where you could click a link and it'd stream you a container image that would then start an ephemeral instance of itself with a linked persistent data container, taking the rest of the URL as its command line.
- superuser2 12y ago... and for everyone to be on the same OS configured the same way. Which, given current business climate, is non-negotiably Windows.
- shaurz 12y agoWe could have stub apps that download the latest code from the web (or use a locally cached copy), compile it for the local machine and pop up a native GUI. The local app could communicate with a server in the same way JavaScript client code does now. No need for the web browser. It just needs to be made easy and truly cross-platform and nobody has written the infrastructure and programming languages needed to support this in a sane, manageable and unified way (yet).
- Detrus 12y agoWe also needed tighter security for running untrusted code. And a way to run small snippets of code quickly. Tight security can be solved by some sort of sandboxing that takes a performance hit and a web of trust. Computers that ran the program can confirm that it is not malicious. Then an app can be run without a performance hit. This is the model of Apple's app store more or less. Except it's not a web of trust but a centralized authority and there is no way to run untrusted code. And it makes a lot of sense. Most apps that are worth using will be used often, no reason they should take a constant performance hit after trust has been established.
- Zigurd 12y agoWe are in the process of "going back." Mobile devices are designed to host a new generation of apps. The Web is great for expedient universal access, but it won't be a universal multi implementation runtime that works better than platform native runtimes. The Web is a pre-touch legacy platform as much as Windows. Take any tablet and try using it as a touch Web device without using native apps to get a feeling for the scope of the problem.