And that is how control logic for anything from breweries to petrochemical plants is implemented! Fun stuff! I happen to work on the UI side of an FBD-based control system, so I float around this stuff day-to-day.
Oh... and the programming model, nobody likes plopping logic down on a grid, they try to abstract it away as fast as possible. I don't have sufficient focus to be able to do that bit.
[edit] Somewhere in exploring this, I came across Von Neumann cellular automaton[2] and Nobili cellular automata[3], which I've not encountered, despite being interested similar ideas for decades. It's frustrating just how little discoverability there is in this portion of computer science.
Of course both share the same insane foundation:
The set of FSAs define a cell space of infinite size. All FSAs are identical in terms of state-transition function, or rule-set.
It's that one "simplification" that relegates them to the domain of code golf.[1] https://github.com/mikewarot/Bitgrid
[2] https://en.wikipedia.org/wiki/Von_Neumann_cellular_automaton
[3] https://en.wikipedia.org/wiki/Nobili_cellular_automata
pps: If anyone wants to run with the idea of a BitGrid, I'd appreciate it
I stopped at step #1 with my Lambda Diagrams [1]. The bottom of that page links to all other graphical lambda calculus notations I know of (just added this one).
Which means you can now claim that your language made a browser say "It's all Greek to me!", which is a pretty cool achievement I think.
Does it look good? I don't think so.
Also more recent versions of Max/MSP have "mc" (multi-channel connections so you don't have to create separate wires/nodes for multiple identical signals) and text-based programming nodes with "~gen" and JavaScript.
All this "block programming languages" look promising, abstraction by black-boxing, doing boxes of boxes... I wonder if the implementations are bad, they are badly used, or the paradigm just does not work...
One thing to take into account, is that those things are typically used by people who have no idea how to program and abstract things. Maybe if somebody is good ad programming would not do a mess out of it; but then (s)he could just go ahead and write code. so.....
I must agree, LabView is terrible, not just because of that, but updates break everything, licensing, etc... just PITA
LabVIEW is great for certain things, I think it has potential for others, but it's just too limited for general purpose computing.
Perhaps more important than anything is the fact that you can't just download it and use it like almost anything else these days. I don't think that has changed. It's not cheap either and they've switched to a subscription model.
Before I abandoned my PhD at University of York, I was working with something called "RoboChart" and RoboSim [1], which I actually think might be more approachable, but it's pretty tied into the robotics semantics. A pet project I've been working on has been trying to adapt and extend RoboSim to something a bit more useful for the network and server world.
I did find this part funny:
One interesting problem that I did not anticipate while imagining the language was that it turned out so purely functional and absolutely state-less, that it becomes impossible to implement a "print" statement, for to print is to change state, to expect some things to be printed in some particular order is to assume that some expressions will be evaluated in some order.
Isn't this just to say "not imperative"? Regardless, it does make me wonder how one would encode state... maybe introduce variables (icon + color?) and have individual statements ordered on one or both axes?Starting out with the aggressive triple negative in sentence two!
Of course, it's difficult to play now, since the webpage [1], and steam version relied on flash, and you have to fiddle with a 3rd party flash reimplementation.
But its implementation of semiconductor behaviour is much better than wireworld's.
[1] https://www.zachtronics.com/kohctpyktop-engineer-of-the-peop...
Piet https://www.dangermouse.net/esoteric/piet.html
Turnstyle https://jaspervdj.be/turnstyle/ https://github.com/jaspervdj/turnstyle
Markovjunior https://github.com/mxgmn/MarkovJunior
Cellpond https://cellpond.cool/ https://github.com/TodePond/CellPond https://www.youtube.com/watch?v=xvlsJ3FqNYU
Imagegram https://zaratustra.itch.io/imagegram
Color Code http://colorcode.bananabanana.me/ https://www.youtube.com/watch?v=5M5hy9xsqKc Color Code 2 http://colorcode2.bananabanana.me/ https://www.youtube.com/watch?v=tTvvX4sjZWw Splaty Code http://splatycode.bananabanana.me/ https://www.youtube.com/watch?v=gd_e85lAKOs (By Muril Polese https://github.com/murilopolese/ http://gallery.bananabanana.me/)
Alchemy Online https://maxbittker.github.io/alchemy-online/ https://github.com/MaxBittker/alchemy-online
Now if only I could get my head around it (shout out to the alligator eggs ref too)
image-rendering: crisp-edges;
applied to all canvas elements.This will make the pixel art style rendering look much nicer, without the slight smoothing that makes the pixel edges a little blurry.
We code in a 2D nature (rows and columns) but the flow is non-euclidean I guess
Every project like this starts off extolling that we are visual creatures, but this is a type of visualization we're not well suited to.
Examples are game engines (Unreal and Unity), 3D art/effect tools (Houdini), Simulink etc.
Had some issues trying to upload my own png's, maybe too big(?)
Λ-2D
< >
V
the first letter in the title is Greek capital-lambda; the others I've included here for comparison are less than, greater than, and capital-vthe original article uses lowercase λ
But no, seriously, this is super cool - I do honestly expect we're very close to diffusion-based image models being full programming suites (and compiling down to much more efficient representations, of course, but programming is abstracted for useful human understanding!)
The red highlighting reminds me of electricity in the classic circuit problem game _Rocky's Boots_ on the Apple ][.
As I've posted in similar discussions: https://news.ycombinator.com/item?id=42051536
The problem here, as always is that there isn't an agreed-upon answer for the question:
>What does an algorithm look like?
The problem is expressiveness of such a diagram is bounded by the size of a screen or a sheet of paper, and once one starts to scroll, or can't see the entire flow at a glance, things get complicated.
The node/wire programming folks have this a bit rougher to the point that there are sites such as:
https://blueprintsfromhell.tumblr.com/
https://scriptsofanotherdimension.tumblr.com/
I prefer to work visually, but not sure if that's actually valid --- unfortunately https://www.blockscad3d.com/editor/ doesn't support all of OpenSCAD and https://github.com/derkork/openscad-graph-editor has problems with a stylus (I have to leave the Windows Settings app open to toggle stylus behaviour which is enough friction that I don't use it as much as I would otherwise).
There are promising tools though: https://nodezator.com/ and https://ryven.org/ are very cool.
Most visual languages, support subroutines and modules/packages as well, no need to design a gigantic piece of spaghetti.
If anything, visual languages make it clear straight away when the code is a mess.
GraphSCAD at least affords an option to add an image to a module representation, preserving some of the visual aspect --- I believe OpenSCAD Graph Editor has that in the works (if it's not already done).
https://blueprintsfromhell.tumblr.com/
What is link to some more background on the 'blueprint' app. I couldn't find it.