Bwise Graphical Programming Setup - Theo Verelst
Take note! this version of bwise is completely worth the download and playing around with, but it is not a version 1. For instance saving blocks saves no function parameters, so all those are lost over a save/restart/load ! Also blocks with text entries and graphical sub elements such as oscilloscope screens will not reload completely over a reload of the canvas.
One can save variables by a function save_vars <filename> , which saves most all variables except the sys ones, which includes the block functions, which are kept in variables with name blockname.bfunc . Selectively saving the variables for one or more blocks is possible with not too complicated scripts or functions, but clearly, this is a prototype!
For some time, and of course in many branches of engineering with pen and paper for ages, the world has known various programs doing a sort of general purpose block-wise programming, or better put automated flow of information and processing of it. I knew a few a decade ago on unix (khoros, avs, ape) and in musicland there are various quite capable though not so general applications which allow blockwise compositions of functions or pieces of processing.
In any programming language, it is not so easy as far as I know to find some kind of package or interface and toolkit or whatever, to easy have some blocks of functions and play with them interactively in a network.
Being electrical engineer of course I'm aware of the value of making a schematical diagram of some circuit or computer or even of a program (often less effective than a nassi-schneider diagram as every freshman in computer engineering should know) especially when it is a parallel one, and for the purpose of doing that well on a computer many alternatives exist.
Tcl/tk being quite a capable interactive programming language, I though it would be a good idea to allow what in a certain branch of science is called visual programming.
More than a few years ago, I started with code to put blocks on canvas and drag them around and connect them, and trying to stick with not simple, but basic and small code pieces.
Recently I took Bwise up some more, and added a decent network data transfer and execution of the block order function, and some more block types, with on-canvas editing of values and pressing buttons, and some more popup menus for creating and activating blocks, and showing windows per block with input and output variables and initialisation and modal function.
All of this completely in an overseeable amount of tcl code.
I'm thinking about doing some reasonable man-like pages, and even have made a setup for a sort of demo movie, stay tuned.