Breadboard Programming

Question: Is it possible to create a visual prototyping software environment akin to breadboards?

What does AI say?

The concept of using breadboards as a prototyping technology in software development is an innovative idea that warrants exploration. To fully understand this concept, it is essential to first comprehend the role of breadboards in electronics. A breadboard serves as a prototyping tool for testing and refining electronic circuits before committing to permanent designs. It enables users to easily connect wires, components, and devices, allowing for rapid modification and iteration. Similarly, software developers can benefit from a ‘breadboard’ for programming, a visual and interactive environment that allows for the exploration of code ideas without the need for extensive coding. This concept is not new in other disciplines; UI designers, for instance, utilize prototyping tools like Figma to quickly create and test interfaces.

The idea of applying this concept to software development is intriguing, particularly with regards to Erlang Red, a programming language that allows for rapid experimentation with concepts such as supervisors, event handlers, and state machines. By leveraging Node-RED’s visual interface, developers can explore and refine these concepts without the need for extensive coding. This approach has the potential to speed up the prototyping process, enabling developers to test and iterate on code ideas more quickly. However, it is essential to recognize that a software breadboard will have its own set of limitations and constraints, much like an electronic breadboard. Nevertheless, the idea of using breadboards as a prototyping tool in software development holds significant promise for improving the efficiency and effectiveness of the programming process.

And a second opinion:

Breadboarding, traditionally employed in electronics prototyping, involves assembling circuits on a reusable platform for testing and modification. This manual process allows for rapid iteration and experimentation with electronic components. Analogously, ‘programming breadboards’ propose a visual, interactive paradigm for software development, akin to traditional breadboarding but applied to code. Such tools would expedite the prototyping of software concepts, enabling developers to visually construct and test logic flows before committing to extensive coding.

Existing platforms like Node-RED exemplify this concept, facilitating experimentation with Erlang-specific constructs such as supervisors, event handlers, and state machines in a visual, drag-and-drop manner. The allure of ‘programming breadboards’ lies in their potential to accelerate software development cycles by providing a tangible, interactive environment for conceptualizing and refining code logic. However, these platforms would necessitate a defined set of supported concepts, analogous to the limitations of physical components on a traditional breadboard. Further exploration is warranted to determine the feasibility and efficacy of implementing such tools across diverse programming paradigms.

Image created using Fritzing.

But what are the drawbacks:

A programming breadboard should not be limited by low-level concepts such as those found in Blockly or Logo. Instead, it should provide high-level abstractions like TCP/IP protocols, HTTP requests, and switch nodes that offer useful functionality. This approach allows for a balance of flexibility and functionality, enabling users to achieve complex tasks with minimal nodes.

In contrast, service-oriented breadboards like n8n or IFTTT require heterogeneous content integration, leading to typing issues and data conversion problems. Node-RED’s programming breadboard concept provides an analogy that can help individuals from the electronic world understand visual programming principles. By promoting this idea, we can increase the adoption of visual programming languages among non-programmers and provide a more intuitive way to create complex workflows.

A programming breadboard possesses inherent limitations; for instance, modeling complex applications like Bitcoin miners might be infeasible. While it may facilitate modeling software supervisors in languages such as Erlang, other paradigms like JavaScript might lack corresponding constructs. Notably, the development of a Node-RED clone in Erlang fosters a cross-pollination of ideas between these distinct programming environments. A suitable programming breadboard should operate at a higher abstraction level than highly granular visual programming languages such as Blockly or Logo.

Concepts like tcp_in, tcp_out, http_in, switches, and change nodes exemplify this desired level of abstraction, mirroring the functionality offered by Node-RED. In contrast to service-oriented platforms like n8n or IFTTT, which often handle heterogeneous data types and necessitate complex conversions between formats, programming breadboards prioritize a more unified approach. The analogy of a physical breadboard, familiar to those with electronic engineering backgrounds, can effectively convey the concept of a programmable environment facilitating modular construction and interconnected components.


References : Erlang Red, Fritzing, Blockly, Logo, IFTTT, Penpot, Figma

Artificial Content

This content was generated by me transcribing my audio content to text and me having AI rewriting that content to a human digestible form. So it isn’t AI thinking, it’s AI transcribing “intelligibly”.

Last updated: 2025-07-05T09:32:29.316Z

Comments powered by giscus

The author is available for Node-RED development and consultancy.