NAVI GATIONSEARCH BOX
Join us on LinkedIn Follow us on Twitter
Eura Nova RD
Eura Nova

Activity

In this section you will find EURA NOVA’s latest news and activities.

Activity

27-06-2014

Choosing a language for your development project: our criteria?

In our previous articles « why language choice doesn’t matter for your development project » and « why language choice does matter for your development project », we have taken absurdly strong positions in favor and against the selection of a specific development language for a given project.

 

Of course, the reality is never just black and white. At EURA NOVA, we decided to adopt a pragmatic approach to choose whether a new language should be introduced or not by using a simple set of 5 « language selection criteria ». Here is a brief overview of those :

Learning cost

The introduction of a new language comes along with learning costs. Most of the time, the benefits induced by the introduction of a new language will only outweigh its costs in the context of large scale projects.
As a rule of thumb, small scale projects should capitalize on your team’s current language knowledge while, on the opposite, large scale projects should consider every current language alternatives.

Internal infrastructure

Language choices are closely linked with the available infrastructure. Therefore, people should consider large scale projects as an opportunity to rationalize their infrastructure and language choices. On the contrary, in the perspective of small scale projects, one might prefer to re-use existing infrastructure and languages.

Libraries & ecosystems

For any given project, the ideal language will be the one that optimises both your development & infrastructure costs thanks to libraries that fits your project as well as an adequate ecosystem of tools around the language.

Job market

A sustainable language choice is one that support the growth of its project on the long term. Consequently, each project should select a language for which qualified workforce is available in the recruitment market for a reasonable price. This practice will both guarantee the sustainability of your project on the long run and optimise your labor costs at the same time.

Architecture

Different languages will best be suited for different architectures : Object Oriented vs. Procedural, Statically typed vs. Dynamically typed, etc.. For a given architecture, one should therefore select the language that will fully leverage the potential of your architecture.

Wrap-up

Depending on each project objectives, scale, technical debt, etc. weights are attributed to each criterion. The weighted sum of the criterion for a selection of languages can help you pick a candidate that will help you reach your goals.

At the end of the day, a sustainable long term development strategy optimizes each language ROI by balancing the short term cost of learning a new language versus the long term cost of NOT learning a new language.

4 responses to “Choosing a language for your development project: our criteria?”

  1. Martin says:

    Great list!

    One small remark: Job Market is certainly a point, but it is for me broader than that – I tend to say “Popularity”.

    Even if projects are not popularity contests, using a set of technologies (language, libraries, etc…) that is popular ensure not only to be able to find people to make and maintain it, but also good documentation, samples, answers on Stack Overflow. It’s also often a good proxy for durability: broadly used technologies do not disappear in a day.

    Obscure/niche technologies need to provide a tremendous advantage to offset their “singularity” cost. It certainly happens, but not for an overwhelming majority of projects.

    Just my two cents,

    Martin

  2. Quentin says:

    I agree with you Martin, a broader approach then pure Job Market is probably a good thing.

    But in this case, you have to be wary of what I would call the “hype effect”, in which some technology becomes popular quite fast, but where that popularity does not live for long. In such a case and if you are too much of an early adopter, you take the risk of being left with a niche technology when you were aiming for something to become mainstream.

    Quentin.

  3. GNA says:

    “Criterias” is not a word. Criteria or criterions, but not criterias.

    See: http://www.merriam-webster.com/dictionary/criteria

Leave a Reply