You’ll never guess what. Someone actually asked what Prograph was like back in the day. No, really, they did. Here goes…
To begin with, I must put my cards on the table. I’m not, nor have ever really been “a programmer” as such. Which I think may be where some of the value might be in my Prography reminiscences.
To put it all in context. It was probably around 1997 or 1998. The internet has just happened. Up until then I was lucky enough to be working in a pretty incredible research lab trying to make the craziest educational software we could come up with. We used HyperCard a tool so beautiful it still makes me cry. Although I say “used”… Sam, Richard, Kris and Stephen were our proper programmers… I tended to join in excitedly, but mainly made black & white graphics or icons.
By 1997 we’d made what you’d call a CMS ( Content Management System ) in HyperCard. It made making web sites easy. So easy that school kids did it, in their Mosaic browsers and even won awards. I remember one class project that was a site about World War II, that just grew and grew. You could start to see what all the fuss about HyperText was.
But HyperCard was struggling to deliver the web pages fast enough. Our real programmer had moved on and I started looking at Prograph, a tool for visual programming. Being a bit artsy, I loved the visual bit. But also, rumour had it that, once compiled, Prograph code could run as fast a C++. There was no way I could ever learn C++, but the idea of creating funny flow charts seemed doable.
So. For what looking back was quite a prestigious project funded by the DTI (UK government) I started creating a tool called Spinalot. My only other experience with doing this sort of thing was hacking AppleScript CGIs with Filemaker. I didn’t have a clue what I was doing. I also had to learn HTTP and SQL ( Prograph could talk to a tiny little database called dtF ). I started work and made a prototype web environment, in which people could fill out a profile, join in discussions, put post-it notes on pages, create web pages and send messages to each other. Yes, it was Facebook for kids and it was 1998ish.
Here’s the bits I, to this day can still go glassy-eyed and frothy mouthed about Prograph and how wonderful it was…
Adding comments didn’t alter your code in ANY way. This meant you could comment something to death and nobody minded, they could be hidden. People even used to sort of DTP their comments. THIS meant people DID comment. This meant I had a leg up in figuring things out. Oh, parameters were commentable too, so if you called “/Do This Thing” you’d be prompted say for an <object> and a <number>… Wow!
You could “code going forward”. This was a weird one. You simply create a few connected method call, with inputs and outputs and run your code, stepping through each bit. If the method didn’t exist when the running code got there, it simply asked if you’d like to create it now… which the live code patiently waited. You’d then step on a few more steps and if it errored, step back a bit. The WEIRD part of this was that you often, truthfully wrote code that “ran first time” … kinda.
Scrunching. One of the biggest tricks of Prograph, that I’ve yet to see in other tools like say Yahoo Pipes is scrunching. Or as they called it “Opers to Local”. This was a magic feat where a lump of code could be scrunched into one object. Any visual language without this is doomed, there’s only so much 2D space…. this opens up another dimension where clumps of messy code can be “tidied up” and be left with one input and one output. Very cool.
Pair programming. Great idea… how often do you do it? The visual aspect of Prograph meant that working on a screen together, with people cleverer than me, actually WORKED at the human level. This is hard to explain. Similarly, you could smell bad code… visually 🙂 If with Prograph’s beautiful OO abstraction and scrunching you couldn’t create visually readable code, you were doing something wrong. Obviously.
Having got the Object Oriented bug, the first thing I did was set about creating an object database, not knowing that this was quite a hard thing to do. OK then, it’s impossible. But I made something that resembled an object database to me, not knowing what they were and not able to find anyone who did. It was basically a sort of pickle store that I queried with SQL but got Prograph objects back. It was fast and malleable and crude.
It was around this time that Don Norman, usability god came for a look around our offices on a visit. I showed him my work and asked me to go an work with a quiet genius called Kurt Schmucker in Apple’s Advanced Technology group who was working on some educational web site / Newton (eMate) project. It all seemed very natural at the time, that a non-programming artsy idiot could just get asked to go hang out in the coolest place on earth. Looking back, although Kurt was a Prograph user and advocate, it seemed that each person used their very own programming environment at ATG…. I remember SK8, Lisp, Smalltalk, and Dylan variations and there were others Ive forgotten…
Whilst working with Kurt, he showed me how, if I used HTML templates, rather than pure code to output HTML, that my tool Spinalot could be much more easily adapted. He was right. It seems obvious now but it was genius, trust me. I remember Alex Blanc took my educational community tool and made a ticket sales system out of it. You could sort of do anything that you could conceive of as objects with web pages.
Kurt, at the Prograph conference strongly suggested that if Prograph stored its code differently then it could be used with versioning tools, meaning more people could then work on one project. I didn’t get this, but he was right. Prograph was easy to learn, OO, ran interpreted for degugging and compiled for speed but was geared for “one brain” sized projects.
At the Prograph conference, in Halifax, everyone there seemed to be working on amazing projects. That to me was clue enough that I was using the right tool. Someone had even made a visual Prograph-like spreadsheet ( LKISS ).
On the down side of Prograph, I can’t think of any. Pictorius, the company that made Prograph – described by Kurt as a “boutique language”. bet on Apple’s OpenDoc technology which Apple killed. Trying to stay afloat after this predicament they attempted to make a Windows version… which worked, but seemed somehow to lose their focus… and their users… From a distance it just sort of fizzled out.
In the real world, I’d move jobs and had found the closest textual language to Prograph I could find having tried PHP, Perl and Java… Python. The concept of “open source” was proving itself. With python I could use regular expression libraries or simply download and run tools like Zope that blew my attempts at doing something similar out of the water.
I’m still occasionally hacking with python nowadays, playing with Google App Engine etc.
I used to imagine that one day, if UML compiled to Zope code and was mashed up with Yahoo Pipes that one day, all my Prograph based fervour would mount to something. I’m still waiting.
Prograph, or visual programming, is still the future. Text is very convenient and cheap but crap. All other visual programming environments I tried missed the point somehow, they were locked in 2D space where flow charts just got bigger and messier and less comprehensible. Or worse, they reduce your tools to baby hammers and spanners. Prograph kept everything simple and small, even the big things.
There’s a million other features Prograph had, but I’d need to jog my memory. I do remember demo-ing Prograph to super cool BT research engineers in Marklesham who fell incredulously off their chairs in astonishment. Were Prograph to make a comeback now, I have no idea WHAT it would be. What would you want to make with it? The world has changed so much since then. I lie, I have loads of ideas but they hurt too much 🙂
With Prograph I could create things more complex and simple than I could conceive. This still blows my brain. Prograph was like a brain extension, for me at least. Maybe that’s the point… it let non-programmers create very cool stuff. I’ve always been into that idea.