Josep Maria Blasco


About Josep Maria Blasco


[Josep Maria Blasco]
Photo: Sophie Marie le Mouel (crop)

My name is Josep Maria Blasco. Parsed thus:

{"name": "Josep Maria", "surname": "Blasco"}.

I was born in 1960 in Barcelona. I studied Mathematics at the University of Barcelona (UB, 1977–82), Computer Science at the Facultat d'Informàtica de Barcelona, Universitat Politècnica de Catalunya (UPC, 1983–85), and (apart from Psychoanalysis, which is not relevant here) Logic and Foundations of Mathematics at the Faculty of Philosophy (UB), where I got a Diploma d'Estudis Avançats in the Logic, History and Philosophy of Science department (2004–06).


I am a computer programmer, and a psychoanalist.

A computer programmer

In 1977, when I was just 17 years old, on my first year at the University, we were taught PL/I. I asked the teacher, Joan Llopart, for a copy of “the PL/I manual” (that was the DOS PL/I Optimizing Compiler: Language Reference Manual. I write “the manual”, because we had only two volumes in the whole University), and he very kindly lent me one. I quickly ordered a protocopy, and started to devour it, day after day, until I knew everything by heart.

[Execution Logic]
Cover of the Execution Logic
manual (Click to enlarge)

I was absolutely fascinated by the PL/I language, and wanted to learn everything about it, and how it worked “from inside”. Hopefully, Joan provided me access to several manuals more: the Execution Logic, a rare, big volume, with dark violet covers, and also the corresponding Program Logic manuals, one for the “Resident Library” and another for the “Transient Library”, both labeled “Licensed Material – Property of IBM”, which explained almost everything about the innards of the PL/I run-time. To be able to fully understand these manuals, I needed a good mastering of machine language, so that I decided to start by teaching myself ASSEMBLER/360, and studying in depth the intrincacies of the IBM/360 Principles Of Operation. I remember that I even manually disassembled an hexadecimal dump of the IBMDPIR PL/I initialization routine (a program module of the Resident Library), and then reconstructed its logic, which allowed me to fix the PL/I-FORTRAN interface by changing the value of a single constant: our poor mainframe was well past end-of-support, and the interface hadn't worked for several years.

[IBM 360/40]
The IBM/360 model 40
(Click to enlarge)

In 1980, when I was 20 years old, I started a two-year project to port the Pascal P4 implementation created by Ammann, Nori and Jacobi to our University mainframe, a hopelessly outdated IBM/360 model 40 with “Expanded Memory” (96 kilobytes!), four 2311 drives and two tape units. In 1982, I used the just completed port to teach the first Pascal courses ever in the University of Barcelona; in the meanwhile, our mainframe had been upgraded to a modest, but far more modern, 370 model, with 3270 screens and everything, and running VM/BSE, an immediate ancestor of VM/SP.

This was the first really complex computer-related project I was involved in. It was a purely volunteer effort: I had no bosses, no employees, no timetables, and no schedules. I didn't have to write reports or to attend meetings, and, as I was not getting paid, I had no duties whatsoever.

It was paradise.

I devoted time to work when I really felt like working, not when somebody else assumed, for whatever reason, that I had to. And, since I was very young, when I had something else to do, I immersed without guilt in this other something, with the same enthusiasm I usually experienced when working on my Pascal port. I could start meeting a new girlfriend, for example, and then stop working on my project for several weeks. But I always returned to my port: sooner or later, I experienced an explosion of creativity, and I could well work, non stop, on my Pascal implementation, for several days. Including the full weekend, or the whole night, if necessary.

This experience of maximum creativity and absolute freedom marked me forever, and it modelled my attitudes toward work and employment for the rest of my life. As an example, I never accepted a job offer with rigid working hours. I knew by experience that it would kill all my creativity, and that, besides, I would become terribly unhappy: life would stop making sense. I had been fortunate enough to experience that “work” could be a synonym of “happiness”. At the moment, I didn't realize how rare my experience had been. I was probably too young to fully appreciate its rareness; in any case, I lacked the perspective I now have. Nowadays, I consider myself to have been immensely fortunate to have had such an experience, such an opportunity.

* * *

[Introducción a la programación en UBL]
Introducción a la programación
en UBL
(cover)

When the basic features of the Pascal P4 port were complete, I embarked in a long series of additional bootstrap cycles, and slowly incorporated a large number of new features into the language, then called UBL (University of Barcelona Language): multiple language support, parenthesized statements, structured function return values, syntactic iterators, cyclic enumerations, Ada-like packages, etc. Since the language could be programmed in Spanish and Catalan, in addition to English, it was used, durings several years, as the official tool to teach the more basic levels of programming at the University of Barcelona: students first learnt UBL in their own language (that is, Catalan or Spanish), and later applied their knowledge to learn Pascal (in English). At the time, some people believed that learning to program in one's own mother tongue could have some benefits.

Here are some references (all in Spanish):

When I finally got my degree (“licenciatura”) in Mathematics, in 1982, I started working professionally as a computer programmer. I first gave some classes, for an academic year (1982–83), at the Facultat d'Informàtica de Barcelona (FIB – UPC); in parallel, I started working at the Centre d'Informàtica de la Universitat de Barcelona (CIUB – UB; 1983–87)).

The University mainframe was there, at the CIUB. At some time, we migrated from VM/BSE to VM/SP Release 3. Release 3 had Rexx. I fell in love. We have never parted.

* * *

You can read a (quite outdated) summary of my trajectory as a computer programmer here (in Spanish).

Reasons for a career switch

I am old enough to have seen far too many “paradigm shifts”: from mainframes to Unix workstations, to put an example; from Unix workstations to Novell networks; from Novell networks to NetBIOS networks, like Windows for Workgroups, or LAN Server; from client/server networks to Dropbox; and so on and on.

I have also had ample time to contemplate many fads come and go. If we limit ourselves to programming languages, I can remember the time when PL/I was supposed to be the final, definitive, all-encompassing language; then came Pascal, and structured programming (and PL/I had to rush and adapt); then came Ada, with its huge manual and still huger Rationale; then Rexx (which broke most of our preconceptions); nowadays, everybody is talking about Python and Rust; and so on and on.

Or, if we widen our perspective, the Metaverse (a reedition of Second Life, with a similar outcome – no, wait; in Second Life, at least, you had legs, and you could also have some fun if you so desired); Blockchain; NFTs; Artificial Imbecility; and so on and on.

It might be related to the particular conditions of my sensibility (after all, I decided to study Maths for some reason), but I find this dependence on “paradigms”, fads, politics and economics inhuman, anti-aesthetic, and extremely unhealthy, both for the mind and for the body. Assume, as an example, that you have developed a beautiful, useful, wonderfully crafted and extremely complex system, during several years. Then, one day, poof!, you are ordered to throw everything away, to the waste bin, “because there has been a paradigm shift”. This might be good —let's be optimistic— for your employing company; or —much more probable— for the company that is trying to sell some new, shiny, software; but it will certainly not be good for you as a programmer, or as a human being — if you really love programming and you are proud enough of your own creations, that is. And: a mathematical theorem cannot stop being true because of a “paradigm shift”.

Of course, you can always make a choice, and decide to “grow up” and “accept reality”. Supposedly —you will be told—, you are being paid to work, after all, and not to enjoy yourself.

Some of my colleagues followed that path. One of them (a good friend, and a more than excellent programmer too) went to the extreme to refer to himself as “a mercenary”.

Well, I did not want that for me. I have never believed that life is a valley of tears — or that suffering has any intrinsic value, for that matter. I wanted to continue to be able to enjoy myself at work. I wanted everything: the fun, and the money. Why shouldn't I have both? And, definitely, I didn't want to end up having to confess, bitterly, like my poor friend ended doing, that I was “a mercenary”.

In order to avoid further attacks of the Paradigm Shifters and similar nonsense, I decided that, if I wanted to preserve my sanity (and my capability to have fun at work, an integral part of my creative/productive process), I would have no choice but to switch careers. Because I really loved programming, I would have to stop getting paid for my programs, and start to earn my wages in a different way, doing something else, with a different profession.

In a sense, I had decided to get back to paradise.

* * *

[Of course, preserving my love for computer programming was not the only reason why I switched careers; but I am writing these paragraphs as a computer programmer, not as a psychoanalist].

A psychoanalist

In 2002, I ceased all professional work with computers. I was 42 years old; 25 years had passed since I was first taught PL/I at the University. I didn't stop programming, of course, but now I was writing code only for my own enjoyment, and for the benefit of our institution, Espacio Psicoanalítico de Barcelona (EPBCN), which, in the meanwhile, I had founded in 1996. I had the privilege to count on Dr. Juan Carlos De Brasi as a co-director from 2000 until his death, in 2017.

At EPBCN, I took care of the development of our web, which I had created in 2001. The first versions used Apache httpd Server Side Includes, but I found the mechanism clumsy and not flexible enough. I started to experiment with David Ashley's mod_rexx package. In 2002, I wrote REXXTAGS, a Rexx Server Pages processor, and I based the subsequent versions of our web in it. Later on, in 2006, I wrote REXXHTTP, an encapsulation of the Common Gateway Interface for ooRexx, which we still use, in a modified form. This very same web you are now reading is also based on a version of REXXHTTP.

The web at EPBCN is quite sophisticated. It has more than 35.000 pages, mainly because we have an almost complete record of all activities since 1996. We also have a very complete calendar system, an audio and video library, and a paper book library with almost 3000 volumes. This last library, for example, was very advanced, when I first designed it, since it incorporated, for example, (a limited form of) Unicode support, and a pagerank-like ranking algorithm. All written in ooRexx.

Apart from programming for EPBCN, I have also developed other programs. This web is devoted to describe many of the Rexx programs I have written since I stopped earning my living with computers (I am also listing some previous, Rexx-related, publications). Most of these programs are open-source. Some are obsolete, and some others are current. For some, I distribute documentation and source; in other cases, I do no longer distribute the source, but I keep the documentation, for historical purposes. Finally, several of these programs were presented in different international Rexx Symposia.

I enjoyed myself a lot when writing all this software and its accompanying documentation. I certainly believe that many of these programs have been, or still are being, used and useful.

My work path as a psychoanalist, which is of no interest here, is explained in detail elsewhere.

* * *
No managers or customers were harmed in the making of this web.


Copyright © 1992-2025, EPBCN & Josep Maria Blasco. This site is powered by ooRexx and RexxHttp.