TGViewer
Metaprogramming Metaprogramming @metaprogramming · 878 subscribers
Post #130 251
Языки программирования для разработки игр (2/3)

Кстати, спрашивали, зачем я посты разбиваю на несколько эпизодов. Потому что Телеграм не пропускает длинный текст, а на какой-нибудь Медиум я кросс-постить не хочу, мне кажется это будет менее удобно для читателей.

Переходим к списку языков.

1. Ruby (Python, etc.). Знакомо, просто, есть удобные библиотеки (Gosu для Ruby, pygame и множество других для Python). Есть библиотеки общего назначения на любой вкус и под любую задачу. Неудобно компилировать всё в один файл, чтобы можно было легко распространять.

2. Go. Хороший язык для 1985-го года. Использует передовую новинку – сборку мусора – в остальном использует хорошо знакомый набор конструкций школьного Pascal. Примерно так, например, можно из массива выбрать все положительные числа и умножить каждое на два, получив новый массив:

numbers := []int{-1, 1, 2, -3, 5}
result := make([]int, 0, len(numbers))
for _, x := range numbers {
if x > 0 {
result = append(result, x*2)
}
}

Что ж, неплохо было бы для языка сорокалетней давности. В языках двадцатилетней давности уже было что-то такое:

numbers = [-1, 1, 2, -3, 5]
numbers.filter { |x| x > 0 }.map { |x| x * 2 }

Зачем намеренно нужно пользоваться новым языком, который в момент рождения устарел на 2 поколения, я не знаю. Разработан и поддерживается Google, которому, по мнению создателя языка, этот инструмент помогает заставить не обременённых избыточными талантами выпускников вузов писать хоть как-то работающий код.

3. C. Вечная классика, которая, вероятно, никогда не умрёт. "Лингва франка", который определил, например, конвенцию вызова функций, используемую повсеместно до сих пор (и нет оснований считать, что она будет в обозримой перспективе заменена чем-то радикально новым). Говорить на универсальном языке дело хорошее, вам без проблем доступен весь набор библиотек. Сам язык архаичный: полностью ручное управление памятью, отсутствие удобных функций в стандартной библиотеке и т.д.

4. C++. Крайне широко применяется в геймдеве и позволяет совместить работу и на низком уровне (ну, к примеру перекладывать вручную биты и байты) и на высоком (классы, ООП). Путь его развития был тяжёлым и тернистым, только к концу двухтысячных комитет разработчиков вдруг очнулся и осознал, что на дворе не 1985-й год, а уже 21-й век. Современных подходов и концепций туда с тех времён напихали под завязку и горшочек продолжает варить: в некотором смысле язык-антипод Go. Для иллюстрации подходит известный анекдот с панчлайном "фонарь, фонарь мне на лоб ещё прилепите!".

5. Zig, Odin. В одну кучу, т.к. без содержательной оценки. Стильно, модно, молодёжно, ориентированно в числе прочего на геймдев. Мне кажется, создатели этих языков просто не справляются с взятыми на себя задачами и какие-то базовые вещи делают ошибочно. Впрочем, не боги горшки обжигают, может быть что-нибудь и выйдет интересное из одного из них или обоих через 3-5 лет.

6. Crystal. Ruby-подобный синтаксис и отношение к пользователю ("программирование должно приносить удовольствие"), помноженный на статическую типизацию, компилирование, высокую производительность. Язык достаточно зрелый, но нет полноценной поддержки Windows.

7. Rust. Создатели языка верно поняли проблематику ручного управления памятью (вкратце: люди ошибаются), но вместо того, чтобы подойти к задаче путём разработки особо умного алгоритма, помогающего программисту не совершать ошибки, они выстроили систему костылей, которая заставляет разработчика с помощью нескольких эзотерических приёмов постоянно доказывать по-прежнему тупому компилятору, что он нигде не ошибся.

Перейдём к шорт-листу победителей.

#programming
More from @metaprogramming
  1. Sep 15, 2026Творческое мнение читателей по поднятым вопросам
  2. Sep 13, 2026Философский нейроколобок Феномен психологической проекции (читаешь и чувствуешь – он же жи…
  3. Sep 13, 2026Современные модели специально обучены отвечать нейтрально на вопрос о наличии у них сознан…
  4. Sep 12, 2026Нереализованный пафос математики в эпоху ИИ В связи с изложенным политическое возмущение м…
  5. Sep 12, 2026Математика как майнинг благодати? При чтении всего этого складывается впечатление, что мат…
  6. Sep 12, 2026Снова про борьбу математиков с ИИ Ещё два громких обсуждения в жанре "математики против ИИ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →