J. Paul Morrison



Biography

Paul was born John Paul Rodker, the son of John Rodker, writer, translator, and publisher (he helped get his friend James Joyce's "Ulysses" published), and the artist, Barbara Stanger McKenzie-Smith, in London, England. John Rodker's father, David, joined the mass exodus of Jews from what is now Poland to escape the pogroms of the 1880s, moving to England, where, like a number of his family members, he worked as a corset-maker. As far as we know, all the Rodkers in the world are related - the name seems to have been invented for (or by) just this one family! There are now Rodker descendants spread from Vancouver, Canada, to Tasmania - it might be called the "Rodker diaspora"! John Rodker died in 1955, while Paul was still at university. 

You can walk the Rodker family tree, or at least the part we have figured out, by clicking on the Rodkers database, and entering a name to search on, for instance John Rodker, or Paul Morrison, and clicking on Ok. The software also supports other search criteria and relationship calculations, and even lets you change your preferred language. This is all powered by the GeneWeb program developed by Daniel de Rauglaudre at INRIA, France. Thanks, Daniel!

Paul's mother was a painter, mostly doing paintings on commission, and a number of her paintings are hanging in various country houses all over England, and perhaps some in the US. One of them is (or was) on display at the Tate Gallery in London.

A family tree which includes Paul's mother and many of her ancestors is being maintained by one of Paul's second cousins, Howard Smith, based in Australia. It now goes back 9 generations on Paul's mother's side (to one Thomas Stanger, ca. 1610), and can be accessed starting at Barbara Stanger McKenzie-Smith.

Paul's mother was trained at the Perse School and the Slade School of Art, and as a young person was involved in the Bloomsbury Group. One of her closest friends was the lithographer, Trekkie Parsons, who became the long time lover of Leonard Woolf, Virginia Woolf's husband, after Virginia's death. Paul remembers being taken to see Leonard at his house in the country. He was also told that Moura, Countess, later Baroness, Budberg, was asked to be his god-mother, as she was a friend of the Rodkers, but Paul has no recollection of actually meeting her, although his half-sister, Joan Rodker, who was sort of the family archivist, knew her well.

Sadly, both of John's daughters have now passed on: Camilla Bagg died on December 1, 2007. She was the second-born of John Rodker's three children, but the first to pass on. Together with Nathalie Blondel, she edited a book about her mother, Mary Butts.

John Rodker's first daughter, Joan, passed away peacefully on Dec. 27, 2010, at the age of 95 after a brief illness.  She will be sorely missed.

Paul's last name was changed to Morrison after his parents' divorce and his mother's subsequent marriage to Edward A. Morrison III, an American citizen who signed on with the Royal Air Force, and eventually reached the rank of Wing Commander towards the end of the war (WW II). In 1941, he and a number of other airforce officers and airmen were awarded the Distinguished Flying Cross for bravery, determination and resource during raids on enemy warships.

For about 10 years after the end of the war, Paul's mother and step-father lived in Middlesex (now part of greater London).   From there they moved to N. Wales, to the area around Dolgellau, Gwynedd.  They are buried in the nearby village of Llanelltyd. 

Paul was born in St. John's Wood, London, UK, just before the start of World War II.  Soon afterwards, he was shipped out to Marshfield in Gloucestershire. During the war years he was educated by various governesses (some younger and some older!), and after the war was over he was sent to the Dragon School in Oxford, where his lifelong interests in languages and science fiction got their start. He would like to recognize the impact his brilliant science teacher, Gerd Sommerhoff, had on his life - Gerd pioneered what was really an early form of computer-based training using cards, and imbued his students with a love of science which has stayed with Paul all his life. From the Dragon, Paul went on to Eton College as a King's Scholar, where he specialized in Classics (under protest!), followed by 3 years at King's College, Cambridge, where he got a MA in Archaeology and Anthropology, specializing in Social Anthropology. This subject was recommended to him by the then provost of King's, Noel Annan, and it turned out to be a perfect fit with his interests. In between public school and university, he spent a summer dabbling in Sumerian, general linguistics, Impressionism and a bit of topology, at the University of Innsbruck, Austria. (By the way, if all those "Kings" sound a bit repetitious, Eton and King's College were both founded by the same king, Henry VI.)

After leaving Cambridge in 1958, he decided to make a move into the newly emerging computer business rather than become an anthropologist, and joined IBM (UK) in January, 1959. This means that, around the end of 2009, he realized he could boast that he had been programming computers continuously for 50 years (some sort of record, surely?)! The first computer he programmed was an IBM 650 - 2000 10-digit words of memory on a rotating magnetic drum! He eventually worked for IBM for 33 years in 3 countries - initially in England and the US, but for most of his career with IBM, in Canada.

Around 1967, while in the US, he developed what seems to be a precursor of IBM's VSAM access method by combining the ideas of compressed indices and "look-aside stacks" (now usually called "caches"), both of which were being worked on at that time by colleagues of his, with the concept of the "balanced tree", now called "B+ tree" (which he had read about, and then modelled in APL). He implemented much of the code which managed this data structure for IBM's internal Engineering Information System, and it proved very powerful (and long-lived). It is not clear to what extent this work influenced VSAM, which has very similar characteristics.

Soon after moving with his family to Montréal, Québec, in 1968, some other ideas flowered into what is now called Flow-Based Programming, and in the early '70s he joined the IBM team helping to design and build the Bank of Montreal's "Mech" on-line banking system, an innovative, forward-looking, 24/7, system that eventually (by the mid-'70s) was handling around 5,000,000 customers.

In 1976, Paul transferred to Toronto, retiring from IBM in 1992, and is now an independent contractor and consultant, living in historic Unionville, Ontario.  His son and daughter-in-law live in New York City.  In 2004 they spent several months in Beijing, and have built a web site describing their experiences, called The Sino File.  While there, Paul's son also developed a prototype of a language for developing reliable, scalable, distributed applications, called Eleven.  Paul's daughter, son-in-law and grandson also live in Ontario, about 35 minutes' drive from his home.

Paul is now working full time on trying to spread the word about Flow-Based Programming, mostly using Java and C#, in between worrying about his chosen country (Canada), the planet, and the human species in general.

Paul is now taking a stab at writing a blog - it has really turned out to be more about politics (Canadian and global) and the environment (and the occasional medical update) than about Flow-Based Programming, but Paul may change his mind later!   Paul uses LinkedIn to manage his professional contacts.

"A Museum for Young Gentlemen and Ladies"

Paul inherited a children's reference book dating from the mid-1700s, that was owned by the above-mentioned John Smith's son, also named John Smith, called "A Museum for Young Gentlemen and Ladies - 15th Edition", which was apparently very popular in its time. A copy of this was among a set of books that one Jane Barnes was arrested and sentenced for stealing, in 1783. She was fined 1 shilling and imprisoned for six months in the house of correction.

This book was apparently never digitized, so Paul has now done this, and the result can be found at A Museum for Young Gentlemen and Ladies. It has also been uploaded to Project Gutenberg. In case you were wondering, the "ſ", "ſ" - "long s" - has only been preserved in the Table of Contents, so as not to interfere with text searching. It can be downloaded in a variety of formats, including HTML and Kindle.

Flow-Based Programming and its History

During his time at IBM, Paul worked on database systems, programming languages, rapid prototyping, natural language support and text retrieval systems. During his long career with IBM he always felt that it is vital for the IT industry to find a better way to develop applications, and that it is even more important for applications to be built so that they are maintainable, to cope with changes in the business requirements and processing environment. Over the years he came to realize that none of the approaches currently in use in the industry have provided that necessary level of improvement, and that in fact there are fundamental reasons why this should be so.

Around 1970, he discovered what he and others have come to believe is an extremely significant technology for increasing programmer productivity and producing more robust, reusable and maintainable code. This new approach eventually came to be known as Flow-Based Programming and is described in his 1994 book, Flow-Based Programming: A New Approach to Application Development (see Publications below).

A new edition has just come out (2010), including information about the Java and C# implementations, as well as the diagramming tool (DrawFBP), several sections contributed by Mike Beckerle, CTO of Oco Inc., on their experience using FBP concepts on truly humongous amounts of data, plus a whole new chapter on software projects that have appeared in the last 15 years and either build on FBP, or have strong similarities to it.

It describes an approach to developing applications, not in terms of the old von Neumann paradigm, but based on the concept of multiple asynchronous processes communicating by means of data streams, which in some ways is even older! An application is viewed as a system of data streams being transformed by processes, rather than a single "dumb" actor doing one thing at a time until all the data is processed. This requires a paradigm shift which profoundly changes the way the developer has to look at applications, and, although this concept is similar to concepts current in the area of distributed and parallel systems, up until now it has not been recognized that it is also an extremely productive approach to improving programmer productivity and application maintainability.

Surprisingly, systems built this way actually perform better than those constructed using conventional techniques. Paul and his colleagues used this concept as the basis for a number of software packages, which are described in Paul's book. The Mech system, referred to above, uses an early version of these concepts which in fact has proven to be extremely robust, and has been in continuous use processing millions of transactions a day, for 30 years now (as of 2007) - large business systems are constantly changing, and the kind of modular structure that is central to Flow-Based Programming provides both the flexibility needed for this process to be successful over time, as well as a number of ways of tuning the system for optimum performance.

A later implementation, called DFDM, was developed by IBM Canada for the Japanese market, so that IBM could offer an IBM competitor to a number of home-grown Japanese dataflow products. It contains a number of powerful application development facilities, and also supports the Kanji character set. A number of licenses were sold in Japan.

In his research for his book, Paul has discovered that Flow-Based Programming (FBP) and its related concepts are constantly being rediscovered independently by different groups, both in business and in academia, and one of the chapters in his book attempts to bring together into one place a survey of a number of such systems, and to describe the similarities and differences between them. This can be accessed by clicking on Cognates . A much longer and more up-to-date list can be found on the FBP wiki.

One of his major motivations in writing his book was to try to start a dialogue going between the various groups pursuing these different but related research and development efforts. He would very much welcome feedback on his book and/or on these concepts in general.

More about Flow-Based Programming.

Most of the dialog about FBP used to occur in the Flow-Based Programming Wiki (FBPWiki) - the active discussion now seems to have shifted to the FBP Google Group.  Interested parties are encouraged to participate in the latter - the more ideas we can collect, the better!

Links to web site about Flow-Based Programming, and new data flow diagramming tool (DrawFBP).

The second (2010) edition of Paul's book "Flow-Based Programming" is now available from CreateSpace and Amazon.com - and now in ebook format on:

You can download the book in seconds from either of these sites.  In neither case do you need e-reader hardware:

Kindle books can also be read using Amazon's free Kindle reading applications for PC, Mac, iPad, iPhone, BlackBerry, and Android devices.   Apparently Amazon has enabled Text-to-Speech for this book as well - this is a really amazing technology!  

The Lulu version is in EPUB format, and is readable by Sony Readers, iPads, Android, etc., as well as on your PC using an EPUB reader such as the free Adobe Digital Editions, etc. 

I should mention that ebook versions provide live links and cross-references on your PC or appropriate readers (although the tables aren't quite as legible as in the printed version - apparently this is a general problem with ebooks).

"Smart" Data

Another of Paul's concerns is the mismatch between the data types used in the real world and the data types supported by most programming languages. Most numbers in the real world have units attached to them - for instance, distances are in feet, metres or parsecs, bank balances and prices have to be in some currency, dates and times have to be relative to a given time zone, and so on, but most computer languages treat all quantities as if they were dimensionless. Most business values in computer applications do not even have an explicit precision, as floating point is not appropriate for them, so this knowledge is only held within the program code.

A few years ago, one of the Mars landers was lost because of a mismatch in units, and there is the famous case in Canada of the so-called "Gimli Glider", which is well worth reading about as a cautionary tale! It is described in some detail in the web page called "Smart Data".

More recently (2000), a friend, Denis Garneau, designed a collection of Business Data Types for a Java business application, and Paul had the privilege of building the Java classes and methods. This was very satisfying to him, as these classes provide the first real start at solving these problems that he has ever seen, and, more importantly, that has been used in a real-life application.  These Business Data Types were posted to SourceForge in 2009 using the project name JBDTypes (https://sourceforge.net/projects/jbdtypes/), and have since been picked up by Softpedia.  The SourceForge project in turn links to the web page called Business Data Types. This will be extended as time permits. A page has also been added describing a possible approach to taking advantage of compile-time type-checking in the area of physical units - Physical Units. Feedback would be welcome!

Enthusiasms

Programming languages and development methodologies, linguistics, space flight and science fiction, West African, Caribbean, Latin, and Indian music (Paul played percussion with a Latin band at Cambridge, and then later played the guiro in one of the late, great Fela Kuti's first bands, in England - probably the Highlife Rakers, although Paul doesn't remember the name of the band);  as many areas of science, especially the life sciences, as he can keep up with. During the period when he was living in London, he was a member of a branch of the Asian Music Circle, and was also a member of the British Interplanetary Society, whose president at the time was the distinguished writer and visionary, Arthur C. Clarke

Among the formative influences in his life, he would like to acknowledge his wife, his mother, many of the concepts of Christian Science (one of his teachers was "Fougasse", the noted British cartoonist), the Dragon School, Cambridge University, and perhaps Eton (some positive effects, in an unintended sort of way). 

Finally, a shameless plug for the writings of a good friend, tragically taken from us too early - if you like detective stories and science fiction, take a look at Checkmate Fiction by the late George Condon, or his thought-provoking, and often extremely amusing, blog, where he shared his thoughts about politics, movies, and everything else - including the moving last post.

Publications

Data Responsive Modular, Interleaved Task Programming System, IBM Technical Disclosure Bulletin, Vol. 13, No. 8, 2425-26, January 1971

Data Stream Linkage Mechanism, IBM Systems Journal, Vol. 17, No. 4, 1978

Flow-Based Programming: A New Approach to Application Development, Van Nostrand Reinhold, NY, 1994. ISBN 0-442-01771-5. Now out of print, but available second-hand. It is also available in full on the FBP web site.    Ed Yourdon kindly added this book to his list of "cool books".

Flow-Based Programming, 2nd Edition: A New Approach to Application Development, CreateSpace, 2010. ISBN 1-451-54232-1 

Contact Information


Email:

@
paul.morrison rogers.com


56,469 visits