Node-RED embodies IBM’s approach to open source
Learn about the origins of Node-RED, what’s made it so popular, and our vision for the future of the project.
Node-RED is a flow-based programming environment that helps developers to create event-driven applications in a simple and intuitive way. You can learn a bit more about Node-RED in this video interview with Greg Gorman, Director of Global Developer Advocacy at IBM.
It’s built on top of Node.JS and provides a browser-based editor for wiring together flows. It can run on devices, such as the Raspberry Pi, or in the IBM Cloud, making it a very versatile tool.
From side-project to the JS Foundation
Node-RED was first created by myself and Dave Conway-Jones within the IBM Emerging Technologies team. It was a side-project, exploring the art of the possible around low-coding development tools and in-browser visualization. But our day job wasn’t to spend time writing development tools – it was to build real solutions for clients. That meant we only added features in direct response to a real need to do something. It also meant it was built with a philosophy of being easy to extend and adapt to new purposes.
As it became clear that Node-RED was becoming an indispensable tool, we quickly concluded the best way to sustain the project was to open source it. With the appropriate approvals in place, we pushed it to GitHub in September 2013.
Since then, a large user-community has grown around it, with over 1 million downloads, 1700 third-party add-on nodes available, and an ever growing contributor-community helping to drive the project forward.
In October 2016, Node-RED became one of the founding projects of the JS Foundation. This reaffirmed IBM’s commitment to the project by ensuring that not only was it developed in the open, but that it also had a well-established, and open, governance structure.
Low-code application development
Node-RED embodies a “low code” style of application development, where developers can quickly create meaningful applications without having to write reams of code. The term low code was coined by the Forrester Research company in a report published in 2014, but it clearly embodies a style of development that goes back further back than that.
There are a number of benefits to low-code application development, all of which are seen first-hand with Node-RED:
It reduces the time taken to create a working application. The real value can be realized much quicker than with traditional development models.
It is accessible to a wide range of developers and non-developers alike. Above all else, low code development is one of the most important benefits of Node-RED. Anyone who understands a domain-specific problem, such as a business analyst, a linguist, or a building engineer, will know the discrete steps needed to solve it. Node-RED gives them the tools to express those steps within a flow, and build the solution for themselves.
The visual nature helps users to see their application. “Show, don’t tell” is a powerful concept. Node-RED is often used to demo capabilities of APIs, such as the Watson cognitive services. It’s so effective because the visualization of your application logic shows the art of the possible without having to explain every semi-colon, bracket and brace. Not everyone thinks in lines of code; the visual representation of application logic is much more relatable.
Low code? But, wait, I want to write code!
Low-code platforms may open up application development to a wider audience of developers, but they still have their critics in those who prefer to be able to tinker with the underlying code.
This criticism is where the open-by-default approach of Node-RED has an advantage. Node-RED isn’t a closed platform that acts entirely as a black-box. Anyone is able to look under the covers and see what’s going on, to provide feedback, or to suggest changes. If someone finds a node that doesn’t do quite what they need, they can easily work with the author to add the desired features, or choose to create their own node.
Node-RED on IBM Cloud
Node-RED has been available as a starter kit application in the IBM Cloud catalog since the very beginning of the platform. It gets widely used throughout the code patterns available here on IBM Developer across a wide range of technology areas include IoT, Blockchain, and AI.
Looking to the future
Last summer, we published a roadmap to get to version 1.0. This roadmap set out a number of themes that the project needed to focus on, including developer workflow, API stability, and extensibility. From these themes, a set of high-level technical features were identified to deliver on the roadmap and to reach a 1.0 release in the second half of 2019.
Dave and I continue to drive the project towards this goal with IBM’s full support. It has been great to see the community build around what started as our little side-project. It continues to be a great embodiment of IBM’s approach to Open Source.