Programming isn't always a personal venture, but perhaps it should be. A dedicated programmer should view programming as a home. And if we choose this attitude, we're better of if we would connect to already existing traditions and ask the Elders, but also ourselves, on what we need och doesn't need in our home.
In literature about tradition as such, there is always a core, even though different thinkers and researchers have differences in how to interpret this core. A central part of any tradition is sharing knowledge but also under what forms we share. Knowledge, sharing it and how it is shared is an important aspect of programming.
If words do have meaning, one can't claim to respect knowledge while at the same time sharing knowledge under circumstances under which knowledge is not respected. Just as fake conservatives enjoy speaking about tradition, some will always speak about the value of knowledge as important but act the opposite way. But I would guess this seldom occurs in IT.
Some traditions are bad, others are good. This is business as usual in the history of mankind. But we should always aim for preserving the good ones. Sharing knowledge is a great tradition and in the region in which I am active, we are fortunate to have lots of companies which do this.
Why should we study old computer programming languages? The best answer is passion. I have a long term project: to understand a certain language of the Lisp family, Scheme. Currently, I have huge problems with parentheses, but it is so fascinating that I can't help myself. I need to understand it.
But there are also other reasons. The first is that we, from time to time, should question the notion of progress in the world of programming. What we do today sometimes echo the Old Days. This is true of functional programming, as many developers point out.
At a lecture made public by MIT Open University, Gerald Sussman states, with great rhetorical power, that Computer Science concerns neither computers nor science. This thought is also present in the Structure and Interpretation of Computer Programs.
This sentence pierced my notions about programming, what little I thought I knew.
Being a junior developer with no education in Computer Science (although some very basic education in programming), and having a true passion for programming, I love reading about these things.
A view great developers seem to share is that Theory matters. And it so much fun when you finally grasp a new concept. At the same time, I believe that anyone who studies Computer Science, algorithms, data structures and so on because of the instrumental benefits of theoretical models will end up unhappy. You need passion. Something true also of i.e. reading fiction; only do it if you love reading. And if you don't, find ways to unlock the resistance and you'll gain access to a treasure spanning thousands of years.
The main point of the first chapter of The Structure and Interpretation of Computer Programs, is that Computer Science is about processes, and how to best handle processes. Not just processes related to making applications, but in general.
The study of processes is also the original definition of Computer Science, as I understand it. One of the key figures behind Xerox, inventor and computer scientist Alan Kay, still keeps making this point. It's about processes.
Alan Kay, being a passionate person (a true intellectual), reads widely, not only about topics concerning programming. This made him take an interest in children and how they learn. How do we best enable children to understand complicated processes? This is an important topic, and it's not only about children as Kay points out.
The main point can be referred in different ways, but the key is a milieu where people feel safe, are able to play in a broad sense and are encouraged to be passionate by the use of encouragement and positive feedback. According to Kay such an environment would make us perform at our best while working on any project.
The model Alan Kay proposes is important when applied to knowledge-sharing. It's about the future of programming, nothing less. Bret Victor picked up on this, and has made several marvelous projects. If you haven't watched his talks, YouTube him. Together with some other people, he together with his colleges (adults as well as children) are making some very interesting stuff in a project named Dynamicland.
Most likely inspired by the work of Alan Kay among others (true for at least Victor), they create means to think differently about software. The whole purpose is to produce multiplayer situations, interact across domains and let playfulness govern the way we work. Something near the what the historian Johan Huizinga once stated, I would say.
Alan Kay also has another point. He criticizes the way we think about programming. Why is it that we programmers are so bad at processes? Isn't our subject? Other crafts surely make use of sophisticated applications to illuminate the process involved in producing new products. I often feel envy when one of my best friends, an architect, tell me about the tools he uses to aid him in the process of developing.
I believe that programming can be connected to the German notion of Bildung. Programming is about the materialization of ideas. But this means also provides tools for self-improvement, for environments that take the best from our tradition, inspire us and make us happy as individuals. Make us see Light, as the metaphor from the Enlightenment goes.
Let us pick up the torch and do away with any bad moral standards – in our selves as in the culture of which we’re a part. Let's keep focusing on the Light. I will do my best to keep my passion. Because I truly believe that curiosity and passion are the best antidotes to Darkness.
Passion can overcome great hinders. Curiosity makes us tick. It makes us human.