Главная > Компьютеры > Почему не стоит доверять Microsoft

Почему не стоит доверять Microsoft

Сколько себя помню, я всегда был с Майкрософт. Начало девяностых — MS DOS. Затем Windows 3.1. Windows 95. 98. Me. 2000. XP. Vista. 2008. 7. 8. 10. Параллельно, BASIC, Visual Basic, Visual Basic .NET, C#.NET, .NET Framework, C#, ASP.NET, ASP.NET MVC, … Где-то в параллельной вселенной — Windows Phone 7.

Каждый раз маркетологи майкрософт работали хорошо, убеждали меня, что это — самая лучшая технология. Но это не так.

Давайте я расскажу вам лишь некоторые случаи, и вы поймёте, что практически по всем фронтам на MS нельзя полагаться.

Windows 95

Эта штука постоянно зависала. Нужно было не торопиться, не открывать несколько приложений одновременно, иначе риск необходимости перезагрузки стремился к единице.

Windows 98

Зависала чуть поменьше. Жить стало чуть получше. Но в целом ситуация была точно такая же. К слову, синий экран смерти (BSOD, Blue Screen Of Death) вылетел и у самого Билла Гейтса, на презентации.

О безопасности не стоит и говорить: её не было. Впрочем, и защищаться в основном не от кого было: мало у кого была сеть.

Нельзя не вспомнить файловую систему FAT, которая постоянно сыпалась и теряла файлы, стоит пропасть питанию.

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

Windows ME

Вроде бы классная штука. Но как только я включил сетевой кабель общаги в свой компьютер, эта винда умерла и больше не ожила. Посоветовали поставить XP.

Windows XP

Поставил Windows XP — он тут же заразился по сети, без каких-либо действий с моей стороны. Более опытные ребята посоветовали: поставить без сетевого кабеля, дали диск с патчами, только потом можно подключать сеть. Получилось.

На этом, само собой, уязвимости не закончились.

А чего стоят только открытые с полными правами на запись по умолчанию сетевые шары, вроде «мои документы»! Мне было удивительно, куда пропадает место на моём жёстком диске.

Программирование

Мы приближаемся к реальным причинам не доверять майкрософту. Программирование. Маркетинг во все стороны кричит, что новая платформа .NET может всё, она самая лучшая. Начало двухтысячных. Пробую. Получается.

Разве что на протяжении всей истории моего программирования под виндоус, начиная с Visual Basic 5, заканчивая самым последним сишарпом — программы, написанные на этих языках ВСЕГДА требовали, чтобы пользователь поставил какие-то дополнительные библиотеки.

То есть если бы я писал на нормальных языках, пользователь бы просто запускал программы. А если я пишу на Специальных Языках Майкрософт Под ОС Майкрософт — то мне надо всегда таскать с собой огромные тяжёлые архивы — какие-то непонятные DLL-ки. С этим постоянно были проблемы.

Размер

Почему мои программы обречены быть монстрами? Простенькая программка в несколько строк кода тормозит при запуске, в оперативной памяти занимает десятки мегабайт. Полноценные кряки с музыкой и 3D-графикой весят десятки килобайт.

Самое главное — майкрософт всегда говорил, что у них с этим всё хорошо, так и должно быть. Это просто JIT-, IL-, и прочие непонятные слова. И вот недавно, «а вы знаете, мы, оказывается, зря загружаем сотни мегабайт библиотек; у нас там просто корявый легаси код от виндоус NT, но мы всё поправим». В своих информационных каналах скрывают правду до последнего.

Производительность

У чистого сишарпа производительность хорошая. Если нормально писать код. Тут не придерёшься. Мне удавалось попиксельно обрабатывать стереоизображение 640*480 30 раз в секунду, строить 3D карту, без каких-либо проблем. Конечно же, это если перейти на unsafe код.

Но вот когда дело касается стандартных библиотек, тут далеко не всё так гладко.

Возьмём к примеру веб. ASP.NET. Типа крутая технология. Мы майкрософт, мы всё ускорили, у нас всё классно. И только в некоторых робких обзорах «да это тормозной динозавр!»
Я же не знаю, как должно работать. Что-то написал, протестировал, получил 70 просмотров в секунду. Занимает 300 мегабайт. Ну, наверно нормально.

А оказывается PHP даже под виндоусом под IISом занимает около 5 мегабайт, и успевает отрабатывать тысячи раз.

Orchard

Или вот. ЦМСки. Orchard. «Мы сделали крутую штуку с динамиками на асп.нете!» Она реально прогружается дольше секунды! Я же не знал, нормально это, или нет. Маркетологи говорили «нормально». А оказывается — ничего подобного!

Позднее оказалось, что динамики в сишарпе были ужасно не оптимизированы, работали в сотни раз медленнее статически типизированных переменных. И тут маркетологи сразу себя нахваливают, «мы ускорили в сотни раз». Нет, ребят, вы не «ускорили в сотни раз», вы подсовывали супер-тормозную хрень много лет подряд.

Umbraco

Когда до меня начало доходить, что орчард — это тормозная хрень, я начал смотреть. А на чём же сделаны, например, сами сайты майкрософт, на которых они так красиво пишут, что «орчард это хорошо»? А оказывается они сделаны на Умбрако. Наверно, именно Умбрако — хорошая ЦМСка.

Ну, по сравнению с Орчардом это действительно так. По началу даже не особо тормозит. И более-менее получается добавлять контент.
Но это ненадолго.

  • Экосистема мёртвая.
  • Расширяемость никакая.
  • Очень болезненные апдейты.
  • Уязвимости.
  • Очень сложная настройка в куче разных xml файлов.
  • Абсолютно не скейлится: все посты обязаны висеть в xml файле!
  • И так далее, это монстр!

Entity Framework

ORM. Речь идёт о 4, 5, 6 версиях. Точно так же нахваливалась маркетологами Microsoft. По факту — супер тормозная хрень, и это подтверждает не только мой опыт, но и все реальные тесты в интернете.

Всякие scaffolding nuget команды работали… почти всегда. А когда не работали — ну, видимо не судьба. Удачи.

В данный момент я вообще ставлю под сомнение необходимость ORM. Micro-ORM хватает за глаза. ORM это опасно, нет контроля за SQL кодом, всё приходится перепроверять дважды.

Серверы

А что насчёт платформы, на которой всё это хостить? Майкрософт не раскрывают свой код, не делают решение под линукс, поэтому хоть поделка вроде Mono и есть под никсы, они всегда отстают, и неизвестно как работают. Хочешь качество и предсказуемость — нужен виндоус сервер.

И всё бы ничего, но сегодня наступил век облачных технологий, платить приходится за ресурсы. И вот только сам лишь виндоус сервер кушает 1 гигабайт оперативки. 1 ГБ!! Один простенький сайт на цмске вроде Умбрако — ещё 300 МБ. MS SQL / Express с базой данных в несколько мегабайт возьмёт ещё 100-200 МБ оперативной памяти, и ему будет этого мало.

Итого 1.5 ГБ на базовый сервер. Плюс платить за лицензию на виндоус сервер. Плюс может потребоваться платить за MSSQL. И всё это не будет летать. Это просто минимальные вменяемые требования.

Теперь понятно, почему весь веб-мир под линуксом. Там 256 МБ это уже мощный сервер. Бесплатно.

Экосистема

Абсолютно логично и ясно, почему в мире .NET экосистема — мёртвая.

Раньше я не понимал. Язык-то хороший. Мощный и быстрый. Но совершенно ничего нет. Хочешь что-то сделать — делай это сам.

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

Я погрузился в программирование ASP.NET, потому что думал: я уже превосходно знаю язык и стандартные библиотеки, поэтому буду чрезвычайно эффективен. Что бы ни потребовалось сделать, я смогу сделать это быстро, просто и качественно.

Реальность оказалась в том, что то, что на сишарпе я делаю «быстро, просто и качественно», в PHP мире делать вообще нет необходимости: всё уже заранее сделано за меня!!

Embedded программирование

Вернёмся ненадолго назад, ещё до того, как я пошёл в веб. Я писал драйверы под ембеддед линукс, писал низкоуровневый код, работал с железом. Мне уже промыли мозги маркетологи МС, поэтому я решил, что Netduino (клон Arduino, только под субсет .нет фреймворка) — это очень хорошо.

Купил и начал программировать.

Прикольно. Только оказалось, что для реальных задач он совсем никак не подходит. Ладно что библиотека сильно урезана, это понятно. Непонятны сверх-высокие системные требования, которые ужасно удорожают и усложняют разработку и изготовление системы. Но даже с этим, с горем пополам, можно мириться.

С чем во встраиваемом оборудовании мириться нельзя — это с низкой производительностью. Сишарп код там не компилируется, лишь интерпретируется в реальном времени.

Знаете, что это значит? Что 50 МГц процессор в секунду успевает выполнить не 50 000 000 элементарных строчек кода, а всего 8000! .NETMF превращает мощнейший по меркам embedded мира 50 МГц микроконтроллер в тормозную 8 КГц деревяшку.

По идее, локальную сборку .NETMF можно скомпилировать с кастом C кодом, но это далеко не тривиальная задача. Да и тогда какой смысл в .NETMF, если всё, что он делает — это тормозит.

Windows Phone 7

Новая передовая мобильная ОС от MS! Tiled-интерфейс! Metro! За ним будущее!

И я, по привычке поддаваясь влиянию превосходного маркетинга Microsoft, покупаю Samsung Omnia 7.

Красивый телефончик.
Только вот работает ужасно.

Контакты

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

Фонарик

Или вот прикол — в телефоне НЕЛЬЗЯ ВКЛЮЧИТЬ ФОНАРИК! Ну просто вот нельзя. И приложений для включения фонарика нет. Ну, думаю, сейчас сам напишу. Нет. Чтобы программировать под телефоны MS, Я!!! должен заплатить им 100$. Ребят, вы ничего не перепутали? Это не вы кричали developers developers developers, это не вам ли хочется экосистему из программистов и программ? Вот он я, высококлассный специалист, хочу писать для вас код. Почему вы заставляете меня платить?!

А, ну и кроме того, не существует (по крайней мере на тот момент и на протяжении всего времени, что я пользовался телефоном) API управления фонариком. Его просто невозможно включить из программы. Только уже заранее фабрично встроенные на телефон программы могут им управлять.

Поэтому чтобы воспользоваться фонариком, единственное, что я мог и делал — это начать снимать видео «со вспышкой». И экран нельзя было блокировать, любое касание выключало запись и гасило фонарик. Это изощрённая пытка.

Мобильный интернет

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

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

Или вот показательный случай. Еду на собеседование. Дорогу пытаюсь посмотреть по телефону — он как всегда не даёт интернета, даже после нескольких перезагрузок. В итоге, поймал какого-то парня, который дал мне имевшуюся у него на руках распечатку местной карты (! =), дошёл до места с опозданием.

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

В общем после собеседования мне сказали, что по техническим знаниям я прохожу, а вот как человек им не подхожу. Привет, мобильный телефон от Microsoft, надёжный помощник.

Сервисы

Сервисы Microsoft это отдельная история. Они не пытаются делать ничего нового, просто копируют. И клоны получаются намного хуже оригиналов. Codeplex — тормозит.

Сетевое хранилище, SkyDrive, OneDrive — и тормозят, и с ними неудобно работать. Удалённый рабочий стол через SkyDrive — фантомно менял разрешение на удалённом компьютере. Офис — насколько я помню, хотя MS являлись абсолютным лидером в этой сфере, они отстали от гугла и теперь пытаются догнать. Какой-то Office 365 — ничего хорошего сказать не могу, там интеграция со SkyDrive и у меня там всё тормозило, а иногда — не работало. И связь с мобильным телефоном Windows Phone 7 тоже ломалась. В общем, счастлив, что убежал оттуда.

Azure — дорого и сложно. Пытался начинать, когда был программистом ASP.NET. Везде догоняют. Везде проигрывают. Везде хуже.

Софт

Visual Studio

Вижуал студия хороша. Лучше дебага я не видел. Но за это приходится платить. Она — ужасный тяжеловесный монстр.

Добро пожаловать. 2013 год. Восьмиядерный топовый процессор core i7, SSD, 16 GB RAM, кроме студии больше программ не запущено, процессор не занят. И я не могу писать буквы в реальном времени!!! То, что я печатаю, появляется на экране студии только через секунду. С этим справлялись компьютеры 50 лет назад, с этим не может справиться монстр Microsoft.

В студии всё подвисает. А разработчики студии из года в год меняют показания. Один год говорят, что студия — стала быстрой и классной! Другой год — у нас проблемы, студия была написана так, что операции происходят в интерфейсном потоке. Третий год — нам удалось вынести тяжёлые операции из интерфейсного потока, мы всё переписали! Следующий год — оказывается нифига не удалось, вот вам Watson, давайте он будет репортить всё, что занимает дольше 2 секунд нам на сервер, а мы будем потихоньку чинить. Т.е. понимаете? Всё, что зависает меньше чем на 2 секунды — они даже и не пытаются починить, много куда более серьёзных проблем!

Visual Studio Code

Майкрософт опять копируют. Пытаются скопировать Sublime Text. Продукт 1-в-1. Но с классической фишкой MS: совершенно сыро, недоделано, нежизнеспособно. Бесполезно.

Ну, видимо, Верхи ставят задание «надо присутствовать на рынке», инженерные отделы что-то мёртвое рожают. Как-то так и живут.

Internet Explorer

Про IE не нужно много говорить. В каждой версии МС говорят, что он стал классный, но он как был… Думаю, нет смысла описывать IE. Его все знают.

А что хорошего сделали Microsoft?

Нужно отдать им должное, за последние лет 20 они что-то — всё-таки сделали. Kinect! Это реальный прорыв! Это карта глубины в каждый дом. Реальный шаг вперёд. И удобное API, с которым даже я с наслаждением пользовался. Кинект — это огонь!

Ещё сюда следует отнести Windows. Не потому, что Windows — это хорошо. А просто потому, что всё остальное — ещё хуже.

Резюме

Я коснулся лишь малой части продуктов Microsoft, и все они как один имеют общие свойства: хороший маркетинг, сырое ужасное исполнение. В подавляющем большинстве случаев — плохое копирование уже существующего успешного продукта/сервиса.

Впредь от MS стоит ожидать того же. Если продукт MS на 100% решает вашу текущую задачу — поздравляю, пользуйтесь. Если нет — не стоит надеяться, что «ещё чуть-чуть и станет лучше». Не станет. Это Microsoft.

 

 

 

Обсуждение

avatar

Flatnoise
Flatnoise
2017.04.19 16:56

Охбля, ты еще их продукты для «большого» энтерпрайза не видел. Например MS DPM — система резервного копирования, которой для нормальной работы нужен отдельный человек, который должен 24/7 сделить за ней и тыкать палочкой, потому что задания периодически фейлятся и их надо дергать вручную.
Или MS SCOM, охуенная система мониторинга, которая за 30+ нормальных серверах тупит сильнее, чем тупил нагиос на одной десктопной железке, стоящей под столом. Ну и дико глючит в процессе, разумеется.
Ну и Sharepoint, который нез лага в несколько секунд вообще ничего не делает в принципе.

wpDiscuz