Согласно результатам последнего исследования Stack Overflow, разработчикам на языке программирования Zig платят больше, чем остальным. Данные надежны: в опросе приняли участие почти 90 тысяч IT-специалистов из 185 стран. То есть выборка вполне репрезентативная. Но что это за язык такой? Подробности — под катом.
Коротко о Zig
Это довольно молодой язык программирования, который впервые появился в феврале 2016 года. Он до сих пор не вышел из бета-версии, несмотря на то, что ему исполнилось уже почти 9 лет. На данный момент последняя версия языка — 0.13.0. Ее выпустили 6 июня 2024 г.
Плюсы языка в том, что он достаточно простой в освоении, а код, написанный на этом ЯП, легко читается. То есть разработчик, взглянув на исходники какой-то программы, может достаточно быстро понять что к чему.
Есть и другие достоинства:
статически компилируется, поэтому не имеет зависимостей во время выполнения;
использует развитую и весьма надежную инфраструктуру LLVM, которая обеспечивает глубокую оптимизацию и поддержку большинства основных платформ;
поддерживает кросс-компиляцию «из коробки» для большинства основных платформ;
поставляется с исходным кодом стандартной библиотеки C, которая будет динамически компилироваться при необходимости для любой поддерживаемой платформы;
содержит систему сборки с поддержкой кэширования;
компилирует код на C и C++ с поддержкой стандартной библиотеки C.
Важная особенность Zig — возможность прямого использования так называемых заголовочных файлов, которые написаны на С. Кроме того, язык совместим и с кодовыми базами С, а разработчики без проблем могут компилировать код на С и С++ посредством компилятора Zig. Вот пример кода:
const std = @import("std");
const parseInt = std.fmt.parseInt;
test "parse integers" {
const input = "123 67 89,99";
const ally = std.testing.allocator;
var list = std.ArrayList(u32).init(ally);
// Ensure the list is freed at scope exit.
// Try commenting out this line!
defer list.deinit();
var it = std.mem.tokenizeAny(u8, input, " ,");
while (it.next()) |num| {
const n = try parseInt(u32, num, 10);
try list.append(n);
}
const expected = [_]u32{ 123, 67, 89, 99 };
for (expected, list.items) |exp, actual| {
try std.testing.expectEqual(exp, actual);
}
}
Совместимость Zig с языком С его разработчики объясняют тем, что у ЯП, который не умеет взаимодействовать с кодом на С, большие шансы остаться неизвестным. А вот Zig пытается стать новым переносимым языком для библиотек, одновременно обеспечивая простоту соответствия «бинарному интерфейсу приложений» (ABI) языка C для внешних функций и предлагая безопасность и модель языка, который предотвращает распространенные ошибки в реализациях.
Отмечается, что на Zig можно не только писать вместо кода на C или C++, но и использовать его в качестве замены autotools, cmake, make, scons, ninja и т. д. При этом ЯП предоставляет пакетный менеджер для нативных зависимостей.
Хорошо, а что насчет денег?
Несмотря на то, что специалистов по Zig крайне мало (около 0,83% от 100% опрошенных), платят этим разработчикам больше, чем тем, кто пишет код на других ЯП. Средняя зарплата в долларах США составляет для Zig-программистов от $103 000 в год. Если в рублях, то это около 748 тыс. руб. за месяц или 8 986 880 руб. в год.
Это в два раза выше, чем, например, зарплата российского Objective-С-разработчика. Вот список зарплат программистов на разных языках по данным «Хабр Карьеры» по итогам 2023 года (рублей в месяц):
Objective-C — 379 000
Scala — 300 000
Ruby — 280 000
Elixir — 280 000
Golang — 271 000
Kotlin — 250 000
Swift — 245 000
Java — 230 000
C# — 203 000
PHP — 200 000
C++ — 200 000
JavaScript — 196 000
Python — 196 000
C — 158 000
По тем же данным «Хабр Карьеры», во втором полугодии 2023 года зарплаты выросли в большей части языков программирования. Самый ощутимый рост зарплат был у разработчиков в Objective-C и С++ — на 21%, до 379 000 и 200 000 ₽ соответственно.
Было бы интересно узнать, есть ли среди наших читателей те разработчики, кто пишет на Zig. К вам пара вопросов: вы просто тестируете язык или уже используете его в качестве основного? Ответы можно оставить в комментариях к статье.
Что касается опроса на Stack Overflow, малоизвестные языки программирования сейчас неплохо оплачиваются. Согласно данным ресурса, средняя годовая зарплата разработчиков на языках Dart и SAS по итогам 2023 года выросла на 20%. Что касается популярности указанных двух ЯП, то по данным Stack Overflow они находятся на 23 и 22 местах соответственно. Zig размещается в этом рейтинге на 41 месте.
Ну а самый популярный язык по рейтингу Tiob в течение уже 10 лет — JavaScript. Второе место участники опроса отдали HTML/CSS, третье — Python.
Комментарии (10)
Veliant
02.07.2024 09:40+8Пытался попробовать. Хотел написать парсинг одного формата.. в итоге оказалось что для того чтоб считать из бинарного файла в структуру надо очень сильно поизвращаться с аллокаторами, доп обертками(свой десериализатор) и прочим тк в zig структуры это не совсем то же самое что в c++.
И вот эти нюансы, что какие-то функции надо вызывать с try, какие-то без и тд.
В общем, очень непривычный язык
VanKrock
02.07.2024 09:40+1чем zig лучше D?
semenInRussia
02.07.2024 09:40+1У Zig очень классные макросы(может это не так называется), которые можно выполнять в compiletime.
И ещё наверное много чего можно накинуть
QtRoS
02.07.2024 09:40Отсутствие полноценного строкового типа отталкивает. Кмк авторы зазря побоялись отойти от канонов C, сделав строки массивом символов.
dph
02.07.2024 09:40+6Э, какой смысл сравнивать среднюю зарплату до налогов в США и медианную месячную после налогов в РФ?
Dominux
02.07.2024 09:40+4разработчикам на языке программирования Zig платят больше, чем остальным. Данные надежны: в опросе приняли участие почти 90 тысяч IT-специалистов из 185 стран
Типичный байт, прям как во времена становления раста. На такое ведется лишь пендосня, у них все деньгами измеряется!
Самое главное, что никто не сказал, что им платят много, потому что их берут только на какие-то сложные проекты и только сеньорами/тимлидами. Даже сейчас, в 2024, фиг найдешь работу на расте, вакансий просто нет. Про зиг я вообще молчу
dmitrysbor
02.07.2024 09:40Ну я бы не сказал, что это прямо легко читается. А синтаксис и общую организацию работы С не люблю с детства. Это вообще не язык верхнего уровня. Так что единственное преимущество какое то зыбкое.
Akuma
Было бы неплохо указывать какие-то известные проекты, написанные на Zig.
Правда кроме https://bun.sh ничего в голову не приходит
Pongo
Из известных есть еще распределенная БД tigerbeetle https://github.com/tigerbeetle/tigerbeetle