Это были ранние дни человечества. Прохладный сухой день. Алиса и Боб пытаются развести огонь при помощи палочек, потирая их друг о друга. Учитывая, что за день до этого холодный дождь основательно намочил палки, это было действительно сложно. Неожиданно вспыхивает свет и позади Алисы и Боба открывается таинственный портал. Оттуда выходит Незнакомец, держа в руках паяльную лампу.
Незнакомец объясняет, что он пришел из будущего чтобы ускорить технологическое развитие. Он показывает, как использовать паяльную лампу и пламя ревет у него в руках минуту или две. Он объясняет, что лампа работает на субстанции, называемой бутаном.
Боб сразу отвечает: «Слушай, Незнакомец, я не знаю кто ты такой, но мне не нравится твой тон элитария и я буду продолжать разводить огонь при помощи трения палок друг о друга. Если бы я начал использовать твою так называемую ‘паяльную лампу’, было бы большой проблемой найти бутановое топливо для этой штуки.”
Новые технологии могут принести серьезные улучшения по одной оси (например быстро разводить огонь), в тоже время создавая новые забавные проблемы для решения по другой оси (добыча бутана). Прогресс осуществляется, когда вы настроены оптимистично и желаете решить эти проблемы. Такие прозаичные отказы, в которых Боб полностью фокусируется на минусах новой технологии представляют текущее состояние мира, как оно есть. Снова и снова в технических обсуждениях я вижу эти прозаичные отказы: “Тебе не кажется архаичным, что мы храним программы как текстовые файлы и запускаем компиляторы один за другим в batch-режиме, будто мы все ещё в эре перфокарт? Я думаю мы могли бы сделать лучше.”
Ответ: “ТЕКСТ ТАЩИТ. Я не перестану использовать Vim / Eclipse, к тому же посмотри на эти офигенные тулзы типа Git, которые не зависят от языка! К тому же, Smalltalk пытался это сделать почти 20 лет назад и это не взлетело.”
“Знаешь, если у нас нет необузданных побочных эффектов, было бы проще составлять программы из маленьких частей. Это выглядит классной идеей! ”
Ответ: “Но мне нужны быстрые mutable-структуры данных почти в 2% моего кода, таким образом это уравновешивает небольшое количество побочных эффектов! Будь прагматичен! Реальный мир™ изменяется!!!”
“Статическое типизирование выглядит так, будто может помочь мне поймать больше ошибок пока я пишу программу. Это выглядит полезным, мы должны использовать его!”
Ответ: “О Боже, ты говоришь как один из тех разработчиков J2EEE, которым промыли мозги. Извини, но я не хочу писать
ArrayList<String> myList = new ArrayList<String>();Динамическая типизация тащит !!!!1!”
Разработка новых технологий подразумевает открытость к виденью потенциала и работу для достижения этого. Не будьте тем чуваком!
И в заключении:
Человек, который говорит что это не может быть сделано не должен мешать человеку, который уже это делает.
–Китайская пословица