On Tue, Aug 10, 2010 at 8:13 PM, Connor Lane Smith <[email protected]> wrote:
> On 10 August 2010 15:18, lordkrandel <[email protected]> wrote: > > As in all fields of art, the purpose goes beyond "effectiveness" > > and "semplicity" or "productivity". Sure a simple design can be > > more attractive and addictive, but they say, de gustibus non > > dispuntanda est. > > By "simple" I do not mean "smaller", but rather, "elegant". When > writing a program you must ensure that the code is both efficient > (science) and understandable (linguistics), but also that the surface > with which people interact is both easy (psychology) and beautiful > (art). "The cart is more than the sum of its parts." This is what I > mean by simplicity, and it is very much a matter of taste. So while I > agree that the purpose goes beyond effectiveness and productivity, I > think simplicity is the very essence of Art. > Although I've "known" C++ for some time, it was only today that I found out about the Boost Graph Library. Browsing through the code, I realized the potential and power of template programming that is being exercised by experts. The level of abstraction that is being employed in the code is simply awe inspiring. It made me want to go back to the books and read up on template metaprogramming all over again. What I saw today in C++ was something that didn't meet my eye for a long time. I've often imagined C++ to be a sledgehammer solution to satisfy the wants of people who draw class diagrams and write "software", while I was always content with "programming" in C. Sophistication isn't always necessary but simplicity can be limiting. The BGL is a great example (IMHO) at showing what one can achieve with the language features that are part of C++ today. Somtimes we necessarily have to carry the weight of a more cumbersome language to achieve just that much more. Excuse me for the rant. I hope I haven't left the impression of being a C++ fanboy. It's just a case in point. I am more convinced, today more than ever, that simplicity shouldn't be a goal but rather an outcome -- of the design decisions that go into the project. It's a useful thing to have but sometimes we can do better without it. Chillu
