.NET спустя 10 лет: актуальность технологий и навыков

Всем привет. Меня зовут Владислав Фурдак, являюсь .NET техлидом, c платформой .NET работаю около 10 лет. Ранее писал на DOU о карьерных темах, а также технические статьи. Эта статья покажет, как изменилась разработка на .NET за последние 10 лет, какие навыки стали более актуальными, а какие уже устаревшие.

Что теряет популярность

C#

  • Вам уже наверняка никогда не понадобится писать свои типы делегатов, так как есть обобщенные Action, Func и Predicate.
  • Среди асинхронных моделей разработки (EAP, APM, TAP) — EAP & APM считаются устаревшими, так же некоторые из элементов TAP являются устаревшими тоже.

    Например, в TAP есть рекомендации по именованию асинхронных методов постфиксом Async. Но де-факто весь код, что пишется уже по умолчанию, должен быть асинхронным. Следовательно, Async используется только в случае, если в разрабатываемом нами модуле есть альтернативная синхронная версия метода.

    С появлением async/await в C#5 подходы к TAP изменились. Теперь обычный асинхронный поток выполнения есть смысл писать только через await, без ContinueWith у Task. Более подробно я это описывал в своей статье об асинхронном программировании.

  • В применении паттернов проектирования уже нет смысла писать вариации Singleton’a, например потокобезопасные, потому что управление жизненным циклом объектов осуществляется через IoC контейнеры, Singleton scope.
  • Устаревшим считается класс TransactionScope.Ambient — транзакции считаются дурным тоном по следующим причинам:
    • Нужно быть уверенным, что ваш провайдер для O\RM его поддерживает в полной мере.
    • Есть риск запустить распределенную транзакцию, что требует дополнительных сервисов и является довольно медленным и устаревшим подходом.
    • Возможны конфликты с асинхронным кодом, необходимо выставлять дополнительные опции.
  • Знания многопоточности уже не так сильно решают, Microsoft сделало все для того, чтобы снизить необходимость писать многопоточный код и управлять примитивами синхронизации в бизнес-приложениях.

Я уже не могу представить случая, когда вам нужно будет создавать вручную классы Thread’ов. В случае необходимости выполнения в отдельном потоке единицы работы — можно использовать Task с опциями LongRunning.

Возможно, единственным случаем может быть написание своего TaskScheduler’a (планировщика задач, по сути стратегии размещения тасок в потоках) при разработке нового фреймворка, где это необходимо, например в Microsoft Orleans, фреймворке для создания высоконагруженного серверного кода, написан свой однопоточный Task Scheduler.

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

Для запуска параллельных задач — используйте средства Task Parallel Library либо же Task API.

В случае все же необходимости использовать конструкции синхронизации, используйте CLR-версии вместо конструкций уровня ядра ОС, например SemaphoreSlim вместо Semaphore.

  • В Unit-тестировании отпала необходимость в использовании моков источников данных вокруг DbContext. При использовании Entity Framework, мы можем использовать In-memory DB provider, заранее наполняя коллекции тестовыми данными.
  • В .NET Core/.NET 5 консольных приложениях конфигурирование сведено в единое место с помощью Generic Host, который теперь отделен от веб-сервера. Управлять внедрением зависимостей, логированием, конфигурациями, переменными окружения, аргументами командной строки стало удобней.
  • Новые фичи языка делают его не только более лаконичным, но и более производительным:
БылоСтало
Делегаты для объявления методов внутри методовЛокальные функции, которые лаконичней и быстрей
switch/casePattern matching в switch/case
Явная проверка на nullконструкции ?. , ?? , ??= , более подробно в моей другой статье
Модель стримов (Streams)Async Streams, более разумно подходящие к ресурсам из-за неблокирующего ожидания между чтениями
Домены приложения (Application Domains)Упразднены в .NET 5, считаются устаревшим подходом с приходом эры контейнеров и микросервисов.
Если вы использовали библиотеки вроде Optional для контроля Null-значенийТеперь можно использовать nullable reference types в C# 8
Разработка в иммутабельным стилеC# 9 Records, как воплощение этой идеи на уровне языка.

Кажется, что C# целиком вытеснил VB.NET. Второй по популярности CLR-язык это F# - в узких кругах считается самым элегантным языком. Является действительно мощным средством функционального программирования.

CLR & Compiler

  • Вместо MSBuild теперь используют утилиту dotnet, как более простой CLI для .NET Core приложений, однако под капотом он продолжает использовать MSBuild. Компилятор не требует установленной VisualStudio, как это было с первыми версиями Roslyn’a, который поставлялся в виде Nuget-пакетов.
  • .NET Core принес нам новый способ конфигурирования проекта через Project.SDKs
  • Довольно значимой фичей в .NET 5 стал App Trimming (Tree shaking). Удаление неиспользуемого кода из сборок стало довольно актуально для Blazor WebAssembly-приложений, а также для более быстрого развертывания серверного кода.

Напомню, что следующим релизом .NET после ASP.NET Core 3.x является .NET 5.

Полный список новых фич .NET 5 можно глянуть тут.

ASP.NET Core

Стандартный веб-фреймворк от Microsoft сделал огромный шаг вперед, по сравнению с тем, что было до этого (classic asp.net).

Во-первых: были внедрены концепции, давно прижившиеся в других технологических стеках: механизм middleware, более гибкая и понятная конфигурация через код, наличие конфигов в JSON, собственный веб-сервер без привязки к IIS/Windows и так далее.

Во-вторых: стало возможным хостится под Linux, что сразу же снизило затраты и повысило производительность.

В-третьих: фреймворк стал с открытым исходным кодом, что повысило доверие.

Сам ASP.NET Core из версии в версию становится еще более производительным.

В ASP.NET изначально был доступен JavaScriptSerializer.

Со временем популярным стал Newtonsoft Json, который стал рекомендуемым от Microsoft.

Начиная с asp.net core 3 сериализатором по умолчанию стал System.Text.Json , но для asp.net core 2 придется устанавливать вручную.

System.Text.Json имел довольно ограниченный набор фич по сравнению с Newtonsoft, но работает быстрей. Однако последние релизы System.Text.Json приближают его к сериализатору от Newtonsoft.

Работа с источниками данных

Entity Framework Core:

  • Lazy Loading уже не используется.
  • Model & DB First с использованием EDMX (конструктор маппингов концептуальной и реальной модели).
  • In Memory DB Provider для тестов и быстрого начала разработки.
  • Fluent API как более удобный способ описания схемы данных.

Кроме MS SQL Server для микросервисов чаще стали использовать Postgree либо вариации MySQL ввиду их цены.

Общая парадигма разработки смещается от Data-centric приложений к распределенным системам. Конечно, множество приложений строится с использованием сложных схем данных и объектов БД, но в распределенных системах, построенных с микросервисным подходом производительность достигается за счет асинхронности и масштабирования, нежели тюнинга одной большой базы.

Множество разработчиков уже с 4-5 годами опыта никогда не писали чистые SQL-объекты и сложные запросы в базе данных, работая только с O/RM средствами.

Операционная система и веб

С всеобщей контейнеризацией и возможностью запуска .NET Core приложений под Linux — production среда под Windows уже не так актуальна.

IIS уже используется гораздо реже, чаще работает связка NGINX + встроенный Kestrel, либо же любой другой обратный прокси, запуская приложения в контейнерах.

IIS может пригодиться в таких случаях:

  1. Множество приложений на одном порте.
  2. Продвинутая фильтрация запросов.
  3. Windows Authentication.
  4. Mime Type Mapping.
  5. Логирование HTTP.
  6. IIS как API Gateway на windows машине.

Разберем это детально:

  1. Множество приложений на одном порте — в случае контейнеризации это уже не нужно, а даже вредно.
  2. Продвинутая фильтрация запросов — может быть настроена на уровне API Gateway либо Service mesh.
  3. Windows Authentication — может быть настроено с помощью отдельного Nuget-пакета.
  4. Mime Type Mapping — может быть настроено на уровне приложения либо API Gateway
  5. Логирование HTTP — может быть настроено на уровне приложения, API Gateway либо Service mesh.

Более полное сравнение IIS и Kestrel можно посмотреть тут.

В целом Kestrel нельзя рассматривать как веб-сервер для production-окружения, всегда нужен reverse-proxy.

Так же менее популярна становится аутентификация с использованием Cookies, гораздо гибче выдавать Bearer/JWT токен, универсальный для любых устройств.

Для того, чтобы отделить логику аутентификации от логику всего приложения мы можем использовать постороннего поставщика аутентификации вроде Azure Active Directory или Okta.

Но asp.net identity/identity server тоже остается валидным подходом, но гораздо проще использовать аутентификацию как сервис.

Что набирает популярность

Архитектура конкретного сервиса

Стали популярными подходы, кроме трехслойной архитектуры:

Разница и преимущества этих подходов к дизайну модуля достойны отдельной статьи.

Архитектура распределенных систем

Все чаще это микс между микросервисами и serverless. Cloud начинает быть де-факто стандартом для инфраструктуры приложений, в виду удобства использования и перекрытия рисков для бизнеса.

Azure стал одним из лидеров рынка облачных технологий, за последнее время его популярность выросла. По ссылке можете глянуть детальное сравнение сервисов с AWS, который считается лидером рынка облачных решений. Сейчас же по популярности и количеству фич Azure, возможно, не уступает AWS.

Независимо от конкретного облака из наиболее часто используемых облачных объектов:

  • Виртуальные машины.
  • Очереди.
  • Managed базы данных.
  • Функции/лямбды.
  • Хранилища конфигурации/секретов.
  • Пайплайны для деплоймента.
  • Управляемые облачные оркестраторы (например Kubernetes).
  • BLOB-хранилища.
  • CDN.
  • Средства диагностики и логирования.

Новые подходы в языке C#

  • Последние релизы C# в большей степени приобретает фичи, свойственны функциональным языкам программирования, например:
    • pattern matching в switch/case;
    • еще больше Pattern matching’a в логических выражениях;
    • immutable records;
    • лямбда-функции;
    • синтаксический сахар различных инициализаций.

Бизнес-логика все чаще пишется в функциональном стиле с использованием LINQ, поэтому я считаю хорошее знание LINQ это must have для C# разработчиков.

Из объектно-ориентированных фич за последнее время из значимого реализовали:

Для создания высокопроизводительного кода теперь можно использовать Spans.

С выходом .NET 5 набирает популярность Source Generation. А вот и список библиотек, реализующих эту возможность. Ранее похожие механизмы имплементировали с помощью T4 шаблонов.

Инфраструктура

Эпоха Teamcity и Jenkins заканчивается, гораздо более удобный подход это pipelines, например Azure DevOps pipelines либо Gitlab pipelines.

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

Тотальный переезд в облака создал довольно большой спрос на системных инженеров в практике DevOps, кто-то же должен это все поддерживать, автоматизировать, настраивать.

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

Довольно популярно стало использовать обертку над конкретным движком очереди MassTransit , чтобы сделать систему независимой и cloud-agnostic.

Протоколы общения клиент-сервер

Хоть HTTP не теряет популярности, но у нас сейчас много альтернатив, поддерживаемых ASP.NET Core:

  • gRPC (proto)
  • WebSockets (SignalR)
  • GraphQL, требует 3rd-party пакетов.

Так же вышла поддержка TLS 1.3 / OpenSSL 1.1.1 в ASP.NET Core 3, HTTP/2 начиная с ASP.NET Core 2.2.

В мире высоконагруженных систем

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

  • систем биржевой торговли в реальном времени;
  • гемблинг-проектов: спортивные ставки, казино;
  • бэкенда для любых игр в реальном времени;
  • банковских кошельков.

Сам по себе фреймворк это имплементация модели акторов (Actor Model), от аналога Akka.NET отличается более богатым функционалом но меньшей популярностью и документацией. Небольшое вводное видео можно найти тут.

Клиентские фреймворки

Mobile: Xamarin. Microsoft стала владельцем Xamarin с 2016 года. Судя по трендам гугл популярность Xamarin в мире кросс-платформенных фреймворков для мобильной разработки остается стабильной и периодически снижается, в отличии от уверенного роста ReactNative.

Desktop/Mobile/Devices: UWP. UWP (Universal Windows Platform) можно считать более гибким и адаптивным приемником WPF. Был выпущен вместе с Windows 10, может быть запущен на любых устройствах с операционными системами от Microsoft: от ПК до SmartTV. Альтернативой также являются приложения на Electorn.

Web: Blazor. С одной стороны Революционный фреймворк, с другой еще одна реализация RIA (Rich internet application) в браузере.

Было уже множество попыток реализовать движки для Rich приложений в браузере: ActiveX ,JScript ,XAML, Silverlight, Java Applets, JavaFX, XUL, Flash/Flex, Dart.

Почти ни один не получил высокой популярности и не стал заменой JavaScript. Этому есть такие причины:

  • Проприетарность разработки (является чьей-то собственностью, а не стандартом), следовательно не может быть поддержана конкурентами.
  • Не может поддерживаться всеми браузерами даже технически.
  • Имеет дыры в безопасности.
  • Не имеет связи с комьюнити.

Первый, кто поборол это все стал стандарт HTML5, давший нам Canvas и WebGL с возможность быстрого рисования в браузере.

Следующим прорывом стал WebAssembly. Опять таки, его поддерживали все ключевые игроки на рынке браузеров, потому как это был стандарт, а не чья-то разработка.

С развитием WebAssmebly стало возможным запускать высокопроизводительный код прямо в браузере.

Все, что оставалось — это портировать CLR под запуск в браузере.

Сам же Blazor — прикладной фреймворк, построенный для работы на CLR в браузере. Довольно активно развивается, так же, хоть и с осторожностью, но начинает использоваться компаниями.

В отличии от технологий, основанных на плагинах и закрытых разработках — Blazor основывается на стандарте, который лежит в основе всех современных браузеров.

Имеет разные модели исполнения:

  • Выполнение на сервере, с обновлениями клиента по веб-сокетам.
  • Выполнение на клиенте, с загрузкой CLR и клиентского кода.

Кстати, можете глянуть впечатляющий список open-source разработок с использованием Blazor, также книги, статьи, курсы посвященные технологии.

MAUI (.NET Multi-platform App UI)
Также новинкой стал MAUI , который может быть использован в Xamarin.Forms для кроссплатформенного использования и так же будет портирован для Blazor. Характерным отличием есть присутствие UI паттерна под названием MVU (Model-View-Update).

Messengers: Bot Framework. Bot Framework — заточен на создание приложения, которое общается с человеком посредством мессенджеров. Имеет встроенный набор когнитивных сервисов, позволяющий внедрять сложные интерактивные сценарии в общение с человеком.

Машинное обучение

ML.NET — набор средств для аналитики, вычислений, машинного обучения. Может являться оберткой вокруг TensorFlow, ONNX, Infer.NET, и других.

Инструментарий и среда разработки

Несмотря на постоянно улучшающуюся Visual Studio, многие разработчики (в том числе и я) предпочли Rider. Альтернативой может быть Resharper в VisualStudio, однако из-за ограничений по памяти и имплементации в виде плагина — он может работать не так быстро.В Rider мне нравится UX и производительность. Написание кода через Rider, в случае если вы хорошо освоили все его возможности ускоряется в несколько раз.

Так же отмечу и другие продукты от JetBrains:

  • DotPeek — тот же рефлектор, декомпилятор.
  • DotMemory — исследование потребления памяти, профайлинг управляемой кучи.
  • DotTrace — профайлер производительности.
  • DotCover — code coverage, менеджер юнит-тестов.

В заключение

Добавляйтесь в мое комьюнити в Telegram для людей изучающих .NET. На момент написания статьи там уже около 800 человек.

Также рекомендую глянуть список украинских сообществ по .NET тематике.

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

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось13
До обраногоВ обраному11
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Классический .NET просто умер бы из-за подхода «все только для Винды».

Яблочные отлично живут с подходом «только для мака/иос». Так что, может не в Гейтсе с Балмером дело...

П.С. У Azure такая доля рынка — что едва ли она может, что-либо вытащить из упадка.

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

Легко конечно сказать: «а что мешает MS тоже производить телефоны и ноутбуки». Да ничего не мешает, ноутбуки уже производят, но кто же покупать их будет когда рынок уже поделен? Чем ты будешь мотивировать пользователей пересаживаться в айфонов и андроидов на winphone или что они сделают?

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

Когда народ начал задавать неудобные вопросы на конферецниях MS, все говорили, что так надо. Я даже помню как один чувак начал допрашивать, типа какого хрена вы полезли в наш карман (продавать приложения можно только в Microsoft Store, отстегивая % с каждой продажи), куда наши деньги идут? Некто Миша Черномордиков решил понтануться и засветить на большом экране свой сток акаунт с MSFT, типа — вот куда ваши деньги идут. Оторваность MS от комьюнити стала видна невооруженным глазом — на developers develoeprs developers уже там всем было пох.

После этог хомячкам стало понятно, что если хочется телефон со свободой, то надо не выепываться и брать Андроид. Если хочется телефон с анальным рабством, то надо брать Айфон. Примерно на этом месте комьюнити и экосистеме виндотелефонов пришел кирдык.

Без анального рабства могли бы отъесть часть рынка. Нужно отдать должное, восновном телефон был удобен в использовании и имел годные концепции.

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

Надо было гнать Балмера лет на 5 раньше, тогда может быть и было сегодня три телефона, а не 2.

Когда Windows Phone 8 вышел, всем уже было пох на Windows Phone. Они лажанулись с 7-й версией, это был их шанс, который они упустили.

Они лажанулись с 7-й версией

Була можливість зробити перехід з WP7 на WP8 апдейтом, але деякі виробники заліза були проти (не будемо показувати пальцями, але Qualcomm). Їм цікаво було продавати нові проци для WP8 девайсів замість дати юзерам можливість юзати нову ОС на старому залізі. А МС були не в тій позиції щоб диктувати свої вимоги.

Додатково ускладнило все те, що технічно оновлення могли б контролюватися самою МС в той же спосіб як Windows Update (я саме цим і займався), але оператори відмовлялися продавати телефони якщо контроль над апдейтами не віддавали їм. І тому усі оновлення приходили з запізненням майже на рік. До того ж оператори хотіли сотні тисяч доларів на тестування будь-якого апдейту і їх доводилося збирати до купи за кілька тижнів, а то і місяців, чекати кілька місяців поки їх протестують оператори, чекати поки їх дозволять заливати кожному окремому набору користувачів...

Для порівняння Apple навпаки диктували свої умови, терміни та погрожували у разі незадоволення просто перейти до іншого оператора повністю.

Как будто Apple и Google не берут процент с продаж твоего приложения через app и play store. И как будто на IPhone можно что-то поставить не из app store.

Можно PWA сделать а внутри своя платежка.

Ну PWA это понятно, это же сайт обычный с иконкой в меню.
Я про нативные приложения.

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

Про эпл я писал, что там рабство, но серьезно сравнивать экосистему iOS и экосистему Windows Phone может только упоротый.

Почему все все равно продают свои приложения через play store платя конскую комиссию?
Почему никто их не продает со своего сайта?
Попробуй сделать свой сайт, и с него продавать свое приложение без play store.

Амазон до недавнего времени свои приложения распространял через приватные apk потому что что-то там не поделили с гуглом.

Почему никто их не продает со своего сайта?

Ну, не то, чтобы никто... Продают, и, особенно — приложения, которые находятся в «серой зоне» относительно политик Play Market (HD VideoBox, например). На 4pda тоже видел несколько приложений, которые можно купить в обход плей маркета.

Просто это имеет смысл, скорее, для очень нишевых приложений — для остальных же, видимо, количество продаж с Play Market вполне отбивает комиссию.

Как будто Apple и Google не берут процент с продаж твоего приложения

Берут, конечно. Но именно MS, как «догоняющей» на этом рынке, стоило демпинговать и по-максимуму понижать порог входа для разработчиков, чтобы как можно быстрее наводнить приложениями маркет для WP8.1.

Вместо этого, Балмер продолжал играть в монополиста на рынке, где у MS были довольно слабые стартовые позиции.

Приложения конечно безусловно важный фактор. Но подавляющее большинство пользователей вполне могут обойтись пару сотней наиболее популярных (мессенджеры, соцсети, карты и т.п.) которые они даже сами могут создавать и обновлять. Причина фейла Windows Phone уже давно разобрана по косточкам. Вкратце — неверная маркетинговая стратегия, которая состояла в том, что в отличии от Google они продавали лицензию на каждую копию венды. И хотя плата была сравнительно небольшой, тем не менее это накладывало ограничения соответственно и на минимальные требования к железу. Да и вообще они выставили жёсткие рамки на аппаратное обеспечение, отсекая тем самым значительные сегменты потребителей. В то время как Google впаривал свой Android бесплатно всем подряд, включая даже китайских производителей дешёвых некачественных поделок. В результате MS чтоб не вылететь с рынка вынуждена была сама доплачивать за каждый свой телефон.

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

И вот с этим на WP тоже было всё грустно, потому, что Балмер не смог (а, точнее, скорее, не захотел) договориться с теми же Гуглом и Фейсбуком, чтобы их официальные приложения были на платформе Windows Phone.

Хотя, на его месте, нужно было предлагать Гуглу и Фейсбуку чуть ли не бесплатно портировать силами самой MS их приложения на Windows Phone (естественно, согласовывая весь брендинг, UX и т.п. с этими компаниями)

Балмер не смог (а, точнее, скорее, не захотел) договориться с теми же Гуглом

В Windows Phone был встроен поиск Bing (даже отдельная кнопочка для запуска поиска была обязательной на всех телефонах). Не знаю никого, кто отказался от виндотелефона из-за того, что не было оффициальной аппликухи гугла (что это вообще такое?)

и Фейсбуком,

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

Не знаю никого, кто отказался от виндотелефона из-за того, что не было оффициальной аппликухи гугла

Поиск Bing был ни о чём — это раз. Но, официальные приложения Гугл — это, для потребителя, в первую очередь даже не поиск, а YouTube, GMail, Google Карты. Насколько я помню, ничего из этого на WP не было (сторонние приложения от энтузиастов не в счёт, т.к. они могли перестать работать в любой момент).

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

Честно говоря, не помню уже, какая там была интеграция из коробки. Но вряд ли она заменяла само приложение соц. сети, где можно листать ленту и лайкать котиков?

Поиск Bing был ни о чём — это раз.

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

Я им постоянно пользовался (тем более что больше нечем было) — вполне себе искал. Работал ровно до того момента как Microsoft отключила какой-то API на бекенде и мой встроенный поиск превратился в тыкву — по нажатию на кнопку поиска вместо встроенного приложения реально начал открываться браузер со страничкой bing.com. Я в то время уже давно был разочарован в потугах MSFT и донашивал свой телефон пока не сломается, но от такого п****ца даже я прихуел.

YouTube

Тут не то чтоб никто не хотел писать, MS не запилило API на мультимедиа подсистему телефона (да, собственно, и толком саму мультимедиа подсистему) и никто физически не мог писать медиа приложения под Windows Phone 7.

Первый ютуб клиент пришлось запилила MSFT, если не ошибаюсь, только под Windows Phone 7.5, используя какие-то закрытые анально огороженные API. Как вы сами понимаете, если бы были нормальные АПИ с самого начала, то там бы видео плееров бы хватало с головой.

Увы, кому-то пришла в голову охуительная идея релизить сначала ОС, а потом API. Но потом выяснилось, что для «потом API» нужно релизить новую мажорную версию ОС на новых девайсах и целевая аудитория не оценила такой этот п****ца.

GMail

Почтовый клиент, интегрированный с ОС там был. Довольно годный почтовый клиент, я хз что б туда привнес «официальный клиент gmail». Я сейчас пользуюсь андроидным почтовым клиентом и не могу сказать, что он чем-то лучше того виндового.

Карты

Карты встроенные тоже были.

Я напомню, это было начало 2010-х, армия майкрософтовских хомячков, кушающая все, что MS делает, все еще существовала, и могла долго доказывтаь, что bing maps даже чем-то лучше, чем карты гугла.

Честно говоря, не помню уже, какая там была интеграция из коробки. Но вряд ли она заменяла само приложение соц. сети, где можно листать ленту и лайкать котиков?

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

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

Оно появилось намного позже релиза телефона. Если правильно помню, от фейсбука было HTML-приложение, которое крутилось в веб-браузере.
Я хз зачем фейсбук это вообще запилил, но самое забавное, что MS анально карало разработчиков, которые пытались что-то пихать в маркетплейс, не следуя 200-страничному Windows Phone Design Guidelines, но фейсбуку тогда уже разрешило закинуть свою HTML апликуху, которая выглядела как веб-сайт 90-х годов и этим design guidelines не следовала — просто по этому можно оценить уровень безнадежности, который царил в лагере MSFT когда пришел пушной зверек.

никто физически не мог писать медиа приложения под Windows Phone 7.

А-а, так мы, тогда, вообще о разном спорим )
Про WP7 не спорю, это вообще было огромное недоразумение, которое лучше бы вообще не выпускали, чем так.

не помню уже, какая там была интеграция из коробки.

Була краще ніж будь-що з того, що навіть зараз є. Одни з прикладів:
— є список контаків з телефонами
— ставиш ФБ і воно тобо (воно — телефон, а не ФБ) каже — о, а хочеш я зіл’ю в одну купу усе. Погоджуєшся — і тепер у тебе список контаків де у однієї людини може бути і телефон і ФБ, або лише одне щось.
— ставиш Скайп — те саме відбувається.
— те саме з поштовим клієнтом.

У підсумку у тебе один список контактів у всій системі (якщо погодився так зробити) де у кожного контакта є емейл, ФБ, скайп, лінкедін, пошта і так далі.

Google впаривал свой Android бесплатно всем подряд, включая даже китайских производителей дешёвых некачественных поделок.

Ну там тоже не всё так просто, т.к. может сам Андроид и бесплатен, а Гугл Сервисы — нет. А без них ну как бы Андроид и не совсем Андроид...

радостно скупали windows phone, правда потом внезапно для себя обнаруживали, что заплатили за возможность пользоваться анально огороженой платформой, в которую нельзя установить никакой софт кроме как заапрувленого Балмером, за возможность писать софт самому надо башлять MS по сто баксов в год

это ты типа за аппле платформу сейчас рассказал? )) я тут не давно обнаружил что оказывается не которые свежие заапрувленные духом джобса приложения уже не ставятся на «старое железо» для которого апдейт доступен только до 12.5 а не 14.0 т.е. в кирпич пока не превращается но намёк уже на лицо

то что сами апдейты тоже надо на катывать периодически потому как приложение в какой-то момент просто перестанет запускаться а апдейт приложения уже требует апдейта системы ну такое в порядке вещей ))

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

Оторваность MS от комьюнити стала видна невооруженным глазом — на developers develoeprs developers уже там всем было пох.

это ты на верное рассказываешь за то как новые версии swift тупо не совместимые с предыдущими и требуют пере писывания сорца а с другой стороны сам по себе swift всё ещё не есть совсем совсем само достаточной платформой и если копнуть в глубь то всё равно старый добрый obj-c принннём принннём ))

Нужно отдать должное, восновном телефон был удобен в использовании и имел годные концепции.

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

я тут не давно обнаружил что оказывается не которые свежие заапрувленные духом джобса приложения уже не ставятся на «старое железо» для которого апдейт доступен только до 12.5 а не 14.0 т.е. в кирпич пока не превращается но намёк уже на лицо

Справедливости ради, на iPhone среди разработчиков приложений уже много лет как есть общепринятая политика поддерживать только два последних мажорных релиза iOS.

Поддерживать более старые версии может быть дорого и не очень целесообразно, особенно — если это не совсем уж массовое приложение типа YouTube, где доходы от рекламы окупают поддержку legacy.

Яблочники зарабатывают на устройствах которые они же производят и продают.

Яблочный десктоп никогда не сидел на яблочном. Сперва, это была Моторола, затем Интел. Лишь сейчас появился М1...

А что касается мобильного бизнеса — мелкомягкие ещё лет 10 назад купили мобильное подразделение Нокиа (и начали именно на нём выпускать свою Люмию).

Так что, технически/финансово, мелокомягкие находились как минимум в тех же условиях — если не лучших, учитывая гегемонию мелкомягкого десктопа.
Но что-то не взлетело. А теперь, должно взлететь в разработке для зоопарка платформ, с около-нулевой прибыльностью.

Всем доброго дня. Хотел спросить, может кто в курсе — как там с Blazor и WebAssembly на реальных проэктах?

Реально начинают использовать. Но с осторожностью.

Интересно было б пошшупать его в реальном проэкте

Почему вы уверены, что вы энтерпрайзе только Angular? Используют Vue, React и Angular в самом что ни на есть энтерпрайзе.

Похоже, .NETy (а может и мелкомягким, в целом) настают последние времена.

На чём выехали мелкомягкие и стали теми мелкомягкими, о которых все мы знаем? Винда, десктоп. Попытки развиваться на других платформах (в первую очередь, мобайл) — заканчивались фэйлом.

В итоге мы имеем 1) суперуспешную операционку (винда) — с долей рынка порядка 90% всего десктопа 2) суперуспешную среду разработки (Вижуал-Студио), в которой нередко сидят разработчики даже линуксового эмбеда 3) более-менее сложившуюся инфрастуктуру для десктоп-разработки — C++/WinAPI/MFCL, либо C#/.NET + WinForms/WPF.

И что делают мелкомягкие? Наступают на те же грабли, что уже были с мобайлом — лезут на сторонние операционки, двигают свой фуфлофреймворк Ксамарин в мэйнстрим (как основу .NET MAUI) + забивают болт на существующие (и лидерские!) десктоп-решения, делая их всех депрекэйтед.

Чем всё это закончится? Довольно предсказуемо...

winforms — это «лидерское(!)» решение??

Кому не нравится WinForms — пользует WPF.

В целом, у мелкомягких лидерская десктоп-платформа с лидерскими решениями под эту платформу. Сейчас всё это сливается в унитаз — и ради чего?
Ради того, чтобы влезть «с нуля» на высококонкурентный (и нищий!) рынок всяких линуксов-андроидов.

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

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

Пока для коммерческого десктопа — винда практически безальтернативна.

Qt/Qml, оф корз

нєт, спасібо

На момент 2015 года Windows Forms был единственным нормальным решением запилить виндовое приложение без размытых шрифтов.

Та десктоп и ксмарины уже давно сдохли. Сейчас все пишут на .NET Core/5 микросервисы под докер, и линукс для куба или облаков, как на всех остальных нормальных языках, и это основная доля рынка.
И среди всех языков .NET по фичам пока лидирует на мой взгляд.

Сейчас все пишут на .NET Core/5 микросервисы под докер, и линукс для куба или облаков

Это бэкэнд. Но тут много не заработаешь. А фронтэнд/ось, где самое мелкомягкое бабло — всё профукивается, ради неясно-чего.

фронтэнд/ось, где самое мелкомягкое бабло

Звідки ці дані? Мені здається, що зараз основний прибуток роблять або Azure, або Server & Tools рішення.

Амазон точно більшу частину бабла на aws робить

Звідки ці дані? Мені здається, що зараз основний прибуток роблять або Azure, або Server & Tools рішення.

„Microsoft’s Intelligent Cloud segment delivered $15.12 billion in revenue in the fiscal third quarter.

The Productivity and Business Processes segment, containing Office, Dynamics and LinkedIn, contributed $13.55 billion in revenue

The company’s More Personal Computing unit, which includes Windows, gaming, devices and search, came up with $13.04 billion in revenue. ”

При этом, к „Intelligent Cloud” кроме собственно облака — относятся Windows Server, SQL Server, Visual Studio, GitHub and and consulting services. Может статься, что само облако там даже убыточно...

Так десктоп сдох на всех операционках, все перешло в веб, а там только JS. И от Angular и React Google и Facebook тоже никакой прибыли не получают, так что тут без разницы.
В мобильных ОS Microsoft проиграла, но Windows до сих пор топ 1 OS на компах.

Не знаю, кто там сдох. Но мне как минимум раз в неделю прилетает предложение по WPF из линка. Не всегда есть возможность (пока) перенести на веб (технически, бизнес- орг.ограничения). Да и куча софта еще работает не то, что на WPF, а и на WinForms.

Поетому и прилетает, что никто не хочет с умирающей технологией работать, и всех спамят сначала WPF-ом, а если откажешься, то потом могут ASP.NET Core предложить.

Посмотрим кто кого «умрет». Надеюсь, что таки получиться им Blazor прикрутить и к WEB/mobile/Desctop. Пока все развивается ||: winfowm /wpf/UWP(MAUI) и Asp.Net WebForms/ Asp.Net MVC/ Asp.net Core. Пока серебряна пуля не получается.

Вот ты много десктоп приложений используешь сейчас? Помимо Скайпа, Слака, и Тимса, которые на самом деле сайты на електроне и HTML c JS и больше похожи на обычные сайты чем на WPF/UWP приложения.
Лично я не одного.

VS, Rider, DatraGrip, MS office, Mail (multi-account), Mahou, qTorrent,hyper, wmware, aqua Data studio, PickPick, PhotoShop (точнее его бесплатный аналог), CorelDraw, Microsoft Network Monitor, SketchUp Pro, Sony Vegas (балуюсь для саморазвития), NetSetMan, TurboLanch, Valume2, антивирус, PhraseExpress, Aimp, Everything
......

А Вас не учили родители не ТЫкать незнакомым людям. Разбираться с Blazor (на данный момент) не интересно, а JS для меня даже не язык. И «захотелось впихнуть» не мне, а MS (гугл в помощь)

А якщо подивитися на джерела прибутків то побачимо, що прибутковими є крім ОС в основному так званий «корпоративний софт» (SQL Server, Office, VS, MSSC, тощо), залізо (пристрої та компоненти), хмарні рішення (Azure з усіма варіаціями сервісів, Office365), підписки та підтримка, навчальні курси та сертифікація.

Вінда була аномалією, але вже багато років її доля в прибутку і відповідно пріоритет для бізнесу повільно зменшується і компанія цілком нормально пристосувалася для цього щоб лише збільшувати прибутки з року в рік.

Именно такой логикой руководствовались менеджеры Кодака и Нокии. Игнорим тенденции и продолжаем гнуть свою линию, мы же лидеры. Закончилось все предсказуемо.

Майкрософт сейчас самый надежный и успешный ФААНГ, их бизнес лучше всего диверсифицирован — примерно по 30% десктоп, ажур и облачные сервисы. Стоимость и рост их акций тому подтверждение. Теперь представь в какой Ж. они бы сейчас были, если бы концентрировались только на десктопе.

.NET вообще загнивал, разработчики бежали с него пока не появился .NET Core.

Теперь представь в какой Ж. они бы сейчас были, если бы концентрировались только на десктопе.

Я вижу, в какой жопе находятся яблочные — со своим десктопом/мобайлом и без своих облачных сервисов.

Если бы мелкомягкие потянули свой мобайл — были бы с яблочными в одной лиге. Но не потянули.
И теперь, не сумев потянуть своей мобильной операционки со своими приложениями под неё — пытаются лезть теперь уже на все операционки, с некими «гибридными/кроссплатформенными» решениями. Но снова не потянут — зато по пути потеряют дойную корову (десктоп).

А на облаках нынче много не сделаешь. Конкуренция высока и будет лишь расти....

яблочные — со своим десктопом/мобайлом и без своих облачных сервисов.

Яблочные, во-первых, никогда особо не целились в корпоративный сегмент (хотя у них есть свой MDM и Apple Configurator, как минимум). А, во-вторых, у них-таки есть iCloud, которого для яблочной же экосистемы вполне хватает.

никогда особо не целились в корпоративный сегмент

right?
en.wikipedia.org/wiki/Xserve

Серверный сегмент !== корпоративный. Для корпоративного одной железки мало, и, более того — как показал опыт Microsoft, своего серверного железа может и вообще не быть. Что важно — это экосистема, а вот развитой экосистемы для энтерпрайза у Apple не получилось.

не получилось

vs

никогда особо не целились

Именно не целились как поставщик комплексных решений, так как с одной железкой целиться бессмысленно.

Це ваша особиста не інсайдерська думка
www.apple.com/business

Серьёзно?! То есть, ты серьёзно сравниваешь то, что написано на этой страничке, с мощнейшей экосистемой для энтерпрайза от тех же MS?

Единственное, что у яблочников реально есть для бизнеса — это Apple Configurator, возможность запилить свой собственный энтерпрайзный app store, ну и MacOS Server, который ХЗ зачем нужен, кроме как гонять там билд агентов для сборки приложений под Мак и iOS.

Я вижу, в какой жопе находятся яблочные — со своим десктопом/мобайлом и без своих облачных сервисов.

Ну так они и живут за счет мобайла, которого у майкрософта нет. Десктопы всего лишь 10% от выручки эпла.

Если бы мелкомягкие потянули свой мобайл — были бы с яблочными в одной лиге.

С Балмером и репутацией корпорации-зла у них не было шансов, разве что за счет сжигания бабла. Вот с текущим руководством и текущей репутацией да в те годы, все могло бы быть. И то не факт. С эплом разве что Самсунг соревнуется, остальные производители не особо то и преуспевают, а многие и вовсе обанкротились, и это при том что они используют готовый андроид и им не нужно вкладывать так много в R&D.

пытаются лезть теперь уже на все операционки, с некими «гибридными/кроссплатформенными» решениями. Но снова не потянут — зато по пути потеряют дойную корову (десктоп).

Если бы не полезли, .NET бы умер. Ты лучше скажи как доить эту дойную корову (десктоп)? У них и так доля рынка 80%, за счет чего доить то? Получить остальные 20% не вариант, соревноваться с линуксами на серверах бессмысленно, это как идти против всего копоративного и опен соурс мира. За счет чего наращивать прибыль? За счет повышения цены на винду? За счет введения ежегодной подписки и каждый год ее повышать?

А на облаках нынче много не сделаешь. Конкуренция высока и будет лишь расти....

Шутишь? Azure второй после AWS и самое быстрорастущее облако.

Ты лучше скажи как доить эту дойную корову (десктоп)? У них и так доля рынка 80%, за счет чего доить то?

Снова двигать на мобайл и делать законченную клиентскую инфраструктуру, подобно эппловской («десктоп-таблет-мобайл»).

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

Да и возможности десктопа ещё не исчерпаны. Вводить новые возможности UI (недоступные в броузерах), вводить 3д-интерфейсы, затеваться с какими-нибудь голографическими десктопами, итп.
А вместо этого — происходит расползание того что есть, по всяким маргинальным платформам, с неплатежеспособной публикой и большой конкуренцией (в т.ч. со стороны толп бесплатных хипстеров). И ради чего?

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

Это всё потихоньку делается, насколько я помню. HoloLens уже второго поколения вышел, ну и Microsoft Research всякие экспериментальные проекты делают.

Снова двигать на мобайл и делать законченную клиентскую инфраструктуру, подобно эппловской («десктоп-таблет-мобайл»).

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

Крупные же гиганты типа Google так и вообще бойкотировали Windows Phone, в результате чего там не было официальных приложений ни для YouTube, ни для, по-моему, даже GMail.

Не уверен, кстати, были ли под WP официальные приложения Instagram и Facebook — а без этого (в последние год-полтора ещё TikTok нужно добавить в список) — мобильная платформа будет интересна полутора калекам.

У меня были коллеги на прошлой работе, которые использовали телефоны на WP8.1 именно как бизнес-коммуникатор, и вполне были довольны. Но это слишком узкая ниша, чтобы сейчас затеваться со своей мобильной платформой.

Майкрософт сейчас самый надежный и успешный ФААНГ, их бизнес лучше всего диверсифицирован

Амазон намного сильнее диверсифицирован: ритейл, медиа и облако, плюс стопицот внутренних проектов, которые периодически выстреливают и дают амазону еще одну колонну на которую можно опираться (типа алексы)

двигают свой фуфлофреймворк Ксамарин в мэйнстрим (как основу .NET MAUI) + забивают болт на существующие (и лидерские!) десктоп-решения, делая их всех депрекэйтед.

А где написано, что с появлением MAUI, WPF становится deprecated?
Если нужен десктопный софт исключительно под Винду — WPF is still the way to go.

Другое дело, что «исключительно под Винду» нужно всё меньше и меньше даже в enterprise. И, если WPF и станет deprecated, то именно по этой причине.

А теперь угадай, на что пересядут бывалые C# enterprise разработчики, которым не захочется учить JS (Electron) или Dart (Flutter), когда им понадобится педалить одновременно под десктоп и под мобилки?

А где написано, что с появлением MAUI, WPF становится deprecated?

Скоро напишут. Пока достаточно того, что 1) ВПФ уже отдали в оупен-соурс (значит, сняли с проекта людей, и перебросили на другие проекты) 2) сам виндовый десктоп, похоже, начал неглектиться — в пользу сторонних "зоопарков"/веба.

А теперь угадай, на что пересядут бывалые C# enterprise разработчики, которым не захочется учить JS (Electron) или Dart (Flutter), когда им понадобится педалить одновременно под десктоп и под мобилки?

Бывалые дотнетчики не на что не пересядут, им до конца жизни хватит работы поддерживать легаси на ASP.NET 1.1, которое они наколбасили за последние 20 лет.

Более интересный вопрос: куда пойдет молодняк, который только выходит из универа, что именно смотривирует их выбрать C#, а не джаву, питон, руби и т.п.

Раньше мотивировало халявное пиво и пицца на Microsoft Developer Days, которые регулярно проводили, где впаривали свои технологии в неокрепшие умы, а вот сейчас — хз.

Мова має багато фіч, в тому числі функціональних. На ній приємно писати.

Это скорее про F#, чем про C#, но Microsoft абсолютно не продивагает F#, про него много кто из .NET даже не знает.
Как язык, C# сливает тому же Kotlin.

новий асп модуляр

очень смешно — на весь .NET есть единственный web framework

Похоже, .NETy (а может и мелкомягким, в целом) настают последние времена.

Последние, перед тем, как они опять станут монополистами? Я вижу секта яблокодрочеров без своего духовного гуру постепенно загибается. Андроид апликухи уже научили работать под Винды. Игры под другое и не работали никогда. Скоро все снова будет Винда.

На чём выехали мелкомягкие и стали теми мелкомягкими, о которых все мы знаем? Винда, десктоп.

MS гребет свои миллиарды не продавая ламерам винды за 100 баксов — а продавая бизнесу решения за миллионы. MS поднялось на Офисе и продолжает рубить бабло на ентерпрайзах.

Наступают на те же грабли, что уже были с мобайлом — лезут на сторонние операционки, двигают свой фуфлофреймворк Ксамарин в мэйнстрим (как основу .NET MAUI) + забивают болт на существующие (и лидерские!) десктоп-решения, делая их всех депрекэйтед.

Проснись: десктоп умер! Сейчас браузеры по сути выполняют роль визуальной части операционной системы. Скоро никакого другого UI и не будет — зачем, если есть априори кросс-платформенный?
MS проспали мобильную революцию — поэтому им теперь приходиться дружить с Андроидом. Но это то же временно — у MS достаточно опыта приходить вторыми, учесть чужие ошибки и сделать свое «исправленное и дополненное». Достаточно вспомнить историю появления языка C#.

Проснись: десктоп умер! Сейчас браузеры по сути выполняют роль визуальной части операционной системы. Скоро никакого другого UI и не будет — зачем, если есть априори кросс-платформенный?

Брaузеры — это формошлёпство и крайне-примитивная графика, за мелкий рейт (а чаще, бесплатно).

Ничего серьёзного и баблоносного, будь то медицина, конструирование, индастри, эмбед/автомотив и прочие игрушки — в вэбе нет и не будет.

Наброс на вентилятор засчитан.

Это не наброс, а реалии.

Возможен реалтайм в браузере (средствами HTML/жабаскрипт)? Нет.
Возможна высокопроизводительная графика в браузере (средствами HTML/жабаскрипт)? Тоже нет.
Возможно что-либо мишн-критикал в браузере? Тоже нет.

И не будут возможы, по определению.

А деньги и инновации — они не в хтмл-формах с жабаскриптами.

так и wpf для реалтайма и мишнкритикала аж никак не годится

так и wpf для реалтайма и мишнкритикала аж никак не годится

Всякий трейдинг (с откликом в чём-то типа секунды) — на ВПФ гоняют.

В браузере тоже гонять можно — но если удовлетворяет 1) отклик в течении секунд 5 и более 2) что страница время от времени будет виснуть.

Та каких 5 секунд как страница загрузилась, то запросы идут быстро, если надо еще быстрее, то есть WebSocket.
Я сам торговал через браузер в риалтайме.

если надо еще быстрее, то есть WebSocket.

Оно обычно работает некоторое время, а потом свихивается — и страницу приходится перегружать.
А когда свих случится и почему, то никому не ведомо....

Страницу перезагружать это жесткий быдлокод, это же реально 5 секунд займет.
Можно же сам сокет пересоздать.

ну вот. именно. типа секунды. это не риалтайм ;)

это что-то типа «мягкого реал-тайма» :)
(soft real-time)

В браузере нереален и такой.

Ты сейчас про свои фантазии ? Почитай вакансии и рейты, у тебя искажена картина мира в сторону инженерии а не бизнеса.

Почитай вакансии и рейты, у тебя искажена картина мира в сторону инженерии а не бизнеса.

Какие вакансии читать предлагаешь? :)

Извини, «Lead .NET Developer» — но я не в Украине. И у меня тут вакансии совсем иные. Где веб есть тоже — но 1) довольно-таки немного (т.к. уходит на аутсорсинг) 2) за самые низкие зарплаты в индустрии (т.к. на зарплаты давит аутсорсинг).

Сказать тебе, где тут у меня вокруг деньги? Например, медицина: ремоут-хирургия, системы для всевозможных видов диагностики/визуализации, итп приспособы. Веба там менее 1% софто-затрат (если он вообще есть). Зато десктопа/UI полно.

Я про Украину говорю, может быть тут и правда мало десктопа и инновационных разработок. А что у тебя за регоион ? Веб это не только веб-порталы. Это еще и сложные распределенные системы, где веб это 5% всего кода.

Это еще и сложные распределенные системы, где веб это 5% всего кода.

Ок, бэкэнд — это тоже серьёзная ниша и хороший заработок для мелкомягких. Это да. Но это-таки не вполне вэб/браузеры.

Я в Германии. Но во всей зап. Европе/Штатах/Канаде — думаю, подобная картина.

Не видел что бы медицинские девайсы работали на Винде. Там обычно свой ембедед линукс и свой UI. Так что каким боком .Net десктоп к медицине не слишком понятно.
Сейчас вот даже VS.Code написали на Electron, а не WPF. Лично я считаю что XAML подход был прекрасно придуман — но опоздал и проиграл HTML 5. Минимум 90% того, что можно делать на десктопе — сейчас можно сделать в HTML-апликейшине. Будет кросс-платформенно и похоже на мобильные апы. А если добавить WebAssembly — то фактически получаем полноценный «толстый клиент»: можно с доступом к файлам, к базам, к портам и т.д.

Не видел что бы медицинские девайсы работали на Винде.

Ты будешь удивлён. :) Томографы, УЗИ, маммография, микроскопия — вся визуализация под виндой. Необязательно мелкомягкие фреймворки, бывают варианты и Qt/OpenGL — но всё одно, крутится на видне.
А на чём ещё?

Если это что-то более реал-тайм требовательное — тогда часто берут «встраиваемую винду» (которая CE). B основном, из-за того, что так много разработчиков, владеющих инструментарием. Но эмбед это уже отдельная область, где винда не гегемонит.

я сейчас пишу медицинский софт, верней UI для него на WPF .net 5 from scratch

Возможна высокопроизводительная графика в браузере (средствами HTML/жабаскрипт)? Тоже нет.

Месье никогда не слышал про WebGL?

Месье никогда не слышал про WebGL?

Насколько я понимаю, эта хрень рендерит картинку в браузере — во много раз медленее (т.е. с существенно меньшим FPS), чем нативный OpenGL.

Ну и опять-таки, связка сервак/браузер такой ненадёжный зверёк, что никогда не знаешь, когда у тебя отвалится соединение, или ещё что-нибудь, или вертексы переспамят буффер, или недоспамят, итп — и весь «высокопроизводительный веб-UI» превратится в тыкву.

Насколько я понимаю, эта хрень рендерит картинку в браузере — во много раз медленее (т.е. с существенно меньшим FPS), чем нативный OpenGL.

Там суть в том, что GL-вызовы обернули в js, причём зачастую C++ функции, константы и прочее также называются в WebGL. Так что тем, кто пейсал под GL на C++, ничего нового учить не надо. Ну и во многих игровых движках GL-вызовы и так врапятся в скрипт, и таким образом это по факту ничем не отличаются от исполнения в браузере. Если скомпилить под WASM, проигрыша в производительности вообще никакой не будет. В принципе под браузер теоретически можно запилить все 3D-экшн игры 10-летней давности, где нет многопоточного рендеринга.

Ну и во многих игровых движках GL-вызовы и так врапятся в скрипт

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

lookinar.com/...​ality/top-10-webgl-cases

1-я же ссылка: «1. Sponza Palace»

На моём компе (он-борд графика, дающая в «танчиках» что-то типа 30 ФПС в фулл-хд) — здесь (в хроме) 3 ФПС...
И понятно, какое там юзабилити.

GeForce GTX 860M, Chrome 91, ноутбук шестилетней давности.
60 FPS, изредко просаживающиеся до 58 FPS

Не стоит ожидать оптимизации 3Д под интегрированную графику как данности. «Танчики» — это, скорее, исключение, которое WarGaming специально затачивает под то, чтобы работали чуть ли не на утюге (учитывая парк компьютерной техники их целевой аудитории).

Так что, совершенно не показатель тормознутости WebGL.

И это ещё нужно проверить, задействует ли вообще Хром аппаратное ускорение графики на твоей он-боард карте.

GeForce GTX 860M, Chrome 91, ноутбук шестилетней давности.
60 FPS, изредко просаживающиеся до 58 FPS

А теперь то же самое, да на браузере телефона... :)

А вообще, как-то многовато требований даже для десктопа — чтобы посмотреть веб-страничку/графику.
Сколько там покупателей отдельных видях, при имеющейся в материнке интегрированной графике? 1% пользователей? Скорее, намного меньше...

Вот специально проверил на интегрированной графике Intel HD Graphics 4600. Стабильно держит более 30 FPS.

Что я делаю не так? :)

А вообще, как-то многовато требований даже для десктопа — чтобы посмотреть веб-страничку/графику.

Эти требования — именно для WebGL. Для десктоп приложения, интенсивно использующего 3D графику и не заточенного специально под дешёвые интегрированные видеокарты масс-маркет сегмента, требования будут не сильно ниже.

Ты, например, в курсе аппетитов к видяхе современных версий Adobe Photoshop и Adobe Illustrator?

Что я делаю не так? :)

Попробовал ещё раз. Теперь 2 ФПС, страница «хромa» делает порядка 90% загрузки процессора — при том, что это i5-6600 (3.3GHz x 4 ядра).
Из 16 гиг свободно 5 гиг, и всё это под виндой 10 (64бит), материнка какой-то приличный асус 18-го года.

Содержимое chrome://gpu/ в студию, без этого предметного разговора точно не получится.

Самое ключевое, что там должно быть:

OpenGL: Enabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated

Самое ключевое, что там должно быть:

Ок, может дело в этом:

Canvas: Software only, hardware acceleration unavailable
Compositing: Software only. Hardware acceleration disabled
Multiple Raster Threads: Enabled
Out-of-process Rasterization: Disabled
OpenGL: Disabled
Rasterization: Software only. Hardware acceleration disabled
Skia Renderer: Enabled
Video Decode: Software only. Hardware acceleration disabled
Vulkan: Disabled
WebGL: Software only, hardware acceleration unavailable
WebGL2: Software only, hardware acceleration unavailable

OpenGL: Enabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated

Да, с включенными аппаратными поддержками — получилось под 50 ФПС...

Попробовал ещё раз. Теперь 2 ФПС, страница «хромa» делает порядка 90%

Однозначно, выключено аппаратное ускорение. Посмотрел примеры — там нигде нет ничего особого в плане потребления ресурсов видеокарты, покатит на любой самой старой. Полигонов везде немного, в одном месте немного со светом поиграли, в другом с PhysX, но не критично абсолютно.

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

для перегляду жабоскрипт сторінок потрібна ігрова відеокарта?

За 300 баксов. :)

Это еще со времен Windows Vista и WPF известно: для отрисовки прямоугольника с заблуреным текстом на экране нужна видеокарта, которая раньше требовалась только для крузиса.

Вот специально проверил на интегрированной графике Intel HD Graphics 4600. Стабильно держит более 30 FPS.

aka «Работает на моем компьютере»

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

Это еще со времен Windows Vista и WPF известно: для отрисовки прямоугольника с заблуреным текстом на экране нужна видеокарта

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

До этого, кстати, эффект полупрозрачности тоже достигался аппаратным ускорением, но через GDI. Поддержку аппаратного ускорения для которого выпилили как раз в Висте в связи с тем, что видеокарты перестали поддерживать аппаратно ускоренные 2D операции (и потом вернули в семёрке в WDDM 1.1, когда сподобились запилить hardware accelerated GDI на современных «семёрке» GPU)

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

Графика в браузере приличнее десктопной? :)

Ты понятия не имеешь, о чём пишешь.

А, так ты об игрушках.

Я о графическом UI. В браузере — он реализуется примерно теми же средствами, что и на десктопе. Но намного более примитивными разновидностями.

Мы обсуждаем твой тезис: «Может и формошлепство, но графика уже приличнее десктопной.»

Не перепрыгивай на совсем другую тему.

В том и дело, что ненамного. WebGL не так принципиально отличается от OpenGL. Те же вертекс буферы, те же шейдеры.

Не нравится 3D? Так, взять тот же 2D Canvas — «под капотом» там Skia, которой Хром отрисовывает всю остальную Веб-страницу.

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

WebGL не так принципиально отличается от OpenGL. Те же вертекс буферы, те же шейдеры.

WebGL это OpenGL ES, вроде. Отличий у него, от не ES — довольно много.

Плюс к этому, нужно будет очень сильно постараться — чтобы средствали «сырого» OpenGL достичь возможностей UI, имеющихся в том же WPF под виндой (я о различных контролах, с их возможностями кастомизации).

чтобы средствали «сырого» OpenGL достичь возможностей UI, имеющихся в том же WPF под виндой

О Боги... да никто не использует ни WebGL, ни OpenGL для этого...ну, разве что, в игровых интерфейсах.

Ну вот давайте серьёзно, что есть такого в WPF, чего нельзя достичь с помощью CSS3?

Ну вот вам пара-тройка примеров чисто CSS-ных анимированных индикаторов загрузки:

codepen.io/jpanter/pen/PWWQXK
codepen.io/iGadget/pen/aZmEGR
codepen.io/aaroniker/pen/wvvKKeg

является ли, скажем, действующий тренажёр бомбометания со стратегического бомбардировщика «игрушкой». вот в чом вопрос

Орнул. Имхо, то что .Net core стал кроссплатформенным — самое революционное достижение .Net как платформы с ее появления. Если бы не этот шаг — .Net бы точно загнулся. А десктоп на .Net в основном только легаси остался.

Имхо, то что .Net core стал кроссплатформенным — самое революционное достижение .Net как платформы с ее появления.

Никто, кроме горстки безработных хипстеров — не полъзует .NET вне винды.

Спрашивается, какие выгоды мелкомягким с той «кросс-платформенности»?

Убытки понятны: затраты на это всё (неясно, зачем) + продвижение/популяризация чужих платформ, в ущерб своим.

Никто, кроме горстки безработных хипстеров — не полъзует .NET вне винды.

Все давно хостят .NET на Linux или в Linux Docker контейнерах в облаках или Kubernetes.
Хостинг на ISS на Windows Server сейчас жестким легаси считается.

Не обязательно IIS. Его можно как селф хостед сервисом/консолькой ранить, собственно адекватные люди еще во времена .Net 4.5 хостили на owin селф хосте апишки.

Да, поголовно все. Слушайте товарища John Kelly, он уже все статьи прочитал и курсы прошел.

Не будешь читать статьи, и следить за последними тенденциями, так и будешь хостить на IIS)

На заборе тоже много чего написано ))) Все твои комментарии из разряда «я читал в статье, поэтому никто больше по другому не делает».
Делают. А заявление о том, что «все давно хостят .NET на Linux» по меньшей мере голословно.

На Windows Server у тебя не будет автоскелинга и Blue-green deployment-а, будет одна виртуалка на которую будешь заходить по RDP и что-то там настраивать.
Очевидно что это прошлый век, который не подходит для Enterprise а подходит для разработки сайтов визиток.
В теории можно и с Windows Server сделать автоскелинг виртуалок, но это будет сложнее, дольше и дороже, и я не слышал что кто-то такое делал.

«я читал в статье, поэтому никто больше по другому не делает».

Логично что делают, я и сам делал 3 года назад. Но это уже лагаси подход, и 99% разработчиков не будут сейчас новый проект разрабатывать для деплоя на Windows Server.
Хотя я уверен что еще осталось пару процентов фанатов Windows Server типа тебя, и они даже новые проекты будут на нем деплоить.

Ты не о том. Я не фанат Windows Server, и точно так же использую Linux Hosting со всеми deployment слотами и IaC и другой поеботой в новых проектах, где нет готовой инфраструктуры, и развернуть проект можно легко и относительно дешево в облаке.

Но существует энтерпрайз, такой махровый, кровавый энтерпрайз, где оно работает десятилетиями, не ломается, не требует апгрейдов системы и красивых интерфейсов, потому что там пользователям надо работу работать а не «вау эффекты». И вот ты такой молодой, интересный, приходишь и говоришь «у меня есть yaml scirpt под Azure, он вам щас всю инфраструктуру развернет и завернет, я в статье читал». Будет масштабирование, оркестрация, и еще отдельный микросервис будет кофе заваривать.
Тебя молча подведут к немолодому дядечке, который еще пять лет назад закончил писать нечто похожее, просто оно называется по другому, про него не пишут статей, и что самое характерное — оно работает и приносит деньги.
Есть и такие мохнатые энтерпрайзы. Я не говорю, что это хорошо или это модно. Но оно есть. И говорить, что так никто не делает — не корректно.

Ну а что поделать, если вот не было еще Jenkins, а нужен был сi/cd и прямо сейчас? И так далее. То же самое и с облаком — если в то время не было Azure/AWS как продукта, а требования к каким-либо облачным решениям были — сидеть ждать пока MS разродится решением?

А еще, кстати — ты сталкивался с оптимизацией стоимости в облачных решениях? Ну когда твоя бизнес задача упирается в цену этого самого Azure ? :)

Мне как то жесткий легаси не попадался ни разу, вот недавно общался с кучей компаний, все или переходят, или уже перешли на Azure, AWS или Kubernetes.
Не было не одной компании, которая бы заявила что они на Windows Server и не планируют ближайшее время переходить.
Было много Serverless проектов на Azure и AWS которые пишут с нуля.
Дажа самая легаси контора хвасталась что сейчас переводит свой монолит на .NET Core.
Не понятно зачем работать с легаси, если половина проектов вообще новые, а половина легаси которые активно обновляют, а на жесткое легаси еще надо постараться попасть.

А еще, кстати — ты сталкивался с оптимизацией стоимости в облачных решениях? Ну когда твоя бизнес задача упирается в цену этого самого Azure ? :)

Сталкивался, для этого как раз и надо хорошо все облачные сервисы знать.

Опять-таки: вы смешали legacy code c legacy инфраструктурой. А если у компании работает .NET 5 сервис под Linux на виртуалке, которая развернута под Windows Server 2016, приносит деньги и никого не парит (бо не надо масштабировать и врядли надо будет, а если надо — то в разы дешевле поднять еще пять таких же виртуалок, чем переучивать людей под облако) — то они кто — легаси лохи, или умеют в бизнес?

Быдлокодеры как минимум, лучше бы уже сразу .NET 5 на Windows Server разворачивали бы.

вы смешали legacy code c legacy инфраструктурой.

.NET Framework не развернешь на большинстве новой инфраструктуры, так что они связанны.

дешевле поднять еще пять таких же виртуалок, чем переучивать людей под облако

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

Downtime системы пару месяцев тоже ок? тогда ладно

Пару месяцев она работает на Windows Server как и работала, пока часть команды пишет паплайны для деплоя в облако, и настраивает облачные сервисы.

На Windows Server у тебя не будет автоскелинга и Blue-green deployment-а, будет одна виртуалка на которую будешь заходить по RDP и что-то там настраивать.
Очевидно что это прошлый век, который не подходит для Enterprise а подходит для разработки сайтов визиток.
В теории можно и с Windows Server сделать автоскелинг виртуалок, но это будет сложнее, дольше и дороже, и я не слышал что кто-то такое делал.

Вот смотри, я не Azure архитектор и курсов не заканчивал, но даже у меня был кластер из Windows серверов (небольшой, тысячи полторы). Полная автоматизация масштабирования, деплоймент, ролбеков и т.п.

Если John не слышал — значит не было. До Azure/AWS были только перфокарты (помойму кто-то видел еще перфоленты но те люди уже умерли)

Если John не слышал — значит не было.

Я же писал что можно, это будет сложнее.

До Azure/AWS были только перфокарты

Я сам был Azure/AWS отрицателем пару лет назад.
Я работал со всеми технологиями Microsoft начиная с MFC.
C более старыми чисто баловался, и много читал про историю развития технологий, что бы понять из-за чего та или иная технология появилась.
Я даже на оригинальном Basic(где пронумерованы строчки) писал достаточно большие приложения.

Кто тут отрицатель облачных технологий? Тебе говорят: оно есть, работает, и скорее всего будет работать ещё долго. Ты говоришь «так уже никто не делает» никто не обсуждает лучше оно, или хуже. Хотя можно найти немало edge cases как с той так и с другой позиции.

Блин, ты меня читаешь вообще? Я же пишу:

В теории можно и с Windows Server сделать автоскелинг виртуалок, но это будет сложнее, дольше и дороже

Понятно что можно и на Azure и на AWS когда используешь голые виртуалки c Auto Scaling Group, но нельзя с EKS и ECS, на которых автоскелинг делается быстрее, и которые используются во всех нормальных проектах вместо виртуалок.

Блин, ты меня читаешь вообще? Я же пишу:

В теории можно и с Windows Server сделать автоскелинг виртуалок, но это будет сложнее, дольше и дороже

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

Хостинг на ISS на Windows Server сейчас жестким легаси считается.

На International Space Station?

Лол, у кого-то до сих пор 2018 год на дворе? Его уже как пару лет только на линуксе и хостят, собственно я его на винде ни разу и не видел, не считая разработки:)
А выгода в кроссплатформенности в том что будучи чисто на винду он бы сдох. Так как появилось куча языков которые позволяют хоститься на дешевом линуксе.

являюсь .NET техлидом, c платформой .NET работаю около 10 лет

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

Вам уже наверняка никогда не понадобится писать свои типы делегатов

Поздравляю! А в Go вообще нет делегатов, и вопрос об их включении в язык даже и не ставится.
Ну а так вообще статья хорошая, годная, всё разложено по полочкам, всё супер!

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

Ключевой вопрос: чем чаще проектируешь, тем больше понимаешь, что по большому счёту всё равно, на какой из мейнстримных платформ всё будет написано... а так, конечно, врываться в .NET статью с Golang’ом наперевес — это настоящий Уровень, куда там тем техлидам несчастным))).

чем чаще проектируешь, тем больше понимаешь, что по большому счёту всё равно, на какой из мейнстримных платформ всё будет написано

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

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

Даже если принять за аксиому, что Go платформа сильно лучше всех остальных, возникает вопрос: издержки в каком таком контексте меньше?
1. Когда мы расширяем существующую систему, уже написанную на .NET?
2. Когда у заказчика команда понимает .NET, и мы будем ей передавать решение?
3. Когда мы хостимся в Azure (а с .NET’ом там очень хорошая интеграция)?
4. Когда у нас критичен вопрос ресурсов (даже на DOU Golang рынок составляет 17% от .NET) и соответствующие риски поддержки?
Странно требовать у всех изменить %unter_platform% (абсолютно не имеет значения, какую) на %uber_platform%, учитывая, что через X лет появится новая, и уже кто-то другой набежит с требованием всем её использовать, а Go выкинуть на помойку. Ruby on Rails (не Ruby) появился в 2005м, а Go — в 2009м... nuff said. Поэтому всё это несерьёзно, и с таким же успехом можно холиварить о том, какой автомобиль лучше, только зачем?)

издержки в каком таком контексте меньше?

Чтобы достичь одних и тех же результатов при меньших затратах труда.

через X лет появится новая, и уже кто-то другой набежит с требованием всем её использовать, а Go выкинуть на помойку.

Если появится более простой язык с более эффективными подходами и меньшим входным барьером, то не вижу причин не перейти на новую технологию. Вы как человек имеющий опыт в проектировании, наверное уже усвоили одну фундаментальную вещь. Любой IT-проект живёт ровно до тех пор, пока им занимаются. Поэтому, как только перестают пилить что-то под тот же дот нет, это что-то уходит в анналы истории, не зависимо от того, насколько там всё вылизано. Как ушли все проекты на C++ под WinAPI в 2000-х. А перестать пилить могут опять-таки из-за издержек.

Разница между

C++ под WinAPI

И современными мейнстримными платформами разительно отличается в бОльшую сторону, чем различия в пределах этих самых мейнстримных платформ. Поэтому ноуп, это совсем не одно и то же. И здесь же кроется ответ на Ваш вопрос: бежать сломя голову каждые X лет за новой платформой банально дороже, если между ними нет принципиальной разницы (а её в данном случае нет). Поэтому все хоронят то C#, то Java, то PHP, а они всё не умирают и не умирают, зато Ruby с Go после всплесков хайпа резко перестают повышать охват, и занимают узкие ниши.

зато Ruby с Go после всплесков хайпа резко перестают повышать охват

А кто такой Ruby, и кто за ним стоит? У Ruby элементарно нет почвы для хайпа. И вообще не на чем «повышать охват». С другой стороны у C# есть и бэкграунд за спиной, есть ресурсы компании для повышения охвата, но что мы видим? Охват снижается. А компания со всеми ресурсами просрала мобильный рынок и все полимеры, и перешла с 1-го места на дектопе на почётное 3-е место в клауде. У java охват тоже снижается, и притом ещё шустрее. Ну раз у этих мастодонтов охват снижается, значит где-то он должен повышаться, верно? Может у PHP? Тоже нет. У пайтона? И у пайтона нет. Нода, последняя надежда на Ноду, у неё наверное охват повышается? Вот чёрт, и там снижается, новые проекты открывают под неё всё менее охотно.

Что касается C++ & WinAPI — да, совместно с C++ канула в лету и платформа разработки, которой никто не занимается. А с платформой разработки, и бизнес-модели, на которых держалась разработка этого софта. Ещё канул в лету Денвер. У вас конечно напрашивается логичный вопрос: чего я вспоминаю про какое-то застарелое говно мамонта, я вообще про кубер что-нибудь слышал? Да, про кубер, написанный на Go — конечно слышал. Итак, плавно подходим к главной мысли: посоны, вы все, абсолютно все живёте в эпоху Go.

Очень многое банально не соответствует действительности.

С другой стороны у C# есть и бэкграунд за спиной, есть ресурсы компании для повышения охвата, но что мы видим? Охват снижается.

За последние несколько лет — нет. И статистика по удовлетворённости используемых технологий, где .NET в лидерах — тому подтверждение.

У пайтона? И у пайтона нет.

Правильный ответ — «да». Python по охвату уступает только JS, а по росту охвата — лидирует. И хотя у Go рост охвата вроде как тоже высокий, но, учитывая, что даже после волны хайпа он опережает по использованию Ruby на цифру всего лишь чуть больше статистической погрешности, кардинальные изменения в охвате ему если и светят, то очень нескоро. И это «нескоро» может омрачиться выходном очередной хайповой платформы, о чём я уже упоминал выше :)

У вас конечно напрашивается логичный вопрос: чего я вспоминаю про какое-то застарелое говно мамонта, я вообще про кубер что-нибудь слышал? Да, про кубер, написанный на Go — конечно слышал. Итак, плавно подходим к главной мысли: посоны, вы все, абсолютно все живёте в эпоху Go.

Та нет, не напрашивается такого вопроса). Кубер — это всё программирование в мире, что ли? Назвать одну хайповую технологию, чтобы аргументировать хайповость платформы, на которой она написана — что это реально доказывает?

Поставить вопрос можно двумя способами:
1. На чём любят писать, пишут или хотят писать новые решения в данный момент времени. То есть, тренды и вкус фломастеров. То, о чём Вы спорите. Лучше всего видно по StackOverflow Survey.
2. Каков реальный глобальный импакт, что лучше всего отражает TIOBE index.

Поэтому, если начинать рассуждать про эпоху, то мы живём в эпоху Python, который по всем метрикам на первых местах, и продолжает расти быстрее всех.

Поэтому, если начинать рассуждать про эпоху, то мы живём в эпоху Python, который по всем метрикам на первых местах, и продолжает расти быстрее всех.

А почему так кстати?
Python же кривой и медленный, синтаксис не C-шный.
Node.js медленее .NET/Java, а Python еще медленнее Node.js, но ее хоть фронтендеры поймут, а у Python никаких преимуществ.

Node.js медленее .NET/Java

Это ещё бабушка надвое сказала... last time I checked, в бенчмарках Нода держалась вполне на уровне Java, причём, в Java ещё очень многое зависело от выбранного фреймворка — при неудачном выборе Нода оставляла Java заметно позади

Я сам за Node и против Java)
Но интерпретированный язык не может полностью обогнать компилируемый.

Так и там, и там JIT жеж.
Но за счёт динамической типизации, результат у js’а должен быть хуже.

По факту результат не сильно хуже, т.к. в V8 сильно оптимизировали работу с динамической типизацией

Python же кривой

тебе намахали

медленный

угу

синтаксис не C-шный

і шо?

і шо?

Тяжело учить, если с .NET на JS/TS/Java/C++ можно легко перейти, так как они похожи, то при виде питона, те кто начинали C-образных языков будут матюкатся, а питонисты при виде С-образного языка.

то при виде питона, те кто начинали C-образных языков будут матюкатся, а питонисты при виде С-образного языка

Слідуючи цій логіці, програмісти на SQL чи на асемблерах — це вже капець який рівень, а якщо десь Elixir затесався — то взагалі доценти наук

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

А почему так кстати?
Python же кривой и медленный, синтаксис не C-шный.

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

посоны, вы все, абсолютно все живёте в эпоху Go.

Когда Goтрыжка обрастет таким же кол-вом либ и фреймворков как Java, .Net или php- напишешь:)

Да, про кубер, написанный на Go

А стековерфлоу на .Net, кому какая разница что на чем написано. Блин, только адепты Го так защищают свой несчастный яп, остальным доказывать нечего не надо:)

Блин, только адепты Го так защищают свой несчастный яп

У меня уже руки чешутся написать «Валялкин, перелогинься!» :)

У меня уже руки чешутся написать «Валялкин, перелогинься!» :)

до речі, пропав десь...

Там в Го дженеріки завезли, мабуть не може до тями прийти від такої зради.

2. Когда у заказчика команда понимает .NET, и мы будем ей передавать решение?

— Вот вам ваше решение, как договаривались, распишитесь.
— Подождите, что это за фигня на Го, у меня в компании ее никто не знает
— Ойойой, бида, но ничего, вот вам контракт на поддержку, всего лишь 2 миллиона в год, с нас отличные специалисты по Го!

3. Когда мы хостимся в Azure (а с .NET’ом там очень хорошая интеграция)?

На Azure не могут работать нормальные технологии кроме их .NET поделки? Тогда фтопку их, сейчас облаков хватает, и, как не странно, на них работают все мейнстримовые стеки.

На Azure не могут работать нормальные технологии кроме их .NET поделки? Тогда фтопку их, сейчас облаков хватает, и, как не странно, на них работают все мейнстримовые стеки.

Нит, просто есть такие штуки, как Azure App Configuration и декларативные ссылки на Key Vault из конфиг файлов, которые бесшовно интегрируются только с .NET приложениями, и эта бесшовность даёт высокий уровень удобства. С другими платформами — как обычно, через SDK. В общем, другие облака не предлагают бесшовных интеграций ни для кого, а в Azure для .NET есть приятный бонус.

— Подождите, что это за фигня на Го, у меня в компании ее никто не знает

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

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

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

Спасибо за фитбек ! Жду от Вас статью про решение проблем на родном для Вас стеке.

На дженерики там ещё драфт окончательно не утверждён. А насчёт делегатов вопрос не может подниматься в принципе, поскольку ООП не классовое.

Годно, как по мне по-более полезной инфы чем в статье про «тонкости» :)

Да-у-ж... а когда-то был только Делфи...

Ага. И пока тут спорят задавит ли .Net Джаву или его самого задавит Жабаскрипт — я с удивлением узнал что галера набирает людей на Делфи! Трупо-Паскаль восстал из мертвых. Вот такие дела — так что не спешите хоронить: новое это давно забытое старое.

Помню времена когда на делфи можно было решить практически все бизнес-задачи.Статью почитаешь такой зоопарк,просто кошмар.И что за галера,что делают,очень интересно и что предлагают?

Помню времена когда на делфи можно было решить практически все бизнес-задачи.

І зараз можна — VCL на диво вдалий фреймворк. Не забуваймо, що основи заложив Хейлсберг, який потім розробляв .NET, а ще потім — TypeScript

Але є одне але: Борланд (чи як вони зараз називаються) реально відстає по всіх фронтах, хоч і пижиться як може.
Недавно доробляв свою власну програму, яка була написана на Builder, так от навіть «сучасне» середовище відстає від того ж, скажем, Sublime Text

«сучасне» — це яке? здається остання rad studio вийшла в 14 році

Я только начинающий программист(отучился в шаге почти 2 года, Разработка програмного обезпечения) но блин С# зашёл больше всего. Жаль в Запорожье проблемма с вакансиями, а в Днепр ездить тяжеловато.

Что-то мне кажется — C# скоро задавит джаву и емуподобные языки, вывод такой сделал пересев с ASP.Net core на java — реализовывали подобные restful api — блин, такое ощущение, что пишеш на языке 90 годов. То что уже давно реализовано в шарпе на уровне языка( типо автосвойства, нормальных людских dependency injections) в джаве пишется по старенке и выглядит как костыли.

Вам не нужны местные компании — можно найти удаленные.

Увы у меня нет опыта работы, а по всем объявлениям которые есть — требуют год опыта работы. Есть лишь несколько компаний которые согласны брать без опыта работа но full time. Готовлюсь к ним.

Интернатура GlobalLogic, скиньте мне CV в личку на linkedin если интересно.

а по всем объявлениям которые есть — требуют год опыта работы

Это все фигня, не обращай внимание, это пишут что бы совсем тупые интерны не спамили своими резюме. Я с нулем коммерческого опыта пошел сразу на мидла где надо было 2+ года опыта минимум, и меня взяли, так как я хорошо знал .NET.
Тупо отправляй свое резюме на все джуновские и джуно-мидловские позиции, и можешь даже на мидловские, если уверен в своих силах.
Владислав Фурдак тебе советует интернатуру, но она для кругрых новичков, если ты уже 2 года код писал, то ты полноценный стронг джун или мидл, и тебе надо ити сразу на джуна минимум.

Дело в том, что код я то пишу. Но вот теория практически нулевая, и с потоками я не дружу. Async Await да, колбэки да, а вот Thread — мы не проходили.

github.com/...​oBannet/WCF_Server_Client — вот примерно так я писал, сейчас уже чуть лучше. Я честно, не знаю как мне дальше двигатся. В академии мы начали с С, потмо С++ потом чистый C#, плавно зашли на Формы и я в армейку ущёл, вернулся на WPF, чуть поофигевал, но быстро знания восстановились после 1.5 года армейки где увы их поддерживать небыло возможности 3030 — это наряд — партуль — массовые, за полтора года около недели выходных, и телефоны забирали чаще всего, а патрулях не почитаешь .
Дальше MS SQL, вместе с C#, ADO.NET а потом пошло вебобесие js, чуть jquery, чуть nodeJS, Angular( его я понял более-мение) React (слабо усвоил) потом быстро пролетели по web forms, ASP.Net Core, в процессе юзали Postgres и My SQL( кстати по БДшкам, блин что бы кто не говорил — MS SQL — прекрасная БДшка с хорошей реализацией по сравнению с остальными, да есть facepalmы типо OutOfMemory Exception но они очень редки, и перекрываются огромный функционалом и настройками). На Asp.net core создали web apiшку магазина вроде, уже не вспомню. А потом пришла Java — мы её пролетели, ну типо ж зачем учить основы если уже 100 раз проходили, там реализвоали restful api на спринге, типо службы такси, но для компании, а не водил и юзеров. А потом особо не закрепив знания прыгнули на android. Была где-то неделя теории и теперь требуют курсач по java back и android front приложухе.

В общем у меня каша в голове, получается. Мне надо в трейни, что-бы всё упорядочить.

Сосредоточься на чем то одном, на UWP и WPF почти нет вакансий, учи ASP.Core и Angular. Так как Angular очень похож на .NET в отличии от React, про Java, JQuery и WPF забудь вообще.

github.com/...​oBannet/WCF_Server_Client

WCF уже устарел давно, WPF тоже.

Thread — мы не проходили.
вернулся на WPF
ADO.NET
jquery

Не трать время, разве что про ado почитать как запрос составить и все :)
Еще в текущих реалиях не плохо было бы уметь запустить это под линуксом в контейнере и знать react/angular. Т.к. джуном фулл стек думаю проще найти работу чем просто чистым беком.

Всякое бывает, писать код дома можно и 10 лет, а толку ? Можно и на джуна к нам, но коммерческий опыт это не только про написание кода и теорию.

Ты мидлов собеседовал последнее время?
Сейчас такие мидлы пошли, что толковый вайтишник может больше знать, чем такой мидл.

но коммерческий опыт это не только про написание кода и теорию.

А про что? Про умение работать в команде и софтскилы?
Это все фигня, главное просто быть адекватом.

Собеседовал, а ты собеседовал ?

Ну так мы не берем таких миддлов :)
Не думай что всех у кого 2-3 года опыта мы прямо на собеседованиях к себе зовем, большой отсев идет.
Насчет твоего кейса — может прокатить в небольшой компании либо если повезет на интервью, но я бы к себе в команду на позицию миддла человека без коммерческого опыта не взял.

Опыт — это про умение работать в команде, читать требования, выполнять обязательства.Так это фигня или главное? Ты перефразировал мои слова сказав что это фигня, а потом что это главное)
Главное, о чем говорит опыт в коммерческой разработке — о том, что мы снижаем риски, и человек сможет работать и не сольется. Перефразирую: если работал у кого-то нормально, значит и у нас поработает.

Собеседовал, а ты собеседовал ?

Я больше синьоров и лидов собеседовал) Ну десяток мидлов тоже где-то.

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

Так я же про это и говорю, раз все тупые, то легко получить оффер если ты не тупой.

Насчет твоего кейса — может прокатить в небольшой компании

Согласен.

Опыт — это про умение работать в команде, читать требования, выполнять обязательства.Так это фигня или главное? Ты перефразировал мои слова сказав что это фигня, а потом что это главное)

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

Насчет джунов — если это человек БЕЗ опыта работы в прицнипе — тут рисков больше. Если свитчер — меньше.

Насчет все тупые — я не совсем согласен. Просто люди всегда хотят прыгнуть выше/быстрей/сильней. Подаются на позиции выше, пробуют, как я учил в первых своих статьях :)

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

Насчет джунов — если это человек БЕЗ опыта работы в прицнипе — тут рисков больше.

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

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

Аналогично, один архитект не мог про фильтры в ASP.NET рассказать, и миделвере, и про жизненный цикл запроса вообще, спрашивал у меня, чем фильтры от атрибутов отличаются)

Ну я про knowledge workers все-таки говорю. Есть понятие — инфантильности, если человек очень умный но не умеет доводить задачи до конца. Увы, так бывает и у талантливых людей начинающих.
Кстати, есть желание в .NET чат для лидов попасть ?

человек очень умный но не умеет доводить задачи до конца.

Ему можно на 1-to-1 объяснить что кастомер платит деньги за законченные задачи, и иначе у нас работать не получится,
и сказать, что ты сказал, что крутые хардскилы еще не делают тебя крутым разработчиком, а делают только полностью заделивереные фичи.

Кстати, есть желание в .NET чат для лидов попасть ?

Есть, кидай ссылку, гляну что там.

Я извеняюсь, а что предыдущий опыт работы не в IT считается ?
Стоит ли опыт работы на заводе указывать в резюме ?

Что из этого стоит класть в резюме?
— отучился в Електро-Техническом Колледже на технолога
— во время практики получил 4 разряд станков с ЧПУ + ходил на курсы по программированию Siemens станков с ЧПУ. + была практика в тех. бюро.
— потом пошёл во все тяжкие, было интересно как там всё устроенно, отработал на Запорожстали резчиком металла на гильйотинан( работал на также на прокатных машинах и пресах) совместно с должностью укладчика-упаковщика. 3 года
— Подзаработав денег пошёл учится в ШАГ
в октябре 2018 прервал обучение в 25 решил покончить с армейкой.( нес службу в вооружённых патрулях ( корсар 4 + АК-74 + 120 боевых патронов рожёк пристёгнут), в обычных патрулях в модуле и с форт-12Р. Много общались с населением Киева, часто был старшим патруля, практически до самого конца службы был старшим взвода( заполнение всей взводной документации)
— уже год после дембеля в апреле 25 2020 продолжаю учится ( восстановился на учёбе в течении недели).

Спасибо огромное за ответ.

Я извеняюсь, а что предыдущий опыт работы не в IT считается ?

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

Это все фигня, главное просто быть адекватом.

Самый ценный скил в современной разработке — это при наступлении трудностей тянуть проект, а не отключаться в прострацию или не сбегать в другое место «на +500».

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

«Натаскать» можно любого человека, кому это нужно и интересно. А нужно ли это шахтеру ?

Насчет знаний — опять таки, какая разница кого можно или нет, вопрос в том, насколько мы знаниями человека риски перекрываем.

хороший человек — это не профессия.

А нужно ил это шахтеру ?

В Украине-то? :) Похоже, сейчас стать ИТшником — это нечто самое лакомое, сразу после «стать президентом», «стать депутатом», «стать судьёй», «стать прокурором».

Я про реальность. Как она показывает — не всем это заходит, людям реально не всем нравится потеть умом, просиживать часами за ЭВМ. И никакие деньги их туда не затянут, мне кажется это иллюзорное представление.

не всем это заходит, людям реально не всем нравится потеть умом, просиживать часами за ЭВМ

Это да. Но тут мне попадались разные люди.

Бывали случаи, чел с приличным ИТшным образованием, хорошими знаниями — приходит на проект и страдает хернёй. Чаи-кофеи-обеды, участие в любых возможных митингах, кода мало, код небрежный, отношение к тестам на «отстань» (типа, после изменений тест стал красным — потому его комментит, т.к. лениво разбираться).

А другой чел без образования, из водителей общественного транспорта — решил переквалифицироваться в ИТшники, прошёл годичные курсы, вышел на проект. Роет землю, пишет кучу кода с 9 до 6 (практически, без отвлечений). Да, нужно подсказывать/обучать и направлять — но если у него естъ хватка, от такого уже реальная отдача.

А ведь во время собеседования, 1-й кадр — окажется куда более привлекателен.

Почему это про армию не писать? Я недавно собеседовал парня — бывший десантный парашютист королевской армии Таиланда. После армии решил заняться программированием. В этом нет ничего такого. Плюс армия это как минимум показатель дисциплины

Меня много раз не взяли после того как я сказал что с армии дембельнулся, несмотря на то, что в одной из этих компаний я вообще интервью тупо на 100% прошел, а потом пришел типа PM и начал вопросы про армию задавать, и потом не взял.
Короче везде где я говорил что был в армии меня не брали, взяли только туда, где про армию разговор не заходил.

конкуренции боятся
всякие скрам погонщики из вояк неплохие выходят
в США наоборот почтетно
даже если не в армии США был
поздравляют с днем ветеранов меня

а Линус Торвальд в биографической книге писал что знает каждую сосну в Финляндии и может поддержать разговор с любой особью мужского пола

В США понятно что почетно, а у нас все через жопу как всегда.

Меня много раз не взяли после того как я сказал что с армии дембельнулся, несмотря на то, что в одной из этих компаний я вообще интервью тупо на 100% прошел, а потом пришел типа PM и начал вопросы про армию задавать, и потом не взял.
Короче везде где я говорил что был в армии меня не брали, взяли только туда, где про армию разговор не заходил.

Не секрет, кто такие «молодцы» у нас на рынке?

Весь список не помню уже, тогда я не знал английского и ходил только в продуктовые типа Терасофта, 1C, TAC.

Что-то мне кажется — C# скоро задавит джаву

ніт

По сравнению с Java .NET это оружие будущего, и он теперь тоже опен сорс, и работает на Linux без проблем.
Теперь .NET во всем лучше Java и объективных причин что бы .NET не задавил Java нет.
Только затухающая легиси популярность Java.
А не какие-то фичи в самом языке или другие объективные причины.

По сравнению с Java .NET это оружие будущего

Дякую, поржав. Така мощна зброя, що підтримка TLSv1.3 виходить на 2 роки пізніше ніж в джаві. Якщо це зброя майбутнього, то за таке майбутнє страшно. І це тільки один приклад наскільки дотнет відстає як платформа.

Пацаны, вы тут шутите чтоли? TLSv1.3 в Go уже хрен знает когда давно, и не является там какой-то фичей, на которую стоит обращать внимания. Веб-сервер — тоже изначально, и тоже в качестве мелкой фигни. Go — настоящее оружие будущего. И да, все средства контейниризации, которыми вы пользуетесь, написаны на Go, а не на C# или java.

Go — настоящее оружие будущего

Тоді хренове у нас «будущєє»...

И да, все средства контейниризации, которыми вы пользуетесь, написаны на Go, а не на C# или java.

а Лінукс і Віндовс написані на C

а Лінукс і Віндовс написані на C

Будучи в контейнере, хоть на джавескрипте пусть будут написаны.

Цікаво почути про об’єктівниє прічіни, поки звучить, як релігійне переконання

объективных причин что бы .NET не задавил Java нет.

все именно так, но с точностью наоборот.

По «технологичности», няшности языка, уже давно задавил. А вот по market share еще нет и вряд ли когда-либо задавит. Слишком много проектов, библиотек и тулзов написано под джаву, слишком много джава спецов. Да и всякие котлины это как доза адреналина в тушку этого динозавра.

Так что я бы сказал что джава как язык скорее всего все, а вот джава как платформа еще будет жить и жить.

Так что я бы сказал что джава как язык скорее всего все

Навпаки, зараз джава так бустанулась, що в найближчі 5-10 років відіграє втрачені позиції і стане ще більш поширенною.

Когда параметры-типы java дженериков будут компилироваться не в object а в типы параметров — напишешь.

І що це поміняє? Компілятор з типізацією чудово справляється. Дженеріки свою задачу вирішують на 100%. Зараз на підході проекти ліліпут і валхала. От коли почнеться жара. Так що вчи джаву поки не пізно.

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

Снап на Убунті? Судячи з усього, якийсь глобальний баг платформи InteliJIdea: youtrack.jetbrains.com/issue/IDEA-268292 У мене на домашньому компі PyCharm так тупить. А от на робочому ноуті все нормально, хоча там теж Убунта і снап.

Зніс снап, поставив PyCharm через JetBrains Toolbox. Усі налаштування підхопилися, і тепер усе літає.

Підписатись на коментарі