Development

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

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

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