dkrikun
Joined 9 years ago
Joined 9 years ago
1. You can send any message to any object. In case the object does not have a suitable handler, you will get an exception: <object> does not understand <message>. The whole thing is very dynamic.
2. There is no `static` BS like in c# or java. This is because each method has to be a method of an object. For each class there is a metaclass which is an object too, see: https://en.m.wikipedia.org/wiki/Metaclass#/media/File%3ASmal...
1. the author says "premature optmization", and it has the right context, however I prefer to use "premature abstraction" or even "speculative generalization".
2. YAGNI and DRY can be counter-principles because at times "you aint gonna need that level of abstraction/genericity".
3. Inadequately abstract and generic code hurts simplicity and readability.
In general, staying out of other people code is a bad idea. It promotes lack of transparency and agenda proliferation. This is because the owners of the code start being a "monopoly", can work less hard, provide exaggerated estimates etc. When people know that others can read there code, maybe hack on it, make something faster or simpler -- well they work harder and tend to be more transparent.
This