суббота, 17 января 2009 г.

Windows Vista - цель API

Прошло около года после выхода Windows Vista и у многих до сих пор возникает недоумение - что же это:
-Шутка
-Неудачная разработка
-Революционная ОС

Для начала посмотрим на даты выхода основных не серверных ОС:

Windows NT 3.5 1994
Windows NT 4.0 1996
Windows 2000 2000
Windows XP 2001
Windows Vista 2007

После выхода Vista многие были озадачены - что же такое делала МС
так долго, a получился продукт к которому выдвигаетя масса претензий.
Тут и скорость работы, плохая совместимость со старыми приложениями,
неудобство интерфейса.

Если вспомнить статью Джоэла Сполски "Как Microsoft проиграла битву за API ",
то начнет прояснятся, что МС преследует цель положить в основу своих ОС
новый API.

Теперь посмотрим на то, как выходили новые версии .Net Framework и
какие технологии при этом анонсировались:

1.0 2002 CLR, BCL
2.0 2005
3.0 2006 WPF, WCF, WF, Card Space
3.5 2007 LINQ, ADO.NET, Entity Framework,

К сожалению не удалось найти подробности про первые две версии фреймворка,
а в качестве основного источника использован рисунок с wikipedia.



Рисунок 1 - Версии Windows и .Net Framework


Предположительно Vista была построена с использованием технологий .Net,
а win32 программамы являются не native и совместимость достигается посредством
специального слоя в ОС. Как было сделано в Mac OS X, где за совместимость со старыми
программами написанными на старом процедурном API Carbon достигалась через специальный слой.

Теперь Microsoft меняет свой устаревший процедурный API win32 на новый. Еще до выхода
Vista начали выходить .Net фреймворки, в которые постепенно(скорее по мере готовности)
вводились новые части будущего API.

Думается, что Win16/32 API в начале 90-х уже устарел - стало ясным, что будущее
за объектно-ориентированной разработкой. Поэтому в 1992 году МС представила
обертку над win16/32 - MFC.

Итак, вместо Win32/MFC теперь перед нами масса абриватур, среди которых:
WCF (Windows Communication Foundation)
WPF (Windows Presentation Foundation)
WF (Workflow Foundation).

Сложно сказать упрощает ли это жизнь разработчиков, стало ли удобнее создавать
приложения. На первый взгляд кажется, что легко запутаться и запомнить даже названия
всех технологий, которые несет с собой .Net framework.

Так же тяжело сказать, что является стоящей технологией, а в чем больше маркетинга.

Может быть MS решила, как Sun Microsystems c Java EE создать стандарты, а потом зарабатывать
на консалтинге? Ибо при таком уровне сложности, без помощи корпорации MS тяжело будет
создавать программные продукты?

В отличии от Java .Net может работать на только на операционных системах MS Windows,
но позволяет использовать для разработки много языков. Но уже в Java 6 Sun обявила о поддержке
скриптовых языков, первым стал JavaScript. То есть теперь можно разрабатывать приложения на платформе Jave на JavaScript. В Java встроен JavaScript движок Rhino и java.script API, который в перспективе может работать с любым скриптовым языком. Связано это, вероятно, с тем, что в последнее время стали очень популярны скриптовые языки, особенно при создании web-приложений.
Таким образом Sun начала движение в сторону многоязыковости платформы Java.