50 цитат о программировании всех времёнИсточник: habrahabr Перевод: © Alexander MAZUROV, Сергей Лещина, mkatsev, partizan, LaggyLuke.
Программирование сегодня - это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает. Lisp - это не язык, а строительный материал. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены. Низкоуровневый язык - это когда требуется внимание к вещам, которые никак не связаны с программами на этом языке. Программирование на С похоже на быстрые танцы на только что отполированном полу людей с острыми бритвами в руках Я всегда мечтал о том, чтобы моим компьютером можно было пользоваться так же легко, как телефоном; моя мечта сбылась: я уже не могу разобраться, как пользоваться моим телефоном. Обучение программированию не может научить быть экспертом, также как и изучение кистей и красок не может превратить кого-либо в художника. Не волнуйтесь, если что-то не работает. Если бы всё работало, вас бы уволили. Я думаю, что Microsoft назвал технологию .Net для того, чтобы она не показывалась в списках директорий Unix. Хорошо, Java, ВОЗМОЖНО, хороший пример того как должен выглядеть язык. Но тогда программы на Java - это хороший пример как НЕЛЬЗЯ писать программы. Учитывая текущее плачевное состояние наших программ, можно сказать, что программирование определенно все ещё черная магия и, пока, мы не можем называть его технической дисциплиной. Использование COBOL калечит разум; исходя из этого, обучение этому языку должно быть признано уголовно наказуемым преступлением.
FORTRAN - это не цветок, а сорняк: он вынослив, иногда расцветает и произрастает в каждом компьютере Для меня долгое время было загадкой, как По моему эгоистическому мнению, большинство программ на C должны быть отформатированы с отступами на 2 метра вниз и засыпанными землей. Когда Эволюция языков: FORTRAN - не строго типизированный язык, С - слабо типизированный язык. Ada - сильно типизированный язык. С++ - сильно раздутый язык. В хорошем дизайне добавление вещи стоит дешевле, чем сама эта вещь. Если называть Python заменой BASIC, то тогда и трансформер Optimus Prime - это только замена грузовика. Болтовня ничего не стоит. Покажите мне код. Как видно, совершенство достигается не тогда, когда уже нечего прибавить, но когда уже ничего нельзя отнять. С - это причудливый, несовершенный, но невероятно успешный язык. В теории, теория и практика неразделимы. На практике это не так. Вы не можете создавать хорошие программы без хорошей команды, но большинство софтверных команд ведут себя как проблемная семья. PHP - это маленькое зло, созданное некомпетентными новичками, в то время как Perl - это большое и коварное зло, созданное умелыми, но извращёнными профессионалами. Программирование - это как бить себя по лицу, рано или поздно ваш нос будет кровоточить. Perl - это тот язык, который одинаково выглядит как до, так и после RSA шифрования… Намного легче портировать шелл, чем скрипт на шелле. Я изобрел понятие "объектно-ориентированный", но могу заявить, что не имел в виду C++ при этом. Изучение программирования имеет такое же отношение к проектированию интерактивных систем, как обучение слепой печати к написанию стихов. Лучшие программисты не чуть-чуть лучше хороших. Они на порядок лучше по любым меркам: концептуальное мышление, скорость, изобретательность и способность находить решения. Если бы McDonalds была бы софтверной компанией, то у них один из ста Биг Маков был бы отравленным, и их ответ на это был бы: "Мы сожалеем, вот вам купон на ещё два Биг Мака." Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его. Анализ компьютерных систем - это как воспитание детей; можно нанести огромный вред, но нельзя гарантировать успех. Меня не интересует, будет ли это работаеть на ваших машинах! Мы не отдаем их заказчику! Иногда лучше остаться спать дома в понедельник, чем провести всю неделю отлаживая написанный в понедельник код. Измерять продуктивность программирования подсчетом строк кода - это так же, как оценивать постройку самолета по его весу. Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать. Люди считают, что программирование - это наука избранных, но в реальности все наоборот - просто много людей создают программы, которые используют чужие программы, как-будто строя стену из маленьких кирпичиков. Сначала учите науку программирования и всю теорию. Далее выработаете свой программистский стиль. Затем забудьте все и просто программируйте. Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня. Большинство программ на сегодняшний день подобны египетским пирамидам из миллиона кирпичиков друг на друге и без конструктивной целостности - они просто построены грубой силой и тысячами рабов. Трудность работы с програмистом заключается в том, что вы не можете понять что он делает до тех пор пока не стало слишком поздно. Итерация свойственна человеку, рекурсия божественна. Меня два раза спрашивали [члены Парламента]: "Скажите на милось, мистер Бэббидж, что случится, если вы введете в машину неверные цифры? Cможем ли мы получить правильный ответ?" Я не могу себе даже представить какая путаница в голове может привести к подобному вопросу. Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования. Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. Есть два способа создания дизайна программы. Один из них, это сделать его настолько простым, что в нем, очевидно, не будет недостатков. Другой способ - сделать его настолько запутанным, что в нем не будет очевидных недостатков. |