In explaining how to make sentences more readable (I know I am one to talk!), I frequently explain to students that language understanding is a combination of a schema-based syntactic structure with more sequential associative reading. Only recently I realised this was also the way we had been addressing the issue of task sequence inference in the TIM project. and is related also to the way we interpret action in the real world.
Over a cup of tea in bed I was pondering the future of business data processing and also general programming. Many problems of power-computing like web programming or complex algorithmics, and also end-user programming seem to stem from assumptions embedded in the heart of what we consider a programming language, many of which effectively date from the days of punch cards.
Often the most innovative programming/scripting environments, Smalltalk, Hypercard, Mathematica, humble spreadsheets, even (for those with very long memories) Filetab, have broken these assumptions, as have whole classes of ‘non-standard’ declarative languages. More recently Yahoo! Pipes and Scratch have re-introduced more graphical and lego-block style programming to end-users (albeit in the case of Pipes slightly techie ones).
|Yahoo! Pipes (from Wikipedia article)||Scratch programming using blocks|
What would programming be like if it were more incremental, more focused on live data, less focused on the language and more on the development environment?
Two things have particularly brought this to mind.
First was the bootcamp team I organised at the Winter School on Interactive Technologies in Bangalore1. At the bootcamp we were considering “content development through the keyhole”, inspired by a working group at the Mobile Design Dialog conference last April in Cambridge. The core issue was how one could enable near-end-use development in emerging markets where the dominant, or only, available computation is the mobile phone. The bootcamp designs focused on more media content development, but one the things we briefly discussed was full code development on a mobile screen (not so impossible, after all home computers used to be 40×25 chars!), and where literate programming might offer some solutions, not for its original aim of producing code readable by others2, but instead to allow very succinct code that is readable by the author.
if ( << input invalid >> ) << error handling code >> else << update data >>
(example of simple literate programming)
The second is that I was doing a series of spreadsheets to produce some Fitts’ Law related modelling. I could have written the code in Java and run it to produce outputs, but the spreadsheets were more immediate, allowed me to get the answers I needed when I needed them, and didn’t separate the code from the outputs (there were few inputs just a number of variable parameters). However, complex spreadsheets get unmanageable quickly, notably because the only way to abstract is to drop into the level of complex spreadsheet formulae (not the most readable code!) or VB scripting. But when I have made spreadsheets that embody calculations, why can’t I ‘abstract’ them rather than writing fresh code?
I have entitled this blog ‘part 1’ as there is more to discuss than I can manage in one entry! However, I will return, and focus on each of the above in turn, but in particular questioning some of those assumptions embodied in current programming languages:
(a) code comes before data
(b) you need all the code in place before you can run it
(c) abstraction is about black boxes
(d) the programming language and environment are separate
In my PPIG keynote last September I noted how programming as an activity has changed, become more dynamic, more incremental, but probably also less disciplined. Through discussions with friends, I am also aware of some of the architectural and efficiency problems of web programming due to the opacity of code, and long standing worries about the dominance of limited models of objects3
So what would programming be like if it supported these practices, but in ways that used the power of the computer itself to help address some of the problems that arise when these practices address issues of substantial complexity?
And can we allow end-users to more easily move seamlessly from filling in a spreadsheet, to more complex scripting?
- The winter school was part of the UK-India Network on Interactive Technologies for the End-User. See also my blog “From Anzere in the Alps to the Taj Bangelore in two weeks“[back]
- such as Knuth‘s “TeX: the program” book consisting of the full source code for TeX presented using Knuth’s original literate programming system WEB.[back]
- I have often referred to object-oriented programming as ‘western individualism embodied in code’.[back]
Last Friday I was in Aveiro giving keynote at ENEI, the national congress of Portuguese informatics students. The event was organised for and by the students themselves and I was looked after wonderfully. João was especially great picking me up from Lisbon airport at midnight, driving me to Aveiro the next day and then on Saturday driving me to Porto airport after less than 2 hours sleep … but more on that later …
The congress itself was in Portuguese except my talk, and I was only able to spend one day there as I needed to get back to pack, and so, by the time I met press and talked to different people, the day flew by … in time for an evening of typical Portuguese culture of different kinds.
First dinner of roast suckling pig – prepared in the town near Aveiro where this is the traditional dish. Those who know me know that despite all appearances to the contrary: sandals, long hair, beard; I am NOT a vegetarian 🙂 The meat itself reminded me of the rich flavour of belly pork at Sunday dinners when I was a small child; although much more delicate and without the tooth breaking thickness of the older meat.
After traditional cuisine I was given a taste of traditional student life. This period was a weekend when first year freshmen students all over Portugal have parties … for several nights in a row. The student organisers I was with had been up to 6am the previous night as well as organising the conference during the day. And this night, after having eaten suckling pig at 10pm, drove me down to a location in the dockland of Aveiro, far form any homes that would be disturbed by the noise, to a tiny village of food stalls, a huge music tent … and bars run by every student club in the university.
Some of the students wore traditional academic dress of Portugal – a thick black felt cloak hanging nearly to the floor and hats – different for each University. A group of visiting students from of Braga wore three cornered hats and looked every bit like a troupe of Dick Turpins. The cloaks are torn around the bottom, where family and friends would tear a gash in the edge … social networking before Facebook. The middle of the back of the cloak is reserved for the girlfriend or boyfriend to tear … but if a relationship ended you had to sew up the tear ready for the next one!
I talked with a group of students from Évora who explained their tradition of peer tutelage (I have forgotten the name of the practice). Two older students take a new student under their wing and teach him or her the practices of the University. The young student did not have his cloak yet as only after six weeks did he become a true freshman and entitled to the cloak. In the mean time they would carry him home of the parties proved too much and also put him right if he did things wrong … I missed the details of this, but I’m sure this included eggs (!?). The young student was enjoying the process and the older pair clearly took their responsibilities very seriously. At the end of the evening they asked me to tear their cloaks, involving using my teeth in order to start the tear. I was very honoured to be asked. The idea of biting cloth that had been scraping ground is not something I would normally relish (!), but given the evening consisted largely of groups of students, who had been at the afternoon lecture, pressing shots of various drinks upon me, by 4am, a little dirt didn’t seem to matter so much 🙂
And this Friday, no shots of liqueur in chocolate cups, or suckling pig and Portuguese wine, but instead packing a Luton van ready to move up to Tiree for my sabbatical. Kiel was an absolute star, coming first thing in the morning, lugging filing cabinets and freezers … and boxes some way beyond the current 25kg one-man lift limit. I recall routinely carrying hundredweight sacks wen I was younger and Kiel spent his youth lugging rolls of cloth around a textile factory, so for both of us 25kg seemed a little wimpish … however, there is a vast difference between a 20kg box and a 30 kg one … so the health and safety people probably have it right … and we did try to keep them all below 25kg, but very hard with boxes of books … and there are many of them a ton weight of books in fact, not to mention another half ton of bookshelving.
So this morning finds me half way up the M6, tomorrow morning we’ll be on the ferry, and the next morning in Tiree, ready for a year of hermit-like writing and working … not to mention the odd walk on the near empty two-mile beach outside the door … but that will be another story.