We have all hear it “use the right tool for the right job”, “We should use the tech fully.”, “I need to understand this deeply”.

Selecting the right tech for your next project is sometimes difficult. We look at different techs, see what they promise, read some validating articles, go through feature lists and look at some code samples.

With this article I want to add one more criterion to evaluate some tech. And that is people. Who arr the people behind the tech you are about to choose, what aspects of a tool are most relevant to then? Is it more important, that the tool in future stay easy to use, should it have more features, has the highest stability or is it the execution speed?

What is important to the developer should also somewhat match with your expectations. Most popular modules will promise you the best of everything. So to find such differences can be more subtile.

choosing a programming language

In php communities, performance is very important. But what is more important than performance, is productivity, shipping a feature, solving the customers problem at hand.

For the Java and C# communities, managing complexity in big projects is key. These programs might need longer to develop, but within these communities, the engineers take performance very seriously, while maintaining the ability to build huge enterprise systems. Maybe at the cost of not being able to ship a feature within a day or even less. Setting up a new project in these techs is comparatively a larger task.

In javascript you get a team productive. Leaning a new framework in js, has usually a much lower learning curve. There are tutorials, targeted at juniors to build a zoom clone in just a few hours.

You need to process some data files? The people around python show you how to read an excel file, merge the data with some API and send out emails. Only a few lines of code.

People who develop applications using haskell, lisp or elm want to have clarity about the logic. The application logic need to be well understood to be able go with confidence into a future. Where they are able to do updates as needed.

At golang conferences, the people are talking most of their time about performance. They are good at creating general purpose network services. Such as databases or proxy services.

C/Cpp have a stronger focus on hardware. For critical areas, using these languages you can get more out of a specific hardware. Just one step away from flipping the bits one by one via assembly.

the human factor

In this article I went into languages. But similar observations can be made when choosing a database, an operating system, a framework, or just a small module or library.

And while many of the technologies can certainly be used in places where an other language has its particular strength. We have to think, that in the end, we are working with people.

People in out team, partners, clients. And behind each technology we are using today, there are people. People who already put in effort into creating a tool are in different degrees able or willing to put in more effort, to progress the project or even provide support for you.

For organizations, the question about the ability to find people who can use a technology, has to play a major role.

How much do you consider the people factor when choosing a new technology?

  1. 1. choosing a programming language
  2. 2. the human factor