{}const=>[]async()letfn</>var
РазработкаОбзор

На каком языке написаны игры, браузеры и мессенджеры: карта стеков

Почему у большого продукта нет одного языка: Unreal и Unity, Chromium и Firefox, Telegram и Signal, нативные клиенты, backend, web, протоколы и сборка.

К

Кодик

Автор

7 мин чтения

Ответ на вопрос, на каком языке написаны игры, браузеры и мессенджеры: почти никогда не на одном. Производительное ядро, интерфейс, мобильные клиенты, web-версия, backend и инструменты сборки используют разные стеки. Unreal активно использует C++ и Blueprint, Unity использует C# для scripting, Chromium сочетает большую C++ базу с JavaScript и растущим Rust-слоем, а клиенты мессенджеров зависят от платформы.

Фраза «на каком языке написан продукт» требует уточнения компонента и версии. Открытый репозиторий показывает текущий исходный код, но не всегда серверную часть. Документация движка описывает поддерживаемый язык проекта, а не внутреннюю реализацию всего движка. Магазин приложений не раскрывает архитектуру. Надёжный ответ связывает утверждение с конкретным репозиторием, каталогом или официальной документацией.

1Игры

Движок, gameplay scripts, shaders, tools и backend.

2Браузеры

Engine, UI, sandbox, codecs, JavaScript и build tools.

3Мессенджеры

iOS, Android, desktop, web, server и protocol.

Слои продукта: движок, gameplay, клиенты, сервер и tools
Вопрос разбирается по слоям: у игры отдельно движок, gameplay, shaders, инструменты и онлайн-сервис, у браузера engine, UI, sandbox и кодеки, у мессенджера клиенты iOS, Android, desktop, web и сервер.

На каком языке написаны игры, браузеры и мессенджеры по слоям

Вместо одного ответа нарисуйте архитектурную карточку. Пример для игры разделяет движок, gameplay, shaders, инструменты и онлайн-сервис. Языки выбирают по ограничениям слоя. Это не означает, что каждый проект Unreal обязан использовать одинаковую комбинацию.

Game product
├─ Engine and native modules: C++
├─ Gameplay layer: C++ + visual Blueprint
├─ Shaders: engine shader language
├─ Tools and content pipeline: C++, Python or scripts
├─ Online backend: project-specific stack
└─ Web site and account: HTML, CSS, JavaScript + backend

Verification checklist:
1. official documentation
2. official source repository
3. build configuration and extensions
4. component and version
5. date of inspection
Ожидаемый результат
  • Ответ разделяет продукт на проверяемые компоненты
  • Язык связан с источником и назначением, а не с догадкой по интерфейсу

Epic рекомендует сочетать C++ и Blueprint в большинстве проектов Unreal. Unity scripting использует C#. Chromium публикует C++ исходники и официальную инфраструктуру Rust с FFI. Firefox также является многоязычным проектом. Telegram Desktop имеет открытый C++ репозиторий, а iOS и Android клиенты используют свои нативные стеки и общие библиотеки. Сервер Telegram при этом не опубликован полностью, поэтому не выводите его язык из клиента.

🔥 100 000+ учеников уже с нами

Устал читать теорию?
Пора кодить!

Кодик — приложение, где ты учишься программировать через практику. AI-наставник, интерактивные уроки, реальные проекты.

🤖 AI 24/7
🎓 Сертификаты
💰 Бесплатно
🚀 Начать учиться
Присоединились сегодня

Типичные языки по продукту и слою

ЭлементЧто означаетЧто делать
Unreal-играC++ плюс BlueprintGameplay и engine integration
Unity-играC# scripts плюс native engineИгровая логика поверх движка
Chromium-браузерC++, JavaScript, Rust и инструментыРазные процессы и компоненты
iOS-мессенджерSwift, Objective-C, C/C++ библиотекиНативный UI и общие протоколы
Android-мессенджерKotlin, Java, C/C++ библиотекиНативный UI и media

Таблица показывает типичный слой, а не полный language census конкретного commit. Один репозиторий содержит generated code, vendor libraries, tests и build scripts, которые искажают простую статистику. Строки кода тоже не равны архитектурной важности. Лучше найти точку входа, систему сборки, публичные API и границы процессов. Для закрытого продукта формулируйте только подтверждённое.

C++, C#, Rust, Swift и Kotlin в разных слоях одного продукта
Почему один ответ не работает: Unreal сочетает C++ и Blueprint, Unity держит C# поверх нативного движка, Chromium добавляет к C++ базе JavaScript и Rust, а мессенджер собирается из Swift, Kotlin и общих C/C++ библиотек.

Практика: разберите Chromium и Telegram Desktop по слоям

Возьмите два открытых продукта и заведите на каждый архитектурную карточку из пяти компонентов со ссылкой на источник. Успех проверяется просто: на вопрос «на каком языке написан Telegram» вы отвечаете не одним словом, а строками про desktop, iOS, Android, web и сервер. Всё, что не подтверждено официальным источником, помечайте отдельно.

  1. Назвать компонент точно. Запишите в файле languages.md формулировку вида «Telegram Desktop, официальный репозиторий, клиент под Windows, macOS и Linux». Пока компонент не назван, спор о языке продукта бессмысленный.
  2. Найти официальный репозиторий. Ссылку на исходники берите с официального сайта или из документации, а не из случайной статьи. Для Telegram Desktop это открытый C++ репозиторий, для Chromium публичные исходники проекта; серверную часть Telegram так найти не получится, и это тоже результат.
  3. Открыть файлы сборки. Посмотрите конфигурацию сборки и расширения файлов в основных каталогах: там видно, какие языки реально собираются и какие зависимости подключены. Это надёжнее процентов на странице репозитория.
  4. Сверить с документацией. Проверьте каждое утверждение по официальным docs: Unreal описывает связку C++ и Blueprint, Unity документирует C# для scripting. Документация говорит о языке вашего проекта, не переносите это на внутреннюю реализацию движка.
  5. Зафиксировать дату проверки. Допишите к каждой строке дату и версию или коммит, на котором смотрели. Chromium наращивает Rust-слой постепенно, поэтому ответ без даты устаревает молча.

Проверьте карточку на слабом месте: попробуйте подтвердить строку про сервер мессенджера. Официального источника для закрытой серверной части не найдётся, и в карточке должно остаться «не подтверждено», а не язык, угаданный по клиенту. Затем посмотрите проценты языков на странице репозитория и прикиньте, как они изменятся, если убрать vendor-библиотеки, сгенерированный код и тесты.

Критерий готовности. Готово, когда у каждого из пяти компонентов есть язык, ссылка на источник и дата проверки. Вы можете объяснить, почему JavaScript на странице не делает браузер написанным на JavaScript и почему в Unity-игре C# отвечает за scripting, а не за весь движок. Непроверенные строки помечены отдельно и не выдаются за факт.

Сделайте такую же карточку для движка, с которым работаете сами, и добавьте строки про shaders и content pipeline. Полезно сравнить два браузера: у Chromium и Firefox набор слоёв похож, а языковой состав отличается. Готовая карточка легко превращается в ответ на собеседовании: компонент, язык, источник, дата.

Частые ошибки и почему они появляются

Утверждение «Telegram написан на X» часто смешивает desktop-клиент, мобильные приложения и сервер. Вторая ошибка: считать язык страницы языком браузера. JavaScript выполняется внутри браузера, но сам engine имеет другие слои. Третья: переносить язык движка на каждую игру и забывать gameplay scripts, shaders и backend.

Один язык на весь продукт

Разделите client, server, engine, UI и tools.

Случайная статья как источник

Ищите официальные docs и repositories с датой.

Проценты GitHub без контекста

Отделяйте vendor, generated, tests и основное ядро.

Самопроверка

На каком языке написаны компьютерные игры?

У игры нет одного языка: движок и нативные модули обычно пишут на C++, gameplay в Unreal делают на C++ вместе с Blueprint, а в Unity на C#, шейдеры на языке шейдеров движка, инструменты и backend на своём стеке. Ответ имеет смысл только вместе с названием слоя.

Unity-игра целиком написана на C#?

Unity-игра не написана целиком на C#: на нём делают scripting, то есть игровую логику поверх движка. Сам движок и его библиотеки собраны из других слоёв, часть кода приходит из плагинов и нативных модулей.

На каком языке написан браузер Chrome?

Chrome построен на Chromium, где опубликована большая C++ база, есть JavaScript в интерфейсных частях и официальная инфраструктура Rust с FFI. Одним языком браузер не описывается: engine, UI, sandbox и кодеки разведены по разным компонентам и процессам.

Язык сайта совпадает с языком браузера?

Язык страницы и язык браузера не связаны: JavaScript выполняется внутри браузера, а сам браузер собран на других языках. Страница для движка это входные данные, а не его исходный код.

На каком языке написан Telegram?

У Telegram разные клиенты: desktop-версия имеет открытый C++ репозиторий, iOS собирают на Swift и Objective-C с C/C++ библиотеками, Android на Kotlin и Java с теми же общими библиотеками. Сервер опубликован не полностью, поэтому его язык не выводят из клиента.

Можно ли доверять процентам языков на странице репозитория?

Проценты языков считаются по файлам репозитория, куда попадают vendor-библиотеки, сгенерированный код, тесты и скрипты сборки. Для вывода об архитектуре смотрите точку входа, систему сборки, публичные API и границы процессов.

Что делать дальше

Выберите один открытый продукт и сделайте карту пяти компонентов со ссылками на исходники. Начать с базового кода можно на курсе Java. Игровой scripting разобран в статье про Lua, а выбор первого языка в сравнении Python и JavaScript.

🎯Хватит откладывать

Понравилась статья?
Пора применять на практике!

В Кодик ты не просто читаешь — ты сразу пишешь код. Теория + практика = реальный скилл.

Мгновенная практика
🧠AI объяснит код
🏆Сертификат

Без регистрации • Без карты