There are two ways to have a conversation with your computer: by discussing directly with the application or computer (Command Line Interface or CLI) or by discussing with a metaphor of the computer (Graphical User Interface or GUI). Both have advantages and disadvantages.
CLIs are very powerful and provide a real environment for discussion: the user writes their command or question and the computer answers to it. For example:
bash: clcs: command not found
[aka I don’t know this word]
Continue reading “Human Computer Interfaces”
June 30, 2009, Bucharest
Computer programming is a mean of communication. You communicate using a language with two very different types of interlocutors: computers (obviously) and people (not so obvious).
When talking to the computer, you have to be very careful at clarifying each nuance of your story. Computers don’t know how to interpret multiple means of the same word and phrase; you have to give them the exact words, arranged in the expected way, ordered exactly according to the rules. Whenever you don’t, bad things happen.
The people you communicate with are: whomever reads the code and the users of the application you are building.
The people reading your code are much like people who read literature: they like it or not and comment about it. The difference is that many times, they need to change your program, so a bad execution hits them much harder than a bad book that they read. On the other hand, when the reader becomes also the writer he has the chance to improve the story. The good writers will always leave the novel better than they found it, even if only slightly so.
Continue reading “Computer Programming”
I had the unique opportunity to spend about a week with J.B. Rainsberger (website and second website) and Corey Haines (website), in what proved my best learning experience of the last few years.
Continue reading “What I’ve learned from J.B. Rainsberger and Corey Haines”