How to choose a programming language?

Rust is backed by Mozilla, C# comes from Microsoft and Swift is developed by Apple.

On the other hand, Clojure and Python are said to be community-driven which may bring their own pros and cons.

It’s important to think about how much money is provided to support language expansion.

If you are sure that Oracle will be evolving Java year after year, you don’t have to worry about your future, market needs and availability of job offers.

If you see that Angular will be released every 6 months, you can feel safe that new features will appear frequently and you will be able to schedule required upgrades.

That’s why you have to think about this aspect as well which is not that obvious at the very beginning and requires some research then.

LibrariesHow many libraries are available out there?What are the integrations provided by different services?If you, for example, consider Ruby or JavaScript, you can be almost 100% sure that every tool has some integrations with these languages.

You don’t have to worry about writing your own tools or wrappers around some APIs.

You will find all, even official, libraries to integrate with Twitter, Twillio, GitHub, Dropbox and so on.

If you, however, choose Elixir, for example, you may have troubles with finding well-maintained community libraries, to say nothing of official ones.

It’s better now than it was like 4 years ago, but it’s still an issue sometimes and it needs to be verified definitely.

So if you plan to build a tool that will heavily rely on external APIs and combine multiple integrations, you may want to consider some less exotic technologies to do so.

Mind you, your goal is to build products and deliver business features, not to develop other libraries or integrations (unless this is your actual business of course).

SalaryAre the programmers of this language well paid?What is the market demand for this technology?Is there a high competition among developers?How is it currently?Cobol now is a well-paid technology but have you considered why exactly?.Is it because it’s very promising, super popular and widely adopted or it’s just old but many systems rely on it and there are no specialists?This is always worth considering how much you will be paid using a specific language.

You may like Elm very much, but after some research, and hopefully not diving into it too deeply, it will turn out that no one is willing to pay you for it a lot.

TrendsSometimes, the language is not well-paid yet, but considering market demands, the trend is promising.

Have a look at Rust for example.

If you strongly believe that some language will grow rapidly in the future, you may invest in it your time right now, and once it becomes popular, you will be an expert already.

It brings a risk of course because the technology may not be adopted well but imagine what will happen otherwise.

You will have an experience that nobody will have and you will be able to work as an expert.

It’s just a matter of following trends and making wise choices now for your future.

ComplexityIt’s a pretty individual thing but still, it’s worth considering to check how you like the syntax of a language.

How error handling is done there, how much code you need to achieve concurrency or parallelizm, how quickly you can read and understand others code.

Consider Ruby or Python for example, which are languages that every english-speaking person can easily understand.

Have a look at C-based languages and you may struggle to grasp what exactly is happening there.

Java and C# are also pretty verbose while Clojure, on the other hand, might be sometimes overcomplicated.

Of course, with time, you start understanding any syntax more and more, but still, you may feel more confident with Elixir rather than GO in some cases.

From what I observe, the more low-level a language is, the more flexibility and tolerance developers have.

The more abstraction it allows, the more declarative it becomes.

ToolingExcept having libraries available, there’s is an important part around the language which are available tools to support development.

They may include different builders, compilers, static analyzers, formatters, testing and deployment tools.

Think for a while how hard it is to bootstrap a single project, write some code, test it and deploy to production.

How much time it takes to release a new application version after linting your codebase.

How simple it is to migrate your database, download and upgrade dependencies or build a single executable package.

After a while, you probably have a set of scripts that do the job but think about juniors or newcomers.

Will they be able to do all of these things as easily as you?.Are these features provided by a language itself or each developer has to prepare their own tooling?.The syntax is one thing but at the end of the day, you have to expose your application to the world.

How much will it cost you?Subscribe to get the latest content immediatelyhttps://tinyletter.

com/KamilLelonekSummaryAs you can see, there are a lot of things to consider.

If your time is limited and expensive you may want to think twice what you will spend it on.

The set of questions, you’ve just read, will definitely help you to make the right choice and be satisfied with your decision.

Let me know whether you’ve recently chosen a new technology, how have you analyzed it, and how happy you are with the selection you made.

.

. More details

Leave a Reply