by Cornelis Robat
Software is not something you can touch. It is something abstract and untouchable. But you can create and write it according to certain rules and designs. Those rules make up the "syntax" of a computer language. When you are or have been a programmer you will have seen messages like: "SYNTAX ERROR" or "ILLEGAL ARGUMENT" etcetera appearing on your screen. However most programmers are coding in environments that give less cryptic messages. The contemporary coding interfaces (e.g. RAD environment) show the context and mostly a possible solution to the problem. Interfaces like this are becoming more and more adapted to the (coding) demands of today's programmers. They, the programmers, want the programming environment to give examples of code, snippets of solutions and other hint which they can copy and paste into their own code. They want suggestions about shortcuts and indications of possible conflicts, or links, calls, with other modules, classes or objects. And they are served! Alas programming does not become much easier because the complexity of problems and infrastructure increases rapidly.
Talking about syntaxis.
Languages that people are speaking and using like Dutch, English, Chinese, in fact any language we use is bound to a large number of rules, what is commonly called a syntax. And strangely enough each language has its own vocabulary:
Some have more words and or symbols than the other, but it all boils down to one thing: Communication. Also some words in different languages cannot be translated or only poorly. Like for the Dutch word "gezellig" there is no equivalent in German and only a poor one in English: "coziness" Lucky for us since English is the business language for the time being many words in informatics are the same in different languages.
Also lucky for us computer languages have two big advantages:
A limited vocabulary - less than 300 words(1) or combinations - what makes it easy to learn
And an easy to understand syntax, that from its nature will be more rigidly imposed than a normal human to human conversation.
In a human language you can easily guess the meaning of what is said by someone, though syntactically wrong:
"Go skating you I?"
(possibly meaning: would you like to go skating with me)
A computer will not understand this, at least for the time being. Because for the computer the meaning of the words and the sequence of them do not allow to have any degree of freedom in expression. A computer can, again for the time being, not guess the meaning of your line of code like the one above. Guessing would mean in contemporary programming to create chaos and have the computer reacting erratically. Just like telling an Italian in Chinese to eat noodles and the Italian will start to pour out coffee. (presumed that the Italian does not understand Chinese) The user will however expect to get some data on his banking account but the computer will order a bag of coffee, or just simply crash.
So in order to communicate with computers we have to obey the syntax rules and use the right vocabulary (commands).
Programmers are the ones that create programs.
It must be said however that you can not become a good programmer by just learning
the words and the syntaxis. The profession of programmer has grown through the
years to a real craft, or some say a real art; Zen and the Art of Programming.
Programming is something that has to be learned by experience, based on a certain
level of theoretical knowledge.
Not so many years ago one could say: "oh any one having the right wits can become a programmer". And in a way that was true. But now that the demands of analyzing the rapidly growing complexity of problems has become part of the job you can not pluck a student at random from a group and set him of her behind a computer. It takes years to become a good programmer now, and one needs to have a thorough understanding of its trade. The trend is that programmers are specializing in the numerous fields of science, trade, and industry and stick to that in order to become an effective programmer.
To give you an example of what I mean is that in the early nineties (20th cent.) one could do a game all by one's self. A simple Pac Man or Space invaders fascinated players around the world, even caused games addicts. But the games became more complex multi player and multi leveled. The players demands were ever increasing and simple beeps and dongs and other short bliebs were no longer accepted. The displays should rapidly change scenes, being full color and real time games.
Games should get some elements of being addictive without disrupting some ones live. A few other arguments to get a game accepted were and still are:
Now you need a team of specialized programmers, story tellers (levels, story lines), artists, psychologists, ergonomists etc. etc. to make a game that is tantalizing enough for consumers to go and buy it. Also the process of creation takes much longer, play scripts are not as simple as "pong" any more but must have a good story line, good sound and visual effects and make the player come back to play some more. And there is no guarantee that next game or generation will sell even better.
So having said this you will understand that just creating a game by one programmer is not possible anymore (exceptions are there off course). You need a team of craftsmen to make a successful game.
|Last Updated on April 8, 2003||For suggestions please mail the editors|
Footnotes & References
|1||One can have a fair conversation knowing about 3.500 words in any human language, and have a practical knowledge of about 10% of the language syntax. To compare: most scientists have a vocabulary of about 10 to 15.000 words, and linguists mostly about 25.000. In Chinese there are about 300.000 signs but when you know 1500 you can find your way around; only a few people know over 150.000 characters.|
La 8 April, 2003 -->