sábado, 30 de abril de 2011

Avoid starting with OOP

Don't Distract New Programmers with OOP.

"The shift from procedural to OO brings with it a shift from thinking about problems and solutions to thinking about architecture... At some point, yes, you'll need to discuss how to create objects in Python, but resist for as long as you can."

Learning curve, abstraction

Our first hypothesis stating that internalization leads to more planning and better performance is supported. Internalization resulted in longer thinking times before starting to work on the problem and to more time between moves. It indicates that when information has to be internalized, more contemplation is provoked and users ponder longer before acting… Internalization subjects solved the problems with fewer superfluous moves, thus with greater economy… Our results suggest that internalization provokes more “thinking before acting” than externalization.… not at any measure, externalization resulted in better performance. Once more we found positive effects of internalization on problem-solving behavior: it led to more plan-based behavior, smarter solution paths and better declarative knowledge. Externalization led to a more display-based approach resulting in less economic solutions and shallower thinking.

This shows clearly the power of concepts and abstraction over "the simple and easy way to..."

The Framework Myth


Clearly shows, trough both practice and reflection, that attempt to build framework will impact negatively software development. So, back to the simple programming model, don't try to invent shortcuts. Either you are not good enough or the framework built will not be good enough for the job.