Engineers frequently undervalue this feature, especially considering the things that the web give up in order to achieve it. So yes, it's a pain in the ass to get that div to align correctly but in exchange you get to run instantly and almost everywhere [1].
Relevant: http://xkcd.com/1367/
[1] Depending on your target audience, old browsers might be a major problem (China), but the browser landscape is rapidly improving in terms of a minimum expected set of features.
The practice is that
- you give your precious data to third parties
- that the safety problem now shifts from keeping your computer safe to keeping data in the hands of third parties safe (and this does not always play out in the way we would like, see codespaces for a recent example)
- that even the client side safety is a problem, the 'distribution advantages' have also been recognized widely by the blackhats.
- that we end up being tracked from here to Tokio and that the web is rapidly turning into a series of silos that try to have as little as possible to do with each other.
- that the final experience is almost always sub-par.
The theory is fantastic, but the practice leaves much to be desired.
We're clearly in 'we should be amazed the pig dances at all' territory rather than in 'look how good the pig can dance'.
I'm you're right that the experience is "almost always" sub-par. I would say "often", but not even "usually". I guess YMMV.
There aren't actually many fair/accurate comparisons around since most companies have either a shrink-wrapped product or a webapp. Rarely do you see both, and when there are I agree with jacquesm that the experience is almost always sub-par on the webapp [in comparison to the desktop app].
You can't really compare one company's webapp to another's non-webapp. i.e. you may feel GMail is better than Outlook, but since Google doesn't make a non-webapp version of GMail we don't know if that would be better than both Outlook and gmail.com. Microsoft does make a webapp version of Outlook, but I don't think many people find that better than "real" Outlook.
Ok... What is more fantastic for:
- large audiences?
- users who can't install/update software?
- " " can't/don't back up data?
- developers who don't have the resources to target multiple devices/platforms?
- integrations with other applications?
I have a Gmail account and a work one that is on Thunderbird. Gmail's through the web is just overall better than Thunderbird and I usually get people to send work stuff to my Gmail account.
But I don't hear many people talk about trying to improve it like some others are doing with remotestorage.io and byoFS or Mylar.
For example we have a web app that syncs audio on any device running safari or chrome. When we demo/ turn a crowd and their devices into a stereo..we just ask them to go to X URL.
They load it up in their device and the host hits play. The audience is not forced to download an app and do a few other steps. It's just load URL and bam everyone's devices become a stereo. Many other ideas in this space can occur.
The web and what you can do it with current day isn't as hobbled as many think!
That's not a web-app thats a 'safari or chrome' app.
This is more or less a perfect illustration of the the issue at hand here.
I'm not speaking specifically of the functionality that the grandparent poster used in his example, but just the general idea, for example: "Look at this classic console emulator, running in a webpage! (At 80% of the speed it would have run on a circa-1990s 90 mhz Pentium if it were a a native app!)"
To be clear, it is impressive when people create such things given the constraints, but (even ignoring the fragile compatibility problem between different browsers) when the platform you are using makes doing something that was impressive almost 20 years ago impressive (again) today, I'm not sure that's something we should all be that proud of as an industry.
The same thing could happen with any sandboxed platform that allows code download from an internet resource -- even Java did it more than a decade ago (WebStart I think it was called).
For some reason (traction I guess) we did it through piling up of more and more BS into the web model (meant for documents), and leading into the current mess.
I mean, instead of the big guys (W3C style) getting together and creating a cross-platform sandboxed platform for native style apps (e.g with actual rich GUI widgets instead of just text entry boxes and text-boxes).
The irony is that each of the big guys developed a kind of its own half-arsed version of that, e.g Microsoft and XAML, QT and it's XML/JS thing, Adobe and Flex, etc etc.
I'm sure many people fundamentally want programming to be as close to write-once-run-anywhere as possible, and hence think this is a terrible state of affairs; for me, though, having different platforms with different, clear design philosophies is a good thing as it encourages people to care about and innovate in design.
It's not as fast or as smooth or as fluid as a native experience.
It comes close, but there is a always a slight, yet perceptible lag.
In addition, each platform has specific strengths - and the LCD of web-enabled means that they can't be used.
Also the majority of mobile web users use safari and chrome anyway. Those two browsers to me are the mobile web.
What makes you think web applications made with this kit work only in Chrome?
The default defensive strategy is to pick one browser you know work and select that as the 'standard.'
Not complaining just noting the lock in is an emergent property.
Java seems to finally start to deliver on this promise though, the last few years have seen quite a bit of improvement. (Still far from perfect though, just the other day I was fighting some corporate website that insisted I install a certain version of Java in a certain browser in order to be allowed access, and it crashed in terrible ways when I finally did gain access).
Imagine that your browser simply wouldn't be allowed on the web until it conformed to a standard. Just like cars aren't allowed to go on the road if they do not conform.
This is unlikely to ever happen for various reasons and I don't think it would be a good thing but the number of broken implementations and hacks-that-became-standards is too large to even count by now.
Correct me if I'm wrong :)
"The only plus I see in all this is that in the end we are now free of the API lock-in that OS vendors traditionally required"
The discussion here is about APIs that are specific to Apple, Microsoft, Google etc.
https://news.ycombinator.com/item?id=7917921 https://news.ycombinator.com/item?id=7891913
edit: the two drive-by downvoters are invited to elaborate on how this comment could be improved or what they disagree with so vehemently that this merited downmodding.
I wrote a powerful database GUI as an applet, to pick up an update all the user had to do was save their work and hit the refresh button. I used Symantec Visual Cafe.
And none of the above are necessary elements of a reinvention.
In fact, it's the current web one-page-app mess that is a re-invention of the notion of the Java applet warts and all: it's slow, has crappy GUI support, and it's a mess to develop in (like Swing was over-engineered crap).
We could use an actual sandboxed, "runs code from internet resources" platform, that contains the whole stack rethought and simplified.
That would be exactly like the Java applet, except with a much better API (and touchscreen laptops would finally make sense).
As usually with interesting ideas someone beat you to it:
http://www.appcelerator.com/blog/2014/01/browser-based-emula...
I would just suggest that it sounds like what Win7 does underneath the surface with the thousands of real-time Registry operations.
That sounds bad, but I'm sure it's chaos because the operations all grew by accretion, not by selection, as your suggestion to backport good web concepts indicates.
so.... What are the most likely candidates? What's ready? JSON? WebGL? A SQL interface to the Registry?
That's a very tough nut to crack.
The only plus I see in all this is that in the end we are now free of the API lock-in that OS vendors traditionally required, that we tend to take 'client-server' applications more or less for granted and that because it is server centric you don't have to bug your users to download the latest version every time you improve things (though as was pointed out in another thread, this is also a disadvantage, as a user you lose control and if the company goes out of business you could lose it all).
The web also roams much easier.
If we keep going like this for a little while then we're back where we started, with the graphics terminals from the 80's, (canvas is pretty close actually) only this time across the WAN instead of a lan and with the ability to hyperlink between applications.