Axum - это язык, структурированный таким образом, чтобы упростить безопасное и эффективное совместное программирование. Понятия моделируемых языка избежать необходимости сделать синхронизацию потоков явной посредством использования lock
(в C#), Monitor
, ReaderWriterLockSlim
и т.д ...
Можно утверждать, что многие из идей в Аксуме были в Erlang programming language с 1986 года - язык, разработанный исследователями, работающими в Швеции для Ericsson, для работы на телефонных коммутаторах, и, следовательно, поддержка массивной пропускной способности при высокой одновременной нагрузке была настолько существенной, что она была разработана на языке. Хотя многие из идей в Аксум не являются новыми, они, конечно, новичок в .NET и в CLR
Существующие библиотеки .NET, которые содержат некоторые из этих идей (по крайней мере, на уровне языка.):
Как Erlang, передача сообщений является центральным понятием в Аксум. Как и Эрланг, Аксум в значительной степени безразличен относительно того, находится ли получатель сообщения в процессе или удаленно. В настоящее время Axum обеспечивает интеграцию с WCF.
Axum отличается от упомянутых выше библиотек тем, что включает поддержку этих концепций на уровне языка, а не только через использование библиотек. Компилятор Axum занимается не только языком Axum, но и некоторыми экспериментальными расширениями для самого языка C#; а именно ключевые слова isolated
и readonly
.
Добавление новых функций на язык не является чем-то, что нужно воспринимать легкомысленно. Spec# - еще один язык C# -superset, разработанный по адресу MSR (не связанный с параллелизмом).Как видно из поддержки Code Contracts в .NET 4.0, Microsoft решила одобрить добавление нового API, а не новых языковых расширений (это приносит пользу пользователям всех языков в CLR.) Однако в случае Axum недостаточно богатства на языке C# 3.0, чтобы выразить типы ограничений непреложности, необходимых для типов и их членов для действительно безопасного параллельного программирования.
Погрузившись в Эрланг и полюбив увиденное, я очень взволнован тем, что Аксум может забрать нас. Некоторые из расширений языка C#, предложенные командой, также полезны для обычных проектов C#.
Наконец, я хотел бы отметить, что для Erlang больше, чем для хорошей модели параллелизма. Erlang - строгий функциональный язык программирования. Он поддерживает код с возможностью «горячей замены», что означает, что система может быть обновлена без остановки (желательная функция телефонного коммутатора или любой другой системы 24x7). Я слышал отчет от крупной британской телекоммуникационной организации, в которой работает коммутатор на год, и только в то время не выполнял четырех вызовов. У Erlang есть другие характеристики, такие как удаленная обработка исключений.
Huh. Никогда не слышал об Аксуме раньше. Очень интересно. Пойдите Microsoft! Первый ASP.NET MVC, затем F #, теперь Axum? Злая! –
Если кто-нибудь сделал что-то интересное, сообщите нам об этом. –
Было бы хорошо. –