From Java to Ruby: Risk
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.09.06 07:51
Оценка: 63 (13) :)
Собственно статья.
Хоть большая ее часть касается Ruby, но в первой половине автор делится интересными соображениями о механизме перехода языка/технологии в разряд mainstream-а.

(перевод мой, прошу не пинать)

Многие аналитики описывали модели принятия технологий. Одна из наиболее популярных была определена в Iowa для описания принятия сельскохозяйственных продуктов, и в дальнейшем была описана в контексте технологий в книге "Crossing the Chasm" Джефри А. Мура. В этой книге Мур описывает цикл принятия технологии в пяти различных группах:

* Технологисты (Technologists). Эта группа предрасположена к принятию новых технологий. Любая многообещающая технология может привлечь их внимание.
* Первопроходцы (Early adopters). Эта группа принимает новые технологии для получения конкурентных преимуществ, вне зависимости от того, насколько они успешные в мейнстриме.
* Прагматики (Pragmatists). Эта группа принимает технологии как только они становятся мейнстримом, или показывают достаточный рост для того, чтобы получить широкое распространение.
* Консерваторы (Conservatives). Эта группа принимает технологии только после того, как это становится необходимым.
* Скептики (Skeptics). Эта группа может принять технологию очень поздно, или не принять ее вообще.

Мур указывает, что ключем к принятию технологии является привлечение прагматиков. Однако прагматики требуют массового принятия технологии, поэтому эта группа хочет видеть других прагматиков, которые используют технологию, до того, как эта группа сама возьмется за технологию. Это ловушка-22. Вы не можете получить прагматиков без других прагматиков. Поэтому вы часто можете видеть тенденции снижения рыночного интереса к продукту после того, как появились первопроходцы, но до появления прагматиков.


...Предложенное Муром решение состоит в пошаговом преодолении этой пропасти (crossing the chasm in stages). Обычно в не можете преодолеть пропасть одним большим прыжком. Вы должны иметь свою рыночную нишу. Java сделала это нацеливаясь на Internet-клиентов сначала через апплеты, а затем перешла в servier-side вычисления, мобильные телефоны и другие ниши, такие как мобильные вычисления и enterprise сектор...


а так же наблюдение о периодичности появления новых мейнстримовых языков:

...Многие из нас понимают, что инвестиции в Lisp можгут привести к повышению производительности, но могут сделать более сложным поиск программистов, документации, библиотек и компонентов. Мы так же вынуждены будет тратить больше, чем нам хотелось бы на любую серьезную интеграцию. По этой причине массовый рынок прнимает новые значимые языки программирования только раз в десять лет или около того. Вы можете видеть эту тенденцию в языках разработки server-side систем: COBOL и Fortran получили распространение в 1954 и 1961, C в начале 1970-х, C++ в середине 1980-х и Java в 1996-м. Я не включил в выборку C# поскольку он удачный клон Java, хотя с нему относится тот же аргумент. Много других языков появилось за это время, но ни один не получил такого распространения как вышеперечисленные...


и далее больше про причины успехов новых языков:

...Взрыв популярности Java был самым большим из виденных до сих пор, но его причины понятны. Для становления нового языка необходимо, чтобы использование старого языка был болезненым и требующим больших усилий. Новый язык должен легко преодолевать эту болезненость и, в конце-концов, быстро переманивать на себя коммунити посредством какого-то катализатора...

(в случае Java таким катализатором стал Internet и Web),

а затем о причинах, по которым бывшие фавориты начинают становиться аутсайдерами:

После того, как Java достигла своего десятилетия, становится необходимым еще один способ оценки рисков. Многие знаковые книги, такие как The Mythical Man Month, Death March, и Peopleware поворят о разных видах рисков:
* Низкая производительность ведет к большим командам и дительным планам.
* Риски увеличиваются с продолжительностью проектов.
* Риски увеличиваются с размером команды.
* Риски качества, измеряемые в количестве багов, увеличиваются с размером кодовой базы.
* Риски увеличиваются со стоимостью
* Стоимость интеграции увеличивается со сложностью.

По мере взросления языка программирования, или даже парадигмы программирования, язык часто деградирует в терминах производительности и выразительности по сравнению со современными достижениями. Проектные команды разрастаются и программистам приходится писать больше строк кода для решения тех же самых проблем. Соответственно, оба этих фактора увеличивают риски. И все эти факторы ведут к неизбежному выводу:

По мере приближения к концу доминирования на рынке, риски производительности, связанные с языком, увеличиваются по сравнению с самыми современными достижениями.



SObjectizer: <микро>Агентно-ориентированное программирование на C++.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.