Катал Хоран в блоге Intercom описывает то, как языки программирования меняют мир.
Программное обеспечение становится повседневной вещью
Наши телевизоры стали умными, термостаты выучили графики нашей жизни, и наши машины скоро смогут ездить сами. То, как разработано программное обеспечение, оказывает глубокое влияние на наши жизни.
Менее очевидно то, как языки программирования, которые и создают ПО, влияют на нас. Хотя они и воздействуют на людей, которые даже никогда их в глаза не видели. На самом деле, языки программирования во многом похожи на человеческие – они влияют на то, как мы смотрим на мир, на наш опыт и взаимодействие с миром вокруг нас.
Языки влияют на то, как мы учимся
Подумайте о числах 10, 11, 12, 13 (ten, eleven, twelve, thirteen) и так далее. Мы используем их так часто, что редко задумываемся о том, как странно они звучат на английском. Не было бы лучше, если бы это было one-teen, two-teen, three-teen и так далее. В других языках нет такой произвольной схемы именования. В китайском языке числа образуют более логичную картину — десять-один, десять-два, десять-три и т.д.
Английский язык затрудняет понимание математики. Вам надо перевести слова в цифры до того, как вы приступите к вычислениям. Если вы говорите на китайском, математика встроена в сам язык. Когда вас просят сложить два-десять-три и пять-десять-шесть, то вам не требуется лишнего времени на перевод. Вот почему некоторым культурам лучше удается математика – из-за языка, который используется каждый день.
Среда это сообщение
Дело в том, что мы часто забываем о том, что язык может влиять и на то, как мы общаемся с миром вокруг нас. Это не нейтральный арбитр – это заинтересованное лицо.
То же самое и с языками программирования. Они влияют на то, как программисты и разработчики думаю о программном обеспечении. Более важно, что они влияют на то, как конечные пользователи используют ПО. Как дизайнер или продукт менеджер вы, наверное, не заботитесь о языке программирования, который используется для достижения конечной цели. Но вам бы пришлось, если бы язык влиял на то, как продукт создается или как используется.
Языки вроде Python и Ruby напоминают читаемые человеческие языки. Они позволяют дизайнерам и инженерам получать работающие прототипы быстрее более сложных языков. Чем точнее язык программирования воспроизводит человеческий, те быстрее вы можете начать тестировать вашу гипотезу.
Короче говоря, выбор языка программирования для вашего продукта не должен быть произвольным. Как гласит знаменитая фраза Маршалла Маклюэна, среда это сообщение. Для стартапов сегодня то же самое касается и языка программирования – он является средой, через которую ваш программный продукт общается с вашими потребителями.
Язык ускоряет процессы или замедляет
Как говорил создатель Python Гвидо ван Россум, язык программирования не просто способ сказать компьютеру, что делать, это средство общения между людьми.
Язык программирования это то, как программист выражает и передает идеи… [и эти] идеи, выраженные в языке программирования, часто достигают конечных пользователей программ – людей, которые никогда не будут понимать или даже знать о программах, но которые, тем не менее, подвергаются их влиянию.
Подобно тому, как язык может облегчить для людей понимание математики, простой язык программирования упрощает создание софта. Возьмите Dropbox. Они использовали Python для быстрой разработки и создания прототипов своих продуктов. Язык программирования, который они выбрали, дал конечным пользователям нечто, с чем они могли работать, в кратчайшие сроки. Они смогли разработать proof of concept с «закрытыми глазами».
Точно также Google был разработан на Python. Это бы язык, который лучше всего отвечал первоначальному видению Ларри Пейджа и Сергея Брина об индексации веба и организации результатов поиска. Как и в случае Dropbox, Python позволил идеям пробиться в мир гораздо быстрее любого другого языка. Меньше количество шагов на пути от идеи к ее реализации позволило им освободить проект от сложности.
Быстрые итерации, подобные этим, затруднены с такими языками как C++ или Java. Подстройка проекта к конечному пользователю требуется значительно больше ресурсов и времени. Когда язык программирования, который выбрал ваш стартап, может замедлить продуктовый цикл, язык перестает быть нейтральной частью вашего продукта.
Новый тип закона Мура
Что это значит с точки зрения будущего программного обеспечения? Во-первых, это упрощает программирование для людей. Такие языки как Python лучше всего описываются как псевдо-код – даже люди, которые не кодят, понимают их. Сравните это с ранними языками, такими как Ассемблер или C, которые требовали обширных знаний о том, как работают компьютеры. Когда язык программирования близок к человеческому, разрыв между конечным пользователем и разработчиком уменьшается.
Во-вторых, более простые языки программирования создают новый тип закона Мура. Вместо понижения стоимости процессоров он понижает барьер входа в программирование и позволяет людям более просто транслировать свои идеи в программное обеспечение. Больше людей создает ПО, а не больше транзисторов в процессоре.
И в то время как Закон Мура может быть подходит к своему концу, эволюция языков программирования пока так и не достигла своего пика. И когда это произойдет, мы все выиграем, независимо от того, говорим мы на этом языке или нет.