Always use the right tool for the job?
Published: 2011-07-28 by Lars
This issue definitely impacts team structure. Most people tend to be stronger in some "languages" than in others. Collective code ownership becomes harder, the more "languages" are involved.
On a more technical level, another big issue is the so-called impedance mismatch between different data topologies used for different tasks. The relational structure of SQL and the hierarchical structure of XML and JSON and the network structure of objects in memory does not fit well with each other, so a lot of complicated mapping and conversion is necessary. This impacts the cost, both computationally and on developer resources.
On a tool level, having different languages also impacts testing and debugging, because the tools and techniques for automated testing and debugging are different for each language.
Would you prefer to minimize the number of languages used on a project to increase collective code ownership and simplify testing and debugging? Or would you prefer to use the right tool for each job and then accept the costs of mapping, decreased collective code ownership and more complex testing and debugging setups?
What are the factors that guide us in this trade-off?
Discuss on Twitter