Sails.js creator Mike McNeil made us the honor of speaking at PlatziConf Mexico 2015 — his first visit to Mexico. As you may know, McNeil is also the founder of Y Combinator alum Treeline, which he described as the next level on top of Sails.js (which itself sits on top of Node.js).
Despite McNeil's serious geek cred, or perhaps thanks to it, his talk was easy to understand without deep technical knowledge. Using step-by-step explanations and real-life analogies, he managed to explain the evolving nature of software.
On universes and frameworks
According to McNeil, creating software is like creating your own universe, and that's part of what makes it so enjoyable. However, things might get more complicated once than several developers and platforms are involved.
As a matter of fact, we can end up with several 'mini-universes' that look nothing alike, but that's not a problem as long as users are happy. For instance, Magento and WordPress are completely different platforms, but each of them plays its own role.
McNeil referred to these platforms as "the first wave [of universes]". From 2004 with Ruby on Rails, a series of frameworks started to emerge that were both a bit different and similar. What they had in common was that they were MVC frameworks.
The rise and evolution of MVC frameworks
"MVC" stands for model-view-controller architecture, and this architecture has now become conventional. Here's what went into each of these at first:
- Model is the data layer for the application: it could have been databases, data or even APIs;
- View is the display layer: HTML aside, it could also have been an iOS app, for instance;
- Controller is where the business logic lies.
This what relatively simple by the time Ruby on Rails came out, but over time, factors such as the rise of mobile platforms added difficulty. This inspired McNeil to create Sails.js, as a simplification of how complex things had become circa 2010:
From Sails.js to the Node Machine Project
Frameworks like Sails.js made it much easier to create a backend that can simultaneously support multiple platforms, such as a website and mobile apps. "When we write software now, we almost always use frameworks," McNeil noted.
While building a backend had become simpler in some respects, McNeil still became increasingly concerned about frustrating tasks taking over creative ones in a developer's routine. Using a real-life example, he explained how hard it could be to predict all the sub-steps that could be involved in a task's logic:
Treeline, the future of programming?
According to McNeil, this approach achieves **3 key results:
If you are a developer, this means you won't need reinvent the wheel with each new app, for instance to build a login system from scratch every single time.
With Treeline, you only have to focus on the abstract syntax tree (AST). Rather than writing code in a text editor and later run it, you can now drag and drop standardized components to generate code that you can run. Here's how such a circuit looks in Treeline:
In practical terms, this removes barriers to entry and makes programming accessible to a much larger audience, as advanced technical knowledge is not required anymore to build a backend.
Even for skilled developers, it makes it much easier to review and change steps, with everything being configurable and declarative rather than imperative. "All you have to think about is design, and that's the future of programming," McNeil concluded.
Here's the full video of his talk:
If you want to learn more, you can still catch up with Mike McNeil's Platzi class on developing web apps in Node.js and Sails.js.