Ah 2013, what a great year you were – returning to full-time development has been a fantastic change of pace, and I’m super excited about what the next year will bring. In that spirit, here are a few things that the Esri DC team is looking forward to investigating.
Developer Tooling & Automation
Personally, in switching over to OSX, I’ve been feeling a little off the back in terms of full-stack chops, so I’ve been hacking around with building simple web apps using Express, which is a back-end framework built on node.js. Express is the most mature of the node.js “frameworks” and thus the documentation is pretty good, and there are good intro and advanced books available. There are also a lot of modules that can be used to extend express.
Taking it up a level, Sails.js is a set of Express middleware that adds “stronger opinions” to Express. It is crazy quick to get started, and makes building out single-page style apps, and APIs a breeze. It’s similar to Rails in that it comes with scaffolding tools – so it’s a simple command to whip up a model and controller at the same time, and have that auto-magically become a REST and Socket.io based API. Again similar to Rails, it also has a plug-able data store model, allowing you to switch between database technologies as your project progresses. Sweet. That said, development is on-going and documentation is limited, so expect to fall back on some Express chops when you start digging into things. From a team perspective, Chris Helm (@chelm) has built the Koop project on top of Sails, so stay tuned for some interesting things coming on that front.
If you are paying any amount of attention to the front-end web development space, you’ve likely heard people raving about Angular JS. While I am a big fan of Backbone & Marionette, the more I read about Angular, the more interested I am. Backbone is great when you want “extreme control” of the user experience (as is the case in our project), but in other scenarios, frameworks like Angular are a big win, as they can off-load a lot of work from the developer. On top of that, Angular seems to be able to play-nice with server-rendered markup, which is a big plus for building apps with really fast initial page-load times. Finally, being built by Google, using solid software engineering principles (dependency injection anyone?), with an eye towards our web-componety future (see below), I’d expect Angular to be relevant for quite some time.
I also found this very interesting post about Backbone and Angular . Not sure I completely agree with everything in there, but if you use backbone, it’s worth reading.
Speaking of looking forward over the next few years, the proposed web components standard is extremely interesting, and will be a huge shift in front-end development. At it’s core are 4 technologies (Templates, Shadow DOM, Custom Elements and Packaging) which combined will allow developers to create re-usable “components” for applications. What’s this boils down to is that we will be able to create new html tags and bake in behavior – just like built-in UI components like the <select>. Only much bigger and better. What will be particularly interesting to watch is how application frameworks (Backbone, Ember, Angular) adapt to web components.
Thanks to Google, this future is available today. Chrome Canary has support for many of the underlying technologies, and the Polymer Project is a set of polyfills that allow web components to be used on all modern browsers (IE10+)
To learn more about Web Components…
- W3C Web Components Draft
- Html5Rocks.com Web Components Articles
- Google I/O 2013 Web Components Talk
- Google I/O 2013 Web Components in Action Talk
If nothing else, this year will be a ton of fun as we all try to build the next awesome thing.
Cross posted from blog.davebouwman.com
Welcome to the Esri DC Development Center blog. We write about features of our work on big data analytics, open platforms, and open data, what is new and exciting in the Esri and community, and general industry thought leadership and discussions of geospatial data visualization and analysis.
Please explore what we're working on and let us know if you have any questions or ideas!