четверг, 10 декабря 2009 г.

Закон Мура в ПО

— Сколько занимает места Windows?

— Сколько находит, столько и занимает.

Из жизни

Табличка развития версий TP в статье натолкнула мысль о своеобразном законе Мура для ПО. При чем по нему любой софт будет развиваться именно так, как возмущаются о нем ретрограды — «Вот когда-то ОС влезала на одну дискету, и HDD были в 21 мегабайт, и функциональность была практически такой же!».

А как мне думается, все даже оченьвидно. Имеется две закономерности:

  1. Закон Мура.
  2. Если ПО не останавливать, то оно экспансионно на все возможные ресурсы.

Закон Мура

Здесь (т.к. формулировок есть много): объем доступной памяти, вычислительных мощностей, степень и скорость связности компонентов растут экспоненциально.

Экспансионность ПО

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

Может кто-то и даже много кто этот подпункт посчитает неправильным (вот я всегда оптимизирую, и мой «Hello World» что-то не занимает все что находит). Но основная мысль заключается в том, что любая оптимизация — это ресурсы. На каком-либо из этапов: разработки, обучения, прошлого опыта. И с течением времени потребность в контроле на каком-то уровне исчезает — закон Мура раздвигает рамки дальше. В результате дешевле сделать без оптимизиации что-то, и если работает — забыть об этом.

Говоря более точно: с течением времени использование большего объема памяти, больших вычислительных мощностей и пр. — выгоднее, нежели их оптимизация. В результате получаем то, что получаем.

Заключение

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


воскресенье, 6 декабря 2009 г.

О саперах

Существует на свете такая известная игра — Сапер. Стала известной повсеместно благодаря системе Windows. Но для меня история сапера началась намного раньше.

Когда-то давно, когда компьютеры были большими, и назывались по-советскому, учились мы программированию на ЕС-ках, клонах Speccy, Немигах, Поисках, БК-шках и других ныне вымерших зверях. Когда-то тогда, где-то в году так 92-м, когда Win 95 ещё не было, познакомились мы с сапером. Причем он был собственного производства. Кто-то узнал правила, или увидел где-то реализацию, и собрал на занятиях сам.

Немногим позже у меня и моих друзей был период расцвета кодинга на Speccy. Это была домашняя машина, не ограниченная кружком по программированию, со своими особенностями — медленным бейсиком, магнитофонной лентой, 48 K памяти, мощным ассемблером … Делали мы на нем многое, но одним из больших творений стал Сапер, запущенный в разработку как два независимых проекта. Мой проект благополучно завершился в 95-м, когда была собрана игрушка, в которую можно было играть одному и вдвоем, мог играть сам компьютер и 'думать' разгадывая поле, игра с фоновой музыкой, спецэффектами, отдельной серией уровней с жизнями и конечным итогом в виде победы. Конечная защита от взлома только была поставлена в 97-м, так, между делом. Но в любом случае в 95-м уже был законченный полноценный продукт.

Любопытным побочным эффектом явилось написание небольшого пособия по саперному делу для начинающих. В нем были описаны принципы соответствия 1 к 1, лемма 12 и теоремы 121 и 1221, принцип прохода по коридору в 3, отталкивания от стенок, разности множеств и принцип Дирихле (вроде ничего не забыл…). И в конце прилагался сборник задач для решения. И все это получилось из-за того, что при отладке на поле 16х16 я начал ставить по 30-40 мин, и с таким раскладом приходилось совсем туго. В результате приходилось думать и находить теоретический предел числа мин для нормальной игры.

Игра так нигде и не была опубликована и за почти 15 лет её видело три человека (включая меня). Сейчас же нужно только аккуратно перевести кассету в «.TZX» или «.TAP» и разослать на весь инет. Процесс уже запущен.

Но на этом история о саперах не закончилась. Недавно случайно узнал, что на ресурсе IGDC проходил геймдев-конкурс на тему «напишите оригинального сапера за 10 дней». Ностальгия взяла свое, и за двое убитых week-end'ов и несколько вечеров появился ещё один Сапер. Конечно, все создавалась не на пустом месте, а на проработанной базе 15-ти летней давности. Но все же. А в полку саперов прибыло на 10 штук, разных и по-своему оригинальных. На радость фанатам (;

Собранная для конкурса реализация не планирует остаться на одном месте. Так что следите за новостями (;