Закон Мура вырастил ленивых программистов. Но он отмирает и разработчикам нужно меняться

5674
1

Ирландский профессор Джон Нотон, автор книг об интернете, написал статью о том, почему 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 для Билла Гейтса, сформулировал свои четыре закона для софта:

  • софт как газ, расширяется, чтобы заполнить весь контейнер;
  • софт разрастается, пока не уткнется в предел закона Мура;
  • развитие софта влияет на закон Мура: люди покупают новые вычислительные машины, потому что таковы требования новых программ;
  • софт ограничен только людскими амбициями и ожиданиями.

Закон Мура приближается к своему концу, и закон Мирвольда предполагает, что у нас только два выхода. Либо мы поумерим свои амбиции, либо вернемся к написанию более экономного, более эффективного кода. Иными словами, назад в будущее.

Оставить комментарий

Комментарии | 1

Поиск