The ‘Net: Indistinguishable From Magic?

The great science fiction author and visionary Arthur C. Clarke once wrote, “Any sufficiently advanced technology is indistinguishable from magic.” He was thinking, of course, of the clash of civilizations at different stages of development. But, in the modern age, sadly, much of our everyday technology appears magical to the end user.

The Unix Curmudgeon has been a long-time subscriber to the increasingly popular philosophy of “if you can’t open it, you don’t own it.” In this age of throw-away commodities and instant obsolescence, manufacturers don’t even bother to put those “No user-serviceable parts inside” or “Warranty void if opened” stickers on our electronics and other gadgets. Broken gadgets are not repaired, but replaced or upgraded. Almost no one thinks about how things actually work, and might have difficulty finding out, as many of our gadgets are sealed not to protect the user, but to protect the makers’ trade secrets.

The World Wide Web gets the same treatment, for the most part. But, if we have a web site, we expect “user-serviceable parts.” Only, we expect making changes to content to be simple and seamless. What most users don’t realize is that there are many layers to the web, some of which appear simple and some of which are hidden altogether. The layers and roles in the care and feeding of the web are as follows. Some roles may be filled by the same person, and some may require teams of skilled workers and managers, depending on the size and scale of the web and its software.

  • Systems programmer: responsible for creating software like web servers, databases, and programming languages that form the basis for the web and reside on the web servers.   Systems programmers write code in C++, C, or other compiled languages.
  • Sytems Administrator/Network Administrator: responsible for staging the software and data on a server, setting permissions and security on the system and network, and managing the operation of the server.
  • Web Programmer: responsible for writing server-side and client-side software to implement the web design, and/or content management systems and web authoring software. Web programmers commonly write code directly for the web in scripting languages such as PHP, Perl, Ruby, Python, and Javascript; database languages and interfaces such as SQL; and also have a working knowledge of HTML and Cascading Style Sheets (CSS).
  • Web Designer: responsible for designing the page layout, navigation scheme, and user interactions with the web, using text editors, HTML, CSS, and design tools like Microsoft Sharepoint Designer, Microsoft Expression Web, Adobe Dreamweaver, or any number of free or less-well-known web authoring systems created by systems programmers or web programmers.
  • Graphics Designer: works with the web designer to create static and dynamic graphics for web content and layout. Works with Photoshop and Flash or other graphics editing tools.
  • Web Editor: responsible for data entry and minor updates to the content or structure. May work with a content-management system such as WordPress, Joomla, SharePoint, or custom content management code built into a site, or use a web authoring tool to maintain a design created by someone else.
  • Content Provider: writes text copy and/or creates visual content (photos or drawings) to be inserted into web sites, either as static files for download (such as PDF), or data for specific pages or sections. Usually works with content management systems or word processors.

Depending on the division of labor and combining of roles, persons assigned to a specific role may have complete control of the server, control of the web server software configuration, permission to upload or edit files directly in the web directory, login access to restricted content management interfaces, or no access at all. In the latter case, content is simply submitted to a role with the required access, via email or file exchange.

So, when someone says, “Can you change this word on this page?” the answer may vary, depending on the role of the person being asked, and the design of the web. Sometimes the word may be hard-coded in the web and not accessible to the web editor or content provider. Sometimes, the content provider may have supplied a binary copy such as a PDF or a graphic with embedded text, for which only the content provider has the original source. Changing the color of a particular item may involve creating new style definitions. Adding a slight change to a paragraph may require restructuring a database design and updating hundreds of records to keep the presentation consistent.

As the Unix Curmudgeon is fond of saying, “Software is not rocket science: rocket science follows well-established physical principles and engineering disciplines. Software is always someone else’s idea of a good time.” The corollary to this is the saying, “Software doesn’t break–it comes that way.” Simple web pages are not simple, but merely the visible portion of a highly complex and intricate technological system with many rules and countless possibilities for variation in design. The care and keeping of them is not magic, but the outcome of careful design and subject to infinitely variable rules and conditions set by the people who run the systems.