Which programming language should you choose
Tags: beginners, programming, career, development
Published: 2024-06-15 13:15:35

Each programming language has its own purpose, they all are a tool to solve a specific problem, and you should choose the one that really fits your needs.

## The languages

### JavaScript

```javascript
console.log("Hello World!")
```

JavaScript is a terrible and confusing language (see more [here](https://javascriptquiz.com)), but unfortunately it's the only option that we have for working with Frontend Web development. You should choose (or is forced to) use it when your goal is to create interactive Frontend Websites.

In any other case, JavaScript MUST be avoided, it's unsafe, underperforming, makes no sense, requires lots of configurations and libraries to do the basics, and it's infested with terrible practices.

"Choose" it if you want to become a Frontend Web developer.

### PHP

```php
<?php echo 'Hello, World!'; ?>
```

PHP still the most used language for the Web, mostly because most of the websites are legacy or build with WordPress, an easy-to-use tool where you can start almost with no knowledge about programming.

You will find a lot of jobs to work with PHP, but it's "for the old people", and the new generation is avoiding it because of the [memes](https://www.google.com/search?sca_esv=c25313c4b5559b8f&sxsrf=ADLYWIKE23m8_uZWq4oYjGXpLRKJ_VydBA:1718454482517&q=php+memes&udm=2&fbs=AEQNm0DYVld7NGDZ8Pi819Yg8r6em07j6rW9d2jUMtr8MB7htoxbI0iAKNRPykigVf3e9aputkbr8jzmN5LYbANOqrq5HYnx4MjtyMxZ94LvgeHWmGBcuWUoydKfNaoB5JMdZlMtXmg2De2y5O7nn-eTbNdYHsRiT1RQ-pB6qp3ejXJ5VpdCk5NA1Jug5hVR16L7F-A1C1p-4xpfp7qj2HsGNaipPZQOiw&sa=X&ved=2ahUKEwjIz_jnzd2GAxXoqZUCHWIUCvQQtKgLegQIERAB&biw=1882&bih=977&dpr=1), and yeah, they are kinda right, but PHP was very important for the early Backend development.

Choose it if you want to (or have to) work on legacy systems, or systems that are for companies which the focus isn't on their tech, like Stores or Supermarkets.

### Python

```python
print "Hello World"
```

Python is a very simple language, ideal for beginners that want to start in the programming world or for non-programmers that need to automate a task.

It's heavily used for Machine Learning, Neural Networks and similar, usually build by mathematicians.

Pythons has terrible performance, so it should be used in environments where you don't need things to be fast, like training your AI, running things locally to automatically format your CSVs, move your mouse so your companies spyware thinks you are working and similar.

Python should not be used in production, but the result of what is produced by python can.

Choose it if you want to start in programming but find it too hard in any other way, or if you aren't a programmer and don't want to be one, but needs to automate something or create AIs to take someone's job.

### Java

```java
class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!"); 
    }
}
```

Java is the good-old trustable language, used for most backend systems that must be reliable, like banking. It's kinda verbose and heavy, but a good language overall, has lots of job positions, good practices, great developers. It's the one that you can't go wrong.

Choose it if you want something guaranteed, even if you don't work directly with Java, the things that you learned for sure will be useful in your career.

### Golang

```go
package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}
```

Go is a safe, fast and easy programming language, it's growing, but not a lot of companies out there have job positions to work with this.

### C++

```cpp
#include <iostream>

int main() {
    std::cout << "Hello World!";
    return 0;
}
```

C++ is the language for who wants to develop games. You will probably use Unreal Engine or (very, very rarely) develop your own. Most (maybe all) big games are developed using this language.

### Lua

```go
print("Hello World")
```

Lua is also for gaming, its focus is not to be performative, but to be very easy to learn and modify. If you want to create a game that supports a lot of mods and has a great community, use Lua. Your community will love to make mods and expand your game, it will also help with its growth.

### C, Rust and Zig

```c
#include<stdio.h>

int main(void) {
    printf("Hello World\n");
    return 0;
}
```

```rust
fn main() {
    println!("Hello World!");
}
```

```plaintext
const std = @import("std");

pub fn main() !void {
    std.debug.print("Hello, World!\n", .{});
}
```

Low level languages, perfect for things that really needs performance, like Databases (creating databases, not using them!) and Operational Systems.

You will probably not get a job with these languages, but may need to develop something using them if you were hired by a medium/big tech company.

### All other languages

Don't use it, it's not worth it.

### Let's summarize

* JavaScript: Frontend Web
    
* PHP: Legacy backend
    
* Python: For non-programmers
    
* Java: Safe in all means, good option overall
    
* Golang: Good but not very used
    
* C++: Very performative gaming, for competitive or immersive games
    
* Lua: For community driven games
    
* C, Rust and Zig: For OSs and Databases.
    

## For the fanboys

![Chola mais](https://gifs.eco.br/wp-content/uploads/2022/10/gifs-de-chora-mais-9.gif)

This is a meme that represents "You can cry as much as you want, but it will not change a thing".

## Conclusion

Hope that it helps mainly the beginners to understand the purpose of each language and avoid people that only want their money, selling courses about "LEARN THIS LANGUAGE AND YOU WILL MAKE 500K A YEAR!!!", please, don't fall for these schemes.

If you have different options (and don't want to cry about how your language is the best language in the world and should be used everywhere, except for C, C is the best), please leave it in the comments and let's talk about it!