XOD is a Visual Programming Language for Arduino, Raspberry Pi, and other Maker Boards

When you think about visual programming on the Raspberry Pi or Arduino board, Scratch may come to mind, but some developers have decided to create their own visual programming language working for Arduino, Raspberry Pi, and other boards. Meet XOD, pronounced ksəud.

Click to Enlarge

The developers explains their used “functional reactive programming principles and added graphical functionality”. XOD is comprised of “nodes” that represents either some physical device like a sensor, motor, or relay, or some operation such as addition, comparison, or text concatenation, which you can link together through inputs and outputs to create a program, and XOD IDE will compile the resulting diagram to create and upload a binary program to Arduino, Raspberry Pi, etc… You can also convert a XOD diagram into a node with inputs and outputs to use it in another diagram, so the language is scalable.

The developers are now looking for testers to play with XOD private alpha, but XOD language, IDE, and library sources code will be released on Github once launched. You can register with your email address on their website, if you are interested in participating in the test program.

16 Replies to “XOD is a Visual Programming Language for Arduino, Raspberry Pi, and other Maker Boards”

  1. Nooooooooooooooooooooo keep the drag and drop macro designers away from the Pi….the whole point was to learn coding skills, which are being lost in droves.

    We struggle to employ people who knows how to code at the cli, it becomes just a gui designers code which isn’t portable, and ties businesses to vertical market application providers, change the application and we lose the staff and left holding the baby,

    Learn C++ Learn C# Learn C even, Learn Scripting (any), Learn a programming skill, not how to avoid learning the code.

  2. Hi, I’m Mihail, XOD founder. Your comment has smiled all our team =) But if seriously. Why do you so negative about more easy-going experience with Pi and Arduino programming. More people who would never even started programming have an instrument to try. We are trying to make not another mickey mouse visual programming language, but really powerful open-source environment based of functional programming principles.

    1. Negative opinions that visual programming will ruin people’s programming skills is not real. Because one can’t program if don’t know how to program, so people still need programming skills.The reason why visual programming is because there is no need to write already written codes-it is wastage of time. Visual programming makes programming more efficient and funny. I do agree with the project, it is awesome.

  3. boudyka – Visual programming IS programming; allowing the developer to focus on the logic, rather than syntax.

  4. Functional programming (reactive, dataflow, …) is much different than typical imperative one. Tools like XOD will help young people to avoid being brain-damaged by imperative legacy (sorry for us who didn’t had this luck 30 years ago and had to start with basic/assembly…)
    Thinking in flows allow different level of abstraction and helps separate functional logic (algoritm) from data structures and dependencies.
    Nothing against C# or C++ – in recent standard revisions C++ gained “functional programming” support. Still it does not force this style but this has some positive aspects too.
    I will definitely check the tool (XOD) when it is released. As long as our HW typically runs in imperative way it seems quite challenging to develop good tooling to transform “functional” style to assembly. No matter if the input is graphical or text one.
    @Erlit: by the way, does XOD provide some text variant of the graphical representation? Maybe serialized format that it uses to store the programs – like XML or JSON? I mean a parallel text view? Sometimes it is simpler to refactor some aspects using text tools (emac, grep, sed, or just find-and-replace). Maybe “Design/Code” views in GUI interface designers (VS, #develop, …), or XML views in Eclipse?
    Another point is interoperability with other languages – in embedded world it is a must to be able to reuse some native code. Will XOD support this? Maybe similar to node.js native extensions.

  5. @gicho
    XOD programs are stored in regular JSON files. And each module is stored in its own file. The JSONs are pretty-printed. So XOD project source files are quite diff/git-friendly.
    It’s quite hard to understand what the program do if you’d look at the JSON alone, but it’s suitable to perform mass-refactoring. We used to sed -i from time to time when data structure had to change.

    Furthermore, there is a CLI that lets you perform some actions (transpile, publish, install) from the terminal without even running visual IDE. It should make XOD suitable for server environments.

    Interop is done with native modules mechanism. For any module, you can write down its native implementation in C++ or JS (depends on the target platform). Of course, you may include 3-rd party native libraries there. In such way, you effectively can quickly create a thin wrapper for the library of your choice to bring it to XOD ecosystem.

  6. Probably 80% of the code written for microcontrollers is amenable to this type of development tool. For the remaining 20% if XOD supports creation of custom nodes, 80% of the remaining 20% is probably amenable.

  7. Visual programming is not new and has been used in the real world for decades so solve real production problems. I’ve seen LabView used to build very complicated control systems.

  8. @Occam
    Right, so we never claimed to be the first. We just trying to realize in XOD good balance of modern developer’s tools and concepts, but still provide it with easy going learning curve.

    1. No sure if it’s already in XOD, but a very useful module would be a code block with inputs and output(s) where developer could write code using a scripting language, like a subset of JavaScript, when needed.

      I currently use a very powerful visual development environment called Boomi to create very complex system integrations.

  9. Did anyone received this “private alpha”? I signed last month but got nothing. On their site it is written “private alpha in progress”. I am wondering if I have to sign again?

  10. I’m waiting for this alpha, it’s a great idea for boost our programming productivity and for do it a little more fun. Congratulations and thanks for give us your work open source.

  11. @boudyka
    Hi I do a lot of projects and have three companies. I do not have the time nor the interest in learning another language, I just want to get some projects done fast without the whole “start at the bottom of all things” – thing! Bin there – done that – to often to count.
    If we want to produce a versatile product we`ll hire programmers like you wo love to mess with code.
    We love to do things fast and simple, but this will never effect the programmers market, cause they will always be essential when doing serious stuff.

Leave a Reply

Your email address will not be published. Required fields are marked *