tariel.ge › Полезное: бесплатные книги › Программирование: от нулей и единиц до PythonБесплатно · автор Тариел Бежанидзе
← Учебник по программированию ЛИСТ 08БЛОК 1 — НЕМНОГО ИСТОРИИ · ФИНАЛРЕВ. 1
Глава 08 · Немного истории

От C к современности: краткая эволюционная карта языков

Финал исторического блока — путь от языка, писавшего операционные системы, до языка, который встретит тебя в блоке 3 этой книги, и честный ответ на вопрос "а почему именно Python выглядит именно так".

C — власть над железом ценой безопасности

Язык C, созданный Деннисом Ритчи в 1972 году, решал другую задачу, чем Pascal — не обучение структурному мышлению, а системное программирование: на нём была переписана сама операционная система Unix. C дал программисту прямой доступ к памяти через указатели — гораздо больше контроля и производительности, чем безопасный, но более ограниченный подход Pascal, но и гораздо больше способов случайно повредить данные или вызвать трудноуловимую ошибку.

Синтаксическое влияние, пережившее сам язык

Фигурные скобки для обозначения блоков кода, точка с запятой в конце инструкции — эти синтаксические решения C оказались настолько влиятельны, что легли в основу целого "семейства C-подобных языков": C++, Java, C#, JavaScript и множество других переняли эту же визуальную грамматику. Python, который встретится в блоке 3, — заметное исключение: он сознательно отказался от фигурных скобок в пользу отступов как обязательной части синтаксиса — прямое развитие идеи, которая в Pascal (глава 07) была лишь необязательным соглашением для читаемости, а в Python стала строгим требованием языка.

Объектно-ориентированное программирование — C++

В начале 1980-х Бьёрн Страуструп добавил к C концепции объектно-ориентированного программирования (классы, объекты, наследование), создав C++. Это не просто ещё один язык, а смена целой парадигмы мышления о структуре программ — от "последовательности процедур, обрабатывающих данные" к "взаимодействующим объектам, каждый из которых несёт и данные, и поведение вместе". Подробно эта идея разбирается в главе 24 этой книги, уже применительно к Python — но исторически именно C++ вывел ООП в массовое употребление.

Java — переносимость другим путём

Java (1995) предложила собственный ответ на проблему переносимости, разобранную в главе 04: вместо прямой компиляции под конкретный процессор — компиляция в промежуточный байт-код, исполняемый универсальной виртуальной машиной (JVM), устанавливаемой отдельно на каждую платформу. Лозунг "написано однажды — работает everywhere" — прямое практическое применение архитектуры байт-код + виртуальная машина, уже разобранной в главе 05 как раз на примере того, что происходит внутри Python.

Взлёт скриптовых языков — путь к Python

Параллельно развивалось другое направление — языки, сознательно жертвующие частью производительности ради скорости написания кода и читаемости: Perl, затем Python (создан Гвидо ван Россумом в 1991 году), позже JavaScript и Ruby. Их объединяет общая философия: динамическая типизация вместо строгой (переменная просто получает значение без обязательного предварительного объявления типа, в отличие от Pascal главы 07), интерпретация или гибридный байт-код вместо прямой компиляции (глава 05), и явный приоритет на удобство программиста, а не на максимальную скорость выполнения программы.

Философия Python — не случайность, а декларация

У Python есть неофициальный, но официально распространяемый прямо внутри языка (командой import this) манифест — "Дзен Python", формулирующий принципы вроде "читаемость имеет значение" и "должен быть один, желательно единственный, очевидный способ сделать это". Это прямое философское продолжение того пути, что уже прослеживался в этом блоке: доступность BASIC (глава 06), структурная дисциплина Pascal (глава 07), но сознательный отказ от лаконичной, но опасной терсености C и от многословной церемониальности многих реализаций ООП вроде классической Java.

Современная карта — нет единственного "лучшего" языка

НишаТипичный выбор сегодня
Системное программирование, максимальный контроль над железомC, современный Rust (память безопаснее C, но тот же уровень контроля)
Веб-фронтенд (то, что выполняется в браузере)JavaScript и его экосистема
Анализ данных, автоматизация, обучение, быстрые прототипыPython — тема блока 3 этой книги
Крупные корпоративные системыJava, C#
Мобильные приложенияSwift (iOS), Kotlin (Android)

Разные языки решают разные задачи с разными компромиссами между скоростью выполнения, безопасностью, скоростью написания кода и удобством для конкретной ниши — вопрос "какой язык лучше" в отрыве от конкретной задачи почти не имеет содержательного ответа, это как спрашивать, какой инструмент из ящика "лучше" — гаечный ключ или отвёртка.

Итог блока «Немного истории»

Три главы провели путь от GOTO-хаоса BASIC через структурную дисциплину Pascal до современного разнообразия языков — и явно показали, откуда у Python взялись отступы вместо скобок, динамическая типизация и философия читаемости. Следующий блок временно откладывает сам язык программирования и обращается к другому фундаменту — командной строке трёх операционных систем, без которой полноценная работа с Python (блок 3) остаётся неполной.

Глава08 — От C к современности
Блок1 — Немного истории — финал
Далее09 — Терминал macOS
СтатусГотово · рев. 1
Предыдущая глава ← 07 · Pascal Следующая глава 09 · Терминал macOS →

Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.