Month: July 2014

node.js talk notes

Talk notes: Evaluating new technologies (node.js as an example) – Mark Myers & Ben Poole

  • Where’s the next wave coming from? And how do we position ourselves?
  • How to decide whether to retire something, evaluate something, prototype something or adopt something?

Considering new technologies: 4 factors

Originator: who’s behind it? Who has gotten behind it since launch? Size / responsiveness, etc.
Ecosystem: who else is involved and how widespread is this involvement? For tech projects, are there lots of committers? Lots of releases? Look at activity on GitHub etc.
Who else is looking at it? Is there a continuing buzz after the initial furore? Are significant players interested in the tool / platform / whatever? Are vendors looking to integrate the solution with their offerings?
Analysts: what do the likes of Gartner think?

A source we like: ThoughtWorks Tech Radar. Thoughtworks is an established consultancy. They are do-ers as well as advisers, which is an important distinction. Their Tech Radar comes out from time to time, latest being this month–the previous version was released in January.

It looks at techniques, tools, platforms and languages, and drops each into one of four buckets:

  1. Adopt
  2. Trial
  3. Assess
  4. Hold

There’s also a general overview at the start of the document. For example, the July edition kicks off with four hot topics:

  1. Churn in the Javascript world (akin to Ruby a few years back, or Java before that): so many frameworks, so many releases. What’s hot, what’s not.
  2. Conway’s Law (that organisations produce software the design of which parallels that organisation’s structure). This can be a plus or a minus
  3. Microservices and the rise of the API: everything is RESTful. Services exist for everything and are decoupled. I liken this to the UNIX way, i.e. small utilities that do one thing but which can be piped together.
  4. Re-decentralisation: an ugly word, but following the kerfuffle over centralised cloud / email (most of the world’s email traffic is focussed within a handful of suppliers like Google and Hotmail), people are looking to spread the pain outward once more.

node.js

Taking the example of node.js, there has been noise about this platform for 3-4 years now.

Originator: Joyent, established cloud infrastructure provider, with node.js central to its commercial offerings

Ecosystem: just look at Github,. StackOverflow, blogs, npm

Who’s involved? IBM, Microsoft, Amazon, Walmart, Paypal, LinkedIn, New York Times, Yahoo…

MS & Amazon are both contributors (MS since 2011)

ThoughtWorks say ADOPT (Jan 2014) especially when it comes to Javascript-based automated web testing (see enterprise notes).

In the Enterprise

If enterprises are still fighting shy of node.js, consider its use for running testing set-ups. The de facto industry standard here is Selenium WebDriver, which runs on node. Significant offerings built on top of this:

  • Appium is an open-source tool for automating native, mobile web, and hybrid applications on iOS and Android platforms. It wraps the standard WebDriver tool, and it’s written as a node.js application.
  • Protractor which is also a node.js application which wraps WebDriver and is aimed at testing AngularJS applications.

Node is currently a very start-up / internet only platform, driven more by developers than traditional admins (the gate keepers of the corporate world) and as such can be treated with dark suspicion for that very reason.

There will be a tricky transition while it moves to fit into the normal structures (strictures??) of corporate support. Admins need to get up to speed, developers need to learn the demarcation lines for hand over / app packaging.

Round Up: MEAN, not LAMP!

node.js has proved itself in a lot of the major websites we all use and is a major player in that arena – expect its influence to grow more and more. In all likelihood, it will become an expected skill-set in the same way that a framework like Spring is expected for an enterprise Java developer, or MVC is expected for .NET developers.

Everybody should now have it and would do well to learn its application framework partners MongoDB, ExpressJS and AngularJS (collectively known as the MEAN stack).

Links

node.js: http://nodejs.org

Tools mentioned in our talk:
http://appium.io
https://github.com/angular/protractor
https://code.google.com/p/selenium/wiki/WebDriverJs

Complementary frameworks and technologies
https://angularjs.org/
http://gruntjs.com/
http://www.mongodb.org/
http://expressjs.com/
http://jade-lang.com/
https://www.npmjs.org/

Building the front-end
http://bower.io

User auth and security
http://passportjs.org/
https://github.com/jedireza/drywall/
https://github.com/evilpacket/helmet