Языки программирования
Связанные статьи энциклопедии
- Естественные и искусственные языки — от человеческого языка до ассемблера и битов
- Уровни абстракции языков — теория высокого и низкого уровня
- Основные языки - обзор
- Языки запросов
- Языки разметки
- Языки стилей
- Платформа .NET
- Платформа 1С
Языки программирования
Языки программирования являются самой большой группой, которую лучше разделить на семейства, основываясь на общих чертах, происхождении, парадигмах и экосистеме.
Эту статью удобно читать как "карту местности", а не как рейтинг. Семейства показывают происхождение идей, совместимость инструментов и типичные области применения.
Практический маршрут изучения
Чтобы не распыляться, лучше собирать базу по этапам:
- Один язык для общего программирования: Python, JavaScript или Java.
- Один язык из "строгой" экосистемы — C#, Go, Rust.
- Один язык из прикладной специализации — SQL, Bash, PowerShell, 1C, DSL под доменную задачу.
Этот подход формирует широкий кругозор и помогает легче менять технологический стек.
Уровень языка — низкий, средний и высокий
"Уровень" языка — это степень удалённости от машинного кода, а не "сложность для новичка" и не "популярность в рейтинге". Один и тот же язык может быть высокоуровневым по синтаксису и при этом требовать глубокого понимания runtime (Python, Java). Другой — средним по абстракциям, но давать прямой доступ к памяти (C++, Rust).
Карта уровней от естественного языка до битов — в статье про искусственные языки; развёрнутый разбор абстракций — в Уровни абстракции языков.
Сводная таблица
| Уровень | Близость к… | Типичные задачи | Примеры из этой статьи и энциклопедии | Трансляция |
|---|---|---|---|---|
| Низкий | Машинному коду, регистрам, адресам памяти | ОС, драйверы, прошивки, критичные оптимизации | Ассемблер (x86, ARM), C в системном стиле | Компилятор → нативный код под конкретную ISA |
| Средний | Нативному коду + выразительным абстракциям | Игры, высоконагруженные сервисы, системное ПО с ООП | C++, Rust, Go, D | Нативная сборка; Rust/Go добавляют проверки без VM |
| Высокий | Логике задачи и библиотекам | Веб, enterprise, мобильные клиенты, скрипты, data science | Python, Java, C#, JavaScript, Kotlin, PHP, Ruby, Swift | Компилятор или VM (JVM, CLR), интерпретатор |
| Ультравысокий | Предметной области, минимум императивного кода | Отчёты, конфигурация, визуальная логика, запросы к данным | SQL, 1С (БСП), Scratch, языки запросов | Интерпретатор СУБД, платформа, среда блоков |
Границы условны — C# и Java формально высокоуровневые, но разработчик всё равно думает о потоках, GC и байт-коде. C++ — "средний" по шкале абстракций, хотя в обзорах его часто относят к низкоуровневым из‑за указателей и производительности.
Низкий уровень
Низкоуровневый язык близок к командам процессора — вместо длинных двоичных последовательностей — мнемоники (mov, add, call). Одна строка ассемблера может развернуться в несколько машинных инструкций; директивы задают константы и раскладку в памяти.
- Ассемблер — отдельное семейство диалектов под каждую архитектуру (x86-64, ARM). Переносимость почти всегда требует переписывания.
- C — не ассемблер, но даёт указатели, ручное управление памятью и прямой вызов системных API. Его называют языком среднего/низкого уровня: синтаксис уже высокий, контроль над железом — почти как у ассемблера после компиляции.
Плюсы — предсказуемость и скорость. Минусы — длинный код, привязка к платформе, высокая ответственность за ошибки памяти.
Высокий уровень
Высокоуровневый язык вводит абстракции — типы, коллекции, функции, классы — чтобы коротко описывать то, что на машинном языке заняло бы страницы. Суть алгоритма стараются отделить от конкретного CPU; компилятор, интерпретатор или VM подставляют платформенные детали.
| Язык в обзоре | Что даёт высокий уровень | Оговорка по переносимости |
|---|---|---|
| Fortran, COBOL, Pascal (история) | Первые промышленные абстракции над машиной | Старые экосистемы, но идея та же |
| Java, C# | Байт-код + VM, GC, богатые библиотеки | "Один JAR / один assembly" — до границы системных API |
| Python, Ruby, PHP | Краткий синтаксис, динамика, скрипты | Интерпретатор под каждую ОС |
| JavaScript, TypeScript | События, DOM, npm-экосистема | Браузер и Node — разные среды |
| Kotlin, Swift | Современный синтаксис поверх JVM / Apple-стека | Привязка к Android, iOS, desktop Apple |
Миф "написал один раз — везде работает" верен для чистых вычислений. GUI, файловая система, сеть и мультимедиа упираются в разные API ОС; тогда помогают кроссплатформенные библиотеки (Qt и аналоги) или отдельные сборки под платформу.
Высокий уровень обычно удобнее сопровождать, но дороже по runtime, чем тщательно оптимизированный C/Rust. Поэтому в C#, Java и Python оставляют "люки" в низкий уровень — unsafe, JNI, нативные расширения.
Средний уровень — мост
Средний уровень сочетает абстракции высокого уровня с контролем, близким к нативному коду.
| Язык | Зачем относят к среднему |
|---|---|
| C++ | Классы, STL, шаблоны — и при этом указатели, RAII, ручная оптимизация |
| Rust | Безопасность памяти на этапе компиляции, нативная сборка |
| Go | Простой синтаксис, GC, но компиляция в статический бинарник без VM |
| D | Синтаксис ближе к C++, опциональный GC |
Семейство Си ниже — как раз эта зона — от чистого C до C++ и наследников (C#, Java по духу синтаксиса, но уже на VM).
Как выбирать по уровню, а не по моде
| Ваша цель | Разумный ориентир |
|---|---|
| Первый язык, веб, автоматизация, data | Высокий — Python, JavaScript, Java, C# |
| Системное ПО, игры, драйверы, embedded | Средний/низкий — C, C++, Rust; ассемблер точечно |
| Только запросы и отчёты | Ультравысокий — SQL, 1С, BI-языки |
| Понять, как "внизу" работает код | Прочитать Естественные и искусственные языки в цифровой среде и Уровни абстракции языков программирования, затем один высокий язык |
Ниже в статье языки сгруппированы по происхождению (семейство Си, JVM, веб и т.д.). Один язык может быть высокоуровневым по синтаксису и низкоуровневым по контролю — удобно смотреть обе шкалы: уровень абстракции и семейство инструментов.

Семейство Си

Си
C (Си) – процедурный язык программирования, один из первых универсальных языков. Дата создания — 1972 год. Основными особенностями являются доступ к памяти через указатели, близость к машинной модели после компиляции и отсутствие встроенной поддержки ООП. По шкале уровней C относят к низкому/среднему уровню, не к чистому ассемблеру. Компилируется в машинный код, использует стек, кучу, регистры напрямую, поддерживает указатели. Применяется в операционных системах, драйверах, встраиваемых системах и компиляторах других языков. Широко используется в системном программировании, поддерживается большинством архитектур процессоров.
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
D
D - системный язык программирования, сочетающий возможности C++ и Python. Дата создания — 2001 год. Основными особенностями являются поддержка нескольких парадигм (процедурное, ООП, функциональное), автоматическое управление памятью с возможностью ручного контроля, метапрограммирование. Компилируется в нативный код, может использовать GC или работать без него. Применяется в системном программировании, высокопроизводительных приложениях и игровых движках. Является нишевым языком, популярен среди энтузиастов, но не получил массового распространения.
import std.stdio;
void main() {
writeln("Hello, World!");
}
C++
C++ - объектно-ориентированный язык программирования, расширяющий возможности C. Дата создания — 1985 год. Основными особенностями являются поддержка ООП, шаблонов, перегрузки операторов, возможность разработки на разных уровнях абстракции. Компилируется в нативный код, полностью совместим с C. Применяется в играх, высокопроизводительных приложениях, операционных системах. Один из самых популярных языков в мире, активно развивается.
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
C#
C# – объектно-ориентированный язык программирования, работающий на платформе .NET. Дата создания — 2000 год. Основными особенностями являются управляемая среда выполнения, автоматическое управление памятью, поддержка LINQ, async/await, generics. Компилируется в промежуточный байт-код (IL), исполняемый CLR. Применяется в Windows-приложениях, серверных приложениях (ASP.NET) и играх (Unity). Широко используется в корпоративной разработке, активно развивается Microsoft.
using System;
class Program {
static void Main() {
Console.WriteLine("Hello, World!");
}
}
Java
Java – объектно-ориентированный язык программирования, работающий на виртуальной машине Java (JVM). Дата создания — 1995 год. Основными особенностями являются "Write once, run anywhere" через JVM, строгая типизация, автоматическое управление памятью. Компилируется в байт-код, исполняемый JVM. Применяется в Android-приложениях, корпоративных системах и серверных приложениях. Один из самых популярных языков программирования, активно используется в enterprise.
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
JavaScript
JavaScript – язык программирования, изначально предназначенный для клиентской логики в браузерах. Дата создания — 1995 год. Основными особенностями являются прототипное ООП, однопоточность с событийным циклом, динамическая типизация. Интерпретируется или компилируется движками (V8, SpiderMonkey), работает в браузере и на сервере (Node.js). Применяется во фронтенд-разработке, backend-разработке (Node.js) и мобильных приложениях (React Native). Один из самых популярных языков в мире, основа современного веба.
console.log("Hello, World!");
Подробнее: Основы JavaScript
Objective-C
Objective-C – объектно-ориентированный язык программирования, расширяющий C синтаксисом Smalltalk. Дата создания — 1984 год. Основными особенностями являются сообщения вместо вызовов методов, интеграция с Cocoa-фреймворками Apple. Компилируется в нативный код. Применялся в iOS- и macOS-приложениях до появления Swift. Устаревающий язык, встречается в legacy-проектах Apple.
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Hello, World!");
return 0;
}
Swift
Swift – современный язык программирования для экосистемы Apple. Дата создания — 2014 год. Основными особенностями являются современный синтаксис, безопасность типов, поддержка функциональных подходов. Компилируется LLVM в нативный код. Применяется в iOS-, macOS-, watchOS-, tvOS-приложениях. Официальный язык Apple, активно развивается и поддерживается.
print("Hello, World!")
Kotlin
Kotlin – современный язык программирования, работающий на JVM и Android. Дата создания — 2011 год. Основными особенностями являются совместимость с Java, null-safety, поддержка функционального программирования. Компилируется в байт-код JVM, также может компилироваться в JavaScript и нативный код. Применяется в Android-разработке, backend-разработке и мультиплатформенных проектах. Рекомендован Google как основной язык для Android, активно развивается.
fun main() {
println("Hello, World!")
}
Go
Go (Golang) – язык программирования общего назначения с фокусом на простоту и производительность. Дата создания — 2009 год. Основными особенностями являются гарантированная совместимость API, горутины для параллельности, отказ от сложных механизмов ООП. Компилируется в нативный код, имеет свой сборщик мусора. Применяется в микросервисах, DevOps-инструментах и CLI-утилитах. Широко используется в облачных сервисах, активно развивается сообществом и Google.
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
Подробнее: Основы языка Go
Rust
Rust – современный безопасный системный язык программирования. Дата создания — 2010 год. Основными особенностями являются безопасность памяти без сборщика мусора, строгий контроль за владением данными, отсутствие нулевых указателей и дата-рейсов. Компилируется в нативный код через LLVM. Применяется в системном программировании, веб-движках (например, Firefox) и блокчейне. Быстро набирает популярность, поддерживается крупными компаниями.
fn main() {
println!("Hello, World!");
}
Подробнее: История языка Rust
PHP
PHP – язык программирования, изначально созданный для генерации HTML на стороне сервера. Дата создания — 1995 год. Основными особенностями являются встроенная поддержка HTTP, лёгкий вход в веб-разработку, динамическая типизация. Интерпретируется через Zend Engine. Применяется в веб-сайтах и CMS (WordPress, Drupal), а также в API-серверах. Широко используется в вебе, особенно в малом бизнесе, активно развивается (PHP 8).
<?php
echo "Hello, World!\n";
?>
Zig
Zig - современный язык программирования, рассматривающийся как потенциальная замена C. Дата создания — 2015 год. Основными особенностями являются отсутствие сборщика мусора, отсутствие скрытого аллокатора, полная совместимость с C. Компилируется в нативный код. Применяется в системном программировании, эмбеддинге и как альтернатива C. Экспериментальный, но быстро растёт, перспективный кандидат на замену C.
const std = @import("std");
pub fn main() !void {
const stdout = std.io.getStdOut().writer();
try stdout.print("Hello, World!\n", .{});
}
Carbon
Carbon - экспериментальный язык программирования, рассматриваемый как потенциальное будущее C++. Дата создания — 2022 год. Основными особенностями являются совместимость с C++, современный синтаксис, поддержка новых парадигм. Разрабатывается на основе LLVM. Применяется в системном программировании, потенциальная замена C++. Находится на очень ранней стадии развития, пока не готов к массовому использованию.
package sample api;
fn Main() -> i32 {
Print("Hello, World!\n");
return 0;
}
Функциональные языки
Акцент на функциях как строительных блоках программы. Эти языки часто используются в научной среде, финансах, системах с высокой логической сложностью.
Haskell
Haskell – чисто функциональный язык программирования с ленивыми вычислениями и статической типизацией. Дата создания — 1990 год (стандарт опубликован, хотя развитие началось ранее). Основными особенностями являются отсутствие побочных эффектов, поддержка монад, мощная система типов. Работает как интерпретируемый или компилируемый через GHC. Применяется в научной сфере, финансовых системах и образовании. Используется в нишевых проектах, ценится за безопасность и выразительность.
main :: IO ()
main = putStrLn "Hello, World!"
F#
F# – функциональный язык программирования, работающий на платформе .NET. Дата создания — 2005 год. Основными особенностями являются поддержка функционального и объектно-ориентированного программирования, вывод типов, интерактивная среда FSI. Компилируется в байт-код .NET, работает на всех платформах .NET. Применяется в анализе данных, финансовых вычислениях и инженерных задачах. Активно развивается Microsoft, используется в корпоративной разработке.
printfn "Hello, World!"
Scala
Scala – гибридный язык программирования, сочетающий ООП и функциональное программирование. Дата создания — 2004 год. Основными особенностями являются совместимость с Java, мощная система типов, поддержка неявных преобразований и паттерн-матчинга. Компилируется в байт-код JVM. Применяется в распределённых системах, обработке больших данных (Apache Spark), backend-разработке. Широко используется в enterprise и big Данные, имеет большую экосистему.
object HelloWorld extends App {
println("Hello, World!")
}
Clojure
Clojure – диалект Lisp, работающий на JVM. Дата создания — 2007 год. Основными особенностями являются иммутабельные структуры данных, REPL-ориентированная разработка, макросы. Компилируется в байт-код JVM, также поддерживает JavaScript и .NET. Применяется в высоконагруженных системах, веб-разработке и аналитике. Популярен среди разработчиков, ценящих выразительность и мощь Lisp.
(println "Hello, World!")
OCaml
OCaml – строго типизированный функциональный язык программирования с возможностью императивного программирования. Дата создания — 1996 год. Основными особенностями являются вывод типов, статическая типизация, модульная система. Компилируется в нативный код или байт-код. Применяется в академической среде, верификации программ, финансовой сфере и компиляторостроении. Используется в проектах, где важна надёжность и производительность.
print_endline "Hello, World!"
Elm
Elm – чисто функциональный язык программирования для фронтенд-разработки. Дата создания — 2012 год. Основными особенностями являются отсутствие ошибок выполнения, модель "театр одного актёра", декларативный подход к UI. Компилируется в JavaScript. Применяется в разработке пользовательских интерфейсов в браузере. Популярен среди разработчиков, ценящих предсказуемость и стабильность.
module Main exposing (main)
import Html exposing (text)
main =
text "Hello, World!"
Erlang / Elixir
Erlang / Elixir – функциональные языки, ориентированные на высокую доступность и параллелизм. Erlang создан в 1986 году, Elixir — в 2011 году. Основными особенностями являются легковесные процессы, отказоустойчивость, асинхронность, распределённость. Erlang компилируется в байт-код BEAM-машины, Elixir транслируется в Erlang. Применяются в телекоммуникациях, мессенджерах, распределённых системах. Erlang остаётся актуальным в legacy-системах, Elixir активно развивается в web и микросервисных архитектурах.
Erlang
-module(hello).
-export([start/0]).
start() ->
io:format("Hello, World!~n").
Elixir
IO.puts "Hello, World!"
JVM-языки
Языки, работающие на Java Virtual Machine. Все они могут взаимодействовать между собой внутри одной JVM. Конечно же, в первую очередь это Java. Также на JVM работают Clojure, Kotlin, Scala.
Groovy
Groovy – динамический язык программирования для JVM с синтаксисом, похожим на Java. Дата создания — 2003 год. Основными особенностями являются скриптовые возможности, динамическая типизация, интеграция с Java, поддержка DSL. Компилируется в байт-код JVM. Применяется в автоматизации, тестировании, DevOps и фреймворках (например, Gradle, Grails). Используется там, где нужна гибкость и быстрая разработка поверх Java.
println "Hello, World!"
.NET-языки
Языки, работающие на платформе .NET. Активно используются в Windows-приложениях, сервисах, корпоративных системах. C#, F# являются основными языками на .NET.
VB.NET
VB.NET – объектно-ориентированный язык программирования, являющийся продолжением visual-basic. Дата создания — 2002 год. Основными особенностями являются простота освоения, поддержка событийно-ориентированного программирования, полная совместимость с .NET. Компилируется в байт-код .NET. Применяется в legacy-проектах, созданных в эпоху доминирования visual-basic. Мало используется в новых проектах, поддерживается Microsoft, но развитие ограничено.
Module Program
Sub Main()
Console.WriteLine("Hello, World!")
End Sub
End Module
Python / Ruby-экосистема
Динамические, удобные для разработки, обучения и автоматизации. Просты в освоении, популярны среди новичков и аналитиков. Groovy тоже относится к таким языкам.
Python
Python – интерпретируемый язык программирования с динамической типизацией и акцентом на читаемость кода. Дата создания — 1991 год. Основными особенностями являются простой синтаксис, богатая стандартная библиотека, поддержка множества парадигм (процедурное, ООП, функциональное). Работает через интерпретатор, может использоваться с JIT-компиляцией (например, PyPy). Применяется в анализе данных, машинном обучении, автоматизации, веб-разработке, научных вычислениях. Один из самых популярных языков в мире, активно развивается и поддерживается сообществом.
print("Hello, World!")
Подробнее: Python - язык общего назначения
Ruby
Ruby – динамический объектно-ориентированный язык программирования с акцентом на простоту и продуктивность. Дата создания — 1995 год. Основными особенностями являются гибкий синтаксис, мощные DSL, философия "Программист счастлив". Работает через интерпретатор или виртуальную машину (MRI, JRuby). Применяется во фронтенд- и backend-разработке, особенно популярен благодаря фреймворку Ruby on Rails. Имел пик популярности в 2000-х, сейчас менее распространён, но остаётся актуальным в legacy-проектах и нишевых средах.
puts "Hello, World!"
Lua
Lua – легковесный встраиваемый скриптовый язык программирования. Дата создания — 1993 год. Основными особенностями являются минимальное потребление ресурсов, простота интеграции в другие языки, гибкость. Работает через виртуальную машину с JIT-компиляцией (LuaJIT). Применяется в играх (например, World of Warcraft), системах встраивания, роутерах, плагинах. Популярен в embedded-системах и игровой разработке.
print("Hello, World!")
Julia
Julia – высокопроизводительный язык программирования для научных вычислений и анализа данных. Дата создания — 2012 год. Основными особенностями являются скорость, близкая к C, поддержка многозадачности, динамическая типизация с возможностью аннотаций. Компилируется в LLVM-промежуточный код. Применяется в математике, статистике, машинном обучении, моделировании. Активно развивается, становится популярным в научном сообществе.
println("Hello, World!")
R
R – язык программирования и окружение для статистического анализа и визуализации данных. Дата создания — 1993 год. Основными особенностями являются специализация на статистике, богатые графические возможности, широкий набор пакетов. Работает через интерпретатор. Применяется в науке, экономике, медицине, бизнес-аналитике. Один из ключевых инструментов в Data Science, сохраняет высокую актуальность в этой области.
cat("Hello, World!\n")
Smalltalk
Smalltalk – чисто объектно-ориентированный язык программирования, оказавший влияние на многие современные языки. Дата создания — 1972 год (первые версии), коммерческий выпуск — 1980-е. Основными особенностями являются всё является объектом, динамическая типизация, интегрированная среда разработки. Работает в виртуальной машине. Применялся в ранних GUI-приложениях, обучении, прототипировании. Устаревающий, но остаётся важным исторически и используется в нишевых проектах.
Transcript show: 'Hello, World!'; cr.
Lisp
Lisp – один из старейших языков программирования, основанный на обработке символьных выражений. Дата создания — 1958 год. Основными особенностями являются макросы, homoiconicity, функциональная природа. Работает через интерпретатор или компилятор. Применялся в искусственном интеллекте, исследовательском программировании, создании DSL. Встречается в академической среде и нишевых проектах, остаётся важным для понимания программирования.
(format t "Hello, World!~%")
Perl
Perl – скриптовый язык общего назначения с акцентом на обработку текста. Дата создания — 1987 год. Основными особенностями являются мощные регулярные выражения, гибкий синтаксис, богатая библиотека CPAN. Работает через интерпретатор. Применялся в системном администрировании, CGI-скриптах, парсинге данных. Был очень популярен в 1990–2000-х, сейчас утратил большую часть аудитории, но остаётся в legacy-системах и скриптах.
print "Hello, World!\n";
Скриптовые и шелл-языки
Эти языки помогают писать сценарии автоматизации, а также применяются в специализированных сферах вроде DevOps, администрирование.
Bash
Bash / Shell Scripting – язык командной строки Unix-подобных систем. Дата создания — 1989 год (Bash). Основными особенностями являются управление процессами, работа с файлами и потоками, автоматизация задач. Выполняется через интерпретатор оболочки. Применяется в системном администрировании, DevOps, автоматизации развёртывания и рутинных задач. Один из самых популярных скриптовых инструментов в мире Linux.
#!/bin/bash
echo "Hello, World!"
PowerShell
PowerShell – объектно-ориентированная оболочка и язык сценариев от Microsoft. Дата создания — 2006 год. Основными особенностями являются работа с объектами, а не текстом, глубокая интеграция с Windows, поддержка .NET. Работает через интерпретатор. Применяется в администрировании Windows, автоматизации задач, DevOps. Стандарт для управления Windows-инфраструктурой, также доступен на Linux и macOS.
Write-Host "Hello, World!"
VBScript
VBScript – легковесный скриптовый язык от Microsoft, основанный на visual-basic. Дата создания — 1996 год. Основными особенностями являются простота освоения, поддержка событий, интеграция с Windows. Работает через интерпретатор. Применялся в старых веб-приложениях, автоматизации Windows и устаревших корпоративных приложениях. Устаревающий, заменяется PowerShell и другими технологиями.
WScript.Echo "Hello, World!"
AWK / Sed
AWK / Sed – утилиты командной строки для обработки текстовых данных. AWK создан в 1977 году, Sed — в 1979 году. Основными особенностями являются мощные возможности фильтрации и преобразования текста, регулярные выражения. Работают как интерпретируемые утилиты. Применяются в анализе логов, парсинге, конвейерной обработке данных. Входят в стандартный набор Unix-инструментов, остаются актуальными в shell-автоматизации.
AWK
BEGIN { print "Hello, World!" }
Sed
i\Hello, World!
Makefile syntax
Makefile syntax – декларативный язык описания зависимостей и правил сборки проектов. Дата создания — 1976 год (первая реализация make). Основными особенностями являются описание целей и зависимостей, поддержка макросов и условий. Используется вместе с утилитой make. Применяется в автоматизации компиляции программ, особенно в C/C++. Основа многих систем сборки, до сих пор используется в open source и embedded разработке.
hello:
@echo "Hello, World!"
AutoHotKey / AutoIt
AutoHotKey / AutoIt – языки автоматизации действий пользователя в Windows. AutoHotKey создан в 2003 году, AutoIt — в 1999 году. Основными особенностями являются эмуляция клавиш и мыши, автоматизация GUI, создание горячих клавиш. Работают как интерпретируемые скрипты. Применяются в автоматизации рабочих процессов, тестировании, рутинных задачах. Популярны среди пользователей, не являющихся профессиональными разработчиками.
AutoHotKey
MsgBox, Hello, World!
AutoIt
MsgBox(0, "Greeting", "Hello, World!")
Специализированные языки
Созданы для конкретных задач или ниш. В основном это старые языки. К специализированным можно отнести также R и Julia.
Fortran
Fortran – один из первых языков программирования, ориентированный на научные и инженерные вычисления. Дата создания — 1957 год. Основными особенностями являются высокая производительность на численных задачах, поддержка массивов и математических операций. Компилируется в нативный код. Применяется в физике, аэродинамике, климатическом моделировании, финансовой аналитике. До сих пор используется в legacy-научных проектах и HPC (высокопроизводительных вычислениях).
program hello
print *, 'Hello, World!'
end program hello
COBOL
COBOL – язык программирования, предназначенный для бизнес-приложений и финансовых систем. Дата создания — 1959 год. Основными особенностями являются читаемость кода, ориентация на обработку данных, устойчивость к ошибкам. Компилируется в машинный или байт-код. Применяется в банках, правительствах, страховых компаниях. Огромное количество legacy-систем до сих пор работает на COBOL, требует поддержки и модернизации.
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
DISPLAY 'Hello, World!'.
STOP RUN.
Prolog
Prolog – язык логического программирования, основанный на формальных правилах и фактах. Дата создания — 1972 год. Основными особенностями являются дедуктивный подход, рекурсия, паттерн-матчинг. Работает через интерпретатор или компилятор. Применяется в искусственном интеллекте, экспертных системах, логических задачах. Активно используется в академической среде и нишевых приложениях.
:- initialization(main).
main :-
write('Hello, World!'), nl,
halt.
Verilog / VHDL
Verilog / VHDL – языки описания аппаратуры, используемые для проектирования цифровых схем. Verilog создан в 1984 году, VHDL — в 1983 году. Основными особенностями являются возможность моделирования поведения и структуры схем, симуляция работы чипов. Работают через специализированные симуляторы и синтезаторы. Применяются в разработке FPGA, ASIC, процессоров. Ключевые инструменты в области hardware engineering.
Verilog
module hello();
initial begin
$display("Hello, World!");
$finish;
end
endmodule
VHDL
entity hello is
end entity;
architecture behavior of hello is
begin
process
begin
report "Hello, World!";
wait;
end process;
end architecture;
Solidity
Solidity – язык программирования для написания смарт-контрактов в блокчейне Ethereum. Дата создания — 2014 год. Основными особенностями являются поддержка контрактов, ограниченная вычислительная модель (EVM), строгие ограничения на безопасность. Компилируется в байт-код виртуальной машины Ethereum. Применяется в децентрализованных приложениях (dApps), финансе (DeFi), NFT. Быстро развивается в экосистеме блокчейн-технологий.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract HelloWorld {
function greet() public pure returns (string memory) {
return "Hello, World!";
}
}
GDScript
GDScript – скриптовый язык, разработанный специально для игрового движка Godot. Дата создания — 2014 год. Основными особенностями являются Python-подобный синтаксис, тесная интеграция с движком, оптимизация под игры. Работает через виртуальную машину Godot. Применяется в 2D и 3D-играх, особенно indie-проектах. Является основным языком Godot, быстро набирает популярность среди независимых разработчиков.
extends Node
func _ready():
print("Hello, World!")
GLSL / HLSL
GLSL / HLSL – языки шейдеров для программирования графического конвейера GPU. GLSL создан в 2004 году, HLSL — в 2002 году. Основными особенностями являются работа с вершинами, фрагментами, текстурами, параллелизм на уровне GPU. Компилируются в промежуточный код GPU. Применяются в играх, 3D-графике, визуальных эффектах. Необходимы для современной графической разработки.
GLSL (OpenGL Shading Language)
#version 330 core
void main() {
gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0); // Белый цвет
}
HLSL (High-Level Shading Language)
float4 main() : SV_Target {
return float4(1.0, 1.0, 1.0, 1.0); // Белый цвет
}
MATLAB / Octave
MATLAB / Octave – языки и среды для численных вычислений, анализа данных и моделирования. MATLAB создан в 1984 году, Octave — в 1993 году. Основными особенностями являются матричная ориентация, богатые библиотеки, встроенная визуализация. Работают через интерпретатор. Применяются в инженерии, физике, образовании, исследовательской работе. MATLAB — коммерческий продукт, Octave — его бесплатная альтернатива.
MATLAB
disp('Hello, World!')
Octave
printf("Hello, World!\n");
DSL
DSL, или Domain Specific Languages - это языки, встроенные в другие системы.
VBA
VBA (visual-basic for Applications) – встроенный язык макросов, используемый в приложениях Microsoft Office. Дата создания — 1993 год. Основными особенностями являются тесная интеграция с Excel, Word, Access, поддержка COM-объектов. Работает через интерпретатор. Применяется для автоматизации офисных задач, обработки данных в Excel, создания пользовательских функций. Широко используется в корпоративной среде, особенно в legacy-системах.
Sub HelloWorld()
MsgBox "Hello, World!"
End Sub
MQL
MQL (MetaQuotes Language) – язык программирования для автоматической торговли на финансовых рынках. Существует в двух версиях: MQL4 и MQL5. Дата создания — начало 2000-х. Основными особенностями являются работа с котировками, графиками, таймерами, событиями. Работает внутри платформ MetaTrader 4 и 5. Применяется для написания торговых советников и скриптов. Активно используется частными трейдерами и алгоритмическими системами.
int OnStart() {
Print("Hello, World!");
return(0);
}
Regular Expressions
Regular Expressions (RegEx) – регулярные выражения, формальный язык описания шаблонов строк текста. Дата возникновения — 1950-е (теоретическая основа), широкое применение — с 1970-х. Основными особенностями являются мощные средства поиска, замены, проверки формата. Поддерживается большинством языков программирования и утилит. Применяется в валидации данных, парсинге логов, поиске текста. Универсальный инструмент в любом виде разработки.
^[\w\.-]+@[\w\.-]+\.\w{2,}$
Excel
Excel формулы – встроенный язык выражений для вычислений в электронных таблицах. Дата появления — 1979 год (VisiCalc), активное развитие — с появления Excel в 1985 году. Основными особенностями являются простота освоения, работа с ячейками, диапазонами, встроенными функциями. Работает через интерпретатор Excel. Применяется в бухгалтерии, финансовом анализе, бизнес-планировании. Один из самых массовых "языков программирования" в мире.
=ЕСЛИ(A1>10; "Больше 10"; "Меньше или равно")
ReactiveX / RxJS
ReactiveX / RxJS – DSL для реактивного программирования, основанный на наблюдаемых потоках данных. ReactiveX создан в 2012 году (Microsoft), RxJS — его реализация на JavaScript. Основными особенностями являются работа с асинхронными потоками, операторы map/filter/merge, обработка ошибок. Работает через библиотеки (например, RxJS, RxJava). Применяется в клиентских и серверных приложениях, где важна реакция на события в реальном времени.
import { of } from 'rxjs';
import { map, filter } from 'rxjs/operators';
of(1, 2, 3, 4, 5)
.pipe(
filter(x => x % 2 === 0),
map(x => x * 2)
)
.subscribe(result => console.log(result));
// Вывод: 4, 8
1C
Язык 1С, или базовый сценарий программирования (БСП) - встроенный язык программирования, используемый в платформе 1С:Предприятие, высокоуровневый и ориентированный на разработку приложений в рамках платформы 1С. Поддерживает как процедурный, так и объектно-ориентированный подход. Имеет встроенные механизмы работы с БД, документами, регистрами, отчётами. Он очень похож на обычный алгоритмический язык за счёт русскоязычных ключевых слов, вроде "Процедура НайтиНоменклатуру()".
Процедура НайтиНоменклатуру(Товар)
Найдено = Ложь;
Для Каждого СтрокаТаблицы Из ТаблицаНоменклатуры Цикл
Если СтрокаТаблицы.Наименование = Товар Тогда
Найдено = Истина;
Сообщить("Товар найден: " + Товар);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Типичные ошибки при выборе первого языка
- выбор языка только по "хайпу", без учёта задач;
- попытка учить 4-5 языков одновременно;
- упор на синтаксис без алгоритмов и структур данных;
- сравнение языков как "лучше/хуже" вместо "подходит/не подходит";
- игнорирование экосистемы — библиотек, tooling, вакансий, сообщества.
Сильная база строится на фундаменте — алгоритмы, структуры данных, понимание архитектуры и практика на реальных задачах.
Грейды и ожидания по развитию
Выбор языка важен, но на рынке в первую очередь оценивают грейд и способность решать реальные задачи.
| Грейд | Признаки уровня | Типичный ориентир по РФ |
|---|---|---|
| Junior | Пишет под ревью, учится оценивать задачи, закрывает простые баги и фичи | ~80 000–120 000 ₽ |
| Middle | Работает самостоятельно, учитывает влияние на систему целиком | ~150 000–250 000 ₽ |
| Senior | Проектирует архитектуру, ведёт сложные решения и код-ревью | ~300 000–450 000+ ₽ |
Переход от junior к middle обычно занимает 1–3 года регулярной практики. На скорость влияют не только язык, но и качество проектов, обратная связь от команды и дисциплина в обучении.
Термины, которые полезно знать
- грейд — уровень профессиональной зрелости специалиста
- код-ревью — проверка кода коллегой перед объединением в основную ветку
- архитектура — структура системы, связи между её частями и правила изменений
Что ускоряет рост от junior к middle
- регулярная практика на реальных задачах
- чтение и исправление чужого кода
- базовое понимание сетей, API и SQL
- привычка писать автотесты и документацию к проекту
Дополнительно