Аналитика
Зачем писать "hello world"?

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

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

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

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

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

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

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

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