Приветствую, уважаемый Олл!

Мысль высказать некоторые соображения на этот счет возникла у меня давно, но как-то не до этого было. Но вот прочитал сообщение SchweinDeBurg (http://www.rsdn.ru/Forum/Message.aspx?mid=977132&only=1
Автор: SchweinDeBurg
Дата: 07.01.05
) и решил высказаться.

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

Итак...

Новых технологий в нашей области хоть пруд пруди. Ничего удивительного в этом нет — такова ситуация в IT-области. В этой области сейчас период "бури и натиска", сравнимым с которым является разве что аналогичный период в квантовой и ядерной физике в 30-е — 40-е годы прошлого века.

Среди этих новых технологий есть, тем не менее, некоторые, которые претендуют на то, чтобы революционно изменить достаточно большую часть IT-мира. Иногда им это удается, иногда их претензии оказываются несостоятельными, а сами они спустя некоторое время становятся лишь предметом истории.

Выскажу следующее утверждение.

Если некоторая технология, претендующая на революционность, не сумеет практически полностью вытеснить предыдущую аналогичную технологию (если такая существовала) или утвердить себя (если аналогичной технологии не существовало) в течение 3-4 лет, то ей это не удастся уже никогда.

Примеры.

1.Первый, и самый главный — собственной персоной IBM PC. До 1981 года он не существует, мир персональных компьютеров представлен Apple, Amiga и т.д. В 1984 году вопрос "кто кого" практически решен — всем ясно, что именно IBM PC, несмотря на все свои несовершенства, и есть генеральное направление развития персональной вычислительной техники.

2. Язык C++. В 1988 году его на персоналках еще нет. Borland выпускает в этом году свой последний C-компилятор (Turbo C 2.0). В 1989 (ИМХО) появляется Turbo C++, а к 1992 году все уже ясно — С++ полностью победил.

3. Windows. До 1990 года существует скорее по названию, никто , кроме самой Микрософт, программы для нее не пишет, и вобще неясно, что это такое — то ли операционная система, то ли графическая надстройка над MS-DOS. В 1993 году всем совершенно ясно, что MS-DOS при смерти, и фирмы, которые не переориентировались на выпуск своих программ под Windows, вскоре прекратят свое существование.

4. Windows95. Можно по-разному относиться к этой системе, ее есть за что ругать. Но нельзя не признать, что она сыграла революционную роль в нашей сфере. Появившись в 1995 (ну пусть в 1994 — беты около года широко распространялись), она к 1998 году (превратившись в Windows98) практически вытеснила 16-битные версии Windows, утвердившись как стандарт де-факто того времени.

5. А вот пример из аппаратуры — CD-ROM. Его нашествие было тоже быстрым и решительным. До поры до времени будучи экзотикой, он в течение нескольких лет превратился в обязательную часть компьютера.

А теперь антипримеры.

1. Самый классический — OS/2. В конце 80-х годов — законный преемник MS-DOS, в этом уверены все. Выходят одна версия за другой, пишутся для нее программы (помните Borland C++ для OS/2 ?) но что-то ей никак не удается завоевать мир и отправить MS-DOS в отставку. И не удастся, эту работу выполнит Windows, а OS/2 благополучно почиет в бозе.

2. Java (ну все, сейчас на меня набросятся . Я хорошо помню эйфорию при ее появлении, вплоть до утверждений, что она в ближайшее время вытеснит все другие языки "арифметического" типа (C++, Pascal и т.д.). Я, разумеется, далек от мысли утверждать, что Java при смерти, но ИМХО никакой революции она не совершила. Свою нишу она заняла, и в ней более или менее успешно проживает, но не более. Не согласны ? OK, тогда представьте себе, что вдруг Java исчезла. А теперь сравните это с ситуацией, что исчез C++. В первом случае будут некоторые проблемы на некоторых сайтах, ну и кое-где еще (Ораклу, к примеру, придется свой инсталлятор переписать , во втором — нет больше мира IT вообще.

3.Ada. Это пример еще более показателен, хотя молодое поколени об этом, скорее всего, не знает. Язык был разработан лучшими специалистами того времени, проводился международный конкурс, были отобраны 4 версии языка, потом 2 из них, потом одна. По своим концепциям — бесспорно лучший язык в то время. Но не пошел...

4. ActiveX в Интернете (сейчас на меня опять набросятся). Подчеркиваю, в Интернете, я сейчас не говорю о OLE-контролах в приложениях и тем более о COM вообще. В 90-е годы
ActiveX позиционировались Microsoft как альтернатива Java для создания динамических страниц. Подчеркиваю, Микрософт, фирмой, которая является монополистом де-факто и в состоянии как будто навязать миру все, что ей захочется. Но вот с ActiveX ее ждала явная неудача — много Вы этих ActiveX на Интернет-страницах видели ? (не считая, конечно, сайтов самой Microsoft ?

5. Ну и здесь приведу пример из аппаратуры. ZIP-drive. Казалось бы, ясно — обычные дискеты устарели давным-давно, и коль скоро есть дискеты на десятки Мб, то они должны заменить 1.44 очень быстро. Но не заменили... Похоже эта революция все же состоится, только ее носителем будут флэш-карты.

Я мог бы продолжить, но хватит и этого.

Исходя из соображений добросовестности, я должен привести и аргументы, не укладывающиеся в мою теорию. Основной аргумент, который я вижу — Windows NT/2K/XP/2K3. Действительно, внедрение этой системы никак не напоминало революцию. Оставив в стороне малоизвестную Windows NT 3.x, все же следует отметить, что этому семейству (начиная с 4.0) уже около 10 лет, и оно плавно и не спеша вытесняет Windows 9.x.
Попробую объяснить и это. С точки зрения внутренней структуры NT и 9x — небо и земля. Разница колоссальная. А вот с точки зрения обычного пользователя Windows XP — это просто следующая версия Windows 95 — 98 — ME. Я говорю совершенно серьезно. Спросите любого юзера, в чем отличие, он Вам расскажет многое о программах, об интерфейсе и т.д, а вот то, что внутри все другое — это не его ума дело, он об этом и не знает. Более того, Микрософт специально постаралась, чтобы он об этом узнал как можно меньше (чего стоит убранная по умолчанию вкладка "Security", я ее минут 20 искал, после того, как впервые установил XP, у меня даже сомнение зародилось — не является ли XP действительно следующей версией 9x . Так что революции здесь нет, по крайней мере для пользователя. Да и для среднего программиста тоже не то, чтобы очень. Тот же (или почти тот же) Win32, те же средства разработки...

Вернусь к основной мысли.

Когда претендующая на революцтонность технология появляется, и ей не удается завоевать мир быстро и решительно, вытеснив предыдущую, то это порой объясняют разными причинами — и тем, что слишком дорого (аппаратура), и тем, что еще нет соответствующей аппаратуры (ПО). Обсуждать все это я не буду. Отмечу другое, на мой взгляд наиболее важное. Если такое состояние имеет место (т.е. новая технология, которая должна победить, что-то никак не побеждает), то почти наверняка дело кончится тем, что возникнет некая иная технология, которая и победит, отправив в отставку и предшественника, и несостоявшегося революционера. Классический пример — Windows vs. MS-DOS и OS/2.

Когда же претендующая на революцтонность технология действительно оказывается такой, то это вдруг всем быстро и решительно становится ясно. Еще вчера об этом никто не думал, а сегодня всем ясно — если на эту технологию не переходить — можешь списывать себя в утиль. Писать программы для MS-DOS в 1993 году или для Windows 3.x — в 1998 — для серьезной фирмы это все равно, что просто начать дело о самоликвидации.

И вот теперь подхожу к основному пункту, за который на меня скорее всего и набросятся.

У меня большие сомнения в том, что .net, позиционирующаяся как некоторая революцтонная технология, таковой окажется. Идеи ее революционны (впрочем, что касается идеи промежуточного языка и обеспечения таким образом совместимости модулей, написанных на разных исходных языках, то это было еще в ОС ИПМ для БЭСМ-6 в середине 70-х годов, язык назывался АЛМО). Но шутки шутками, а все же эта технология позиционируется Микрософт как реальная замена предыдущей, вплоть до идеи реализации методов .net в ядре и т.д.

Все бы хорошо, но... где программы ? Я в свое время устроил голосование на эту тему, поинтересовавшись, сколько программ для .net установлено на компьютере.

http://www.rsdn.ru/poll/Vote.aspx?pid=937
Автор: Pavel Dvorkin
Дата: 21.09.04
Вопрос: Сколько профессионально сделанных программ для .net имеется на Вашем компьютере ?


Вот текущие результаты

Ни одной 90 53,25%
Не больше 3 57 33,73%
Не больше 5 5 2,96%
Не больше 10 13 7,69%
Больше 10 4 2,37%

Не сказал бы, что очень оптимистично... Если бы речь шла о чем-то другом, такие результаты следовало бы оценивать просто как провал.

А ведь три года прошли...

Не заметно также, чтобы ведущие мировые разработчики быстро и решительно переориентировались на .net, как это было, к примеру, при переходе от DOS к Win16 или от Win16 к Win32. А этот фактор, как я уже говорил, очень много значит. Может быть, я ошибаюсь, но ИМХО наиболее серьезные продукты как писались с использованием классических технологий, так и продолжают. А кстати, когда ожидается Micosoft Office, написанный на .net ? DevStudio когда на .net перепишут ?

Разумеется, я далек от мысли утверждать, что .net при смерти. Свою нишу она заняла и будет в ней жить в обозримом будущем. Я не намерен также обсуждать вопрос, почему так обстоит дело с распространением программ под .net.

Я хочу сказать лишь одно — ИМХО революцией она не будет. Если я в своей теории прав, нас ждет в ближайшие несколько лет что-то иное, что и произведет революцию, если такая действительно назрела.

И все же есть один аргумент, который существенно подрывает пои построения. Это — тот факт, что .net поддерживается и проталкивается Микрософт. А Микрософт, что там ни говори (и я об этом выше сказал), все же в состоянии навязать миру то, что она находит правильным. В состоянии ли ?

With best regards
Pavel Dvorkin
Автор: Pavel Dvorkin    Оценить