22 comments

[ 2.1 ms ] story [ 62.2 ms ] thread
Nope. The arguments in this piece are way off base. This is also now a very old argument which has been rehashed too many times. Modern wisdom shows us that native mobile apps have their place and Apple, Google, Mozilla and others are rapidly advancing web technologies. They are hardly holding back in order to force developers to build native apps. Once SVG, Canvas and other powerful HTML5 features become more common along with a more powerful runtime for the web, we will see the situation change. For now, I am happy building and using native mobile apps. I also build responsive web pages and plan on continuing doing so. They can coexist and they should.
I hear you. You're saying that the two things can exist symbiotically and I can't disagree. I think it makes sense given what's happened until today, but I think the open source way is far more sustainable and will yield far better results. We need developers to start thinking about what implications are carried with their decisions. I disagree that my arguments are "off base" or have been rehashed too many times, but I invite you to elaborate on that further.
"many advancements in what we can do with Javascript and HTML"

Please don't be closed minded about only using to languages because the "open" web won't let you use anything else (no transpilation crap please).

"The web is open"

It is not open in every sense. It is locked to a few languages and technologies: JS, HTML, CSS. Where can I vote for standardizing a proper intuitive grid control instead of CrapGL and crapvas?

"Why would we continue to have to have specialized developers working on ports of the same application for every different platform?"

To have a chance to work with languages that don't suck. Business could have a different view though.

"Imagine if all the new iOS features were available to javascript"

All I see is a potential sad future where you are forced to use one crappy script language for most career paths in IT.

>To have a chance to work with languages that don't suck.

Yeah, but developing in Java for Android isn't exactly the coolest language. And I have heard second hand that objective-c isn't to great either.

I sincerely hope Google will officially support Go in future, that would really make the difference. Having to use Java and Eclipse is one of the reasons many mobile developers go the iOS route.
Can't you use Scala/Clojure for Android development? You can certainly use C# to develop natively-compiled apps for iOS.
I see your point, my own biases are present in some of those remarks. I do see javascript as a very powerful and easily learned language that would support an open web future well, but I also recognize that the likelihood that it would be javascript forever is small. One small point, though. Just by opening this debate and the two of us discussing this, we are contributing towards a future where we decide what gets adopted into browsers. Debate is something that is seriously lacking in closed source communities as the developers remarks too often fall on deaf ears. The people who decide what technologies to support in the open web are members of sites like these and are required to believe in open discourse.
I surely hope so. I don't hate JavaScript as much as I hate it being pushed as a default that is OK for everyone and everything.
Exactly. Programming is about exploiting the machine you are on.

Write-once run-everywhere is great for corporate shops, but leads to the crucifixion of creativity and the abandoning of experimentation. I'd much rather have diversity in programming environments than the monopoly of Javascript.

Native vs web is mostly just the UI layer. Write it three times it's not that hard.
For the most part, I agree with your opinions and have chosen to develop my product as a web app rather than one that runs on iOS or Android. However, I think web apps will always be hindered for developers if we have to continue relying on an arcane and ugly language like JavaScript.
Nice! So have I. I'm still learning how to best use javascript so it's still exciting and new to me. I'll probably share similar feelings to others about it in the future, but for now It's how I imagine web applications being written
While your points are reasonably valid, I think it's missing one grander conclusion: the tools are simply that, tools. Above all else, it's what you make with them that matters.

As an engineer, I might be interested in the implementation details of a particular system, but as an end user, I don't give a shit.

And with that, it's up to the engineer to determine the appropriate tool for the job, as has been the duty of engineers since man carved the first wheel.

I've held this viewpoint for a long time now, and it's yet to pan out. It's probably worth understanding the two main forces that lead to the browser defeating native desktop applications roughly 10 years ago:

- Developers liked the web for three reasons: write once run everywhere (give or take a few browsers peculiarities), no versioning of the software, and bugfixes are immediate.

- Users liked websites because they didn't want (or weren't able) to install software, and they got a consistent experience across mulitple computers (work + home).

Looking at these, it's clear why native is beating the web right now in mobile. Software is easy to install, and you only have one phone. It's still annoying when you run an app that hasn't been active in a long time and are forced to upgrade on the spot. But that's the only chink in the armor at this point.

> Looking at these, it's clear why native is beating the web right now in mobile.

Another point: Extreme amounts of money (commercial interests) are pushing closed ecosystems.

Regarding your point that native mobile software is easy to install: this seems true in the absolute sense, but is it true in the relative sense? There is arguably less friction in running a web app on your phone then there is going to the appstore, inputting your apple id yet another time, and waiting for yet another app to take up valuable screen real estate.

In my opinion, the limiting reagent preventing the mobile web from overtaking native app development is clearly not ease of installation - it's performance, which davidhariri argues is changing rapidly.

Users use apps on phones. They don't want to open a browser and navigate to an 'app'.

They go to the app store to get apps. They don't open a browser and google for a web page and expect it to operate like an app. Also you need to have an internet connection to even use an app, who wants that.

Technology improves but the drag comes from user adoption. You'll need to change behaviour.

On the deskop, I find it hard to believe that web apps will come to dominate the app space. Perhaps they will find a space to sit side-by-side with native apps. But will they ever be able to match the speed, responsivenes and capability of a native app? I'm sceptical. Web apps on mobile are mostly about consumption of content in some form or require limited interaction.

What if I want to create my own music? Edit or touch-up my photos? Create graphics for my web pages? Do some digital painting? Edit some videos? Dabble in 3D or motion graphics? Create an animated GIF? Create a richly formatted book, magazine, brochure or report? Can I do any of this right now in a web app with the same richness of features, speed and capability as a native desktop app?