30 September 2014

Про Microsoft и грабли

У меня не хватит пальцев на руке, чтобы посчитать сколько серьезных ошибок и промахов совершила компания Microsoft за последние лет десять... Одна из этих ошибок -- самонадеянная и слепая вера в то, что на рынок можно выкатить любую хрень, красиво преподнести ее разработчикам, и они все побросают и, высунув язык, ринутся в указанном направлении.

К моменту, когда на рынок next gen смартфонов наконец-то, с большим опозданием, выкатили Windows Phone 7, рынок этот был уже довольно зрелым и сформировавшимся; на нем царили iOS и Android. В силу того, что практически любой разработчик хотел выйти со своим продуктом под обе платформы, основной код для таких кроссплатформенных решений писался на C++, т.к. это был (и остается по сей день) фактически единственный способ сесть одной жопой на два кресла...
Что же придумали в Microsoft для своего детища? "Это ничего, что мы малость опоздали... Мы же Microsoft! Мы большие! Мы могучие! Нас все любят!... У нас не будет никакого C++, у нас будет .NET, наш любимый C#! Как только мы выйдем на рынок, все разработчики кинутся к нам, начнут писать на C#, а потому не смогут перенести свой код на iOS и Android! Ха-ха, эти лузеры из Apple и Google скоро вообще останутся без разработчиков и без приложений!".


А что получилось на практике? А вышло все ровно наоборот.
Народ рассудил просто -- мы и дальше будем писать на C++ под две уже состоявшиеся платформы. На хрена нам писать непереносимый код под платформу, перспективы которой весьма и весьма туманны? И WP7 осталась без поддержки разработчиков. И без приложений.
Microsoft засуетилась. Деньги полились рекой. Народ соблазняли конкурсами, по итогам которых, правда, в маркете появлялось плюс сто совершенно убогих приложений, написанных какими-то студентами за три дня на коленке... Дяди из Microsoft просто тупо начали заносить чемоданы денег для того, чтобы разработчик полностью переписал весь код какого-нибудь хита под их новую и типа очень перспективную платформу.
Иногда чемоданы были очень большими. Так у Microsoft появился Skype, который вообще невозможно было перенести на WP7 в силу запрета нативного кода и других дурацких ограничений на возможности сторонних приложений.

Посмотрели в Microsoft на "успех" своего перспективного детища, на убытки, на потерянное бабло, которое чемоданами кидали в топку паровоза, и решили начать с чистого листа. С учетом набитых шишек. Так появился Windows Phone 8. Разработчикам, скрепя зубами, разрешили использовать C++, читай -- переиспользовать код, который был написан для вражеских iOS и Android.

Стало ли все хорошо? Ох, не уверен.

На днях исследовал возможность портирования одного очень серьезного проекта (написанного на C++) под WP8.
И выяснил, что все очень и очень печально.

И ладно, хрен с ним, я могу еще как-то понять, что WinRT до сих пор не поддерживается одной специализированной библиотекой, которую мы используем. Хотя она сто лет как спокойно работает под iOS и Android.
Но как же быть с boost?! Библиотека boost это самая популярная в мире C++ библиотека! Без нее -- ну вообще никак, особенно если вы сидите на старом стандарте языка. Windows 8 и Windows Phone 8 уже два года на рынке и всё, что я смог нарыть на тему boost под WinRT, это вот эту июльскую запись в блоге разработчиков Microsoft C++ компилятора о том, что где-то там в недрах репозитория можно найти волшебную ветку, в которой типа работает пара-тройка модулей из boost, а "с остальным вы легко разберетесь сами". И это все!

Ребята, это полный аут! Ну раз ваши креативные и шибко перспективные подделки в метро стиле никому на хуй не нужны, может стоит вашим ребятам, которые в горячечном бреду внесли в список забаненных API для WinRT вещи типа CreateThread или CreateFile, может все-таки стоит этим ребятам засучить рукава и своими руками починить последствия своих гениальных находок?! Или может вспомнить старую добрую практику, и занести пару-тройку чемоданов тем ребятам, которые смогут привести в чувства такие must have вещи как boost для работы под ваши гребаные плиточные поделки?
Прошло два (два!) года а boost до сих пор не поддерживает WinRT!!

Писать на этом фоне о других мелочах даже как-то неудобно.
Лично я, например, в полном восторге от того, что для работы с WP8 SDK мне нужна Windows 8 Pro. И никак не меньше. Явно ж придумали, чтобы привлечь максимальное число разработчиков для своей платформы!
Еще очень круто, что компилятор Microsoft на две головы отстает от своих конкурентов в плане поддержки нового стандарта C++ -- C++11. При этом сгородить очередное проприетарное расширение языка для поддержки WinRT у них времени, конечно же, хватило, а вот добавить стандартные фичи -- фиг вам!..

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

No comments:

Post a Comment