Semantics refers to aspects of meaning, as expressed in language or other systems of signs.
I have been thinking of late about what language to use for some of the problems I have in programming (communicating with computers) and it seems that the reason I will pick one language over another is that it enhances to some extent my ability to communicate with the computer or maybe a robot.
In reading and listening to some Google Tech Talks, I have revisited some of the design pattern arguments even listened to a talk on Common LISP witch spoke of various implementations of multiple dispatch and how LISP had this built in, whereas other less adept languages had to resort to design patterns (i.e. Visitor Pattern) to make up for this.
It made me also think about why computer science and computer languages have not really advanced in the past 50 years. I mean we are still using LISP and refering to a language that was designed in the 1950's. I think it is really more about that our ability to communicate has not evolved much, we are still stuck in certain paradymes of thought which lead to ways of thinking about programming and communicating with our computers. These paradymes are stuck in ASCII text and QWERTY keyboards.
One idea could be to combine a Dasher interface to programming, but this I think stil limits us into thinking in text, though the input for a programming language could be much faster since the word probabilties are less. Still I think our brains limit our software.
We communicate with people everyday, so we are hardwired for this sort of communication, message in, process, message out. However this is very efficient considering the phrase:
Do a google search for the keyword "code generation" then give me print outs of the screenshots for each of those sites, then email a word document of the same.
Now this is a lot of information contained in such a short phrase. A person could do this but a program would need to know how to: google search, take screen shots, print, create a word document, then email it. Although I could write this in some computer code, I would need to tell it exactly how to do each of these things which is a lot of code…