Читаем Just for fun. Рассказ нечаянного революционера полностью

Вот очень наглядный пример не из компьютерной области, а из математики. Легенда гласит, что, когда великий немецкий математик Карл Фридрих Гаусс еще учился в школе, его учитель, чтобы занять учеников, велел им сложить все целые числа от 1 до 100. Учитель рассчитывал, что ребята провозятся с этим целый день. Но будущий математик уже через пять минут получил верный ответ: 5050. Настоящее решение не в том, чтобы тупо складывать все эти числа – это глупо и скучно. Гаусс просто заметил, что 1 и 100 в сумме дают 101, а 2 и 99 снова дают 101. Как и 3 плюс 98. И так до 50 плюс 51. За считанные секунды он понял, что таких пар 50, каждая в сумме дает 101, поэтому ответ – 5050.

Может быть, эта история и недостоверна, но идея ясна: великий математик не станет решать задачу долгим и нудным способом, потому что увидит лежащую в основе схему и с ее помощью решит задачу быстро и эффектно. То же самое, безусловно, применимо и к компьютерной науке. Конечно, можно просто написать программу, которая вычисляет сумму. Для современных компьютеров это элементарная задача. Но великий программист узнает ответ просто потому, что у него голова на плечах. Он придумает красивую программу, которая будет решать задачу по-другому – правильно.

Очень трудно объяснить, что интересного в том, чтобы биться головой об стену три дня подряд, не зная, как лучше, красивее решить задачу. Но когда ты нашел решение – это чувство нельзя сравнить ни с чем в мире.

VI

Мой эмулятор терминала обрастал наворотами. Я регулярно использовал его, чтобы подключиться к университетскому компьютеру и получить почту или поучаствовать в конференции по Minix. Беда была в том, что я хотел скачивать и закачивать файлы. То есть мне нужно было уметь писать на диск. Для этого моей программе эмуляции нужен был драйвер дисковода. А еще ей был нужен драйвер файловой системы, чтобы она могла вникать в организацию диска и записывать скачиваемые файлы.

Тут я чуть было не сдался: мне показалось, что возни будет слишком много и дело того не стоит. Но заняться все равно было особенно нечем. В университете той весной не было ничего сложного. Развлекался я только раз в неделю – по средам ходил на собрания «Спектрума». Я был настолько антиобщественным животным, что это была для меня единственная возможность отвлечься от учебы и программирования. Без этих вечеринок я был бы в ту весну полным отшельником, а так – был почти отшельником. «Спектрум» открывал мне путь к общению, поэтому я вряд ли пропустил хоть одну встречу. Эти собрания были для меня настолько важны, что иногда я терял сон в ожидании очередного вечера, надеясь, что не буду там постоянно думать о том, какой я неконтактный, какой у меня нос и что у меня нет девушки. Это все стандартные для хакеров заморочки.

Одним словом, жизнь моя не блистала разнообразием. А разработка драйверов для дисковода и файловой системы казалась интересным делом. И я решил им заняться. Написал драйвер дисковода. А поскольку я хотел записывать файлы в файловую систему Minix, да к тому же эта система была хорошо документирована, я сделал свою файловую систему совместимой с системой Minix. Таким образом я мог читать файлы, созданные в Minix, и писать файлы на тот же диск, так что Minix могла читать файлы, созданные моей программой эмуляции терминала.

Я крутился как белка в колесе: программирование – сон – программирование – еда (соленые сухарики) – программирование – сон – программирование – душ (на скорую руку) – программирование. К концу работы стало ясно, что моя программа превращается в операционную систему. И я стал думать о ней не как о программе эмуляции терминала, а как об операционной системе. Этот сдвиг произошел, вероятно, в дурмане одного из затянувшихся сеансов программирования. Было это днем или ночью? Не знаю. Сижу я в своем старом халате и работаю с программой эмуляции, снабженной дополнительными функциями. А потом вдруг понимаю, что этих функций стало так много, что программа превратилась в рабочую версию операционной системы.

Я называл ее «программой эмуляции терминала типа gnu-emacs». Gnu-emacs начинался как редактор, но его создатели встроили в него кучу разных функций. Они хотели, чтоб это был редактор, который можно программировать, но потом программистская часть выросла до невообразимых размеров и редактор стал настоящим кошмаром. В него входит все, кроме разве что кухонной раковины, именно поэтому кухонная раковина часто служит его значком. Программа известна как чудовищный монстр, который включает больше функций, чем в принципе может понадобиться редактору. То же самое происходило с моим эмулятором терминала. Он превращался в нечто гораздо большее.


Перейти на страницу:

Похожие книги

10 гениев бизнеса
10 гениев бизнеса

Люди, о которых вы прочтете в этой книге, по-разному относились к своему богатству. Одни считали приумножение своих активов чрезвычайно важным, другие, наоборот, рассматривали свои, да и чужие деньги лишь как средство для достижения иных целей. Но общим для них является то, что их имена в той или иной степени становились знаковыми. Так, например, имена Альфреда Нобеля и Павла Третьякова – это символы культурных достижений человечества (Нобелевская премия и Третьяковская галерея). Конрад Хилтон и Генри Форд дали свои имена знаменитым торговым маркам – отельной и автомобильной. Биографии именно таких людей-символов, с их особым отношением к деньгам, власти, прибыли и вообще отношением к жизни мы и постарались включить в эту книгу.

А. Ходоренко

Карьера, кадры / Биографии и Мемуары / О бизнесе популярно / Документальное / Финансы и бизнес
Афганистан. Честь имею!
Афганистан. Честь имею!

Новая книга доктора технических и кандидата военных наук полковника С.В.Баленко посвящена судьбам легендарных воинов — героев спецназа ГРУ.Одной из важных вех в истории спецназа ГРУ стала Афганская война, которая унесла жизни многих тысяч советских солдат. Отряды спецназовцев самоотверженно действовали в тылу врага, осуществляли разведку, в случае необходимости уничтожали командные пункты, ракетные установки, нарушали связь и энергоснабжение, разрушали транспортные коммуникации противника — выполняли самые сложные и опасные задания советского командования. Вначале это были отдельные отряды, а ближе к концу войны их объединили в две бригады, которые для конспирации назывались отдельными мотострелковыми батальонами.В этой книге рассказано о героях‑спецназовцах, которым не суждено было живыми вернуться на Родину. Но на ее страницах они предстают перед нами как живые. Мы можем всмотреться в их лица, прочесть письма, которые они писали родным, узнать о беспримерных подвигах, которые они совершили во имя своего воинского долга перед Родиной…

Сергей Викторович Баленко

Биографии и Мемуары