The Web as a Platform?
aalittle.com
aalittle.com
Curation? Beautiful app-stores? Feh. I'll pass on both if it means giving up the freedom to build anything I can imagine, which is what you get with the general "web as a platform".
Never mind nobody is forcing you to "play keep up" and constantly use the very latest and trendiest tools all the time. I haven't even touched Angular.js, nor do I have any overriding desire to do so anytime soon. Same for Ember.js and any number of other libraries. I'm sure they're cool, but I'm too busy building stuff to spend all my time evaluating libraries. But it's neat to know that they are there, and one day down the road, if I start to feel the right kind of pain, maybe I look at pulling in one of those (or whatever the "library du jour" is at the time).
On the internet, you keep 100% of the revenue you bring in. On the internet, you do 100% of the work, too.
I actually love the tools we have available to us in webdev, and think it's actually quite a lot easier than native development for mobile platforms. It's so much easier to debug and work on a web app in real time in Chrome dev tools than it is to fire up the iPhone/Android simulator apps.
> "quite a lot easier than native development for mobile
> platforms"
I am going to bet that anyone claiming things like this did not ever half-heartedly attempted to look into native development and has no idea how much native frameworks have to offer.There are some very young frameworks (Meteor, Derby) trying to solve all the above problems at once. I haven't used them, but my impression is that they're not really there yet.
I think the underlying pain point from the article is that iOS and Android have the luxury of being able to iterate on the whole stack at the same time, which means they can move way more quickly than web standards, which can take years of argument and refinement, with disparate implementations in different browsers, which then get papered over in various ways by different client side libraries.
Let's be honest here. If you had to chose between the web being gone forever and iOS+Android+whatever being gone forever, which would you chose?
And then you would understand, that question makes no sense.
> "than struggling to shoe-horn a single language/framework
> because that's simply all the platform-du-jour
> can support."
And in reality you just trying to poorly reimplement the stuff that platform-du-jour with decades of refinement has to offer. I don't want even to imagine what amount of effort is needed to replicate everyday stuff like Core Data + UITableViewController + UIFetchedResultsController and to make it even remotely performant.Fair argument (I guess?) but the opinion comes down to, do you prefer an open and ever-changing ecosystem that has no limits on what you can build and how you can build it; or do you prefer a contained ecosystem dictated by a few powerful stakeholders who subtly apply their own methodologies and beliefs, to shape the capabilities and limits of the platform?
The latter seems like a slippery slope and would eventually serve the the powerful stakeholders rather than the people building the platform. The former, while it may require a higher learning curve, puts more competition between technologies that enhance the platform, and doesn't dictate what or how things can be built, serving the developers and users above all else.
Personally I would prefer the former.
We are jumping around between client-side frameworks, but I think that's because a clear winner hasn't emerged yet. Each new one is reacting to the last, and the decisions are still being tested.
I think the situation will solve itself when the winner shows up. It's not just an adoption problem-- it's a utility problem-- so having a big company put their weight behind one choice would lock us in prematurely.
But even within these frameworks (Android, iOS) things are changed and swapped out at their will i.e. changing UIKit, Apple switching from Carbon to Cocoa, In-App Billing changing etc. So lock-in sometimes creates massive ripples of forced change.
If you are making cross platform apps, like the web is cross platform, that is where things get more difficult. Complexity goes up, more solutions appear to solve and iterate on the problem. The web and web tech is the best solution we have for cross platform currently.
I have developed for Android and while it's XML-based layout system has nice enough foundations, it is really showing it's age. The interaction between different layouts, gravity hints, weights and screen sizes has grown nightmarish - and in contrast to the open web, there are not many good third-party additions to sanitize the morass.
You want your app to run on 2.2 - 4.1? You will have to re-implement a lot of the newer features yourself or stick with the old ways - something like jQuery that papers over the differences is rare on the single-provider platforms.
IMO the web as a platform had a lot of catching up to do but it's pace has outgrown both Android and iOS which are not exactly stale but do no longer innovate with the speed they did 4 years ago.
On the web, you can pick your tech stack and stick to it for some years, there's no need to switch everything over to the latest tech each year.
God, please no.
If you let Twitter choose, the platform will be in Scala.
God, please no.
That's why we are where we are. I don't want to develop in that gunk, but others do.
Further, I think the author hugely underestimates the effort that goes into designing an iOS/Android quality framework. Those frameworks go way beyond the MVC microframeworks that are the rage these days. These frameworks consist of many detailed high-quality images, gradients, sheens, and finely tuned animations. You can't just start an open source project and expect engineers to magically produce these assets in a coherent manner. It takes a large team of designers (and a dictator) many man-years to produce these assets.
It follows the defacto standards of the web and not trying to invent a new standard.
- HTTP
- REST/JSON
- Node.js ( Google prefers using Rhino because Appengine does't support Node.js but Java)
- Github (Google prefers using Google Drive)
- Javascript as the glue of APIs by transforming API endpints into Javascript Objects, client-side or server-side.
- HTML views to generate with API calls
Webshell.io has an open API that Google Apps Script doesn't yet.
The webshell's blog is "building an internet operating system" for the web-as-aplatform, where APIs are the "drivers" of the web.
So definitively the web as a platform is coming.
The true question behind this post is : the web is a decentralized network, so will developers will use a centralized platform for making applications on the web? Is open source platforms the solution?
With the web as an application development platform it's still very young and there is yet to be a defacto standard for a few years. Until then frameworks will come and go. jQuery for example more or less won out against dojo or prototype (and I expect 100's of others that were less popular).
The democracy that drives the web forward is a double edged sword. While the Android, iOS SDKs are great now, they may well be dead in a few years, whilst the web will still be here. Just ask Swing, JavaFX, J2ME, Enyo, Symbian, Flash or Silverlight developers ;)
Imagine how different the Linux ecosystem would be without distributions. The individual modules don't all have to come from the same place. But I think the OP's point about curation is spot on.
The only other way to achieve this would be for one cloud provider to gain critical mass and then drop support for anything other than their preferred framework.
Can't blame anyone for this :)
TCP, HTTP, HTML5, ECMAScript 6, CSS3. These technologies make up the Web Platform and it is consistent.
The problem is that rather than learning the standards, people like the author focus on learning libraries like Backbone.js or whatever and then when it's no longer the trend of the week they feel lost.
Learn the platform and you will be better off. You will find that picking up libraries is a lot easier when you understand what it is the libraries are built on.
Not a very good blog post, I must say.
I enjoy web development much more than iOS or Android development. The freedom, the speed, the easy debugging, the numerous choices for the tech stack and development environment... The list goes on.
the web is showing its age.. it time to move on.. is the application platform the answer? i dont think so.. but at least it show us some hidden truths about what a developer really wants and need..
the web platform was never a dream platform to us to embrace.. it was the only safe boat at a time, when platform wars were making us (technologists) more bald, poor and nuts.. you know.. because they always want the control.. markets, profits, whatever..
the thing to worry about.. its the: "ops, we did it again" factor .. now we got a dejavu feeling back to the nineties as a new platform wars arrives.. :(