Зачем писать "hello world"?

Немного размышлений об одной из самых известных программ для обучения программированию.

АналитикаterminalКодОбразованиеЯзык Си

Пожалуй, самое распространённое первое задание при обучении программированию на многих языках - "вывести в терминал фразу 'hello world'". Что же даёт это начинающему программисту, и почему с завидным упорством преподаватели и авторы книг заставляют учеников "здороваться с миром"?

Одна из причин - привычка / успешный опыт - в культовой книге от Кернигана и Ритчи "Язык программирования Си" именно эта программа использовалась как первый пример. И пусть мне кажется, что этот пример несвоевременен, но мастера решили так, так что мои возражения я просто оставлю здесь.

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

Очень важно при обучении получать что-то в ответ на свои старания. Пожалуй, в этом, например, причина интереса студентов к веб-программированию. Ведь сверстать страничку и увидеть что-то понятное и относительно близкое к тому, что видел - очень важно. Это мотивирует куда сильнее, чем написание алгоритма сортировки кучей или структуры данных "двоичное дерево". Появляется радость узнавания, ощущение сопричастности с чем-то реальным. И пусть "hello world" - лишь фраза в терминале, всё же это понятный отклик.

Ну и третья, весьма вероятно, надуманная причина - так мы узнаём об основополагающем принципе отладки - дебаговые принты. Ведь помимо желания вывести "hello world" мы хотим понять: оно вообще работает? В первый то запуск - ещё бы! Так мы понимаем, что простейший и очевидный способ понять, дошло ли исполнение программы до данной точки - вставить вывод чего-то.

Вполне возможно, что всё это "поиски глубинного смысла", но трудно игнорировать тот факт, что программа "hello world" стала феноменом, надёжно прописалась в историю программирования. К примеру, эзотерический язык программирования HQ9 на 33% состоит из этой программы...

Фото Как на Bash получить файлы, изменённые за сегодняшний день
Как на Bash получить файлы, изменённые за сегодняшний день

Bash имеет огромные возможности по программированию/скриптованию и администрированию операционной системы. Не важно: Linux это, FreeBSD, или MacOS – на Bash можно сделать многое.

Фото Антипаттерн "Дойная корова"
Антипаттерн "Дойная корова"

Приятно, когда проект приносит деньги. Можно расслабиться и упражняться в эффективном менеджменте. Митинги крутятся, лавеха мутится!