PyFlow – Visual scripting framework for Python – NodeRED alternative?
github.com
github.com
I've used this C++ ImGui node editor with similar features for some hacky synthesizer gui using this library: https://github.com/thedmd/imgui-node-editor
I'm currently working at Rec Room on an in-game visual-scripting language already used by millions. Here is an example from a creator on YouTube: https://www.youtube.com/watch?v=L4yvvoWdpWA
If anyone here is interested in working on tech like this as their day job we are hiring: https://recroom.com/careers#openings
If you are interested, but you don't see a role that fits your desires, send me an email at tyler@recroom.com.
It also has to have a lot of buy-in and support. As everyone here is fully aware, a lot of problems get solved by Googling for a Stack Overflow answer. That's tough to do with a niche-y tool.
Not saying this isn't a good thing; it's just that it'll be difficult to be successful as a general purpose tool.
(ex. https://help.talend.com/r/mjoDghHoMPI0yuyZ83a13Q/YYVSsDiyJ3v...)
Have a look at FME by SAFE software if you want to see what a better, more well looked after version of what Talend could look like is.
I recently learned about OpenAPI generator [1], which uses a spec-first approach to generate boilerplate for several frameworks, including Flask and FastAPI.
I would like to build or find a no code / visual tool that lets you build a JSON Schema file, and then generates boilerplate for you. I want to move on from rigid cookiecutter tools that make you go through 15 or so steps and force you to start over if you make the tiniest mistake.
I ended up developing my own tool based on the flowchart editor in pyqtgraph. The GUI for that was quite intuitive and the code to modify it was also far simpler. That said there are a few features from pyflow that I wish the pyqtgraph editor had, like subgraphs.
For example, amount of written text was higher among Word novices than among LaTeX experts, with overall less mistakes. The only category where LaTeX users produced more content than Word users was equation text, and even in that case, authors suggest that the difference in productivity between Word experts and LaTeX experts does not differ significantly.
Disclaimer: I like LaTeX a lot.
[1] https://journals.plos.org/plosone/article?id=10.1371/journal...
What LaTeX allowed you to do, in principle, was to "build" your document, i.e., type a single command and have camera ready output roll out of the laser printer. Using Word (or even more primitive tools -- I was on a MS-DOS machine), always required some manual intervention. My workflow involved scissors, glue, scotch tape, and a copy machine. But I got done very quickly once I was ready to start writing.
I wonder how they incorporated that into their productivity metrics
As an aside, I have used a workflow where I give someone a a paper to review as an overleaf project, they make all their changes, and then I merge it back into my work picking and choosing the bits I want. And this all works fairly nicely since overleaf has support for git.
Latex is exceedingly expressive and lets you be very precise about exactly what you want on the page and how it is typeset - much more so than Word is capable of. This comes at the cost of learning the language, which isnt user friendly - e.g. I've never had a word document that didnt compile.
Turing complete code, by contrast, demands a high level of language expressivity to do everything beyond the most basic tasks.
Using a GUI to write code becomes like using Word to professionally typeset a an academic textbook very, very quickly.
So quickly I'd argue that there's almost no point even starting.
Any practical use cases of either being used?
Huge fan of NodeRED, always thought the paradigm could be leveraged for other heavy workflow applications
HomeAssistant is build in Python, so this could be more included part of HomeAssistant.
This would only replace Node-RED for some use cases if you could export the result as a standalone CLI app…
And my home alarm system flow: https://pictshare.net/82qfpa.png
To be fair though you can create sub-flows to have it more compact but when I designed it, I didn't know about theseyet
We have no GUI programming in the broader sense, in our case nodes are simply run one after another (DAG).
Our tool is a web application and workflows can be triggered / executed via API, which allows for automatisation. Workflows can be nested and are tagged with a version tag making production runs reproducible. It is very much taylored to (simple) Data Science use cases with the goal to make the Python data science stack accessible for Business Experts (or power users), maybe collaborating with Data Scientists.
It is actively developed, and our industrial customers happily use it, however it is still in early development state.
The Deno runtime is great for workflows because Deno is lightweight and can import modules using arbitrary URLs.
We're designing an open source automations engine for Kubernetes ("Zapier/IFTTT for devops") and have thought about adding a UI for automating stuff visually. So far, simple YAML configurations have won out and we're still debating the benefits of a UI.
Does anyone have experience using tools like this at scale or for technical domains? (E.g. devops.) Would love to hear a convincing case why a UI is better than YAML. You can see the configuration we currently offer at http://robusta.dev/
Most GUI tools, presumably in speed to market, skip this. But as soon as you've created something that can only be viewed & modified in a visual editor... you've become part of the problem.
So I'd approach this from a "If my tool is successful, and users use all the editors we give them, what will their support story for a 10 year old codebase look like?" (If you care about the greater good)
Why is that? You don't view the bytes your text editor generates do you?
What you end up with, if you don't have a standard, and you don't maintain isomorphism... is user "code" that requires a vendor tool to view & modify.
Which sets up some really screwy incentives & business models.
A thing you built. That you paid for the tools to build. That you have to continue paying for, otherwise you'll be unable to guarantee maintainability.
Charge for execution if you want! But IMHO user developed code, in whatever format, deserves to be owned by users. Even if they decide to no longer be customers.
Right, and those didn't just materialize out of thin air. They took time and effort to develop. My point is that we shouldn't keep shooting down visual based tools and languages on the notion that there aren't standards, because there isn't anything (besides preconceived biases) that prevent them. There are many things that text is just not good at describing, such as dataflow, and by claiming everything must be text and isomorphic to text, we're holding things back.
And honestly, if your GUI/designer is standardized, then it's trivial to define a stable serialization to and from text anyway.
The main advantage from my side was being able to get adoption from a wider group of people. This included both very junior technical folk who were able to take on more complex tasks than they would have been able to otherwise, and non technical folk who found starting with the UI a lot less intimidating.
Eventually, almost everyone has gravitated to using YAML over time but I don't think I'd of seen the adoption internally that we had without the UI component.
Mileage will vary though. If we had been at a more technically mature place when adopting relay, then I reckon the UI would have seen a lot less use.
I know yaml isn’t difficult per se, but being able to visualize it can be beneficial for those that don’t normally think programmatically.
Also bonus points - the diagrams from the flows make great process diagrams for your documentation.
It really shines in the ETL area. Configuration and generation would be alright.
You can get an idea of where I got with js at [fluxion.app](https://fluxion.app).