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

В феврале 2002 года я сидел в аудитории, которая представляла Visual Studio .NET, и смотрел, как Билл Гейтс рассказывает о новом продукте своей компании. Это был первый (и, вероятно) последний раз, когда я видел выступление Билла Гейтса, и, честно говоря, это было довольно круто.

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

.NET был ответом Microsoft на Java, сама Java разрабатывалась Sun. Мотивация Microsoft к созданию .NET была очевидна - с одной стороны, Java была популярна, и Microsoft на этом этапе довольно упорно придерживалась своей стратегии «охватить, расширить и погасить», а с другой стороны, все, что делала Microsoft, в конечном итоге учитывалось продавать больше лицензий.

.NET потребовал от инженера огромных усилий. Это была не просто оболочка для Win32, она стремилась переопределить способ написания программного обеспечения, предоставляя отличный первоклассный язык на C #, но также более или менее все базовые вспомогательные классы и функции, которые потребуются любому разработчику в форме. NET Framework. Более того, он был написан для поддержки всех типов усилий по разработке - неважно, какое программное обеспечение вы пытаетесь написать, команда .NET попытается помочь вам в этом. У вас также есть Visual Studio - безусловно, лучшая из доступных сред разработки. .NET был программным эквивалентом первой поездки в Нью-Йорк на Concorde - Microsoft хотела, чтобы вы хорошо проводили время; все остальное было лодкой.

Сегодня никто не создает ничего подобного .NET - нет эволюционной замены ни от одного поставщика. Kotlin, язык, который предпочитает Google для создания приложений Android, был разработан Jetbrains. Или, говоря другими словами: Google даже не стал заниматься разработкой языка, предпочитаемого для разработки под Android. Google создает API, но они смотрят только на библиотеки разработки для поддержки операционной системы. То же самое и с Apple. Они заботятся только о том, чтобы сделать вашу гребную лодку деревянной и сделанной из наших высокотехнологичных композитов. Вы по-прежнему делаете большую часть работы самостоятельно.

Сегодня в нашей отрасли сложилась странная ситуация: если вы возьмете кого-то, кто видел .NET только последние десять лет, и попросите его взглянуть на современные вещи, это будет выглядеть очень грубо. Как вообще PHP, который выглядит как классический ASP, может конкурировать с ASP.NET MVC? Как Javascript может конкурировать с C #? Как SQL Server может конкурировать с MySQL?

В современном ландшафте разработки отсутствуют две вещи, но самая странная часть этого состоит в том, что люди, в конечном итоге, пишут лучшее программное обеспечение, используя значительно более надежные инструменты. Во-первых, отсутствие профессиональной полировки. В то время как разработчик Microsoft привык к хитрым установщикам, разработчику, не являющемуся Microsoft, приходится иметь дело с взломом и рубкой (без каламбура) с помощью интерфейса командной строки. У разработчиков Javascript нет встроенной библиотеки коллекций. У пользователей Node.js нет мастеров для установки сертификатов и т. Д.

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

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

Google и Apple никогда не собираются делать такие инвестиции в маркетинг влияния, да и в действительности они в этом не нуждаются. Прошло десять лет с момента разработки iOS и, без сомнения, имея самый худший опыт разработчика в Xcode и Objective-C, iOS по-прежнему до смешного популярна. Люди получают власть через дрянные инструменты, потому что конечный дизайн очень ценен. То же самое и с Android, у которого есть набор инструментов, столь загадочный и зависящий от магических заклинаний, его использование похоже на попытку получить пятерку в ваших СОВ в Хогвартсе.

Но вот в чем проблема. .NET никогда не доминировал за пределами бизнес-приложений. И сегодня программы используют гораздо больше людей, чем когда писали Собор и базар. Программное обеспечение, которое мы создали за последние десять лет, программное обеспечение, которое каждый использует каждый день, такое как Facebook, Amazon, iOS, Android и все промежуточные сетевые прошивки, на порядок лучше и удобнее, чем когда Microsoft излагала, как мы должны писать. программное обеспечение с использованием .NET.

Оказывается, наша совместная инженерная способность взламывать программное обеспечение с использованием любых фрагментов и фрагментов с открытым исходным кодом, которые мы можем найти, не удерживает нас. Мы больше никогда не увидим ничего подобного .NET (или Java, если на то пошло), но, скорее всего, нам это не понадобится.