Как писатель художественной и технической литературы, я знаком с фразой «убей своих любимых» и ей подобными. Цель этого совета, насколько я могу судить, состоит в том, чтобы напомнить писателям, что эмоциональная привязанность к их персонажам может повлиять на их суждения, и их сочинение пострадает от этого.

Несмотря на многие современные заявления о происхождении этой фразы, убей своих любимых на самом деле является частью письменного совета из эссе Сэр Артур Куиллер-Коуч 1914 года О стиле. по-прежнему имеет значение сегодня. Я вернусь к этой фразе чуть позже.

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

Эта страсть - внутренний огонь, который процветает благодаря обучению, открытиям и созданию новых и удивительных вещей - отвечает за такие замечательные проекты с открытым исходным кодом, как Kubernetes, Docker, Cloud Foundry, постоянно растущую коллекцию размещаемых проектов Cloud Native Computing Foundation. , и бесчисленное количество других проектов, которыми мы, как сообщество разработчиков, должны безмерно гордиться.

Хотя многие считают нашу профессию холодной, расчетливой и бесстрастной, это далеко от истины. Когда мы учимся, наш разум запечатлевает чувственные и эмоциональные воспоминания вместе с этими знаниями. Мы не поглощаем пустые факты на пустом месте. Мы помним, что чувствовали, когда впервые узнали о квантовой интерпретации транзакций, мы помним запах первой гигантской библиотеки, в которую мы вошли.

Когда разговор заходит о языке программирования C, в моем уме возникает образ моего деда. Я чувствую запах богатого дерева в его кабинете, потрескавшуюся кожу его стула. Я вижу потертые зеленые уголки календаря, прикрепленные к верхней части его стола. Я помню, какой ужасный трепет я испытал, когда загрузил дискету для компилятора Borland C в его компьютер AT&T. Хотя сегодня я могу использовать необработанный C для чего-то другого, кроме IoT, у меня всегда будут теплые воспоминания и очень сильная связь с языком C.

Когда я думаю о Паскале, я испытываю такое же чувство радости. Я помню свою первую онлайн-игру, которую я когда-либо написал, Corporate Wars, игру, разработанную для работы на коммутируемых досках объявлений (BBS) со скоростью 2400 бод, где пользователи участвовали в шпионаже друг против друга с 16-цветным текстом ASCII. онлайн.

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

Ржавчина заставила меня почувствовать тот кайф исследователя, который я почувствовал, когда впервые столкнулся с C. Я чувствовал себя спелеологом, копающимся глубоко в пещере, наполненной спрятанными сокровищами. За исключением того, что моя была заминирована и охранялась злобным компилятором, проверяющим заимствования.

Эликсир наполняет меня дзен-спокойствием, которое я не испытываю ни на каком другом языке. Это не «кайф» от использования Go или закатанный рукав по колено в гадости от Rust. Вместо этого это странное чувство «покоя».

Все это, наконец, ведет к чему-то, возможно, даже к определенной точке. В начале своей карьеры я увлекся языковым фанатизмом. Я был языковым фанатиком. Я искренне и искренне верил, что существует один язык, на котором можно писать все программное обеспечение, и что я объективно прав в своем выборе. Это токсичный менталитет, и я рад, что отказался от этой философии много-много лет назад.

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

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

Скорее, мы должны признать и принять тот факт, что мы любим (и даже ненавидим) некоторые языки. Мы должны уважать тот факт, что у других есть свои (потенциально совершенно разные) эмоциональные связи. Эти чувства делают нас такими, какие мы есть. Однако, признавая нашу эмоциональную привязанность к языкам, мы можем принимать объективные решения о том, какой язык лучше всего подходит для конкретной проблемы с учетом бюджета, наличия людей, истории компании, сроков. , требования и т. д.

Я люблю Go, но не утверждаю, что это единственный универсальный лучший язык. Я люблю Эликсир, но не претендую на то же самое. Я активно ненавижу Java, несмотря на то, что потратил много лет на создание на ней производственных приложений, чем очень горжусь. Я также не оскорбляю разработчиков Java за то, что они любят то, что я не люблю, потому что это опозорит мои собственные эмоциональные воспоминания и опыт.

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