This is another good thread!
I have yet to see an adequate description of the term 'bloat' and wonder if, in reality, it is one of those semi-abusive terms we throw at software developers when something doesn't work? Nero is often attacked with the word 'bloated' yet some people swear it is the best burning software ever.
The concept of 'perfect' is an interesting one too because you could argue that 'perfection' is a destination never reached. We can only approximate 'perfection'.
I guess we could say that the concept of a triangle is perfect - especially if we consider the tautological statement (true in itself) that a triangle has three sides. Well, yes - it must absolutely have three sides to be a triangle, and in having three sides can only 'be' a triangle. It can be nothing else, and therefore might be said to be 'perfect'? But in reality (outside of the concept) no true triangles can exist 'perfectly' because of the imperfection in construction and can possibly only meet the requirements of 'triangular'.
- I have had too much coffee today!!
app103 - your description of the development of the clock software is interesting because IF the goal was to meet YOUR requirements then the resulting clock failed to meet the 'perfection' of your design brief. Also, as the measurement of time itself is fundamentally flawed you could say the clock (as a mechanism to measure time) is fundamentally flawed and could never be perfect anyway. So your friend would need to say how exactly it is perfect. Without knowing his 'criteria' of perfection we cannot accept it as perfect in any way? Also, if the clock was perfect there would be no possibility of bugs ever existing - so in saying he would fix a bug isn't he accepting the possibility of the clock being less than perfect?
I don't think the visual design of software can ever be described as 'perfect' - only popular or unpopular. Lines of code can be 'perfect' if they subscribe to all the rules and are free of errors. But then again, code may be flawed within it own logic and therefore can never be perfect.
I think we can maybe talk about software that is 'good enough' for the task in hand in that it is useful for most people, most of the time. For someone it will NOT be good enough (that is almost certain), and can therefore not be described as perfect.
I think if we began to look for a 'perfect' definition of 'bloated' (the opposite of perfect software) we would find it impossible to agree. Likewise, maybe, the idea of 'perfect' software is purely conceptual, and not obtainable in real life.