New Early adopter or innovator? InfoQ has been working on some new features for you. Learn more

Should you really learn another language?

by Niclas Nilsson on  May 09, 2008 8

Blogger Gustavo Duarte cursed in church when he said that learning new programming languages is often a waste of time. He said that "In reality learning a new language is a gritty business in which most of the effort is spent on low-value tasks with poor return on time invested.". But not everyone agreed.

Debate about Testing and Recoverability: Object Oriented vs. Functional Programming Languages

by Sadek Drobi on  Mar 05, 2008 1

In his latest blog post, Michael Feathers argued that object oriented programming languages offer some built-in features that facilitate testing and are therefore more recovery friendly than functional languages. Proponents of functional languages expressed strong disagreement with this statement, which provoked a very passionate debate in the blog community.

Dependency Injection: New Ground or Solid Footing?

by Michael Bushe on  Jan 31, 2008 8

Dependency Injection seems like a shiny new tool in the toolbox. Andrew McVeigh tells us that DI shares a long history with architecture description languages (ADLs), simple yet sophisticated languages for component-based development through descriptive wiring. This article looks at the history of ADLs and sheds light on possible future directions of dependency injection.

Surprising criticism from parting Microsoft development lead

by Niclas Nilsson on  Nov 23, 2007 3

Jay Bazuzi, once Development Lead for the C# Editor, is leaving Microsoft, and he wrote some surprisingly harsh parting words for his friends before he left; things like “OO isn’t a fad” and that “It’s OK to use someone else’s code”.

Designing for flexibility and robustness: Asynchronous message model, OOP and Functional Programming

by Sadek Drobi on  Nov 15, 2007 4

According to Pragmatic Programmers it is preferable in OOP to avoid design based on returning values. Michael Feathers argues that it may also be better to use the asynchronous message model that might be instrumental for improving adaptability and robustness. This maps well to the Erlang model though opposing some of the principles of pure functional programming.

Presentation: Bob Martin's Principles of Agile Design

by Kurt Christensen on  Jan 30, 2007

Bob Martin of Object Mentor presents the first of his five principles of agile design. Beginning with an explanation of the real purpose of object-oriented design - the management of dependencies - Bob walks through a code example to illustrate how dependencies can be managed with abstractions, and that good designs are those in which high-level abstractions do not depend on low-level details.

Five Habits of Highly Effective Software Developers

by Floyd Marinescu on  Aug 24, 2006 1

What are some of the code-level practices of highly effective developers? Robert Miller wrote a detailed article on Java.NET covering 5 practices which could apply to any language, including minimalist constructors, methods with clear focus and intent, minimizing logic in mutating methods, and minimizing dependendies between behaviour methods.