An excerpt on software programming from “The Mythical Man Month” by Frederick Brooks (published in 1975):
Why is programming fun? What delights may its practitioner expect as his reward? First is the sheer joy of making things. As the child delights in his mud pie, so the adult enjoys building things, especially things of his own design. I think this delight must be an image of God’s delight in making things, a delight shown in the distinctiveness and newness of each leaf and each snowflake.
Second is the measure of making things that are useful to other people. Deep within, we want others to use our work and to find it useful. In this respect, the programming system is not essentially different from the child’s first clay pencil holder “for Daddy’s office”.
Third is the fascination of fashioning complex puzzle-like objects of interlocking movements and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning.
Fourth is the joy of always learning, which springs from the non-repeating nature of the task. In one way or another the problem is ever new, and its solver learns something: some practical, sometimes theoretical, and sometimes both.
Sean Palmer on “The Semantic Web“:
The Semantic Web is a mesh of information linked up in such a way as to be easily processable by machines, on a global scale. You can think of it as being an efficient way of representing data on the World Wide Web, or as a globally linked database.
The Semantic Web was thought up by Tim Berners-Lee, inventor of the WWW, URIs, HTTP, and HTML. What’s the rationale for such a system? Data that is generally hidden away in HTML files is often useful in some contexts, but not in others. The problem with the majority of data on the Web that is in this form at the moment is that it is difficult to use on a large scale, because there is no global system for publishing data in such a way as it can be easily processed by anyone. For example, just think of information about local sports events, weather information, plane times, Major League Baseball statistics, and television guides… all of this information is presented by numerous sites, but all in HTML. The problem with that is that, is some contexts, it is difficult to use this data in the ways that one might want to do so.
So the Semantic Web can be seen as a huge engineering solution… but it is more than that. We will find that as it becomes easier to publish data in a repurposable form, so more people will want to publish data, and there will be a knock-on or domino effect. We may find that a large number of Semantic Web applications can be used for a variety of different tasks, increasing the modularity of applications on the Web.
The Economist on Programming Languages in its recent Technology Quarterly in an article entitled, “A lingua franca for the Internet“:
On the horizon, programming languages face the daunting challenge of helping to turn the Internet into a more intelligent place. A year ago, Tim Berners-Lee, the inventor of the World Wide Web, published a manifesto for a semantic web. His vision is that computers should be able to recognise the meaning of information on the web by its context, and provide users with much more relevant information than web browsers now do.
There are many ways that this could happen. Certainly, some of the semantic information can lie in the data itself. XML helps to do this. And a standard known as RDF (resource description framework) defines how to encode some semantic meaning into XML-for instance, whether one object (say, a person) has a relationship (eg, owns) with another (say, a car). Helpful as RDF and related standards will be in building a web endowed with more meaning, some kind of artificial intelligence programs will be needed to understand context as humans do.
Although such programs can no doubt be constructed in Java or C#, these languages were not designed for such purposes. Herein lies an opportunity for languages designed with artificial intelligence specifically in mind. Such languages have existed for decades. The so-called functional language Lisp computes with symbolic expressions rather than numbers; the logical language Prolog works by making logical statements about objects.
Even though Lisp and Prolog may not be the shape of things to come, a programming language that incorporates concepts from artificial intelligence will no doubt appear when the time is ripe-and leave the likes of Java and C# by the wayside.