Questioning convention as a programmer (was: Showing unsaved status for document-based windows)

Ian Wood revlist at azurevision.co.uk
Sat Jan 12 20:48:58 EST 2008


On 13 Jan 2008, at 00:06, Randall Lee Reetz wrote:

> These are just straight forward questions that question convention.

I think this is worth spinning off into a new thread as it's an  
interesting topic by itself, and particularly apt to Rev.

For many of us, questioning convention is a necessary part of the  
'creative' side of programming - by thinking outside the conventional  
way of doing things we come up with new ideas, shortcuts, workflows  
etc. and there can be a lot of enjoyment in it as an intellectual  
process.

The problem then comes when we evaluate whether this new method/ 
concept we've thought of is actually better* - sometimes the  
convention is that way because it's the best compromise for the  
situation.
To put it another way - clichés become clichés for the simple reason  
that they are based on situations that occur again and again (and  
again and...).

The reason I think this is particularly relevant to Rev users is the  
relatively low entry barrier in terms of programming background - many  
of us on the list have no formal background in programming (on my part  
nothing more than a bit of Basic and Logo 20 years ago at school) and  
therefore don't know any programming conventions.
The very structure of the system/language/whatever seems to inspire  
innovation - someone on the list several years ago (Richard Gaskin,  
Dan Shafer?) had a pithy phrase about the Zen of Revolution, about Rev  
being what you made of it.

EDIT -  a quick attempt to find the quote via Google throws up a  
surprisingly large number of references to Zen in this list. ;-)
<http://tinyurl.com/2lgjmj>

Or maybe it's just the various ways the docs have been (dis)organised  
over the years. Grin.


The other main consideration being the target market. If it's a bit of  
code or an app for your own use then you just use whatever works best.  
As soon as other people are involved it's a different matter,  
especially for commercial software, and doubly-so if aiming at the Mac  
market.
For distributed software, convention can be used as a type of  
shorthand - you don't generally need to explain that Command**-S will  
saved the document, or explain Command**-X/C/V. People like the  
familiar and feel comfortable with it. Then there are the exceptions  
that suddenly take everything in a new direction...


Now, to make this even longer, I'm going to look at a couple of non- 
Rev apps that have particular relevance to me as a photographer -  
Apple's Aperture and Adobe's Lightroom. Call it a case study, if you  
like.

When Aperture appeared on the market it revolutionised certain types  
of photographic post-processing - it was truly the first widespread  
application that combined RAW*** conversion, general image adjustments  
and cataloguing/DAM (Digital Asset Management) features. Before it  
came out, we had no choice when it came to integrated workflows -  
there simply WEREN'T any.
You'd use Capture One, Photoshop/Adobe Camera Raw or some other  
dedicated RAW convertor to change your RAWs into something normal like  
a JPEG, or preferably a non-lossy format such as a (huge file size) 16- 
bit TIFF or PSD. You'd then catalogue those in iView Media/Cumulus/ 
Portfolio etc. You might also involve other apps for fast addition of  
metadata tags, Photoshop for image manipulation, Photoshop, InDesign,  
Qimage or similar for printing, etc. etc. A complex workflow might  
involve up to a dozen apps, with a few rare individuals and  
organisations starting to tie it all together with AppleScript.

Suddenly there was an app that did (or attempted) to do it all - RAW  
conversions, cataloguing, metadata, printing, web galleries, book  
design, slideshows etc. As extra sauce, you didn't need to bother with  
all those cumbersome 16-bit files either, as the RAW file was  
converted on-the-fly each time you looked at it, with each different  
variation you wanted being a few KB for the instructions. You might go  
from 15MB for the RAW file plus 70MB each for the variant versions of  
the image, to 15MB plus perhaps 1MB for loads of different versions  
and their thumbnails.
Similarly, the organisational structure was virtualised - as each  
image on screen didn't correspond to a distinct file there was no need  
to correspond to a folder structure in the Finder, in exactly the same  
way that iTunes doesn't - you had your main container for images  
(Aperture Projects, roughly equivalent to an iTunes library), and then  
you had your lower level of organisational container, the Album -  
equivalent to a Playlist, so images could appear in multiple Albums  
without there being multiple copies of it.
Next, as you're virtualising the images and any adjustments made to  
them, you can copy any of the adjustments with a couple of keystrokes.
Plus the reliance of Core Image, doing most of the image processing on  
the GPU.

As I said, revolutionary within it's field - it moved the goalposts  
for the entire photographic software industry, overnight. Even with  
the bugfest that was version 1.0.

Then come the problems (apart from early versions being buggy, not  
supporting many cameras and having insane hardware requirements). It  
was different from everything that came before, so everyone was  
learning from scratch. The sheer number of videos that Apple made  
available for showcasing Aperture was amazing, from day one there were  
something like fifteen of them up on the website, many being 5-10  
minutes long. The box came with an entire DVD of tutorials and barely  
covered the basics. The support forum was so busy it took down the  
entire Apple discussion area several times, although nowhere near as  
much as the iPhone a few years later...

A lack of conventional ways of working made it hard to master for new  
users.

On to Lightroom. After a long and at times painful beta testing  
period, Lightroom came out sharing a lot of similarities with  
Aperture. Virtual versions of images, RAW conversions, image  
adjustments, cataloguing, printing, slideshows and web galleries built  
in.
Somef big differences in operation, though. Unlike Aperture it's much  
more tied to the folder structure of your HD, simultaneously making it  
more familiar to the new user, but losing much of the organisational  
power of Aperture's purely virtual structure. It used a familiar RAW  
conversion interface, sharing most of it's conversion code with the  
ACR plug-in from Photoshop.
It was still fairly revolutionary, but it kept a lot more familiarity  
with existing applications, as you might expect as Aperture was  
Apple's first move into the field of professional photography software.

Currently there are reputedly four times as many Lightroom users as  
Aperture users, as Adobe's John Nack likes to mention (http://tinyurl.com/yrnahr 
), even though Aperture had around a year headstart. There are other  
factors such as Apple's notoriously tight lips when it comes to future  
info, Aperture's high hardware requirements and slow support for new  
cameras, Lightroom being cross-platform and from a company familiar to  
everyone for imaging.

But at least some of it is down to convention with Lightroom sticking  
to convention closer than Aperture, where Apple started with a blank  
slate.


That was rather longer than planned, but hopefully interesting.
Anyone else have thoughts of programming and convention?

Ian

*For a given definition of better...
** if platform is "windows" then replace "Command" with "Control" in me
*** For the non-photographers, RAW files are basically raw,  
unprocessed data from the sensor of the camera, requiring conversion  
into a 'normal' image file. The advantage being much greater control  
over the image.


More information about the use-livecode mailing list