| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
Прошлое и будущее На прошлой неделе мой почтовый ящик как всегда посещали рассылки. По поводу ряда из них мне и хочется написать и, тем самым, рискнуть заглянуть в "день грядущий", благо то, что я вижу "сегодня", было предопределено "вчера". Вот и попробуем слегка проанализировать то, что нам уготовано. "Меня гнетут смутные сомнения...", как говаривал управдом, удачно вписавшийся в роль Ивана Грозного в фильме "Иван Васильевич меняет профессию". Во-первых. Фирма Интел объявила о том, что выпускает процессор Pentium 4. Как будет писаться четвёрка не знает никто, но доподлинно известно, что сам процессор будет работать с частотой 1.5 ГГц. Правда, никто и ничего не говорил о разрядности данного процессора, но вот "обрадовали" другим -- сам проц. будет представлен уже к концу _ЭТОГО_ года. Возникающие вопросы. Во-первых, чем бы это такую "производительность" загрузить? Вообще-то, чем собираются? Во-вторых. А, собственно, куда так спешим? "К концу года" и ни днём позже... Странно всё это, господа. Во-вторых. После того, как пришли рассылки, в которых освещались новинки от Microsoft, всё резко встало на свои места. Здесь надо заметить, что самой первой рассылкой на данную тему была рассылка от моего любимого журнала для "сисадминов" -- HackZone. Которая и побудила, собственно, написать данную статью. После анализа приведённой там информации. Кроме рассылки от HackZone, пришла ещё и рассылка из недр русского филиала Microsoft. Ну, об "этом" я хочу написать слегка по-подробнее. В качестве небольшого "лирического отступления". Так сказать, "пользуясь случаем" и "высокой трибуной". На данную рассылку я только недавно подписался и получилось так, что это сообщение было первым из полученных. Не знаю у кого и как, но у меня лично сложилось впечатление, что перед тем, как разрешать человеку сдавать сертификационные тесты Microsoft, необходимо проверить его знание языка. Т.е. у автора данной рассылки а это, судя по сообщению -- "Контактный адрес автора: alexb@ck.ukrtel.net Alexander I. Butenko, Microsoft MVP", явно не лады с русским. Оно, конечно, понятно -- "незалежна" Украина и всё такое... Но русский-то зачем коверкать? Цитирую: "Microsoft представила новый язкы программирования позиционируемый знаменитому Java от Sun Microsystems.". "Позиционируемый" может быть "на рынке", может быть "по отношению" к "чему-то" (реже -- "кому-то"). Но вот чтоб так... Или слово красивое и до невозможности умное выучили? А применять это самое слово грамотно кто будет?
Далее. Ещё одно замечание господину Бутенко. Знаете, милостивый государь, мы как-то все уже пережили выборы, к Доренко даже
привыкли... Но это -- "в телевизоре". А в Сети-то зачем такой тон? По Вашей рассылочке получается что Oracle -- горемыки,
что именно в мультиплатформенности Java -- её слабость... Как-то, право, читать это по меньшей мере странно. Очевидно,
слегка одурев от "успехов" Microsoft'овцы решили всех и вся прогибать под себя?
Если фирмы Oracle, Microsoft и Sun Microsystems ведут меж собой какие-то войны, то мне-то, пользователю грешному об этом знать? У меня полно других задач, отличных от маркетинговых изысков и простого хамства представителей тех или иных фирм, меньшинств и т.д. и т.п. И, думается мне, я не одинок в своём стремлении получать _ИНФОРМАТИВНЫЕ_ рассылки, касающиеся _ТЕХНОЛОГИЧЕСКИХ_ новшеств в интересующей меня области, а не смотреть как Microsoft поливает грязью всех и вся. Хотя, данный полив "органическими удобрениями" весьма показателен. Я остановлюсь позже на этом моменте. А пока к делу. Microsoft выпускает в 2001 году новую версию своей ОС. Под кодовым названием Whistler. Б.Г. где-то там выступа и заверял, что всё будет крайне "правильно". Самое интересное в том, что вся система будет строиться на базе новой платформы .NET (dot NET). Предлагается (пока список не полон, т.к. это -- цитата): "В новую платформу войдут такие продукты и сервисы: Windows.NET (новая версия Windows станет платформой для нового поколения сети), MSN.NET (улучшенный портал Microsoft Network позволит получать всю необходимую информацию прямо на Ваш рабочий стол), Office.NET (новое поколение пакета Microsoft Office), bCentral for .NET (платформа для разработки приложений электронной коммерции и малого бизнеса) и наконец Visual Studio.NET (новый пакет для разработки приложений под новую платформу с улучшенной поддержкой XML)." Прокомментируем:
Получается:
Но и это ещё не всё. Где-то около года назад до меня долетали слухи о том, что Microsoft планирует не продавать свои программные продукты, а ПЕРЕДАВАТЬ ИХ В АРЕНДУ. Даже, вроде, партнёров для бизнеса в этом направлении уже нашли. Кроме того, ходили слухи о разрешении делать в программном обеспечении "чёрные ходы" для слежения за лицензионностью "софта" и т.д. и т.п. Это, как вы понимаете, слухи и ничего более. Однако, памятуя о том, что "дыма без огня не бывает", можно попробовать вычислить вектор. Получается, что мы можем оказаться работающими на лицензионном "софте" (что просто великолепно), но нас будут "контролировать" (читай "хакать в законе"). И, надо отдать должное, Microsoft всё делает для этого, т.к. если мы посмотрим то описание, которое на данный момент есть, и которое касается нового языка, то веселья поубавится. Хотя, как мне кажется, не велики будут очереди за новым Pentium'ом и за новой ОС. Может, это и новые даже, местами, "революционные" продукты, однако, есть ряд моментов, которые могут сдержать всё это. Или, даже, загубить на корню. Самыми серьёзными ограничивающими факторами приходится признать следующие три:
Есть ещё море причин. По крайней мере, найти их можно. Одним словом, поживём-увидим. А пока, ждём-с-с... Так. Теперь по поводу нового языка от Microsoft. Имя ему -- C SHARP, (C#). Что нового. Особо сильно распространяться не считаю нужным, т.к. сам только недавно скачал его описание и пока сижу читаю его. И, кроме того, не писал ещё ничего на нём. Однако, есть ряд моментов, которые считаю нужным осветить. По крайней мере, то, что вот так, навскидку, бросается в глаза. Как было верно замечено Дмитрием Леоновым, это -- помесь языков. "Изрядный уклон" сделан в сторону Java. Т.е. если раньше в Microsoft рыдали по поводу того, что апплеты и приложения Java как-то сложно работают на платформе Wintel, то теперь сами изобрели Java-подобный язык. По сути дела, этот факт можно назвать продолжением истории 1996-97 гг. про то, как Microsoft и Sun Microsystems судились из-за Java. Вкратце, суть такова. Sun обвинила Microsoft в нарушении лицензионного соглашения. Т.е. в виртуальную машину Java в релизе от Microsoft, был добавлен ряд классов, которые делали этот вариант Java совсем не Jav'ой. Кроме того, продукты, которые использовали данный "диалект" Java нельзя было назвать "Java-совместимыми на 100%". В категорию таких продуктов попадали J++ и Internet Explorer v4.0. Как следствие такой несовместимости апплеты J++ (действительно, это -- не Java), в ряде случаев, нельзя было бы исполнять на том же Sun'е. По слухам, после подачи Sun'ом иска, Б.Г. в ярости распорядился убрать все Java-апплеты с сайта Microsoft. Похоже на правду, т.к. на сайте Microsoft есть только JavaScript-скрипты, точнее -- JScript, что, согласитесь, никоим образом не Java. Ну, зато теперь Microsoft "взяла реванш". Ай, молодца! Одного взгляда на пример (многострадальный "Hello, world!") достаточно для того, чтобы понять чьи кости легли в основу всего этого: using System; class Hello { static void Main() { Console.WriteLine("Hello, world"); } } Файл с этой программой назывался бы "hello.sc", компилировался бы командой "csc hello.cs". Результирующий файл -- "hello.exe", результаты исполнения... Угадайте сами. Теперь по поводу того, как это функционирует. Как правильно заметил Дмитрий Леонов, везде раскиданы ссылки на некую платформу .NET (см. выше). Пока не ясно до конца что же конкретно это будет. Вероятнее всего, Whistler будет функционировать как набор нескольких виртуальных машин для обеспечения поддержки приложений разных типов (в оптимистическом варианте предположений) в пессимистическом варианте, платформа .NET будет аналогом HAL в Windows NT. Все существующие библиотеки будут обращаться к .NET и... короче говоря, будет весело, т.к. размер базового набора ОС вырастет (в который раз), добавится ещё один уровень абстракции для наших многострадальных приложений и т.д. и т.п. Хотя, если процессор "соответствующий", то выглядеть со стороны всё это может и не плохо. В пользу этой идеи говорит и то, что, цитирую Дмитрия Леонова: "Однако в .NET SDK определяется Common Langiage Subset (CLS), дающий доступ всем CLS-совместимым языкам (набор этих языков вполне предсказуем: Visual C++, Visual Basic, VBScript, JScript и, разумеется, C#) к общей библиотеке классов и "common execution engine" (опять-таки, пока непонятно, что это такое - общий рантайм или кусок компилятора, как у последнего Васика и VC, или как еще раньше у TopSpeed'овского семейства компиляторов), объединенным под общим названием Next Generation Windows Services, NWGS." Да не runtime это (в строгом смысле этого слова)! И не общий кусок компилятора. Это, вероятнее всего, (задержите дыхание) "объектно-ориентированная библиотека", которая по сути дела будет интерфейсом между конкретным "железом", на котором работает Winsler и всем остальным программным обеспечением. Соответствующие .NET будут обеспечивать обработку конкретных системных (Windows.NET) и прикладных (Office.NET, bCentral.NET, ...) вызовов. Это я про Common Language Subset. Сами по себе программы будут работать не столько в среде ОС, сколько в специальным образом организованой обобщённой виртуальной машине (наборе виртуальных машин). Это уже Common Execution Engine. Этот подход гарантирует то, что все вызовы соответствующих подсистем будут надлежащим образом обработаны. Этакая "многослойная ОС". Другой момент -- приложения C# будут работать с Winsler-платформой "напрямую" и без посредников, что гарантирует им весьма приличную скорость исполнения. И, естественно, что при таком подходе, любой написаный мной (вами) кусок кода автоматически становится СОМ-объектом со всеми вытекающими отсюда последствиями. Кроме того, что я написал в двух предыдущих абзацах, перечитайте-ка ещё раз то, что я написал о переносимости ОС на различные типы аппаратных платформ. Ещё одним положительным моментом является то, что мы сможем вызывать соответствующие классы, входящие в состав Wistler. По сути дела, сама операционная система станет набором (библиотекой) классов. Т.е. ОС становится "объектно-ориентированной" не только для пользователя, но и для программиста. Вообщем-то не плохо, если учесть что практически ни одна ОС, в данный момент, не является до конца объектно-ориентированной. Как пример можно привести библиотеку MFC от Microsoft. Да, конечно, эта библиотека даёт программисту работать с классами, на базе которых работает сама ОС, однако не со всеми. Кто нибудь видел класс от Microsoft, входящий в MFC и позволяющий работать с данными в базе Registry? Только не надо мне рассказывать о том, что такой класс можно написать так же просто, как два байта переслать. Сам писал, знаю. Однако, такой подход по меньшей мере странен. Кроме того. Файлы MFCxx.DLL не являются "ядром" системы в строгом или, если угодно, "классическом" понимании термина "ядро системы". И этот пример не единичен. Думаю, каждый из нас, реально работавший с MFC, может подтвердить/дополнить мои слова. Короче говоря, в Visual Studio 7, этот язык будет добавлен и считается, что мы все резко будем его изучать. Правда, стандартный набор вроде бы то же оставят, дополнив его средствами разработки Web-компонент типа XML. И другими "наворотами" типа Simple Object Access Protocol (SOAP). Сам, честно говоря, не совсем знаю что сие означает, но... Бог с ним. Хай будэ. Из существующего в Visual Studio будет оставлено практически всё, что есть. Да! Чуть не забыл! Весьма интересным на мой взгляд, будет продолжение серии средств для автоматизации распространения программных компонент и контроля версий. Так называемых, средств "ползучего upgrade'а" системы. Как известно, устанавливая новый ("революционный" -- а как же иначе-то?) продукт от Microsoft, мы неявно производили модификацию как минимум библиотек MFC, как максимум -- половины каталога SYSTEM или SYSTEM32. Теперь, в соответствии с новыми веяниями, эти функции будут, очевидно, возложены на саму систему. Заодно, там же будет проверка версии, языка и т.д. и т.п. Всё это знакомо тем, кто хоть раз использовал сервис установки от Microsoft (.INF-файлы и всё такое). Конец InstallSheld'у? И что там будут ещё "контролировать"? Не превратятся ли слухи о неявном сборе информации Microsoft'ом посредством IE в реальность? Не удивительно, что данные средства пока нигде не описаны. Во-первых, их, очевидно, пока нет (по крайней мере, в отлаженном варианте), а, во вторых, в Microsoft пока не определились -- а что конкретно _МОЖНО_ будет написать. Ладно, Бог бы с ним со всем. "Пожуём-увидим", как сказал людоед, когда ему сказали, что человек хороший. Пока же я
сознательно опускаю делали реализации этого языка, описаные в доступной на 05.07.2000 г. документации. И которые, к стати,
Вы сами можете посмотреть, если пойдёте по ссылке:
Кроме того, всё-равно останется ряд вопросов, которые я, даже переведя документацию, вряд ли смогу подробно осветить, т.к.
вначале надо написать что-нибудь. Попробовать, пощупать руками, посмотреть "сколько весит". Короче говоря, ждите ещё
статей. Причём, IMHO, в ближайшее время.
P.S. Когда закончил статью, вспомнил. Опять чуть не забыл. В рассылке от HackZone, Дмитрий Леонов написал: "Ощущения прорыва, возникшего когда-то при появлении Явы, нет, но Microsoft всегда славилась не столько генерированием новых идей, сколько шлифовкой и вылизыванием заимствованных или купленных." Ну, Господи! Дмитрий, окстись! Когда бы это "технари" и "продавцы с острыми зубами и зачёсанными назад волосами" (А. Голуб), были бы одним и тем же? Если фирма (как Sun Microsystems) делает действительно технический прорыв, то результаты этого прорыва доступны для "широких масс" в виде более-менее бесплатного результата. Как, к примеру, Java. Или Дуг Энжельбарт, результаты работ которого вылились в привычную нам "мышь", "оконный интерфейс" и "гипертекст". А если фирма (какая конкретно назвать?) озабочена маркетингом и ростом продаж, то ей не до того, чтобы заниматься "прорывами". Ей бы "прикрутить" к своему продукту то, что разработано другими. К примеру, тот же язык J++. Зачем туда было совать классы для работы с DirectX? Ладно, о JDBC можно ещё как-то промолчать, благо базы данных есть во всех операционных системах и доступ к ним волей-неволей организоввывать как-то надо. Но ориентация Java на платформу Windows-only -- глупость, продиктованая имперским мышлением верхушки Microsoft. И о каких прорывах можно говорить в эпоху "царствования" фирмы, которая изначально старалась превратить (и превратила) то, что раньше называлось "Computer Science" в то, что теперь называется "Computer Business"? Это, конечно, не так уж и плохо, но "фронтир" должен быть всегда. Должны быть пограничные зоны для людей, не реализующих до конца свои возможности в бизнесе, более склонных "двигать науку", нежели манипулировать "бизнес-объектами". Или, всем без исключения "хакерам" и "сисадминам", что в принципе-то не сильно различается (должно не сильно различаться), будет предложено пройти сертификацию Microsoft и подписаться на MSDN? И как это будет выглядеть? "Microsoft Sertificated Hacker"? А... Свидетельства будут? Конечно, я утрирую, но в данном случае у меня есть предчувствие, что это -- смех сквозь слёзы. Так что, "технологические прорывы" в эпоху Microsoft отменяются. На самом высоком уровне. Остаётся ждать только того, что Microsoft рухнет под грузом собственных ошибок, завернувшись в кокон своих систем. А этого, сдаётся, ждать долго. Вот такие вот сомнения. |
|
| ||||||||||||||||
|