How I came to work for IBM and learned to program: Part Two
Bob Malone
Programmers and Programming
Back when I was a programming manager and hiring people off the streets (1965-1972 -- at that time, the only experienced programmers available were worse than bad, and no colleges and few technical schools were training programmers, so we had to roll our own (still probably the best way to do it) -- they had to have clean fingernails, a four year degree (so that we could classify programmers as exempt from overtime, i.e. managerial, professional, or sales -- we called programmers professionals) and an acceptable score on the Data Processing Aptitude Test (what this score was changed from time to time and place to place -- I found that scoring too high was as bad an indicator of becoming an effective employee as scoring too low -- but scoring in the range 60 - 70 said you had a reasonable chance of becoming a productive IBM systems programmer), pretty much a standard intelligence test without much verbal (a section on simple arithmetic, one on logic, and one on spatial perception) -- there were 87 multiple choice questions (with no penalty for wrong answers, so the maximum score was 87) and a stringent time limit -- I found it, in conjunction with an interview, a good predictor of job success -- the spatial perception part being the most predictive), we well understood that there were “two lights". The first light, if it ever came on, came on during the first or second week of BPT. Then you suddenly understood what programming was. The second light came on, if it ever did, the second or third week of SPT. Then you understood what systems programming was.
I can testify to the existence of these two lights, though I learned to program before the existence of BPT and SPT. The first one came on for me during my first week of writing Actual for the 705 (I think – may have been a 704). It was almost six months later before the second light came on, an unusually long time. I wrote a lot of Actual for the 1410 on a training problem and was then assigned to the 1410 Card and Tape IOCS. The training program was more of a utility than a system program. The IOCS was a true system program, so perhaps only the IOCS time should count. I had been working on the IOCS for about two months when the second light came on and I understood what I was doing. The turning on of each of these lights was quite startling -- similar to being in a small earthquake. I have frequently wondered since the turning on of the second light if there was a third (nerd humor :>).
There are various kinds of programming and programmers. Normally, professional programming is classified into systems, application, and research programming, and programmers into professional (earn their daily bread programming), amateur (program because it is necessary to accomplish some interim goal), and hobby (write code because it is fun – the code may good or bad, useful or useless) programmers. (A programming joke from the 1960s states that professional programmers write FORTRAN, amateurs write BASIC, and fools and geniuses write APL -- the originator of this probably thought people who wrote COBOL were not programmers.)
I was a systems programmer and in my thinking classified systems programming into inside guys and outside guys. Inside guys included: hardcore (real microcode, interrupt handlers (including machine error handlers, diagnostics, and low level allocating and scheduling), low level I/O, and emulators) and soft core (loaders and librarians, assemblers, high level allocators and schedulers, access methods and communications, simulators, and some kinds of interpreters) guys. Outside guys included: dilettantes (compilers, data bases, and some interpreters) and odds and bods (mainly sorts and utilities) guys.
So, who are programmers? (I knew the man well, Bob Dean, who insured that "programmers" is spelled with not one "m" but two -- an orthographist in the IBM Endicott Lab in the early 1960s, he later became the manager of "Common Carrier Relations" in the IBM RTP lab.) Perhaps a programmer is a person who claims to be a programmer and whose claim is recognized by others who claim to be programmers and have that claim recognized. I will now try to flesh out these bare bones.
When asked to define what a programmer is, I have generally replied, "an accountant with imagination". When asked for identifying characteristics, I have replied, "self-confidence" ("optimism" would do equally -- if you do not honestly believe that you are the best programmer in the world (and that the program is going to run this time without a hitch), you better be looking for another career). (However, I have worked with at least a half dozen programmers that I though considerably better than I. Working at the beginning of my programming career with JohnB was an education. For a number of years, he was the only one I thought better. During that time, I once introduced myself to Bruce Oldfield, then Project Manager of IBM's NKD (I cannot now expand the acronym, but it was the automating of the Japanese equivalent of the BBC) project, as IBM's second best programmer. He was much amused.
Programmers come from all kinds of backgrounds, but generally they are young, white males (yes, there is programming after age 32, but only for the few). Racially, the best are Welsh, Erse/Celt, Basque, Pict, Hungarian (if Hungarians are not really Basque), and Semitic. Linguistically, English is their native language. Culturally, they are Judeo-Christian. Their interests/college backgrounds (in descending order) are astronomy, physics, engineering, architecture, music, mathematics, business. They score exceptionally well on the spatial part of intelligence tests. They do not have PhDs and do not major in Computer Science (back in the mid-1970s I was on a short assignment at the Hursley lab during the annual U.K. national high school science project competition -- the winning entry was a fairly sophisticated piece of software (I forget what it did) -- when the young author was asked if his career goal was to be a computer scientist, he responded, "No. I am going to be a real scientist."). Real programmers have a higher chance than the population as a whole of being left handed, mildly dyslexic, and at some time the possessor of a model train set.
But in the end, programmers like to program (the classic definition of a programmer, of course, is, "a person who had rather talk to a machine than to another person"). Whatever: a lovely program really is like a melody.
There are a number of people who could be programmers if only they liked to program. Don Knuth, the programmer's programmer (John Pierce was the original EE's EE -- he was succeeded by Bob Lucky), once said that 2% of the U.S. population had both the interest and the aptitude to be programmers. Under PC pressure, he upped this figure to 10%. Many systems guys are programmers who do not like to write code – or realize that systems guys who do not write code are generally paid more than systems guys who do write code (i.e., programmers).
"Coders", like accountants, are good at detail and logic. "Programmers" are coders with imagination -- that is, they are metacoders (can loop back and look at the code one level removed). (How many "loop-backs" are useful is debatable -- probably not more than three (analog to the three-body problem?).) As briefly mentioned above, “Systems Analysts” are programmers that don’t like to write code or are programmers looking for a higher paying job. There are some systems analysts who can’t wrote code, but their number is few.
One IBM study showed, and I agree in general, that systems programmers spend their time as follows: 1-2% coding, 17-18% testing, 30% design, the remainder in documentation, education, meetings, coffee breaks, etc. In any significant computing endeavor, 90% or better of the problems are people and communication problems.
Bob Malone Gets Started
All of the code I wrote in IBM shipped to customers was written in assembler; however, it is generally thought necessary to include some words on programming language in any discussion of programmers and programming. These words follow, but first I will describe those portions of my background that formed my ideas.
My introduction to data processing was in 1958: a six-month job as a keypunch operator for the California Tuberculosis and Health Association. I prepared material for a statistical study being tabulated for them by the SBC (Service Bureau Corporation, then a part of IBM, later “given” to CDC (Control Data Corporation) as part-settlement of their anti-trust suit against IBM) on a 407. I came to the conclusion that, if the guy handling our account could get a job with SBC, anybody could. A couple of years later, after I qualified as a high school math teacher, I applied for a job with IBM on the reasonable assumption that they employed math teachers and paid them more than high schools. What I did not know was that at the time they pretty much automatically hired any high school math teacher who walked in the door as a programmer. When I was asked in the Atlanta Branch Office where I applied if I would like to be a programmer, I asked, "What do they do?" The guy who was interviewing me probably didn't know, but he said, "Don't worry -- we will teach you."
Bob Goes to Endicott
I showed up in Endicott and was given a desk, a chair, and a book to read, “Business Data Processing”. When the next programming class started at the SBC in NYC, I was sent to it along with about a dozen other new hires from Endicott. The school was three weeks long. The first week was wiring a 407 plug board, the next two weeks was programming the 705 in Actual (binary).
When I returned to Endicott, I was assigned as a training problem to write a polyphase (unbalanced) merge for the 1410 (not yet announced or in manufacturing -- we used engineering models when the engineers weren't using them). Of course, I also had to write a sort to provide input to the merge. I not only wrote both in Actual, I got both to work. The merge was later used as a prototype by the Sort Group at Time-Life.
I had never heard of a Fibonacci series until an IBM mathematician, John Ford, walked by my cubicle, saw one on my blackboard, and asked me what I was doing with the Fibonacci series.
Since there was as yet no assembler for the 1410, I wrote the merge in Actual (not binary -- the 1410 was a BCD (Binary Coded Decimal) variable word length machine -- the programmer thought of himself as coding the machine with a 64 character set (there were actually seven bits to a character -- the seventh bit was a "wordmark" which provided the variable word length, or provided a 128 character set, whichever way you want to think of it)), using decimal addresses, and doing decimal arithmetic (the engineers called the 1410 arithmetic unit a "bi-quinary" arithmetic unit).
My first real assignment was to work with JackH, like me a new hire, to produce the Card and Tape IOCS for the 1410, and with JohnB, an experienced programmer (and perhaps the best programmer I ever worked with -- he was a little strange -- one day he passed me and CharlieS in the hall and said "Hi" -- after he passed, Charlie turned to me and said "John is unusually talkative today"), to produce the Disk IOCS for the 1410. These were to be implemented using the 1410 Tape Macro Assembler.
After Jack and I had completed the IOCS design and were ready to start implementation (the disk stuff was done with John after the card and tape stuff was pretty much complete), we asked our manager, JimO, to provide us with a copy of the tape macro assembler (generally called "Tape Autocoder") so we could start coding. He looked embarrassed (he had another group that was supposed to have produced it and recently had been working on it himself) and said that it did not work -- perhaps we could get it to work. Jack and I worked on it for about two weeks and came to the conclusion that we could never get it to work, so we threw it away and began anew with the card assembler code as a starting point. We had the Tape Autocoder, including a fairly sophisticated macro generator, running in less than six weeks (it was the product shipped with the system) and began to code the IOCS. I later wrote quite a bit of assembler code for the IBM 1401, 1440, and 1460 -- all shipped to customers.
More About Endicott
“The village of Endicott, incorporated in 1906, is named for Henry B. Endicott, a founder of the Endicott-Johnson Shoe Company. Located in the Southern Tier of New York, Endicott, along with John City and Binghamton, make up what are known as the “Triple Cities”. Endicott is the birthplace of IBM, which is still the major industry in the village. Endicott’s 13,500 residents are of varied racial and ethnic backgrounds….” (www.endicottny.com/index.htm)
[NB: when I worked in Endicott, most of the ethnic diversity came from Poland – many, of whatever origin, were wealthy as the result of wise investments in IBM stock.]
Endicott is located on the Susquehanna River in Broome County. A good background book on the area is “The Susquehanna” in The Rivers of America Series.
Endicott was the original home of IBM. The International Time Recording Company moved there from Buffalo in 1906. Tom Watson, Sr., was appointed president in 1913. When he moved the headquarters function to NYC, circa 1920, he changed the company name to the International Business Machines Corporation, called the NYC operation “World Headquarters”, and proudly emblazoned this title on the 5th Ave. entrance to the building (the name was quietly changed to “Corporate Headquarters” circa 1960 when the operation moved to Armonk, NY). During my early years in IBM, people who began their career in Endicott were considered more IBMish than those who did not.
Several functions remained in Endicott including the development lab, generally at that time called the Glendale Lab, and the sales school. The Glendale Lab derived its name from Glendale Drive, the road on which it was built. Prior to the lab’s construction, the road was the Old Hogback Road, but apparently IBM had some objection to “Old Hogback Lab”, so the road was renamed.
More About Bob
I joined IBM at the Glendale Lab June 6, 1960, but, honoring one of IBM’s most faithfully observed traditions, was in rented space in “downtown” Endicott before moving into the rabbit warren that was Glendale. I spent the next three years at Glendale, mainly mastering the Glendale maze.
Since I knew that I would be attending a three-week SBC school in NYC in July, I did not bring my wife and infant son up from Atlanta until August, after the school was complete (my second son was born in Endicott in May of ‘62, the third in Newark in May of ‘64). We rented the top floor of an old house on a dairy farm outside of Owego, NY, a little over ten miles west of Glendale, and spent the three years there. (Owego was the site of an IBM FSD lab, and almost all of the IBMers near us worked there rather than at Glendale. My second line manager, JimF, and his family lived in a large house in Owego adjacent to the Susquehanna, but I do not know of another Glendale employee in the area.)
A large number of programmers were hired into Glendale in 1960, some into the Programming Center (not called such at the time), some into the Product Test lab (housed in Glendale), some elsewhere. The ones I knew best were in the Programming Center, but I knew a fair number in the Product Test lab. The programmer hired in my cohort who had the most successful career in IBM was BillL, who was hired into the Endicott Product Test lab. Later he moved to the RTP Product Test lab. Still later he became the Rochester site manager. This was at the time I was working in Rochester.
When Bill made his first official appearance at the Rochester lab, a small group of senior management was called together to meet with him. I was the most junior of the group. Naturally, Bill spent a good part of the time shooting the shit with me – to the obvious chagrin of everybody else there, who, of course, had not been aware that Bill and I had plucked the gowans fine. (Bill left IBM shortly thereafter to become CEO of a small aircraft company but did not stay in the job too long.)
I made a lot of good friends in IBM and continue in contact with a number. My first and one of my best friends in IBM was JackH. We were cube mates for almost four years (three in Endicott, seven months in Poughkeepsie), played a LOT of jotto, and worked closely together for another 18 years, though in different locations (among other instances, he and I were the chief, actually only, designers of DOS II, designed in a motel room in Chapel Hill, while he was working out of Endicott, I out of RTP). However, I have not had any contact with him since I left IBM (I have exchanged email with his ex).
Two of the people I worked with in Glendale were the brothers CharlieS and DonS. I worked closely with Charlie, who was later to be my manager for a while in RTP (to the best of my count, I had 37 card-holding managers in the 27 years I was in “The Business” and a half-dozen or so more from whom at one time or another I “took direction”), less closely with Don. (Don after his retirement wrote quite a good memoir, “CHESSDON”. I recommend.)
I have a good story about Charlie, though it is really a story about how I learned about CEs. One Friday evening about 8:00, I was alone in the Programming Center machine room testing the new “overlap/interrupt” code I had added to the 1410 Tape Autocoder. Everything was running just fine, and I was testing away when Charlie Schultz came in. He asked me what I was doing. I told him. He then asked me if I had tested the console interrupt button. I said “no” but that the code was in the system. So Charlie pressed the big red interrupt button on the 1410 console. Every red light on the machine came on (i.e. BIG hardware problem). Charlie said “oops”, looked sheepish, and left the machine room (and the lab).
I called the resident CE to come fix it. He showed up in short order, and I explained the problem to him. As was the custom then, he was dressed in coat, white shirt, and tie. He took off his coat and tie, rolled up his shirtsleeves and went to work. I messed about doing this and that, including checking on him. Finally, he said it was fixed. I started my test up again, and while I was doing this, he rolled his sleeves down, buttoned them, and put on his tie and coat. He asked me how things were going, and I said, “Just fine.” He then asked me what had caused the problem. I explained. He went over and pressed the big red button. Every red light on the machine went on. He did not change expression, took off his coat and tie, and rolled up his shirtsleeves. By this time it was close to midnight. So, I said, “I am going home.” I packed up my gear and left. When I came in the next morning, the 1410 was running fine – and, you could press the big red button without turning on any lights.
Two of the more interesting people in the Glendale Lab Programming Center during the three years I was there were OttoR and HelmutW. Otto was an Austrian on temporary assignment from IBM Austria to prepare for the 1964 Winter Olympics. Helmut was a German on some kind of long-term assignment from the IBM Germany lab in Boeblingen. I knew and liked both well. Otto took direction from me while at Glendale. His work was exemplary, and the Winter Olympic installation was an outstanding success. Though I never saw him again, I heard that he spent most his IBM career after the Olympics at the IBM Vienna Scientific Center. Helmut and I did not work too closely, but we were family friends and maintained contact after his return to Germany until retirement (he was the lifetime IBM handler for Klaus Wirth (Niklaus Wirth - Wikipedia, the free encyclopedia) – as I frequently worked with Klaus, I remained in contact with Helmut).
Otto and Helmut were a contrast. Otto was a loner and not friendly, though a delight to work with. He was from a lower class background, and I think never married. His only interest was his work, and he was a perfectionist – and he did just about as perfect a job as is humanly possible.
Helmut was almost the exact opposite. He was upper class and had many interests including five stair-step, blue-eyed, flaxen-haired children. He was respected in the business; however, it was never clear to me exactly what he did other than handle Klaus.
[NB: I did not know Klaus at this time but came to know him and his family quite well during my time in Zurich. Fred Brooks introduced Klaus to me in Chapel Hill as “the best man in the business”, though I am sure Fred thought Klaus was the second best (no prizes for who Fred thought was really the best). While I was in Zurich, Klaus prevailed on me to give a series of talks at the ETH where he was the Chair of the Computer Science Department and got me in deep shit with IBM Switzerland – but that is another story. In the middle 1980s, I attended the ACM Awards Banquet where Klaus was presented with the Turing Award.]
Most of us in the Glendale Programming Center shared two-man cubes; however, a few had one-man cubes. Helmut had one as did Bill (Bull) S who had the one adjoining Helmut’s. One lunchtime, JackH and I were in Bill’s chatting about this and that when there was a big “crash” from Helmut’s cubicle. Both Jack and I jumped and looked alarmed. Bill said, “Don’t worry. That’s just Helmut falling over backwards in his chair. He does that all the time during his after-luncheon nap.”
When beginning a long term occupational calling, the first two years on the job are of major importance, no matter how much education and/or training has preceded it. I think my first two years in Endicott perhaps more important than that of most people’s first two years. This was probably true for all programmers in the early years of computers. It may still be true.
I think the people that influenced me most in those two years were JohnB, JimO, JackH, and JimF, in descending order. JimF had the most influence on my career in IBM, but he had little influence on me directly, as he had no interest in developing his people, me or anybody else. I will discuss this later.
During my career in IBM, I worked with at least 300, probably considerably more, programmers closely enough to have a good feel for their ability. The three best were JohnB, GlennH, and PhilS, though as previously mentioned, Glenn was not inventive. I started work with John in 1Q61. At that time, he was working out of Time-Life and came to Endicott to do the 1410/1305 Disk IOCS. Since it had to be integrated into the Card and Tape IOCS that JackH and I were doing, the three of us worked quite closely. Also, since Jack and I took it on ourselves to implement the macro-generation of the 1305 IOCS (we thought it easier than adding a third member to the team) as well as assisting John in integration and debug, Jack and I had to become completely knowledgeable of the code.
This provided an outstanding education in how to handle multiple interacting time-dependent devices (the 1305 could have up to three independent access arms) as well as how to write code. I later used most of what I had learned from John’s 1305 code in implementing the 1448 IOCS. Working with John taught me not only about handling asynchronous processes and coding, it also taught me humility. I used all in my subsequent career.
I have a number of interesting, and moderately amusing, stories about John and SOAP, John and RPG, John and JimmyA, John and this and that. He played in the same ballpark as John Cocke (John Cocke - Wikipedia, the free encyclopedia) and eventually ended up in the Research Division - he was there long after I left “The Business” but is now retired.
Dr. JimO was my manager for two and one-half years at Glendale and really was my first manager in IBM. I worked first for EarlW and next for JimF (JimF continued in my chain of command off and on for ten years) before Dr. Jim came in to Glendale, but I saw very little of them. Dr. Jim came from DP in Louisiana where he had been the lead SE on the U. S. Department of Agriculture account. He came into the Center as a first-line manager reporting to JimF. He and F did not get along at all, and shortly after I left Endicott, Dr. Jim left the Programming Center and went into the lab ad tech group.
Dr. Jim was probably, next to FrankC, the individual in IBM for whom I had the most respect. He was a people manager and a teacher. He took his doctorate in biophysics at Tulane but became interested in computers while using them in his thesis work and went to work for IBM when he did not get a tenure track position. I learned a lot from him, though not too much about programming – JohnB was there firstest with the mostest.
Initially, Dr. Jim did not have too much hope for me in the craft. My lady instructor at SBC had told me that I had no future as a programmer because I could not spell. Dr. Jim decided that I had no future because of my habit of putting my card deck into the card read hopper either upside down or back to front or, generally, both (we were testing on a 704 simulating a 1410 which read binary and didn’t care if the deck was upside down and backwards). But with JohnB’s example in front of me, I soon became the better craftsman, though Dr. Jim was pretty good -- and I never did quite get the hang of which way the card deck went in.
There are two funny stories associated with the above. We were developing for the 1410, a BCD machine that did care about card deck orientation, but frequently used a 704 to test our code and the simulator code. The 704 was binary and could be programmed to handle a card deck in either orientation. I put an error message into the 1410 Tape Autocoder for the 704 simulator saying, “You fool, you have put your card deck in upside down and backwards -- again.” But they made me take it out before the 704/1410 Simulator shipped.
The second story concerns my charge code for the 704. Somebody gave me the wrong charge number at the start of January 1961. The first week in February, JackH and I were sitting in our cubicle chatting about this and that, probably playing jotto, when Bobby Dean came in. At that time, he was the manager of a 704 programming group. He asked me what my charge number was. I told him. He said, “That it is my department charge number, and you have used all my department’s machine time for the year.”
In the early years of programming, and still to some extent today, people came into programming either as their first job or from some other job at which they had failed or where they had discovered that programming was more fun. Most of us in my years in Glendale often talked about how odd it was to be paid to have fun. In addition, programming had no tradition then. It still does not have much. The result was that nobody knew how to manage programming. During my time, IBM programming was mismanaged most of the time. Most other callings in IBM were well managed: sales, engineering, manufacturing. The best managed were Field Engineering and Finance.
EarlW and JimF were bad managers. Earl was just dumb. He was tall, large-boned, a good dresser, a second-generation IBMer, and very, very careful. So he went far. As previously mentioned, Paul Carroll in his book Big Blues, while making fun of him, gives him a major share of the blame for what went wrong in IBM. Certainly it was the EarlW type that caused the problem – as they do in all aging organizations.
JimF was not dumb – he is generally credited with inventing the IOCS concept – and left “The Business” before things got bad. He was interesting, energetic, and fun. However, he was a complete egoist and did not give a rat’s ass about anybody other than himself. Since he was a major player, he can be assigned much of the blame for the slow development of an effective management structure in IBM Programming. However, he was quite talented at getting products out, and I enjoyed most of my association with him.
There are lots of JimF stories. The funniest is probably about him and TedB. The only story I will tell here is the one CharlieS tells. Late one evening, NorbertS, leader of the sort group in the Glendale Programming Center, was working with most of the group in the machine room on a bug. Jim called to ask how things were going. Norbert said not too well. Jim asked what TomS thought. Norbert said that Tom was not there. Jim asked why in hell not. Norbert said, “But, Jim, it’s Saturday night.” And Jim proceeded to chew Norbert out because Tom was not there.
L'Envoi
I was asked several times in IBM what I wanted in a job. My answer was, “Interesting work, good people to work with, and lots of money.” IBM provided the first two, apart from the programming management problem discussed above, and enough of the last to keep me happy. I had a good life in IBM for 24 years. The last three sucked. Much of the credit for the first 24 is owed to my initial assignment to Endicott.
Rudyard Kipling. b. 1865
866. L'Envoi
THERE 's a whisper down the field where the year has shot her yield
And the ricks stand gray to the sun,
Singing:—'Over then, come over, for the bee has quit the clover
And your English summer 's done.'
You have heard the beat of the off-shore wind 5
And the thresh of the deep-sea rain;
You have heard the song—how long! how long!
Pull out on the trail again!
Ha' done with the Tents of Shem, dear lass,
We've seen the seasons through, 10
And it 's time to turn on the old trail, our own trail, the out trail,
Pull out, pull out, on the Long Trail—the trail that is always new.
It 's North you may run to the rime-ring'd sun,
Or South to the blind Horn's hate;
Or East all the way into Mississippi Bay, 15
Or West to the Golden Gate;
Where the blindest bluffs hold good, dear lass,
And the wildest tales are true,
And the men bulk big on the old trail, our own trail, the out trail,
And life runs large on the Long Trail—the trail that is always new. 20
The days are sick and cold, and the skies are gray and old,
And the twice-breathed airs blow damp;
And I'd sell my tired soul for the bucking beam-sea roll
Of a black Bilbao tramp;
With her load-line over her hatch, dear lass, 25
And a drunken Dago crew,
And her nose held down on the old trail, our own trail, the out trail,
From Cadiz Bar on the Long Trail—the trail that is always new.
There be triple ways to take, of the eagle or the snake,
Or the way of a man with a maid; 30
But the sweetest way to me is a ship's upon the sea
In the heel of the North-East Trade.
Can you hear the crash on her bows, dear lass,
And the drum of the racing screw,
As she ships it green on the old trail, our own trail, the out trail, 35
As she lifts and 'scends on the Long Trail—the trail that is always new?
See the shaking funnels roar, with the Peter at the fore,
And the fenders grind and heave,
And the derricks clack and grate, as the tackle hooks the crate,
And the fall-rope whines through the sheave; 40
It 's 'Gang-plank up and in,' dear lass,
It 's 'Hawsers warp her through!'
And it 's 'All clear aft' on the old trail, our own trail, the out trail,
We're backing down on the Long Trail—the trail that is always new.
O the mutter overside, when the port-fog holds us tied, 45
And the sirens hoot their dread!
When foot by foot we creep o'er the hueless viewless deep
To the sob of the questing lead!
It 's down by the Lower Hope, dear lass,
With the Gunfleet Sands in view, 50
Till the Mouse swings green on the old trail, our own trail, the out trail,
And the Gull Light lifts on the Long Trail—the trail that is always new.
O the blazing tropic night, when the wake 's a welt of light
That holds the hot sky tame,
And the steady fore-foot snores through the planet-powder'd floors 55
Where the scared whale flukes in flame!
Her plates are scarr'd by the sun, dear lass,
And her ropes are taut with the dew,
For we're booming down on the old trail, our own trail, the out trail,
We're sagging south on the Long Trail—the trail that is always new. 60
Then home, get her home, where the drunken rollers comb,
And the shouting seas drive by,
And the engines stamp and ring, and the wet bows reel and swing,
And the Southern Cross rides high!
Yes, the old lost stars wheel back, dear lass, 65
That blaze in the velvet blue.
They're all old friends on the old trail, our own trail, the out trail,
They're God's own guides on the Long Trail—the trail that is always new.
Fly forward, O my heart, from the Foreland to the Start—
We're steaming all too slow, 70
And it 's twenty thousand mile to our little lazy isle
Where the trumpet-orchids blow!
You have heard the call of the off-shore wind
And the voice of the deep-sea rain;
You have heard the song—how long! how long! 75
Pull out on the trail again!
The Lord knows what we may find, dear lass,
And the deuce knows what we may do—
But we're back once more on the old trail, our own trail, the out trail,
We're down, hull down on the Long Trail—the trail that is always new.
