Ирландский профессор Джон Нотон, автор книг об интернете, написал статью о том, почему IT-отрасли нужны новые программисты. Предлагаем ее перевод.
Еще в 1960-х Гордон Мур, сооснователь Intel, понял, что количество транзисторов, которые помещаются на кристалле интегральной схемы, удваивается каждые два года. Поскольку число транзисторов связано с вычислительной мощностью, это означало ее рост каждые два года.
Так родился закон Мура, который обеспечил большинству людей в индустрии почву под ногами так же, как это сделали законы Ньютона для инженеров-механиков.
Однако есть разница. Закон Мура — это всего лишь утверждение эмпирической корреляции, которую наблюдали в определенное время в истории, и мы достигаем конца того периода, когда она еще работает.
В 2010 году Мур сделал предсказание о том, что сами законы физики положат конец этому экспоненциальному росту: «Если говорить о размерах транзисторов, можно видеть, что мы приближаемся к атомарным размерам, которые являются для нас фундаментальным барьером. Пройдет еще два-три поколения, пока мы заберемся так глубоко…, у нас еще 10-20 лет до достижения фундаментального лимита».
Мы уже достигли 2020 года и уверенность в том, что нам всегда будет хватать мощного компьютерного оборудования для растущего объема вычислений, начинает блекнуть.
Это было очевидно уже давно, поэтому в отрасли давно искали хитрые пути для того, чтобы упаковать в машины еще больше вычислительной мощности. К примеру, использовать многоядерную архитектуру, в которой процессор состоит из двух и более вычислительных юнитов-«ядер». Новый Apple Mac Pro работает на 28-ядерном процессоре Intel Xeon.
И конечно, вместе с этом проводятся полубезумные исследования квантовых вычислений, которые в принципе могли бы стать для отрасли эпохальным сдвигом.
Но вычисление — это комбинация машины и программ, поэтому одно из предсказуемых последствий закона Мура: программисты обленились. Писать код — это мастерство, кто-то преуспел в нем лучше, чем другие. Мастера пишут более элегантный, и что важнее, более экономный код, который быстрее выполняется.
На заре компьютерной отрасли, когда компьютеры были относительно примитивными, это мастерство было очень важным. К примеру, еще в молодости Билл Гейтс написал интерпретатор Basic для одного из первых микрокомпьютеров TRS-80, поскольку память последнего была крошечной и read-only. Программу нужно было уместить в 16 килобайт. Он написал его на ассемблерном языке, чтобы повысить эффективность и сэкономить место. По легенде, спустя годы он мог процитировать его наизусть.
Можно вспомнить тысячи подобных историй из ранних дней отрасли. Но как только закон Мура укоренился в сознании людей, нужда писать эффективный и экономный код отпала. Программисты превратились в software-инженеров. Создание пространных экосистем, вроде операционных систем или коммерческих приложений, требует больших команд разработчиков. Из этого выросли и потребности в бюрократах, проджект-менеджерах и руководителях. Крупные софтвер-проекты превратились в какое-то подобие гонок на выживание. В процессе программы разрастались и часто становились неэффективными.
Но это было неважно, поскольку вычислительной мощности всегда хватало, чтобы справляться с проблемой bloatware (игра слов, комбинация bloated и software, громоздкий код — ред.). Сознательных программистов это часто бесило.
Один из них писал: «Единственное следствие мощного оборудования, которое я вижу, в том, что программисты пишут для него все более и более громоздкий софт. Они все больше ленятся, ведь компьютеры так быстры, они не пытаются учить алгоритмы для оптимизации кода… это какое-то безумие!».
И это действительно так. В лекции в 1997 году Натан Мирвольд, некогда бывший CTO для Билла Гейтса, сформулировал свои четыре закона для софта:
- софт как газ, расширяется, чтобы заполнить весь контейнер;
- софт разрастается, пока не уткнется в предел закона Мура;
- развитие софта влияет на закон Мура: люди покупают новые вычислительные машины, потому что таковы требования новых программ;
- софт ограничен только людскими амбициями и ожиданиями.
Закон Мура приближается к своему концу, и закон Мирвольда предполагает, что у нас только два выхода. Либо мы поумерим свои амбиции, либо вернемся к написанию более экономного, более эффективного кода. Иными словами, назад в будущее.
Источник: ain.ua
0 комментариев
Добавить комментарий