Не забывайте о "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