Я работаю над созданием технологической основы бизнеса нового стартапа. Как диктует мода, это облачный бизнес. И также следуя моде (и оглядываясь на своего CTO), я пытаюсь определить, стоит ли мне положиться на технологии Microsoft или лучше постараться обойтись без них. Собственно, почему я должен их избегать, если многие успешные стартапы вовсе не сторонятся продуктов Microsoft?

Инстинкт

Скоро будет двадцать два года, как я занимаюсь разработкой ПО. Начинал с Visual Studio (точнее, Visual C++), и ныне еще продолжаю работать на платформе Microsoft, хотя по заказам клиентов я должен иметь дело со всеми популярными мобильными платформами и целым букетом свободного ПО.

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

Давайте оставим в стороне сложности «науки о данных». Допустим, мы просто создаем облачную систему, нуждающуюся в СУБД, наборе веб-сервисов и внешнем веб-интерфейсе с доступом нормальных клиентов iOS, Android, и, возможно, Windows Phone. С этого обычно начинает практически любой интернет-стартап.

Мой инстинкт подсказывает положиться во всем этом на Microsoft. Как ни как, а ее предложения я знаю лучше всего. Поэтому я бы, естественно, выбрал SQL Server, ASP.NET и запустил это дело на Azure.

Проблема

Но тут возникает проблема. SQL Server — дорогой зверь. Хотя на самом деле проблема, скорее, в том, что я фактически не знаю, как дорого обойдется SQL Server в этом проекте, потому что лицензирование Microsoft, по словам Кингсли-Хьюза, автора множества статей по технологиям, — это «токсичное варево первого порядка».

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

Если строить бизнес на решениях Microsoft, то я тотчас же должен повязать себя более чем тремястами лицензиями Windows Server. Мне также придется оплачивать гигантскую, судя по всему, инсталляцию SQL Server. Даже если бы я мог самостоятельно определить масштабы инсталляции этой СУБД, невозможно без помощи наемного консультанта посчитать, в какую сумму это все обойдется, причем в дальнейшем каждые пару лет я буду «обрадован» изменением лицензионных правил.

Потому я решил поискать что-то другое, полагая, что всё это можно реализовать на Linux, открытой СУБД (MariaDB или PostgreSQL), и Mono, исполняемой в среде Apache или Nginx.

Я по-прежнему готов использовать C# и .NET, которые я люблю, но передо мной имеется шведский стол других опций, и мне бы не хотелось при каждой покупке перечислять деньги в Редмонд.

Наивность

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

Вопрос в следующем: нужно ли новому технологическому стартапу связываться с нынешней системой лицензирования Microsoft? Стоит это того или нет?

Давным-давно я работал в компании (это было одно из лучших мест, где мне пришлось трудиться), продававшей программный продукт, написанный на 4GL. Каждый раз, когда компания продавала лицензию на свое ПО, ей приходилось делать отчисления вендору 4GL. Моему клиенту это ужасно не нравилось — вплоть до того, что ему хотелось все переделать в .NET, не предусматривающей подобные отчисления по runtime-лицензиям.

Сегодня в точности то же самое делает любой разработчик, ориентирующийся в бизнесе облачных сервисов на Windows. Разве что мы не считаем Microsoft такой же сторонней компанией, как тот старый вендор 4GL. Но каждый раз, когда я продаю лицензию на свое ПО, я должен запустить новую Windows-машину под веб-сервисы ASP.NET и оплатить Microsoft стоимость соответствующей лицензии.

По существу, инструментарий разработчика Microsoft подразумевает выплаты по runtime-лицензиям. Мы только этого не замечаем.

Тяга

Теперь мне хочется спросить,: «Что нас так тянет к Microsoft?»

Я люблю C#, .NET, Visual Studio и SQL Server, но сегодня Редмонд уже не является лидером в создании ПО.

Когда-то давно, в конце 1990-х, начале 2000-х, команда из Редмонда делала много замечательного для разработки ПО. Абсолютным откровением был .NET Framework, изумительной в использовании была технология ASP.NET, но сегодня лидерство по всем направлениям перешло в лагерь Open Source.

Мы видим, что Microsoft следует за сообществом Open Source. С точки зрения перспективы разработки ПО, мне нравится, что Microsoft это делает. Но это разрушает разумные основания ее системы лицензирования.

Когда Microsoft впервые захотела, чтобы люди приняли Windows, она выбрала подход, который можно охарактеризовать так — «прежде всего разработчики». Если компания привлечет на свою сторону разработчиков, пользователи последуют за ними. (Именно поэтому так рано были представлены Apple Watch — если привлечь разработчиков, за покупателями дело не станет.)

Однако подобный подход предполагает, что компания является лидером на рынке. Подразумевается: «Мы — Microsoft. Наш поезд отправляется, и если хотите зарабатывать деньги вместе с нами, покупайте билет». (Прежде, чем вы напомните о BizSpark, скажу, что это лишь способ отсрочить для вас покупку билета.)

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