Towards post-modern programming

last updated: Jun 16, 2024

https://plg.uwaterloo.ca/~migod/846/papers/pomo-oopsla02.pdf

via CF Bolz-Tereick, in a thread about Lu Wilson's Obsession (also worth reading)

The performance of programs was once the noblest function of computer science, and computer science was indispensable to great programs. Today, programming and computer science exist in complacent isolation, and can only be rescued by the conscious co-operation and collaboration of all programmers...

By the grace of Heaven and in rare moments of inspiration which transcend the will, computer science may unconsciously blossom from the labour of the hand, but a base in programming is essential to every computer scientist. It is there that the original source of creativity lies...

Our basic problem is simply the success of modern computer science. History has shown that this truth is very hard to believe. Apparently we are trained to expect a “software crisis”, and to ascribe to software failures all the ills of society: the collapse of the dot-com bubble, the bankruptcy of Enron, and the millennial end of the world.

This corrosive scepticism about the achievements of programming is unfounded. Few doom-laden prophesies have come to pass: the world did not end with fireworks over the Sydney harbour bridge, and few modern disasters are due to software...

Postmodern computer science proposes a range of different descriptions of the relationship between programmatic object and external object. For example, that this kind of relationship can be seen as semiotic: that is, the object in the program can be seen as a sign of the object in the world. Unlike abstractions, which can be reasoned about using deduction (from causes to effects), signs are effectively implications, and are modelled using abduction (reasoning from effects to causes)

(ed: I can't say I thoroughly understand what that means, but it seems worth chewing on!)

The user experience of the World Wide Web is extremely diverse: every web site has its own design, its own interaction style, its own personality, with no commonality other than the menu bar provided by an individual’s browser, one of many available, and customisable on a whim.

Compare this all with representations of a computational “infosphere” in popular science fiction — such as The Matrix or Neuromancer. These are typically modern in character, working in a complex but coherent way, and presenting a uniform interface: the “Matrix” presents a realistic single graphical presentation common to all users. Ironically, the postmodern Internet is more real than these fantasies; and there is no one viewpoint on the Internet, and there may be no commonality between two web sites even if hosted on the same server and designed by the same people...

Rather than working top down from a theory towards practice, postmodern programming theories are built up, following practice. Moreover, theory follows practice on a case-by-case basis — “the world is all that is the case”

The paper goes on to talk about how Perl is an explicitly post-modern language, which reminds me that my tastes in theory are post-modern, but that I strongly prefer the modern in my programming languages.

Give me Go (the ultimate example of the modern fighting back against the post-modern!) or C over Perl or C++.

Messy is Good

(I won't reproduce the paper, but make sure you read at least this far. lovely)

↑ up