Назовите язык программирования, в котором нет классов

Пример — Erlang: код организован в функции и модули, а параллельная работа строится вокруг процессов и сообщений.

Короткий ответ

Что ответить на собеседовании

Erlang не использует классы и наследование классов как основу языка. Программы состоят из модулей с функциями; данные представлены, например, кортежами, списками и maps. Легковесные процессы обмениваются сообщениями, но это не делает их экземплярами классов.

Подробный разбор

Ответ с пояснениями

Подходящий пример — Erlang. В нём нет классов в привычном для Ruby или Java смысле: код организуют в функции, объединённые в модули.

-module(greeting).
-export([hello/1]).

hello(Name) ->
    {hello, Name}.

После компиляции модуля вызов greeting:hello("Anna") вернёт кортеж {hello, "Anna"}. greeting здесь — имя модуля, hello/1 — экспортируемая функция с одним аргументом. Создавать экземпляр Greeting для вызова не требуется. Модули Erlang

Отсутствие классов не означает отсутствие способов структурировать программу. Данные можно представить кортежами, списками или maps, а операции над ними — функциями. Сопоставление с образцом помогает выбирать подходящую ветвь обработки.

Для параллельной работы Erlang использует изолированные легковесные процессы и передачу сообщений. Процесс можно использовать для хранения состояния сервиса, однако он не становится экземпляром класса с наследованием. Процессы и сообщения

На собеседовании достаточно назвать язык и объяснить, что используется вместо классов. Утверждение «все языки строятся на классах» неверно: классическое объектно-ориентированное программирование — лишь один из способов организации кода.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку