Абстрактно о ПО...

Можете вообразить себя высокоразвитым пришельцем, интересующимся цифровой техникой землян? Что бы вы увидели? Имеются самые различные микросхемы и периферийные устройства, в том числе микропроцессоры Intel, AMD и много других, несколько операционных систем для серверов, персональных компьютеров и мобильных устройств, множество языков программирования, различное другое программное обеспечение. Вы бы обратили внимание на то что различные микросхемы и программы выполняют одни и те-же функции. На каждую тратятся чрезвычайно большие усилия по разработке, внедрению и изучению трудо-часов в масштабах планеты, которые могли бы быть направлены не на создание альтернативных разработок, а на уникальные разработки, которые бы увеличили разнообразие земных технологий.

Мы бы вспомнили свою историю о том, что у нас (инопланетян) было точно также вначале. Чем это обусловлено? Дело в том, что как только мы изобретаем что-то новое, кроме того, что мы добиваемся цели в той или иной мере, мы получаем много непостижимого. Например, когда построили первый компьютер, могли ли его создатели, представить какова будет компьютерная отрасль в будущем? То что у компьютеров и цифровой техники большое будущее да, но начиная с некоторого уровня детализации того что может быть, - нет. Этот аспект приводит к необходимости альтернативных решений. Кто-то что-то сделал хорошо, но в каком-то месте плохо, в альтернативном решении, кто-то делает лучше в этом месте. Конечно, это не единственная причина существования альтернативных решений, на их появление может повлиять просто желание владеть изобретением и еще много причин. Например есть язык PERL, но позже изобрели PHP и в итоге сменился владелец, точнее изобретатель популярного языка для построения веб-приложений. Ведь второй язык в данный момент более популярный. Так или иначе, невозможность первоначальной разработки идеальных решений, есть одна из причин создания альтернативных решений.

Вторая важная причина это социальная тяжба (даже это наверно первая). С какой стати один завод по производству автомобилей перестанет выпускать автомобили, чтобы оставить на рынке один идеальный автомобиль? Благодаря тому, что рынок имеет спрос на различный ценовой сегмент в автомобилях, все заводы застрахованы от того чтобы прекратить свое существование по причине продажи идеального автомобиля другим заводом. Т.е. существует множество идеальных автомобилей - для разного ценового сегмента, разных климатических условий и т.д.

Но область программного обеспечения особенная. Аналога металла и других материалов, использующихся в машиностроении и которые влияют на ценовой сегмент автомобиля, в программировании вообще нет! А конвейерная линия и весь производственный процесс создания авто, аналогичен простому копированию в отрасли программного обеспечения, который имеет одинаково низкую стоимость для любого сегмента ПО. Эта особенность дает возможность гораздо более легко (чем идеальный автомобиль) создать одну идеальную ОС для всех, один идеальный язык программирования, одно идеальное, не требующее альтернативных, решение для каждого типа ПО. Земляне уже готовы, чтобы начать это делать: симптом непостижимого (в том что имеется) преодолен, сейчас производители ПО гораздо лучше представляют себе на что способны компьютеры, в отличие от изобретателя первого на Земле компьютера. Фактор социальной тяжбы преодолим - можно просто взять и начать делать идеальное ПО, как альтернативное, а другие альтернативные позже исчезнут сами.

Что нужно чтобы им (нам) это начать делать? Нужно просто сделать систему способную производить идеальный код, в любой популярной области, со временем такая система сможет производить идеальный код во всех областях программного обеспечения. Способны ли земляне на это? Вероятно, да! Сделали же единую валюту евро в ряде стран, преодолев фактор социальной тяжбы и ощутили эффективность от создания единой валюты. Могут объединять и государства в одно, несмотря на то что из двух правительств остается одно и кому то приходится уйти в отставку.

В итоге, что они получат? Описать поподробнее преимущества идеального кода перед имеющимися у них сейчас (у нас) альтернативными??? Ну подумайте, какой смысл иметь два абстрактных синтаксиса описания цикла в двух альтернативных языках программирования?? Абсолютно никакого, более того есть вред: параллельно идет производство (и сопровождение) по созданию первого и второго синтаксиса. Учащимся требуется время чтобы изучать альтернативы, затратив время, в несколько раз большее, чем требуется потенциально, в идеале. В масштабах Земли, это дает серьезную "пробуксовку" экономикам государств и мировой экономике, потому что делается "масло масляное", переливается вода "из пустого в порожнее". Кажется что земляне немного больше открыв глаза, поймут, что иметь альтернативные решения в ПО, все равно что сознательно выбирать автомобиль, который на некотором участке дороги пробуксовывает и на 100 км тратит бензина в 2 раза больше, вместо того чтобы выбрать "правильный автомобиль" ничего не затратив дополнительно.

Какой должна быть система для производства идеального кода? Ни у кого не должно быть сомнения, что она имеет и производит идеальный код. Как этого добиться? Любому человеку на планете должны быть предоставлены доказательства, что код идеален, максимально понятными, прозрачными средствами, различными способами, чтобы даже человек мог выбрать способ доказательства. Система должна быть максимально открыта для всех и бесплатна. В системе должны цениться не должности, оклады и титулы, а реальные идеи. Т.е. любой человек должен мочь прийти в систему без всякого приглашения, внести идею или готовую реализацию идеи, и если она действительно ценна, - получить бонусы в системе, рейтинги звания.. печеньки короче ). Для чего это надо? Чтобы весь интеллектуальный потенциал Земли был свободно легко привлечен к процессу совершенствования системы и производимого ей ПО.

Организации по стандартизации - робкие попытки Землян упорядочить хаос. Конечно они нужны и приносят пользу, но в области ПО этого мало и можно достичь гораздо большего. Во первых стандарты не всегда идеальны, так как в их производстве участвует ограниченное число специалистов, могут приниматься неверные решения. Во вторых они затрагивают малую часть того что должно быть приведено к единому идеальному виду. И даже главная их цель не идеал, а унификация т.е. не то чтобы отвертка была идеальна, а чтобы она просто согласовывалась с шурупом, т.е. просто чтобы она в принципе работала. Тем не менее, они функционально делают похожие действия, которые делает система по созданию идеального ПО.

Методы создания системы, которая производит идеальный код (и предоставляет доказательства), в этой статье не будем рассматривать. Укажем только, что она может быть похожа алгоритмически на поисковые системы, ранжирующие страницы Интернета, использовать статистический (и другой математический) анализ для поиска лучшего, идеального и наиболее необходимого (наиболее часто использующегося), а также прямое обсуждение сообществом деталей ПО с целью достижения глобального консенсуса в принятых решениях!
опубликовано ENERGY - 18 Sep 2015 13:33 GMT
последнее редактирование - 5 Oct 2015 09:12 GMT
комментировать