Не забывайте о "Hello, world"

(В оригинале - Learn to Say "Hello, World")

Paul Lee, имя пользователя leep, более известен как Hoppy, имел репутацию эксперта в программировании. Мне требовалась помощь. Я подошел к его рабочему месту и спросил, не мог бы он взглянуть на мой код?

«Конечно», - сказал Hoppy, отодвигая стул. Я постарался не зацепить пирамиду пустых банок из под колы, стоящую позади него. «Какой код?»

«В функции в файле», - ответил я.

«Что ж, давай посмотрим». Hoppy отодвинул в сторону копию K&R и придвинул к себе клавиатуру.

Так, а где же IDE? Похоже, что у Hoppy IDE не был запущен вообще, а был только какой-то редактор, которого я совсем не знал. Несколько нажатий клавиш – и файл открыт. На нужной функции (а файл был очень большим). Он пролистал функцию до того места, о котором я говорил.

«А что произойдет, если x будет отрицательным?» - спросил я. «Похоже, что так не должно быть».

Я потратил все утро на поиск способа сделать x отрицательным, но большая функция в большом файле была лишь частью очень большого проекта, и цикл перекомпиляции и перезапуска был слишком долгим для эффективной работы. Возможно, такой эксперт, каким был Hoppy, мог бы просто дать мне ответ?

Hoppy ответил, что он не уверен. К моему удивлению, он не стал ничего делать в K&R. Вместо этого, он скопировал часть кода себе в редактор, заменил в нем индентацию, сделал его функцией. После чего добавил еще одну функцию с бесконечным циклом, запрашивающую у пользователя входные данные, вызывающую нашу функцию и печатающую результат. Он сохранил это все в файл tryit.c. Все это я бы мог сделать сам, хотя и не так быстро. Однако следующий шаг был одновременно и простым, и полностью для меня новым.

$ cc tryit.c && ./a.out

Вау! Его программа, еще несколько назад бывшая лишь идеей, уже работала! Мы попробовали разные варианты входных данных и быстро подтвердили мои подозрения (хоть в чем-то я оказался прав). После чего он перепроверил отдельные места в K&R. Я поблагодарил его и пошел к себе, снова постаравшись не зацепить стоящую позади него пирамиду пустых баночек.

Придя на свое место, я закрыл IDE. Я так долго работал над большим проектом с помощью больших инструментов, что я начал думать, что это именно то, что я и должен делать. Однако компьютеры способны решать и небольшие задачи. Я открыл текстовый редактор и начал печатать.

#include <stdio.h>

int main()
{
    printf("Hello, World\n");
    return 0;
}

Автор оригинала - Thomas Guest

Last updated