Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Where do you see web and desktop apps in 5 years?
108 points by OedipusRex on Oct 27, 2014 | hide | past | favorite | 97 comments
As the browser becomes home to more and more software that traditionally would be desktop only, where do you see web apps and desktop apps in 5 years?



Hopefully 5 years is long enough for us to stop and take stock of the inevitable destination of the browser: an OS in a VM.

With any luck we might finally realise that we're not dealing with "documents" anymore, that HTML, JS, and CSS do not a good UI framework make, and that JS simply isn't good enough for what we need it to do and how we need it to do it.

ECMAScript 7 will be pretty much ready to implement and the standards committee will realise that they've run out of syntax for ECMAScript 8, forcing a rethink. Fingers crossed a neckbeard will arrive and point out that a LISP would be ideal for both defining the "DOM" and providing a base language for targeting by other languages, who can just (ok, "just") serialize their ASTs and pass it in.

Seriously: if, in 5 years, we're still perfecting the dominant user-facing runtime by tweaking an arbitrary XML spec, a language with only one kind of number, and a styling language so inept it almost requires auto-generation tools, well I might just kill myself.


Five years is nowhere near long enough for the entire platform to be replaced with something completely different. Unless, of course, you mean the "OS" and VM that is already in our browsers; but it seems apparent you don't want that OS and VM, you seem to want something very, very different (and different in ways that nobody is really working on, as far as I know).

I'm less critical of JavaScript, but I've also got a much more conservative expectation of how much will change in any five year period. Your estimate assumes more dramatic and rapid change to the web than at any point in its history (except maybe the initial introduction of the graphical browser, or of the release of JavaScript, itself), and an ecosystem with a few billion participants does not and cannot change as fast as one with a few thousand. And, of course, for something to be the way we all do things in five years, somebody would have to be doing it that way today on a small scale.

Please don't kill yourself, despite the fact that your dream definitely is not going to happen the way you've envisioned it. (In its place will be a gradual, but measurable, improvement on nearly every front in the systems we currently work with. It'll probably all turn out alright.)


I wouldn't dare expect this to exist in 5 years, but I hope maybe it's an issue slightly closer to the front of our minds. We really don't need, or even want, a wholesale replacement of the browser internals - the rendering engines, sandboxing techniques, etc. are good: all I'm saying is it would be really, really nice if we could have access to these components at a lower level (not too low, mind) than what we've currently got.

I'm fine with JS as a thing that exists, my problem is with it's position as the "assembly of the web" (credit to user Lerc below for that fine phrase.) The good parts of the HTML/JS/CSS paradigm are making awesome things, but the bad parts make our lives far more difficult than they need to be.

And don't worry, I'm not actually going to kill myself, but thanks for the concern.


After doing web for a little bit, ending up loathing it, and then checking out iOS and enjoying it so far, I couldn't hope for this outcome more. I never realized how crippled browser based web applications and the ancient, shitty tools used for creating them are before developing on a web-connected platform that uses a systems language directly for its applications. Pretty much anything you can do with a computer, you can do in an iOS/Android app, and it can connect to the web, which lets you create rich experiences far more easily. To make any modern web application for a browser, you have to use garbage like opinionated JS frameworks and a myriad of other crutches and hacky solutions because the tools for the frontend are incredibly limited and were not designed for what is demanded of them today. Plus browsers don't easily support connection protocols other than HTTP, so this leads to a whole other host of hacky backend solutions for developing so called "real-time" applications, when you could easily use something like UDP were you not limited by a browser. Only downside to iOS/Android platforms is that they are governed basically by the Apple/Google dictatorships(which is somewhat understandable, because it would be a disaster if anyone could so easily distribute applications widely capable of executing malicious code on a user's device), and it is completely up to them what is allowed and what isn't, in contrast to the open nature of the web. I don't know how this could be remedied, seeing as there is an undeniable trend of more and more consumer-facing web activities being done through mobile apps, rather than browsers. Something like a completely FOSS device OS with a decentralized marketplace; e.g. anyone with a server can host their application, similar to how it is with jailbroken/rooted phones? This still wouldn't solve the problem of people being able to execute malicious code on a user device, but I guess if you think about it it isnt much different from some idiot downloading "free cursors" from some malware site and giving themselves a virus like what happens all the time today.


Really? Web technologies are much easier to work with and make a much better UI toolkit. Just look at the share amount of developers doing Web stuff and compare them with the amount of developers doing iOS.

And btw, iOS development is easy for as long as you do not want to customize things. Once you start changing the standard controls you are entering the land of no return.

Now compare this with web technologies which are designed to be customizable.


> Just look at the share amount of developers doing Web stuff and compare them with the amount of developers doing iOS.

I think that is more because web apps can reach a much larger audience, not because web apps are easier to develop.


I've been telling this for long time: anyone promoting web technologies as the future of all apps should give a decent try to native APIs and tools.


Which native tools are you referring to? I only have a little experience with xcode which seems decent but not that great to me. Most of my experience was with Microsoft technologies like WinForms, XAML and MFC a long time ago.

To me, HTML+CSS which I am only really starting to use lately, is a much more pleasant experience. There are many quirks obviously, but I dread to think about how it would have been to design something that doesn't just look like a plain vanilla app in one of the native frameworks. I think Flash was probably a nice design experience with a bit more holistic approach, but I never learned that and I don't see a reason to now.


> Which native tools are you referring to?

I know it's a little dated, but I love Java SWT for producing native GUI. In particular, I almost exclusively use 'GridLayout' on all my controls and it just works.

With HTML + CSS I find it difficult to map 'how the screen should look' in my head to the HTML/CSS code due to the complexity of the layout mechanism. I often grind my teeth and think, "How can such a simple layout be so difficult to produce?!"


Well, what I meant was more APIs than tooling itself. Many hate XCode, but I think it OK, and AppCode is decent alternative.

I've been dealing with the web tech for some 18 years now, and iOS development experience was really refreshing. Yes, doing anything not plain vanilla takes some work, but the APIs are very powerful, and even so with addition of UIDynamics and friends. OTOH if you want plain vanilla app you don't have to reinvent the wheel.


>> I dread to think about how it would have been to design something that doesn't just look like a plain vanilla app in one of the native frameworks

I dread to think about how it would be to design something that does just look like a plain vanilla app in HTML5+CSS+JS.


I'm deathly afraid of that ever becoming true. An OS in a VM by default? Isn't that the end of all things nice and native? I know that's pretty much the state of affairs in the browser already but I do worry about how that would affect other parts.

Will system language become even less popular and "apps" even more popular? Will we completely live in the cloud by default? What will happen to our data in the long run?


To reiterate what /u/SwellJoe is saying, you can actually already run a full linux stack with UI in the browser.

Here's one without a gui: http://bellard.org/jslinux/

What more functionality exactly are you trying to achieve with this "OS in a VM" concept you are referring to?

Would you say Iphone/Android/WP apps satisfy what you consider a "OS in a VM?" Or close to it? The web and and iPhone app environment arent that different anymore.


It's not a concept I'm peddling, it's an observation.

Back in the day the browser was a document browser - like a read-only, network-enabled version of Microsoft Word. It's goals have changed immeasurably, but the technology largely hasn't - at least not at the conceptual level. We use it to make applications that are much more like actual applications than they are documents. The slow march of the browser is to doing "anything" a native app can - we now have geolocation APIs, graphics card access, "threading", native drag-and-drop interop, etc., etc.

By OS, I meant it more in the way the JVM is an "OS" ("virtual machine" is too vague): it can do almost anything the actual OS can, provides platform-agnostic drop-ins for many native toolkits (e.g. GUI), and for a tremendous amount of the workload, developers needn't care needn't care what platform they're on. Now the JVM has its flaws for sure, but at least it knew its purpose before it grew up, the result being it is highly performant (less the boot time) and flexible.

If you need a document browser, sure you can build in a little macro language with only one kind of number, but if you need a VM a la the JVM you'd be well advised to build something better. My point is that we're heading somewhat blindly towards the latter by making a Frankenstein out of the former, and we really could do with pulling over and looking at the map for a bit.


I think this is a ridiculous thing to say. Don't think of the web as dev platform. Think of it as OpenGL or any other GL language. To create a game you need to use a graphics card which provides a primitive set of instructions but they can be empowered with the help of libraries. The web is the same. It provides a primitive set of functions that can be represented in a common way. They are still usable on their own but much more useful as part of frameworks.

Web technologies is for UI what opengl is for gaming.


I love javascript and will continue using it.

I really hate language snobbery.


I am also not fond of language snobbery. There are certainly languages I hate, but I accept that people find that they suit their needs. People should be free to choose something that works for them.

The difference with JavaScript is the notion of it being the "Assembly of the Web". JavaScript as a Compilation target presents a problem. People can't freely choose their preferred development style if it is not accommodated by JavaScript. Blocking IO, pre-emption, concurrency etc. These are all things that programmers may choose, You shouldn't be forced to use such techniques, but nor should a platform deny them because of the limits of a single language.


That would be lovely but I wouldn't hold my breathe...


Same place we were five years ago: nobody cares what API you're programming to as long as your apps are good.

No, seriously. The iPhone SDK came out in 2008. Google Maps came out in 2005, ushering in the modern era of web apps. Mac OS X came out in 2001 and .NET came out in 2002, representing the major desktop platforms we know today.

The web as a platform is no different than any other platform in that it's just another platform with its own strengths and weaknesses. It just moves a whole lot slower than the rest, which is why we're still asking this question after this many years.

APIs and platforms come and go. Developers always have had and always will have choices about which ones to pick for developing their apps against. These choices have some impact on how easy it is to build various types of apps, but at the end of the day, the only thing that matters is how well your app serves the needs of those using it.


A related question might be: where will mobile apps be in 5 years?

Hopefully, the answer is that web standards will evolve to allow HTML+JS to do things currently only possible in mobile apps. This would mirror the original transition of desktop apps to web apps, and would have positive implications for the internet by bringing mobile users back to webpages (though I wouldn't count on it being done in 5 years).


And its corollary: what will devices look like in five years? How big will they be? And how will be people be carrying things that big?


I was shopping for phones today and physically they're all bigger than my almost five year old iPhone 4. The user interfaces are essentially the same as on my iPhone or my even older G1.

I did see a curved smartphone for the first time though, so I predict in 5 years phones will be semicircular, about 40% larger than they are today, and have slightly faster graphics.


Going totally off topic here, but if you're willing to try something different than iOS then have a look at the Sony Xperia Z3 compact. Small (by todays huge standards) but packs a good punch in specs :)


More voice control

No I don't like yapping at my phone or PC, but my 6yo kid loves FireTV's voice search feature and uses google voice search all the time on her iPad, even if she knows how to spell the words. As precision improves, I see my wife is using it more too, for searches and dictation.

More support for device-/screen-hopping (state-in-the-cloud, continued-commerce)

Stick-computers

Affordable devices optimized for streaming screens/desktops/apps hosted in the cloud. Hardware upgrades only in data centers. Consumers investing instead in high bandwidth/low latency connections.

Web 3.0 == forgetting (ignoring/hiding)

More apps featuring some form of 'forgetting' (hiding older, unused, unimportant, noisy data).

More apps assisting in the reverse: new mechanisms to improve recall/precision of 'forgotten' information by 'priming' our searches with user input (sounds, locations, colors, images) and/or interactive feedback (hot/cold, before/after, similar/different, binary search)


Not just with the voice control - I can imagine something like Siri being able to respond to requests of things like, "Please show me all of my videos taken while I was in Hawaii of 2014."


This also comes back to hands free for driving, etc. I don't understand why a tesla d can drive itself but we're still using blinkers and manual actions to change lanes...


This may be in our near future as well. Did you see the Audi R7 piloted driving stuff?

Check out https://www.youtube.com/watch?v=eOYsI1cqUrw or the long version https://www.youtube.com/watch?v=DeWriarFlsU


Yea, so fucking cool. Also worth noting that this was on a closed course with a known track... That makes everthing a lot easier.

Update: I never saw this video, very cool thanks!


I don't think things will change a great deal in 5 years. I would love to be wrong, but the progress of web standards and browser technology is painfully slow. The things at the leading edge of development are amazing, but there is an enormous gap between the first browser supporting something and being able to assume that most users will have support. There is also a very slow progression due to the rather annoying notion that everything must have a 'Use Case'. WebGL comes along and when that got into browsers the need for Typed Arrays became more evedent, once people started making games and so-forth they wanted fullscreen options once things were fullscreen people wanted to use mouse movement rather than mouse pointer position so that FPS games could work properly. Each advance demonstrates a new deficiency which gets fixed but it takes another iteration of browser development and release.

I think the change is coming, it's just that the timeframe of 5 years is just too short.

I started a project a few years ago aiming to do Desktop style things using HTML+CSS+JS. When I started I was just mucking around and I expected something better to come along and I'd abandon the project, but I'm still plodding along ( https://www.youtube.com/watch?v=7namj7iy16Y ).

Along the way I came across a simple idea as a test of whether or not WebApps were up to the job of desktop work. Completely replace the functionality notepad.exe (or OS Specific equivalent level program) with a Webapp. The text editing part is easily managed, but the test is not for what can be done but what can't. What about opening all .txt files with it, editing then saving the result to the desktop, or hacking on startup scripts when nothing else is available?

Much of the behaviour of WebApps assumes that "It's on the Cloud". That is a Deal breaker for a lot of people. Especially since Snowden.

We're getting there (or at least somewhere) but we're not doing it terribly quickly.


Software above the level of a single device.

Data is replicated, no item exists only in one place.

Data is shared, shareable and in formats that can be operated on both by the owner and by the user, the visitor, the renter, the spectator of the items in question.

Data is encrypted, watermarked, tagged, associated to immutable provenance histories.

Data is ephemeral, guaranteed to be forgotten, subject to erasure, intended to be unrecoverable once used.

The network is reliable. The network is unavailable. The network is on the side of the people. The network will stab you in the back when you least expect it.

Some programmers will insist on writing javascript to control medical devices. Some programmers will insist that casual games running in sandboxed environments be provably correct.

Someone will cobble together an AI and set it to rewriting enterprise java apps, when interviewed after the disaster the AI will claim that humanity "had it coming".

A software bug will start a small war. And a EULA clause will end another one.

You will be completely transparent and documented for everyone else to see. You will not have sufficient permissions to find out anything about anyone with any power over you.

Most applications will incorporate blockchain technology; but bitcoin will be the subject of jokes and nostalgic pop culture trivia questions.

It will be the best of times ( for some ), and the worst of times ( for others ).


Here's something a little out of left field, but worth considering: By adding support for Android apps, Google Chrome has the potential to completely dominate desktop and mobile development.

Using a simple hack [1] it is already possible to write a single Android app that runs on (a) Android tablets; (b) Mac computers; (c) Windows computers; (d) Chrome OS computers; (e) Nexus Player set-top boxes. If Google were to put its full weight behind this strategy then I think it would quickly become the default platform for desktop development and thereby destroy the Windows empire. It might even mean Android apps being developed for what would normally be the domain of web apps.

[1] http://lifehacker.com/how-to-run-android-apps-inside-chrome-...


I don't remember which book it was (maybe "Inmates are running the asylum"), but there was an example of dancing bear. It is amusing to see that bear is able to dance at all, but that is by no means are good dance.

Also, how many users are constantly switching between different platforms? If all I see is the lousy app on my platform of choice I could not care less about its capability to run on others platforms.


A similar quote I read was "A horse that can count is a remarkable horse, not a remarkable mathematician".

You are right that users don't care about having one app running on multiple platforms. Instead, it is the software developers who would benefit by not having to write the same app three times.

You seem to be assuming that an Android app running on a non-Android platform would be 'lousy'. Is that because an app designed for a touch-based tablet would provide a bad user experience when run on a desktop computer?


Developers will view REST APIs with the same dismissive disdain reserved today for SOAP/COM/CORBA. In 5 years time there'll be something much cooler, probably based on GIT. (GIT will live forever.)

The hot in-demand skill will be writing tight C code for ASM.JS based single page holographic apps.

We will commute in flying cars and poverty will be history.

Or maybe not - who knows? The best way to predict the future is to invent it. Nobody has a crystal ball, so it's really up to you.


> The best way to predict the future is to invent it. Nobody has a crystal ball, so it's really up to you.

In a sense you're right, it usually takes a few people doing something different, and if it's better, others will follow suit. However, by following current trends and looking at how past trends played out, I'm sure we can have a reasonable idea of what will decline and what will gain favor.

As the OP already noted, we can already notice a move towards web apps. Based on that one might conclude that we'll all be using web browsers as our OS and Chrome OS is a perfect example of that. However, we should also notice that demand for desktop apps didn't suddenly die out as web apps gained popularity. Desktop apps are still in demand, so the previous conclusion is too hasty. One conjecture I want to make based on current trend is that developers will start developing more for mobile platforms (phones and tablets), rather than the desktop because this is where consumer demand and use is moving to.

In both cases we can use current trends to strengthen or weaken hypotheses. It's not like the future happens in a crystal ball either, yesterday was another day that contributed to the future.


Golang is so much easier than C and almost as light... :)


>>As the browser becomes home to more and more software that traditionally would be desktop only

Sorry I don't see that. All of my desktop apps are still desktop apps. On Windows I still use Office, VS, Adobe CS, Amira.

I don't see this happening any time soon due to legacy codebase as well as performance and ease of coding issues. For example, with great difficulty one could port Photoshop, perhaps using clever off-screen WebGL buffers to do the heavy computation, but why would you do that?


There are plenty of Photoshop-inspired apps that run in the browser already. None of them are on par with Photoshop obviously, and maybe none will be in 5 years but I don't think it's completely unrealistic.

There are a bunch of obvious advantages to webapps like no installation, settings are kept no matter which computer you are working from, works everywhere, etc. They may not outweigh the disadvantages in your view but it does seem to be the trend in the world.


I think we both agree that the technologies will soon be there that enable native performance (not to mention the JVM) but I still can't see the advantage with the exception of freeing the user to run an installer, but caching assets will still be a requirement. The ability to keep settings persistent can be addressed with a traditional model in the same way as Abode Creative Cloud or the Steam client, that is to say just store them. The run from every machine claim is incorrect because engineers must tune and verify that the programs run in each browser, in much the same way as is required by conventional C++ programs. In fact, the myriads of browser, version, architecture combinations make me remember the good old days of targeting x86 Windows XP.

I think the trend is very much only applicable to service startups, and against it run trends like C++11 and QT letting me build native apps on Windows and Android from the same codebase.


Do you think it's technically possible to get something on the level of Photoshop with performance that is, at least, acceptable enough, in the browser? Using asm.js I suppose?


I don't see why not. I won't make any guesses about a timeline, but it seems inevitable to me that it will happen at some point or another. Current technologies allow you to do quite a bit locally and it might even make sense to offload heavy expensive operations to a server instead.


Ah, sorry, I meant to ask if you think it's currently possible with asm perhaps, considering that we can already do quite a bit of heavy stuff in js right now. I have no doubt over time it will be doable, I'm just curious if we might already be there (purely technically, of course, I can imagine we might not have the right tools to actually pull it off right now).


Adobe might want to do that if they thought they could make more money that way, perhaps by reducing piracy or increasing lock in.


The dream of "convergence" will reverse starting with windows 10. Web and mobile will tend towards html5/js, desktop applications such as browsers, games, ide:s, media production, cad,... will remain heavy C++ (or possibly Java/.NET) applications. In 5 years we will see no dramatic change in the landscape. People will realize that even moderately complex applications should never be browser based and ideas such as browser based word processors or drawing programs will be remembered as a fad.

Rust will ease the pain of heavy desktop development somewhat. C and C++ needs to retire, but that won't happen over night. It will take 30 years, not 5.

Web dev will be helped by ES6, or even better: AtScript/TypeScript. JS becomes the assembly of the web and hopefully no one has to actually write todays JS directly.


I see everything moving to a ChromeOS-like model, with HTML+JS and WebGL for graphics-heavy things. If not those technologies in particular, something equivalent.

Essentially the consumer OS will be reduced to being a platform for a browser (I use "browser" loosely here -- I consider iOS to be an app browser in this sense). The OS will disappear from visibility.

To make this work you'll need a lot more standardization on APIs and data formats (because in the future consumers won't touch "files" anymore). I also think that's coming.

Finally, I see the server/client sides being even more divorced from each other. Clients will become dumber (single-purpose) and servers will become smarter (multi-purpose), and both will be much more connected.


I've thought for a while that certain web technologies that Google is developing or promoting (e.g. WebGL, NaCl/PNaCl, V8, Chrome app store, Chromebook, etc.) has implied a vision of web apps being just as capable as desktop apps, perhaps even in categories such as video games that need raw access to the CPU/GPU. However, progress towards this vision seems to be going much more slowly than I would have expected, and desktop apps will no doubt continue to fill certain needs and niches even if a fully realized web platform is achieved.

Of course, mobile apps (and the consumer electronics revolution that has allowed many people to consider their phone as a primary computing device) are also competing in this space.


In 5 years you'll have to know C++ and emscripten as it will be the main way to develop frontend applications.


Said nobody ever.


Well, reading comments was interesting. A lot of "we need a faster horse" thinking, and, sadly, a lot of "we don't care about the users" thinking too. By "we don't care about the users" I mean thinking purely from the developers perspective, not from "make it harder for the database easier for the user" POV. And you can substitute database with developer. For those hoping for the rise of web, I'd suggest a few points to consider. The most important: what advantages does this kind of approach have compared to native — and to think about that form user's perspective. Run the same app everywhere? Ok, but typical user does not switch platforms that often on the same kind of device. Switching desktop/mobile is another matter, but there is an alternative to running the same everywhere, e.g. Apple's continuity.

Ease of updates: just go to the same URL and you get the version. Well ok, what if I don't like the new version? How do I keep the old one? And how big advantage is that (again, from users perspective) compared to app stores and auto updating, that is already there?

I am afraid that in five years from now we will see the same we saw five years ago: throwing in half-baked features into browsers to keep them "on-par" with native APIs and endless search for THE framework. The trouble is, that while native have those frameworks at foundation, web tech basically requires them to be bolted on…


I think about this a lot, part of my job is designing mobile apps for Ubuntu touch that scale to tablet, desktop, TV using the same code base (but different layouts). We are working towards convergence and the native Qt/QML apps we build for mobile can already run on Ubuntu desktop. I know other desktop/mobile platforms are also working towards the convergence goal, it will be interesting how it plays out. I can see Android desktop apps not being too far away, for instance.

5 years goes past pretty quick, if I think of desktop or web apps 5 years ago not that much has changed.

I have a lot of faith in browser engines continuing to make a great progress, and web as a platform has more developers and momentum than anything else so I expect to see a lot of interesting things coming out as web based SaaS software.

If I think of some of the more complex desktop apps I use (things like Photoshop, After Effects, 3DS Max, Logic Pro, Davinci Resolve) I don't think those will be replaced in 5 years by apps running solely on web technologies. I think something like Qt offers a better fit for these types of apps if cross-platform is a goal.

Having said that, apps of that complexity are a small fraction of what people actually use - as web closes in on the quality of user experience of native apps I think more and more traditional desktop and mobile apps will be built with web technologies.

And there will probably be some curve balls in terms of how people interact with computing devices like IoT devices and Oculus Rift/Magic Leap type wearables with completely new interfaces.


What is happening now and will be even more prominent in the next 5 years is that people will be using web technologies like html, css and javascript to write one codebase that is transferable to any platform (browser or native).

Nowadays with node.js you can convert your web-app to an android, ios, mac, windows app, etc. You have access to system hardware, and from the users perspective it is no different than any native app, even though it is built with web technologies.

It is quite amazing, html, css and javascript standards are becoming a universal platform for developers. We are writing apps for html5 architecture vs specific processor architectures. The browser is a compile target and javascript is becoming like bytecode.

I see a future in which we develop multiple new ways of coding apps using web technologies, completely different than the way we do now. We will have various languages, methodologies to do it with but in the end it will all compile down to code a browser rendering engines can understand. And we can use this rendering engine to run the app outside the browser.

So basically I am saying we can code apps in various ways that compile down to web-technolgies and use this single codebase to port to any platform. And the user experience will be indistinguishable from native apps coded directly for the platform.


IMHO, Prediction of software sustenance depends primarily on following points: a) Current Usage b) Current set of users c) Availability of internet d) Kind of exposure to apps

Current Usage: Current desktop apps are used by the majority for purposes such as documents, presentation, image modification, watching videos. If these purposes are served in fullest and flexible enough to adopt, then web apps will start dominating.

Current set of users: By numbers, if we go, majority of current set of users for desktop apps will fall in the category who might not be aware of a browser turning to be a replacement for all their needs. It will take 5 years for web apps to expand and become popular enough and reach out to this majority for extinction of desktop apps.

Availability of internet: Currently desktop apps are predominantly used for offline purpose, since connection to internet is not required. And places where there is no connectivity to internet is present, still desktop apps would survive. But web apps requiring internet connectivity at all times for each request-response will not be able to reach out to places where there is lack of internet connection. Web apps will need to provide a offline environment similar to desktop apps, then web apps would dominate. Otherwise, if internet connection is provided to everyone like how sun provides light to every corner of the planet, then web apps would burn down desktop apps.

Kind of exposure to apps: Currently, majority of users tend to sit in a cubicle and perform work, which is more related to desktop apps. If majority of users tend to become more mobile, for example, all the personal PC boxes become tablet/iPads/smartPhones then web apps (mobile apps) would need to replace desktop apps.


Apps would have won as the browser still try to catch up with the richness of desktop environemnts.

Everyone will be back to native application development, with REST/socket protocols to communicate with micro services in distributed servers.

HTML will be used just as multimedia document format as a means of providing an interactive reading experience, while a group would be pushing for HTML 6 as the real thing.


Oh, how I'd like to see sanity going back to the web and identity crisis to be over. I am sick of that constant search for the holly grail of silver bullet framework. Guys, how about admitting that html, css and js are not really the best tools for the job of building apps?


It's an exciting future for web apps – I'm more interested to know who's going to take us there. It will require a significant collaboration between the browser makers and the operating systems – and while sometimes they are the same people, the major players have a conflict of interest.

When the iPhone launched without an app store or sdk, apple pushed for web apps. Yet [this article](https://developer.apple.com/library/safari/referencelibrary/...) hasn't been updated in over five years. And Apple has very little incentive to do so now. The Chrome web app store is a promising concept, but I'm not convinced it has great traction.

My fear is that as web apps gain access to native app features, standardization will go out the window as each operating system (or maybe browser at that point) competes for market share.


I hope we trend towards open, public APIs that make which interface you build or use just a personal choice that others don't have to live by.

One example is HN, they've recently released an API and when that is full-featured apps and alternative sites built on the API will be able to completely replace the HN website for anyone who want them.


It's a platonic ideal, but the internet runs on ads, and that ruins everything.

An interface you don't control is an interface you can't advertise on. The vast majority of players will never open their data in a manner that hurts their ability to sell sponsorship, and this problem is entrenched in the fabric of the internet.

HN is a very, very rare exception in that it never was and never will be dependent on ad funding.


What about licensing their API? Could that be a viable business model for both the website and the app creators?


Javascript will no longer be the only viable language for working with the DOM in a browser. With technologies like asm, I think it is only a matter of time until we are freed of directly or semi-directly (coffeescript) coding Javascript in every project. If it isn't asm, I think this will happen one way or the other.


I like the idea of a gradual merger of the abstractions we now call browser and operating system. I think that I first read about this idea years ago when ASUS floated the idea of having a ChromeOS-like thing in firmware, but I can't find the link.

The important point is that, like microwaves, for 99% of people (even devs), it will make no difference at all who makes the software running in the background. Sort of like BIOS. It will all look and act exactly the same: basically a browser. I already see this convergence happening in mobile, web, and desktop. There will be some other contentious thing to fill the HN threads, some new interface abstraction or maybe VR. Whatever abstracts the most away while working on the most number of devices seamlessly will become increasingly more interesting.


Well, for Web Development, I hope it will have mature support for languages and APIs compiling to JavaScript. Emscripten is a nice demonstration on how given the right tools the web can be a great target for porting to. Today it's missing some support for C++ features and libraries but one day maybe we'll not only have the tools with full POSIX/UNIX APIs but Windows, Java and Android APIs too.

As for Web practices I hope everyone embraces responsive design as being served a separate ghetto version of a site with less features is lousy. I hope everyone stops making a app for their site as that's usually just as bad as the ghetto mobile site if not worse because perhaps the developers didn't have experience in that platform.


Perhaps a move away from apps to widgets -- users will continue to be impatient with anything other than the fastest way of getting things done on a device. So rather than launching an app, reaching a home screen and then selecting an option from there, apps will provide direct links to specific actions that can be invoked from the OS. For (a simple minded) example: you don't launch the Twitter app to tweet, you invoke the 'tweet' action.

And possibly, the concept of API's might hit desktop environments and we might be able to string together such actions much like we do with UNIX piping, allowing for more automation (e.g. 'append this text to document x with time stamp', where the doc is rich text document)


Somehow I don't see Apple doing that


http://blog.intercom.io/the-end-of-apps-as-we-know-them/ - This article about where mobile apps are going resonated with me. It says we're eventually moving away from a bank of homescreen icons to notification centers and all actions related to certain context are present in the notification itself (like, reply). Moreover certain products/services might not need to have their own app - piggybacking as child cards of others app notifications. Very fascinating read.


We will move to a cloud based model and all your data will be owned by the cloud providers. Google, Apple and Microsoft are already ensuring this.

From a Google filing in court about Gmail privacy:

>Indeed, “a person has no legitimate expectation of privacy in information he voluntarily turns over to third parties.” Smith v. Maryland, 442 U.S. 735, 743-44 (1979).

> it's "inconceivable" that someone using a Gmail account would not be aware that the information in their email would be known to Google.

Also referenced the scroogled ad campaign to support that users know and accept this behavior.

/facepalm


The fact that your data is stored on a cloud provider doesn't mean that that provider owns your data. For example, from Google's TOS:

"You retain ownership of any intellectual property rights that you hold in that content. In short, what belongs to you stays yours." [0].

The context of the quote from the court documents you referenced [1] is that Gmail inevitably needs to be able to process your emails in order to send them (and potentially filter out the spam). It is not, as you seem imply, about violating your privacy.

[0]: http://www.google.com/intl/en/policies/terms/

[1]: https://www.scribd.com/doc/160041493/Google-Motion-061313


Zero knowledge platforms are a fairly simple solution to this... You just have to be willing to fork over a little money instead of letting them monetize your data.


I see web apps taking an even large slice of previously desktop apps. I believe Operating Systems will no longer matter as much (this is happening now) as they did in previous years. I would really like to see something other than JavaScript (etc) on the web.

Other than that I see the mobile app market exploding. More people will (if not already) be on mobile platforms than the standard computer. If there was a seamless way to merge mobile and web apps the possibilities are endless.


I am curious, which slice of previously desktop apps is already taken by web apps?


Of course not completely taken but to name a few: email, word processor, calendar, music player, chat clients, and many more.


Shared interfaces used by browsers and apps alike. JSON will rule the interface, JS will continue to dominate the client side but you'll never see it because it's something generated by your server side framework if the client is not 'native'. Browsers will be the step-up to downloading an APP or a plug-in to the browser.

Pendulum comes fully around, it's already happening in some arenas.

Would you like to download 'facebook' to enhance your browsing experience?


The thing you watch in the living room will increasingly be connected to the internet, and be able to function interactively.

In the kitchen appliances will increasingly be connected to the internet and be able to download recipes.

The ingredients list your blender displays for Pesto will be transmitted in HTML. But I will write it in markdown.

Your crispy skinned pork roasting application will execute as JavaScript. I wrote it in JavaScript, I will think about writing it in Clojure next time.


I believe that web apps especially will see an Internet of Things (IoT) takeoff. Things like a web service to remotely control your house (lights heat TV etc) are prime and ready and wouldn't require that much work.

That may seem obvious for web apps; there's a wiki page for IoT. For desktop apps, I predict interfacing with mobile more. Making it seamless to go from one device to the next. We're almost there but not quite.


I think it will be less of a matter of you remote controlling your house, and more a matter of your house learning your habits. If remote control continues to be a matter of you reaching over to your phone, unlocking it and stating a request, people will continue to just get out of bed to turn the lights on.

If, however, the house knows that you set an alarm last night for 4:00, and it is designed to slowly bring the lights up to simulate a natural sunrise, then you'll wake up with the lights on already, which is far more useful. If it offers to start the shower and bring up the lights in the bathroom after it confirms you're out of bed, even better.

I think we overestimate the amount of control people really want over the mechanical and electrical systems in their living space. Most people just want the thermostat to keep them comfortable, whatever that means.


We don't have the same pace of innovation happening on the big screen that we did in previous decades.

Desktop apps are the same except for upgrades to their UIs and engines. Web apps are the same except for an explosion of .js libraries - some production worthy - and a shift in popularity away from php.

Most of the innovation is on smartphones. Those in turn are most like the desktop, but with more interesting I/O - at least for a developer.


I see a reborn over the LAN and even PAN with apps talking between them, on a private network, without requiring internet access to provide services. IoT would certainly be a major driver for this, but innovation in network services and protocols is stagnated. The whole point is to bring services to the connected clients, and a bunch of those services does not require internet access, but better machinery.


Multiple concurrent screens (phone, tablet, desktop, living room) as viewports onto your cloud-resident stuff.

The cloud will move away from being largely passive storage, into hosting active applications/agents.

The underlying OS API will lose its grip, but the cloud framework(s) will take over the role of application platform(s).


If rest of the world follows what apple is doing with Continuity, I would say that is where we are going.


Most people think there is going to be a move to the cloud ITT. This requires ubiquitous internet. TimeWarner merger is going to ensure the opposite, people will have latent internet connections and will not have OS in the cloud. 15mbps is too weak for that to be a true option.


Chrome is going in this direction:

Packaged apps that have more and more hardware permission.

I think JS will be a compile target.


Desktop apps are basically stuck where they were 10 years ago, and I don't see them advancing much in the next 10. Office, Photoshop, etc will still be getting upgrades every couple years. All the investment will be in what the new hot platform is.


I think in the next 5 years the focus will be shifted from desktop and web apps to virtual reality (Oculus) and smart hardware apps (smart homes, wearables etc).

Even for web apps it is going to be more mobile oriented than actual standard web view


Since running a complex desktop app in the server and serving it to browser based clients is now a production ready solution I imagine this approach will become a bit more popular. (ref. Adobe's creative cloud)


I hope that we'll see web-development-like desktop platforms. There are certain classes of apps that are really simple to develop as a web site, but comparatively hard as a native app. I would like to see something like node-webkit with a broader range of native controls. On the opposite side, I would like to see desktop toolkits to include more web-server-like functionality to make desktop-web-dev easier.

in general, very much like the idea of Firefox OS, where you basically develop a web-app, and publish it as a native app. I would like to see this on the desktop as well.

Oh yeah, and a truly first class alternative to Javascript in the browser is really overdue.


There won't be a difference going enough in the future, but 5 years isn't enough. Native apps will get all the benefits of browser apps and vice versa.


Internet surfing is my hubby. Symbianize.com is my favorite site that gives you access to many softwares that traditionally would be desktop only.


I actually see more and more web software becoming lazy.

i.e. long, single page applications where content is mostly displayed either in cards or in a feed format.


I see them developing side by side. Native applications are here to stay and the browser will become more and more of a versatile VM.


Desktop software is desktop because of mouse. Touch software replaces mouse with hand gestures on screen or panel. But web apps still trying to be 1990 desktop replacement. Soon biometric feedback makes this painfully obvious. Security and compatibility is key. But Apple and Microsoft refuse to agree on anything except basic web standards. Third player needed for anything to change.


I can't see them anymore. Five years is a long time.


I hope we ditch JS from web standards.


Desktop and mobile and web will continue to converge. That trend is already well underway. You would not go wrong by developing for the web, if you want to build to be relevant five years from now.

About half of the high end and mid end laptops have touch screens now. More will have them next year. The year after that, it'll be impossible to find a laptop without a touch screen. Touch will become pervasive, as it is how kids are comfortable interacting with devices and a lot of current kids will be adults in five years.

JavaScript will continue to evolve and find its way into new places. While Firefox OS probably won't make a dent in ChromeOS or iOS market share, the paradigm of developing mobile/desktop apps using web technologies probably will expand. It's hard to argue with tech that allows building run-anywhere applications.

Performance of browsers will continue to approach desktop native performance, further allowing more applications, including some that are currently impossible in-browser, like good 3D games. Native games will be among the last types of app to go browser, but they will come along, as well. The browser VM is pretty good and getting better. Unity has already shown that a lot of games can be built in a VM language and environment (and while Mono/C# is currently faster than JavaScript for some things, and has more native access, that likely won't be forever, and increasing machine performance will likely close whatever gap remains).

Assume everything will be more powerful, and things that are just out of reach today because of memory, or CPU speed, or disk space, will become mundane in a few years. Maybe not five (Moore's law has slowed, as has every other "law" about increasing computer performance, but it has not ceased), but in a span of ten, the difference will be huge. So, when someone says you'll never make a great 3D game on a table running in the browser, you should assume that really means, "you won't make a great 3D game on a tablet in a browser today".

Network speed will be a continuing source of revolutionary change. Fiber is making its way slowly, but surely, into the home. That kind of speed changes everything about how you interact, just like broadband brought us YouTube, GMail, Netflix streaming, streaming every kind of media, etc. fiber will make it seem entirely normal for every file to be stored in the cloud. We're nervous about that, as nerds who understand the privacy implications, but it'll happen, whether we trust it or not. Just like facebook continues to happen, despite our misgivings about what a privacy nightmare it is. So, building good encrypted ways to use that incredible network will be an ethical and profitable way to predict and create the future. (Building un-encrypted ways to use that network will be evil, but profitable.)


this. Convergence of everything on HTML/JS/CSS and the continued evolution of those technologies.

and we're overdue for a bandwidth upgrade. The NBN in Australia is slowed by politics, but not dead and people are beginning to realise how awesome it actually is. The same I gather for Google Fiber in the USA? Are there any similar projects in Europe? Elsewhere?


There's a similar project under way in New Zealand, but from what I see, the uptake has been less than enthusiastic due to lack of online services like Netflix and persisting traffic caps.


Desktop software dead. Software exists only on the internet. Browsers evolve into application runners.

Thin fucking clients.


Commercial CNC machines and other motion control applications will _never_ run off of web-based software. Not to say it isn't possible under the right conditions, but those conditions can't be ensured. There will always exist applications that require low response times that the internet cannot dependably deliver.

High end CAD and CAM software also falls under this umbrella. There is simply too much computation/rendering occuring.


no,the OS you'll be working on will be designed so it will be harder to tell wether you're using a webapp or a native app.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: