Wednesday, September 2, 2009

The Challenger Deep

I spent monday coursing over bright shining oceans. They are the Seas of Source, and they are deep.

Having sounded the depths the day before, today I was ready to jump ship to find out what lurks beneath the waves. What manner of creatures might live in the baby-blue upper layers, where the water is warm and the light is plentiful? What lies beneath? How deep is the darkness below? What survives the cold and the black, the thousand atmospheres of pressure, the isolation, the test of time? Does it dream? Fthagn...


As I entered these vast waters, I had an idea of their true extent. Twenty thousand source files in four different languages, with currents and riptides streaming to and from other libraries, frameworks, and runtime environments at every turn. But without tasting the salty drops of Source for myself and personally sampling its silty bottoms, how could I code the bays and inlets that are to come? How can I sculpt new seas, where salty spray is blown over steel decks not yet conceived?


Into the source I dove!


The upper layer - the world of light and constant motion. The layer between the unfathomable depths of the sea, and the life-giving air on the surface, where users live their lives, sleep in their comfortable beds with their wives, eat breakfast on cold winter mornings, and - when the winds are favorable - design ships. A user interface written in Eagle; flexible, powerful, it soars above the waves with sharp eyes and claws honed to penetrate the surface and trigger the functions beneath.


In the shadowy layers beneath, silvery objects flit about. A C++ thermocline layer forms a public interface between the utter darkness of the deep sea and the friendly code above.


Below that is a body of C. Strange structures of impenetrable mystery, bioluminescent jellyfish, surprising unions of different creatures squeezing out a living by exploiting every possible efficiency to survive in these cold, dark, nutrient-poor waters. The creatures are small as plankton - small creatures for small footprints.

The sea floor is ancient beyond mortal comprehension - a thin layer of Fortran sediments from times long gone, in the process of subduction. The silty bottom slides ever so slowly into the crust and joins the mantle, forever removed from the code base. Centuries hence, only the memory will remain - perhaps traces of variable naming conventions may boil up from volcanic vents into the C region above, but the modules and the code will exist no more. Currently, however, Fortran is the sand and the dust, the layers of clay and stone, the eyeless crabs and bizarre invertebrates seen only at these terrible depths, which separates and forms the interaction between two vastly different landscapes - the ocean of source-code above, and the world below: a world of mathematics and abstractions, databases, file systems, a globe of molten metal and amorphous rock. Our world. The same world which we mine, from which we extract the iron and minerals that make up our steel ships, which we drill for oil, which we travel by ship and by train, for business, pleasure, and exploration. Our world.

From this perspective, this expanse of code – the Sea of Source – is a multi-tiered complex that connects the users on the sunny surface with the resources underlying ship design and construction down on the bottom of the abyss. The Sea is deep and vast, but penetrable; ultimately, its changing shorelines are finite and the deepest crevasse is measurable. Adding to it is certainly challenging, but not an impossible dream. Fthagn...