I wrote multi-volume docs for the array-oriented scientific data languages IDL (interactive data language) and PV~WAVE (which was basically just a licensed version of the former – yep, I did the same exact job twice and got paid for it both times). These are actually still in use in Sci-Vis circles (their modern forms are much more advanced than back then and are probably supplanted in many ways by Python, which is certainly influenced by those packages as they all come out of the academic data processing space).
Those languages were exactly the same model as the current JavaScript/browser paradigm – human-readable code that turns into platform-optimized machine code when executed at runtime. (Except that, in those days, the manufacturer was responsible for writing the compiler for whatever systems they wanted to support.)
Those languages were also (because they were about manipulating vectors, images, and higher-dimensional datasets) naturally array-oriented. It’s only in recent years that JavaScript has become something like an array-oriented language.
(Bubble itself is a not-fully-realized array-oriented system. I got interested in it because, on the face of it, it looks like an array-oriented language but hasn’t been finished/misses many of the rougher and finer points of what such an environment should look like and do. Also, as a full-stack solution, it makes certain parts of web development easier to the novice [or those short-on-time] than other approaches.)
In the CD-ROM multimedia days, I was part of the team at mFactory, which had a drag & drop, object-oriented development environment called mTropolis, which was both a more powerful and easier-to-use multimedia authoring environment than things like Macromedia Director (later Flash).
In addition to drag & drop / click and drag programming, it also had a scripting environment (“mScript” of course) that was actually very very similar to how JavaScript is today. (There is, in fact, nothing new under the sun.)
Simply because I was familiar with array-oriented concepts and worked closely with the engineers designing the language, some of those concepts found their way into mScript (like, I’m pretty sure you could take an array
and do array * 2
and that would mean, take every value in array
and multiply it by 2
, because (1) why not and (2) what else could such an expression possibly mean, and (3) this is incredibly useful and natural syntactically).
Also, that system was event-driven (like today’s web environments) and object-oriented (not as trendy anymore, but this is still a super-useful concept) and once the web matured enough, I got interested in those subjects again.
Anyway, the reason I’m so cranky about Bubble is that it represents a lot of untapped potential that we can’t fully tap with the existing plugin APIs. However, the developers of Bubble know nothing of the prior art around systems like it, mostly because those systems were proprietary, are now lost-to-time, and “you had to be there” to see and experience it. But Bubble is basically tilling the same field (albeit with a less-sharp plow).
(mFactory, for example, was purchased by Quark – remember Quark!? – and promptly killed. Adobe would have done the same thing had they made an acceptable offer. And only real nerds know about scientific visualization languages and Fortran 77 and its ilk.)