👉Введение
2023 TIOBE Официально объявлен язык программирования года — C# Эту честь завоевал впервые после многолетней работы с ним. TIOBE сказал, что C# Web Такие области, как серверная часть приложений и игры, продолжают становиться популярными и начинают вторгаться Java доля рынка. Однако в стране уровень осведомленности о C# невысок. Сообщество разработчиков облачных технологий Tencent специально приглашает отечественных .Net Эту статью написал эксперт по разработке платформ Чжан Шанью. C# Статья-интерпретация победы в чемпионате,Давайте узнаем!Прочитав всю статью, вы также можете принять участие в розыгрыше красной обложки конверта Года Дракона в конце статьи!
👉Содержание
1 Введение
2 Взгляд на прошлую и настоящую жизнь с точки зрения особенностей языка C#
3. Взгляд на будущее развитие на основе сценариев применения C#
4 Заключение
Официально объявлено, что язык программирования 2023 года по версии TIOBE C# впервые завоевал ежегодную награду за язык программирования после более чем 20 лет пребывания в десятке лучших. Данные TIOBE показывают, что C# вырастет на 1,43% в 2023 году, что намного превысит 0,83% конкурентов Scratch и 0,64% Fortran.
TIOBE также сообщил, что C# в настоящее время постепенно отнимает долю рынка Java и становится все более популярным в таких областях, как серверные части веб-приложений и игры. Будучи новым, инновационным, кроссплатформенным, объектно-ориентированным языком программирования с открытым исходным кодом, C# может обеспечить поддержку всех сценариев, включая, помимо прочего, настольные компьютеры, мобильные устройства, Интернет вещей, игры, Интернет, облачные технологии, мобильные устройства и искусственный интеллект.
Почему C# внезапно набирает популярность? Какова история развития языка C#? Каковы его основные сценарии применения? Почему C# не очень популярен в Китае? Сообщество разработчиков Tencent Cloud специально пригласило Чжан Шанью, Tencent Cloud TVP и эксперта по разработке платформ .Net, написать эту статью по этим ключевым вопросам для читателей.
PS: Следующий контент отражает только личное мнение автора.
Фактически, рождение C# можно отнести к концу 1990-х годов. В то время в Microsoft осознали, что быстрое развитие Интернета и растущая сложность программного обеспечения ставят перед разработчиками новые задачи. Традиционные языки программирования не могут удовлетворить растущие потребности, и разработчикам нужен более мощный и современный язык для решения этих задач, поэтому на свет появился C#.
C# разработан для обеспечения большей производительности, более сильной объектно-ориентированной поддержки и более высокой производительности. Он черпал вдохновение из таких языков, как C++, Java и Delphi, в сочетании с собственными инновациями Microsoft и был впервые выпущен в 2000 году. Со временем C# превратился в один из основных языков программирования для платформы .NET, предоставляющий разработчикам мощные и гибкие инструменты для создания различных типов приложений.
По моему мнению, цели разработки и философия C# заключаются в том, чтобы предоставить мощный современный язык программирования для повышения производительности разработчиков и качества кода.
Основная цель разработки C# — простота и удобство использования. Он использует синтаксис, аналогичный C++ и Java, что позволяет разработчикам быстро приступить к работе и писать понятный и лаконичный код. Более того, это чистый объектно-ориентированный язык программирования, который поддерживает объектно-ориентированные функции, такие как инкапсуляция, наследование и полиморфизм, поэтому он очень полезен в организации кода и управлении им, а также в улучшении удобства сопровождения и масштабируемости кода. Конечно, безопасность также находится в центре внимания C#, который вводит такие механизмы, как проверки безопасности типов, проверки нулевых ссылок и обработку исключений, чтобы предотвратить распространенные ошибки программирования и уязвимости безопасности, а также повысить надежность и стабильность кода. В то же время C# стремится обеспечить высокопроизводительное выполнение кода. Благодаря технологии JIT-компиляции код C# можно преобразовать в машинный код и оптимизировать во время выполнения, тем самым повышая производительность программы.
Кроме того, C# также занимается кросс-платформенной разработкой, внедряя платформу .NET Core и, наконец, превращаясь в единую платформу .NET, позволяющую C# работать в различных операционных системах, включая Windows, Linux, macOS и т. д., расширяя возможности развертывания. области применения. Поддержка интегрированной среды разработки (IDE) является частью целей разработки C#. С помощью мощных инструментов IDE (таких как Microsoft Visual Studio/Visual Studio Code и Rider) мы можем выполнять операции редактирования кода, отладки, автоматического завершения и рефакторинга, эффективно повышая эффективность разработки.
Подводя итог, можно сказать, что C# стал одним из мощных языков программирования, широко используемых в различных областях, благодаря своей простоте, объектно-ориентированности, безопасности, высокой производительности, кроссплатформенности и поддержке IDE.
Стоит отметить, что C# в настоящее время находится в крайне недооцененном состоянии. Это главным образом связано с прошлой политикой Microsoft в отношении закрытого исходного кода. 12 ноября 2014 года Microsoft объявила, что весь технологический стек платформы .NET будет иметь открытый исходный код и размещаться на нем. .NET Foundation позволит .NET работать в Linux и MacOS и будет тесно сотрудничать с сообществом через .NET Foundation для улучшения .NET в будущем. В настоящее время мы можем найти проекты с открытым исходным кодом для всех компонентов платформы .NET на GitHub, включая компилятор C#.
Среди ряда основных инженерных языков с GC и приемлемой производительностью C# является первым, поддерживающим AOT для создания динамических библиотек. Таким образом, любой сценарий C++, разработка для настольных компьютеров, WebAssembly и большинство мобильных терминалов (включая). Android, iOS), C# AOT — все могут участвовать (не полностью заменять, но участвовать), и у каждого языка есть свои сильные стороны, и простое участие может привести к множеству изменений.
Последняя версия C# уже является современным языком программирования. Революционная особенность C#, выпущенная в 2022 и 2023 годах, — это повторное использование кода, независимое от языка. Будь то разработка на Java, Python, JS или Rust, мы можем использовать библиотеку кода C#, которая является легкой и не требует введения других зависимостей среды выполнения и сборки. Это в полной мере использует элегантность кода C# и позволяет программистам приложения верхнего уровня делают то же самое.
Конечно, помимо того, что C# является современным языком программирования, он также имеет следующие особенности:
Будучи полнофункциональной платформой разработки приложений, C# можно быстро применить к аппаратным устройствам в различных облачных и периферийных сценариях, включая облачные серверы, мобильные терминалы, устройства Интернета вещей и т. д., обеспечивая эффективную работу и эффективное сотрудничество. В настоящее время C# является относительно зрелым в облачных приложениях, полнофункциональных веб-приложениях, настольных приложениях, мобильных приложениях, играх, Интернете вещей (IoT), искусственном интеллекте (ИИ) и других сценариях. В будущем этому будет уделяться пристальное внимание, особенно с учетом нынешнего бурного развития искусственного интеллекта.
Нет сомнений в том, что применение сценариев искусственного интеллекта является направлением с наибольшим потенциалом развития для C#. Оглядываясь назад на развитие алгоритмов за последние 10 лет, можно сказать, что оно в основном прошло три этапа: этап традиционного алгоритма с использованием математических и статистических методов. знания, проектирование функций, обработка и суждение, а также внедрение глубокой нейронной сети, аннотирование данных для обучения, автоматическое извлечение функций, обработка и оценка этапа алгоритма глубокого обучения на основе больших моделей, обработки с нулевой выборкой (Zero-Shot) или использования небольшое количество образцов для точной настройки этапа разработки приложений для больших моделей. На первых двух этапах в C# имеется библиотека ML.NET, которую можно использовать для разработки приложений в этой области. Характеристики Zero-Shot и универсальность больших моделей позволяют выполнить одну задачу без необходимости проходить весь процесс. сбора данных, маркировки, обучения и оптимизации. Вам нужно только понять процесс разработки прикладного уровня.
Некоторые функции языка C#, в том числе дружественность к неструктурированным данным, поддержка Native AOT, кроссплатформенность и Blazor, особенно подходят для приложений искусственного интеллекта, что делает его очень подходящим для разработки продуктов искусственного интеллекта. Например, при разработке прикладного уровня семантическое ядро Microsoft с открытым исходным кодом в марте 2023 года официально выпустило версию 1.0 20 декабря 2023 года. Появление Semantic Kernel открыло двери для AGI в C#.
Развитие облачных и контейнерных технологий привело к прогрессу в общей индустриализации и экологии серверной части. Мы также можем построить распределенную архитектуру на основе собственных сервисов k8s и совместно использовать промежуточное программное обеспечение на всех языках. Например: вы можете использовать любое промежуточное программное обеспечение на любом языке, основанном на Dapr, и C# оказывается первым языком, поддерживаемым Dapr.
.NET 8 меняет подход к созданию интеллектуальных облачных приложений и сервисов с высоким трафиком, которые масштабируются по требованию. Независимо от того, развертываемся ли мы в Linux или Windows, используя контейнеры или выбранную нами модель облачных приложений, .NET 8 упрощает создание этих приложений. Он включает в себя набор проверенных библиотек, которые в настоящее время используются многими крупномасштабными службами Microsoft, чтобы помочь нам решить фундаментальные проблемы, связанные с наблюдаемостью, отказоустойчивостью, масштабируемостью, управляемостью и многим другим.
.NET 8 позволяет .NET-приложениям компилироваться в собственный код, использовать меньше памяти и запускаться немедленно, не дожидаясь, пока JIT-компилятор (точно вовремя) скомпилирует код во время выполнения, а также без необходимости развертывания JIT-компилятора и IL. код. Приложения AOT развертывают только код, необходимый приложению. Теперь наше приложение может работать в ограниченной среде, где нельзя использовать JIT-компилятор.
Стоит отметить, что C# также имеет очень хорошую репутацию в сфере разработки игр. В частности, он очень сбалансирован с точки зрения обучения и начала работы, набора талантов, стандартов программирования и операционной производительности, без явных недостатков. Разработчики игр используют Unity для создания игр. Типичным представителем является национальная игра Tencent King of Glory, которая в основном создана с использованием Unity и имеет более 100 миллионов активных пользователей. C# легко интегрируется с движком Unity. Кроме того, некоторые новые игровые движки также используют язык C#, например движок Godot с открытым исходным кодом.
Помимо игровых интерфейсов, технологии C# и .NET также все чаще используются в игровых серверах (игровые серверы могут без проблем работать на Linux).
Blazor в .NET 8 может удовлетворить все потребности нашего веб-интерфейса, используя как серверную, так и клиентскую сторону. Благодаря множеству новых улучшений, направленных на оптимизацию времени загрузки страниц, масштабируемость и улучшение пользовательского опыта, разработчики теперь могут использовать Blazor Server и Blazor WebAssembly в одном приложении, автоматически перемещая пользователей с сервера на клиент в конце выполнения. Сравнивая эти два кода, становится ясно, что код .NET работает быстрее на WebAssembly, главным образом благодаря новой среде выполнения на основе «Jiterpreter» и новым встроенным компонентам.
Короче говоря, Blazor заполняет недостающее звено. Разработчики C# могут обмениваться кодом и бизнес-логикой непосредственно в браузере пользователя. Для разработчиков C# это, несомненно, очень мощная функция, которая эффективно повышает эффективность нашей работы.
Фактически, применение C# в среде разработки настольных компьютеров также является ярким моментом. Помимо традиционных платформ разработки настольных компьютеров Windows WPF и Winforms на платформе .NET, существует также множество кроссплатформенных платформ с открытым исходным кодом, таких как Avalonia UI и UNO Platform. В частности, Avalonia UI — это кроссплатформенная среда разработки пользовательского интерфейса для настольных компьютеров (WINDOWS, LINUX, MAC), основанная на .NET и XAML. Нет проблем с тем, что одна платформа использует WINUI, а другая — собственный, что приводит к разным рендерингам. Бывает, все платформы используют SkiaSharp для рендеринга.
В частности, в Китае в сообществе openKylin была создана Avalonia SIG для продвижения поддержки Avalonia UI экосистемы openKylin и связанного с ней экологического построения Avalonia UI. Поскольку отечественный настольный компьютер Linux проникает в традиционные отрасли, такие как промышленность и здравоохранение, пользовательский интерфейс Avalonia становится полностью конкурентоспособным на этом рынке. Все больше и больше пользователей переходят от традиционного QT к бесплатному пользовательскому интерфейсу Avalonia.
Помимо пользовательского интерфейса Avalonia, существует еще Blazor, который одинаково хорошо работает с клиентскими приложениями. Blazor Hybird, поддерживаемый начиная с .NET7, использует Blazor Hybrid для объединения собственных клиентских платформ для настольных компьютеров и мобильных устройств с .NET и Blazor. В гибридных приложениях Blazor компоненты Razor работают на устройстве изначально. Компоненты отображаются во встроенных элементах управления веб-представления через собственный канал взаимодействия. Компонент не запускается в браузере и не задействует WebAssembly. Компоненты Razor быстро загружают и выполняют код, а компоненты имеют полный доступ к собственным функциям устройства через платформу .NET.
Пользовательский интерфейс многоплатформенного приложения .NET (.NET MAUI) — это кроссплатформенная платформа для создания собственных мобильных и настольных приложений с использованием C# и XAML. Используя .NET MAUI, вы можете разрабатывать приложения, которые работают на Android, iOS, macOS, Windows и других платформах. приложения, работающие на единой общей базе кода. .NET MAUI включает элемент управления BlazorWebView, который отображает компоненты Razor во встроенном веб-представлении. Используя .NET MAUI с Blazor, мы можем повторно использовать набор компонентов веб-интерфейса на мобильных устройствах, настольных компьютерах и в Интернете.
Помимо настольных и мобильных приложений, C# также широко используется в Интернете вещей (IoT). .NET работает на различных платформах и архитектурах. Он поддерживает распространенные подключаемые платы Интернета вещей (IoT), такие как Raspberry Pi и Hummingboard. Приложения Интернета вещей часто взаимодействуют со специализированным оборудованием, таким как датчики, аналого-цифровые преобразователи и ЖК-устройства.
Требования к промышленным сетям растут с невероятной скоростью, будь то с точки зрения сетевых технологий, стандартизации или кибербезопасности. В этих проблемных областях быстро развивается стандарт связи OPC UA (Open Platform Communications – Unified Architecture, Open Platform Communications – Unified Architecture) на базе Ethernet. Стандартная библиотека OPC UA UA-.NETStandard, созданная OPC Foundation. Реализация C#, которая позволяет нечленам использовать OPC UA в качестве пробной спецификации, прототипа или исследовательского проекта.
Фактически, серверная система Интернета вещей, использующая .NET и C#, также находит все более широкое применение, а встроенная серверная система сервисов может без каких-либо препятствий работать в Linux.
На мой взгляд, объективная реальность не статична, а постоянно развивается и меняется. C# всегда входил в пятерку лучших пользователей в мире, но многие считают, что сценарии его использования в Китае кажутся относительно скудными, главным образом потому, что большинство людей по-прежнему смотрят на проблемы со старой точки зрения, а не смотрят на проблемы с другой точки зрения. развития и изменения. Последняя версия C# 12 — это язык программирования, сочетающий в себе эффективность разработки Python с производительностью C/C++/Rust.
На рынке настольных компьютеров Linux AvaloniaUI C# дополняет кроссплатформенные требования Window Forms и WPF и постепенно становится сильным конкурентом QT. В сценарии искусственного интеллекта, поддерживаемом GenAI, новая парадигма разработки, основанная на проекте семантического ядра, получит больше последователей в 2024 году.
Чжан Шанью, технический директор Исследовательского института приложений искусственного интеллекта Чжиюн, TVP Tencent Cloud, окончил математический факультет Университета Ланьчжоу, специализируется на разработке облачных технологий, выступает за культуру открытого исходного кода, использует программное обеспечение с открытым исходным кодом для создания собственных облачных программных систем и управляет общедоступной учетной записью WeChat «кроссплатформенный dotNet» и «интеллектуальными приложениями нового поколения» для продвижения и популяризации применения облачных технологий в развитии корпоративного бизнеса. Я занимаюсь разработкой платформ .NET уже 20 лет. Писательство для меня является хобби. Я написал большое количество технических статей в своем личном технологическом блоге и открыл колонку в сообществе разработчиков Tencent Cloud.
-End-
Автор оригинала|Чжан Шанью