Human vs. Machine
July 9, by JULIUS SIRAIT
Garbage collector (machine) frees Programmer (human) from the worry of memory management.
Python (machine) makes code indentation as language requirement, so programmer (human) doesn’t need to maintain a discipline to make a good indentation style as specified in his/her code convention.
Now let’s see Java. Java is a strong typing language. Consider the following code.
class Strong { public static void strong(int i) { String s = i; }}
If you compile that code, you will get compile time error. We let the compiler (machine) check the type for us.
In Ruby with it’s famous duck typing, it is not impossible to ship your software, but throw exception in the runtime because of type error which you never found during development.
And don’t you think convention vs. configuration is also about human vs. machine?
I believe that machine automation is not always a good idea.
Back in the day when I was in college, I was using microsoft word a lot. It occurred to me that sometimes it was too smart. It drove me nuts. Feature that was meant to be useful, turned out to be annoying. As another example, do you still remember people were crying because gmail was lacking delete button?
This brings us to the question: What’s the basis in deciding what should be handled by machine and what should be left to human?