Это короткая статья, которая пытается охватить краткий обзор упомянутых языков и предназначена для начинающих.

Javascript

  • Динамический
// hello.js
var a = ‘hello’;
console.log(a);
  • интерпретируется
$ node hello.js
hello
  • Выполняется на движке Javascript (обычно имеет два компонента кучи памяти и стека вызовов), он может быть в браузере (SpiderMonkey) или на бэкэнде (движок Chrome V8).
  • Он однопоточный и имеет модель параллелизма, основанную на «цикле событий».
  • Объектно-ориентированное программирование (с использованием наследования прототипов)
let animal = {
  eats: true,
  walk() {
    alert("Animal walk");
  }
};

let rabbit = {
  jumps: true,
  __proto__: animal
};

// walk is taken from the prototype
rabbit.walk(); // Animal walk
  • Автоматическое управление памятью
  • Известен своим простым и процедурным программированием, легковесностью
  • Печально известен своим дизайном и некоторыми ошибками
// true
console.log(0=="0")
// returns as expected
return {
  'ok': false
};

// returns undefined
return
{
  'ok': false
};
  • Полезно для интерфейсных приложений (веб-приложений и мобильных приложений)
  • Полезно для внутренних приложений (приложений с интенсивным вводом-выводом) из-за его параллельной модели.

Ресурсы для изучения JS

https://www.udemy.com/share/10008CA0UZdl9UTHg=/





Питон

  • Динамический
#!/usr/bin/env python3
# hello.py
message = 'hello'
print(hello)
  • интерпретируется
$ python hello.py
hello

  • CPython — интерпретатор по умолчанию.
  • Использует частную кучу для хранения всех объектов и структур данных.
  • Вы можете писать модули расширения на таких языках, как C, C++
  • Поддерживает многопоточность, но не параллельное выполнение из-за GIL
  • Известен своим чистым синтаксисом, идиоматическим подходом и элегантными функциями, такими как модули, декораторы, включения, генераторы, магические методы
  • Печально известный своей производительностью, GIL
  • Полезно для сценариев и инструментов
  • Полезно для создания поддерживаемых приложений
  • Полезно для проектов по науке о данных (доступно множество библиотек, таких как numpy, pandas, scipy, matplotlib, scikit-learn)
  • Полезно для прототипирования

Ресурсы для изучения Python







Голанг

  • Статически типизированный
// hello.go
package main
import "fmt"
func main(){
    var msg string = "hello"   
    fmt.Println(msg);   
}
  • Скомпилировано (компилятор работает быстро)
$ go build hello.go
$ ./hello
hello
  • Встроенное управление памятью
  • C-подобный синтаксис
  • Не поддерживает объектно-ориентированное программирование.
  • Известен своей простотой, параллелизмом и облегченной системой типов.

  • Печально известен отсутствием многих функций современного языка.
  • Полезно для системного программирования, ресурсоемких приложений, небольших микросервисов.
  • Низкое использование ЦП и памяти

Ресурсы для изучения Go





C++

  • Статически типизированный
// hello.cpp
#include <iostream>
using namespace std;

// main() is where program execution begins.
int main() {
   char msg[] = "hello";
   cout << msg << endl;
   return 0;
}
  • Скомпилировано
$ g++ hello.cpp
$ ./a.out
hello
  • Нет автоматического управления памятью, используется стек и куча для хранения различных сущностей.
  • Объектно-ориентированный
// Base class
class Shape {
   public:
      void setWidth(int w) {
         width = w;
      }
      void setHeight(int h) {
         height = h;
      }
      
   protected:
      int width;
      int height;
};

// Derived class
class Rectangle: public Shape {
   public:
      int getArea() { 
         return (width * height); 
      }
};
  • Известен производительностью и широко используемым языком
  • Печально известный из-за времени разработки, отсутствия автоматического управления памятью или сборки мусора, требует много предварительных знаний и опыта, чтобы делать вещи оптимальным образом.

  • Полезно для создания ресурсоемких приложений
  • Полезно для программирования игр
  • Низкое использование ЦП и памяти

Ресурсы для изучения C++





Основы C++
Контекст Добро пожаловать в раздел «Введение в C++
. Меня зовут Кейт Грегори, и я хотела бы представиться, рассказав людям…www.pluralsight.com»



Вывод

Каждый из этих языков программирования широко используется для разных целей. Я бы порекомендовал вам пройти их все.

Изучение разных языков может помочь вам лучше понять программирование.

Удачного кодирования и отладки :)