Alan j Perlis, the first Turing award winner for his work in the area of advanced programming techniques.
He gave “Epigrams on programming” in 1982. These epigrams are basically one line description of his experience that he learned over the year of his work.
Some famous epigrams are :
Syntactic sugar causes cancer of the semicolon
Syntactic sugar are constructs added to a language, to make it easier for programmers to read and write program code. But looking as a programmer it makes a language hard to learn.
For ex – using a[i] instead of *(a+i) in c language is a syntactic sugar because it leads to confusion in programmer who doesn’t know what is really happening behind the scene. Actually it hides away a lot of the details of a program. When learning a new program knowing the basic is crucial.
This may be the reason why many language borrow the syntax from popular existing language. Because introducing a new syntactic sugar will lead to a new confusion.
Like c++ is syntactic sugar on C with OOP.
Everything should be built top-down, except the first time.
Consider an example, where in order to compute A , B should be computed first. Now if we follow top-down approach, A code will be written first with function call to B (not-yet-existing). But if we want to test during the whole development, then we would not able to test A , as B is not existing yet.
But if we do this other way around, means write B first, complete with unit test, after that code A and completes it’s test. If B doesn’t produce the right answer, A won’t either (and thus not pass its Unit test), even though A might be correct.
This epigram is fairly attack on Top-down programming. As it is impossible to think purely top-down.
If a listener nods his head when you’re explaining your program, wake him up.
Computer Programming is complex and hard! When you write a computer program, you have to get both the syntax and the semantics absolutely, 100% correct. It’s like writing a large novel in which there can be no spelling errors, no grammar errors. Even single error can take days to get debugged. May compiler shows error in line 10, but actual error may be in some other line.
So making someone understand your program by explaining is not going to help. Even the person keep nodding his head to create an illusion that he is understanding everything, actually he is no more concerned about it and may just fall asleep.
So If a listener nods his head when you’re explaining your program, wake him up.