Joel on Software — Как Microsoft проиграла битву за API

Данный пост отражает сугубо личную точку зрения автора (то есть, мою точку зрения). Я ни в коем случае не преследую цель затеять здесь священную войну или флейм. Этот пост является продолжением обсуждения дискуссии в Клубе Выпускников. Материалы и само обсуждение здесь не публикуется, и если у вас нет доступа к этому форуму — могу лишь порекомендовать пройти курсы Веба в ЦКО Специалист, и получить вожделенный доступ к этой конференции.

Джоель Спольски написал очень вдумчивую и очень подробную статью
How Microsoft Lost the API War (Как Microsoft проиграла битву за API)

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

Конечно же, скажут мне, легко критиковать чужие мысли, чужие заметки, и я соглашусь, добавив, что критиковать легко, а огульно критиковать (в стиле «Microsoft must die!») еще легче! Не будем уподобляться воинствующим тинейджерам, с их возрастным максимализмом, и постараемся разобраться в вопросе… Итак, let’s go!

> Наибольшее преимущество .NET заключается в автоматическом управлении памятью.

Да что вы уперлись в это управление памятью? Да, это кошмар, но это кошмар конкретного подхода — языка С! Когда вы сами беретесь распределять память, сами дергаете WinAPI, то это хорошо проходит на сравнительно небольшом коде, но время идет, и количество вашего кода так же увеличивается, и старые подходы, типа прямая работа с WinAPI становятся неэффективными. WinAPI также изменяется — он (API — это «он», интерфейс) не может не изменяться! Операционка меняется, железо меняется, и если вы хотите всем этим пользоваться, WinAPI также будет изменяться. Этого не может не быть. Но говорить только о проблеме распределения и освобождения ресурсов — это просто не видеть проблем своего приложения. Да, .Net делает это вместо вас, и делает хорошо, но помимо автоматического управления памятью .Net дает еще и огромное количество возможностей: и JIT компиляцию под текущую платформу, и богатейшую библиотеку классов (вместо запутанного WinAPI!!!), решение проблем совместимости, и практически отсутствие DLL hell и … см. ниже

> Потом .NET 1.1 не имел идеальной обратной совместимости с 1.0

Вполне согласен! Но они умеют работать бок-о-бок (side-by-side). И если вам эта совместимость край как нужна (если вам просто лень просто перекомпилировать проект под другой .Net Framework) поставьте на машину заказчика оба .Net Framework’а! У меня, например, их три — в качестве тестов (1.0, 1.1, 2.0) ! Вот собираюсь и теперь и четвертый поставить (3.0). Самое интересное, за все время, что я использую и пишу .Net приложения, у меня ни разу не возникала проблема несовместимости отдельных компонентов! Вот вам и DLL hell. DLL hell превратился в Assembly Paradise!

> Лагерь журнала MSDN всегда пытается убедить вас применять новые и сложные внешние технологии, такие как COM+, MSMQ, MSDE, Microsoft Office, Internet Explorer и его компоненты, MSXML, DirectX (пожалуйста, самую последнюю версию), Windows Media Player и Sharepoint… Sharepoint! У кого он есть?

Э-э-э, ребята! Не надо путать божий дар с яичницей! Вы только что тут активно говорили о распределении памяти и прямом программировании WinAPI, и здесь же смешиваете технологии совершенно иного порядка. SharePoint? Ну, во первых, есть он у многих. А во вторых… А вот представьте себе, необходимо сделать корпоративный портал, с хранением документов, на 10000 пользователей, на 10 удаленных офисов, с корпоративным поиском на 1000000 документов в индексе, с интеграцией с офисными приложениями и, скажем, ERM SAP. Вот это и задача SharePoint. Если такую задачу начать писать «в лоб», то возможно, вы и справитесь… к 2030 году.

> Мне действительно немного жаль. По мне, Веб – это классно, но веб-ориентированные приложения с их гадким, непоследовательным интерфейсом с большим временем реакции – большой шаг назад в отношении удобства и практичности (usability) интерфейсов. Я люблю «богатых клиентов» и сойду с ума, если придется работать на веб-версиях ежедневно мною используемых программ: Visual Studio, CityDesk, Outlook, Corel PhotoPaint, QuickBooks. Но это то, чем собираются нас снабдить разработчики.

О да! Не надо смешивать все в одной куче: Веб (Поручик, молчать!!! Никаких два-нулей!!! Нецензурными словами не выражаться!), rich-clients, smart-clients и другое. Это совершенно разные задачи, совершенно разные направления, и совершенно разные реализации.

> Причина, по которой платят 130 000 $ программисту со знанием СОМ, заключается в том, что никто за последние восемь лет не утруждал себя изучением СОМ, так что вам необходимо найти действительно опытного и зрелого человека, обычно уже в менеджменте, и убедить его работать программистом, связаться (боже, помоги мне!) с маршаллингом, моникерами, распределенными потоками, агрегатами и миллионом других вещей, которые понимал только Дон Бокс, и даже Дон Бокс больше не может на это смотреть.

Причина, по которой разработчику со знанием COM+ платят $130000 в год заключается в том, что это разработка несколько иного уровня, нежели разработка Веб-приложений (нет! Не так! Некоторые Веб-приложения тоже могут требовать инфраструктуры COM+). Когда у вас встанет задача построения распределенной системы, в которой текут распределенные транзакции, включающие в себя, скажем SQL сервер в Москве и факсимильный аппарат в Питере, то, боюсь, без COM+ обойтись будет сложно. И кстати, .Net ни в коем разе не отменяет COM+. Пример, курс Microsoft: Building COM+ Applications Using Microsoft .NET Enterprise Services

Итак, в качестве вывода можно привести такую фразу: .Net — это очередной шаг в развитии технологий разработки приложений, мощный и могучий способ решить поставленные задачи. Он может не нравится, его можно не замечать, или вовсе отрицать, но он никуда не денется, он будет и дальше развиваться. А Microsoft «битву за API» не проигрывала, да и битвы-то никакой и не было. Просто все переходит на новый качественный уровень, непохожий на старые, привычные методы программирования, но это уже совсем другая история…

 

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

Пингвину все хуже и хуже

Встретилась мне интереснейшая заметка в одном из блогов. Mindberg пишет (настоятельно рекомендую прочитать этот пост целиком)
http://mindberg.blogspot.com/2006/09/blog-post.htm…

Помню феерические настроения сторонников Linux и громкие заголовки: "Мюнхен переходит на Linux", "Лондон внедряет ПО Open Source", "Норвежский Берген выбрал Linux". Похоже было на массовый психоз любителей "дохлого пингвина", изрядно подогреваемый конкурентами Microsoft.

Хорошо, что мудрость пришла со временем … или пришли новые менеджеры. В итоге проекты внедрения Linux и Open Source стали сворачивать. Норвежский Берген остановил свой проект после проведения испытаний. В Мюнхене отложили проект на год (скорее всего присматриваются к .NET и WPF с WCF). Лондон тоже отказался от своего проекта и остановился на продуктах Microsoft (подробнее здесь).

Конечно же можно вспомнить про домашних пользователей линукса; не секрет, что все они выбрали линукс просто из-за протеста, но их очень мало. Вообщем, план IBM и Sun победить Microsoft с помощью бесплатного линукса провалился :)

Сказать, что я согласен с уважаемым Mindberg’ом, значит ничего на сказать. Я абсолютно согласен с этим утверждением! К сожалению, "торжественного шествия коммунизма Open Source по планете" не произошло, и на то есть ряд причин, которые очень удачно вскрыл товарищ Mindberg. Но, на мой взгляд есть и еще причины:

Как правило (не всегда, я не говорю что всегда!), разработчики под nix системы ориентируются на уже существующие приложения MS. Речь идет о основных пользовательских приложениях и сервисах, как то — функциональность ОС, пользовательский интерфейс, офисные пакеты, почтовые и др. программы пользователя и т.п. Посмотрите на существующие распространенные *nix приложения — это же калька наработок MS пятилетней давности!

   

И причина здесь, не в прозорливости Microsoft, а в наличии у последней определенного плана, стратегии развития архитектуры софта, чего напрочь лишено любое сообщество разработчиков без центрального органа стратегического планирования. Вот и получается, что Open Source разработки сильны в роли догоняющего, но стоит им выйти на самостоятельные рубежи, получается как в басне про Лебедя, Рака и Щуку, каждый начинает тянуть в свою сторону, и направление разработки больше напоминает броуновское движение, которое в данном случае неэффективно.

Нет, я ни в коем случае не против Open Source, Linux и т.п.! Но не надо возводить их в ранг Вселенского Абсолюта, Абсолютной Истины. Ведь есть факты, а факты упрямая вещь! И факт в том, что Microsoft — это самая удачливая и успешная софтверная компания, которая делает, по общему счету, первоклассный софт (хотя и не без исключений и ошибок — а у кого их не бывает?), и тупо отметать этот факт, считая MS абсолютным злом — это быть религиозным фанатиком, тупым, забитым человечном без собственного, по общему счету, мнения, обреченному, как ни странно, на тихое вымирание.

Что касается меня, так я выбираю более удобный и качественный продукт, а именно, я пользуюсь операционными системами от Microsoft, потому что они лучше и удобнее, чем *nix, я использую офисный пакет от Microsoft, потому что он на голову превосходит всякие OpenOffice, я пишу свои скромные наработки в среде .Net, потому что она на 10 порядком превосходит всякие Perl и PHP, и не такая сложная и запутанная как Java, я использую MS SQL 2005, потому что он быстрый, бесплатный и намного более могучий чем MySQL, и этот список можно продолжать далее…

Дисклаймер: все то, что написано выше является исключительно моим личным мнением, и не призвано разжигать священную войну. Если же у вас чешутся кончики пальцев написать в комментах что типа MUST DIE, потому что я оскорбил ваши священные чувства к Linux, то предлагаю вам взять свои чувства и сунуть их себе поглубже в …! Комменты явно оскорбительного характера будут безжалостно удалены!

Windows Live Toolbar доступен для загрузки

Windows Live Toolbar доступен для скачивания здесь: http://toolbar.live.com/
Windows Live Toolbar — очень удобный инструмент, который можно только по рекомендовать. Я двано ждал его появляния, особенно после перехода на Windows Desktop Search, в который этот тулбар вкючен не был, в отличие от предшественника — MSN Desktop search. И вот — он появился!
 
 
Итак, Windows Live Toolbar дает возможность:
  • Появляется поисковая панель в IE — настройка на любой поисковик — гугл, янндекс, live.com и т.п. Панель может искать как в интернете, так в RSS фидах, или на текущес сайте (очень удобно!). Если стоит Windows Desktop search — то и на локальном компьютере и в локальной сети
  • Появляется панель поиска в MS Outlook — no comments! Супер! Как ее не хватало!
  • Появляются табы в IE6
  • Появляется возможность подсветки в IE ключевых поисковых слов на странице — удобно
  • Куча дополнительных фич, именуемых кнопками, например, погода, почта и т.п.
 
В общем. рекомендация: качать однозначно! И если у вас еще не стоит Windows Desktop Search — и его также в обязательном порядке.
 

Тестирование скорости канала

Опять наткнулся на утилиту тестирования скорости канала:
 
Требует установки Java Runtime, и вроде, что-то там тестит. Вот результаты на моем канале и маршрутизаторе DVA-G3340S
 
Соединение / kbps
257 513 769 1025 1281 1537 2049 2305
33.6K, модем
 
56.6K, модем
 
64K, ISDN
 
128K, DUAL ISDN
 
150K
 
192K
 
300K
 
1/2 мегабита!
 
1 мегабит!
 
2 мегабита!
 
Ваша скорость (download):
   — 567.3 kbps
Ваша скорость (upload):
   — 21276.5 kbps
 
 
 
 Кажется, товарищи перепутали download и upload потоки :)
 
Леня Лукин как-то публиковал заметку о службе тестирования канала. Вот данные той службы:
2360 kbps or 294.98 KB/s
 
Чтож, цифры, похоже, разнятся на порядок…

Вышел Microsoft Windows Desktop Search 2.6.5 с поддержкой русского интерфейса

Итак, вышел новый Windows Desktop Search, причем с пакетом MUI, в том числе, и на русском языке. Кроме того, очень настоятельно к нему рекомендую скачать и поставить Citeknet IFilter Explorer — это бесплатная утилита, которая показывает как и каким IFilter индексируется тот или иной вид файлов. Очень полезный инструмент для тонкой настройки поиска.

Для справки: Windows Desktop Search — это мощнейщий локальный поисковик, в сравнении с которым (ИМХО) отдыхает даже поисковик от Гугла, а всякие локальные Яндексы нервно трясутся и курят в строронке. Это монстр! Это софт из разряда MUST HAVE однозначно! Если вы еще не поставили — НЕМЕДЛЕННО СТАВЬТЕ!!!!!

Ссылки:

MSN Messenger — самый популярный IM-клиент

 Интересная заметка Александра Ложечкина:

MSNMessengerиспользует 61 процент пользователей instantmessaging! Помню лет 6-7 назад у меня тоже была ICQ, и помню, что она меня страшно раздражала своим пользовательским интерфейсом в стиле новогодней елки в детском саду. И как только я узнал о существовании WindowsMessenger, я немедленно удалил со своего компьютера ICQи с тех пор пользовался только MSN. Да, какое-то мой контакт-лист был пустым, но со временем все больше и больше людей появлялись в списке, иногда даже устанавливая MSNтолько для того, чтобы общаться со мной. Так что я могу теперь считать, что тоже приложил руку к текущему лидерству MSN. :) …

 

Кстати, популярность ICQ в России это такой-же культурный феномен, как и популярность у нас LiveJournal. В мире и то и другое знают значительно меньше, чем у нас. И это действительно очень любопытно, почему так получилось. Есть идеи?

(далее…)

Вице-президент Microsoft Эрик Раддер в переводе Гоблина

Интервью со старшим вице-президентом Microsoft Эриком Раддером (Eric Rudder). В интервью Эрик отвечает на вопросы: будет ли центр разработок Microsoft в России, какие приложения сейчас нужно разрабатывать независимым разработчикам, что нужно делать, чтобы стать вице-президентом Microsoft. Интервью переведено на русский язык студией "Полный Пэ", а именно Дмитрием Пучковым (Гоблин).

 Источник

Вице-президент Microsoft Эрик Раддер (в переводе Гоблина)

D-Link DNS-300: снижение шума вентилятора (кулера)

Как я уже писал, все меня устраивает в сетевом накопителе DNS-300, кроме двух вещей — несколько низкая скорость обмена данными (около 2 мегабайт в сек), но это терпимо, и гул кулера -противный постоянный шум вентилятора охлаждения. И если скорость копирования прощается (ну не бывает чудес! Нельзя купить производительный сервер за $150!), то этот мерзкий шум раздражает неимоверно! Днем его особенно не заметно, он маскируется другими шумами квартиры и улицы, а вот ночью… Это похоже на китайскую пытку. И что характерно, я великолепно засыпаю по шум компьютера (видимо, привычка), хотя компьютер явно шумит громче DNS-300, но монотонный гул кулера означенного устройства раздражает очень сильно, даже несмотря на то, что у меня он территориально расположен в прихожей. После первой же ночи приходилось просто выключать его от питания!
Умные люди на форуме поддержки D-link посоветовали вообще отключить кулер и поставить на HDD массивный радиатор, но, к сожалению, слесарей знакомых, могущих выполнить такой заказ у меня нет, и поэтому мы пошли другим путем.
Дима Экономов, непревзойденный электронщик и схемотехник, как и обещался, в два дня сделал схему управления кулером. Схема управления Экономова (из десятка деталей) контролирует одну из линий IDE интерфейса и при снижении активности обращения к HDD снижает обороты кулера до таких пределов, что его вообще перестает быть слышно. То есть при отсутствии обращений к DNS-300 он сам снижает активность своего охлаждения, не убирает его вообще, а просто снижает.
Красота! Теперь я сплю спокойно! Правда, Дима просил не публиковать схему управления, и не из жлобских соображений, а просто, как он выразился: "Я сделал ее из того, что выгреб из-под дивана". То есть, если бы он удосужился бы съездить в "Чип и Дип" или, скажем, на Митинский рынок, схема стала бы компактнее, проще и меньше. Но тем не менее, желающие могут обращаться к Диме! Хотя можно и так: если вам нужна такая схема — пишите здесь, в моем блоге, а я передам все замечания Диме Экономову, автору схемы.
На фотографиях показан процесс модернизации D-Link DNS-300