Whats Your Favourite Programming Language
Whats Your Favourite Programming Language

In this video I want to talk about my favourite programming languages that improved my programming skills mostly and can help you to become a better developer.
Let's jump right into it.

All languages are different this is why I can't name 1 language which is my favourite because I can't solve all talks with a single language This is why I have 5 languages which are my favourite with pros and cons in each of them.

1 Javascript and Typescript

This is my bread and butter. It's not the language with best syntax or safety but it's the most popular language in the world which allows me to earn good money for living. The most important point here for me is that every single company needs a Javascript developer. They can use on backend whatever they want but if we are talking about frontend there is nothing except of Javascript here. This is why you can't even compare Javascript to other language in a term of finding the job because by learning for example Java you can apply only in companies which do Java. By learning Javascript you can apply in every single company. And this is an amazing opportunity.

It's important to mention Typescript here because it eliminates a lot of problems of Javascript and increase your cost as a Javascript developer. Mostly because Typescript is not easy and requires some knowledge in static typed languages like C# or Java.

So Javascript takes the first place for sure.

2 Ruby and Rails

So Ruby is a OOP language with Rails as a framework to build backend for web applications. This is the language that changed my mind. First of all because how less code I need to write there and how simple it is. But mostly it was Ruby on Rails which inspires me and brought understanding how things can be build fast. If I compare NodeJS with Ruby on Rails it's like comparing a car and a plane. The efficiently and speed of creating an application in Rails is not comparable with Node. Doesn't matter if you are doing Authentication, Mail server, Cron Jobs or API it is better planned, packages gives you more and there is no framework in NodeJS which comes close to the performance of creating applications as fast as Rails. This is why Rails is so popular for prototypes and startups. For me it was really an eye opener and if you are a Javascript developer I highly recommend you to look on it to get ideas about how much created stuff a framework can give you.

So this is steady second place for me.

3 Elixir and Phoenix

So I'm actually a huge fan of functional programming because it helps me to write less code, more efficient and planned even in Javascript. And I'm not alone here. So one of core contributors in Ruby and Rails Jose Valim create Elixir as a language with Phoenix as a framework as a functional improvement of problems that he saw in Ruby. So it's a light introduction in functional world mostly because it's a dynamic language like Ruby. Phoenix for me looks like a clone of Rails but in completely functional way.

If you are interested on learning some functional language which is not super difficult than Elixir and Phoenix is a great combo for developing web applications on backend.

For me it just brought Rails idea on a functional level.

4 Elm

Here we are coming in more difficult but awesome stuff. The language number 4 is Elm. It's a static typed functional language which is transpiled in Javascript. So you are writing Elm and you get Javascript which you can use in browser. For me this is the language what I want to see instead of Typescript. The main point is that it's runtime bullet proof. Which means you will never ever get a runtime error. And this brings this language on the completely new level for me. In Typescript we have any, libraries in Javascript and any runtime errors that you can imagine. I write Typescript already 5 years and I literally see them every day. But it doesn't matter for me what is inside the language if I won't get runtime errors ever again. What is also interesting is that Elm is a language and a framework. So you get a architecture to create applications without a framework out of the box. And what is interesting is that Redux which is super popular Javascript library with any frontend framework was heavily inspired of Elm architecture and single flow of data. Also Elm is a functional language which was implemented looking on Haskell so a lot of ideas come from there.

It will never be popular because there are no big companies who are pushing it but the level of implementation or how readable and clear are the errors of transpiler is amazing especially compared to Typescript.

For me Elm lives on 4th place

5 Haskell

Number 5 for me is Haskell. If you like to learn functional programming on a good level and torture your brain during this process than Haskell is for you. It is static typed functional language which is actually more popular for teaching or researches. But nevertheless there are quite some people who developed a lot of stuff with it. For example I created a backend for web application using yesod framework which has some similar to Rails ideas. Haskell is really complicated just because you need to learn a lot of new patterns and things about data types but it gives you enormous amount of ideas which helps you later to write better code even with Javascript.

So here are most important point if you want to learn some language:
- Learn Javascript and Typescript to earn money
- Learn Ruby and Rails to understand how to build things fast
- Learn Elixir and Phoenix for gentle introduction in functional world
- Learn Elm if you want to stay in Javascript world but want to try to functional stuff of medium complexity
- Learn Haskell if you want a deep and difficult dive in real functional language with static typing

Also if you want to improve your programming skill I have lots of full courses regarding different web technologies.