C# 8.0 is supported only on .NET Core 3.x and newer versions.
C# 9.0 is supported only on .NET 5 and newer versions.
Понятно, что никто не запрещает руками поменять версию языка в csproj, но Microsoft не гарантирует, что это будет работать вообще или будет работать корректно. "Choosing a language version newer than the default can cause hard to diagnose compile-time and runtime errors."
Какая-то совершенно сумбурная статья. Как из неё можно понять, где используется платформа .Net, какие у неё в этих нишах конкуренты? Особенности самого языка из статьи может понять только ветеран боёв в комментариях, а не свежеиспечённый программист.
Даже какой-нибудь IEEE Spectrum, несмотря на спорные результаты, полезнее такой статьи. Там хоть какие-то критерии есть.
у меня пока не складывается ощущение, что котлин ощутимо лучше шарпа хоть в каком-то измерении, будь то мощь или популярность
DSL. На котлине приятнее выглядит любой DSL, потому что есть лямбды с имплисит-ресивером и немножко другого мелкого сахара. Посмотрите на адище под названием Cake на C# и на любой DSL на котлине.
Среди широко известных особенностей Jenkins можно отметить простоту настройки
Самая смешная строчка в статье. Дженкинс — это такой Линукс на десктопе в мире CI/CD. Действительно, он может всё, но для этого нужно изрядно попотеть, походить по жирам и гитхаб-репозиториям в поисках таких же страдальцев. И всё равно он будет вас регулярно радовать сюрпризами, когда отвалятся базовые плагины после апгрейда вашей жиры или какого-то ещё сынтегрированного ПО. Но для сборки какого-нибудь махрового легаси на неожиданной платформе другого варианта нет.
Да, вы правы. Начал перечитывать и увидел, что там действительно есть тайпчекеры на OCaml. И понял, насколько легче читать книгу автора, не получившего в/о, чем учебник профессора информатики.
Апдейт: стоит следить за работой Rui Ueyama над chibicc, если вам интересна компиляция в машинные коды. Обещает добавить оптимизационные проходы и написать в итоге книгу.
Драконовая книжка нынче совсем устарела. Очень много времени уделено теоретическим основам компиляторского фронтенда (ДКА, НКА), а всему остальному — мало.
Мои рекомендации по замене (не проверял наличие переводов на русский):
Bob Nystrom. Handcrafting Interpreters. Отличная книга, в которой дважды с нуля собирается настоящий интерпретатор, сначала простой на Яве, а потом хардкорный на Си: со сборщиком мусора, с замыканиями и пр. Полученных знаний хватит для написания умеренно-быстрого DSL. Чего будет не хватать после прочтения: типизации, оптимизации, компиляции в машинные коды. Точно пока нет русского перевода.
Benjamin C. Pierce. Types and Programming Languages. Серьёзная книга про системы типов. Чего не хватает: практики. К ней просто напрашивается книга-компаньон, в которой к простому интерпретатору прикручивается проверка типов
Eli Bendersky. Adventures in JIT compilation. Несколько блогпостов о JIT-компиляции Brainfuck. Даёт хорошее представление о том, что такое компиляция в машинные коды, как работают простейшие оптимизации в компиляторе
Каких книг не хватает (буду рад рекомендациям), от важных к менее важным:
Дизайн фронтенда для интеграции с IDE. Парсер правильных программ написать несложно. Парсер неправильных программ написать гораздо сложнее (кто пишет в Экселе на VBA, тот понимает, о чём я). Можно читать исходники компиляторов C# (Roslyn), Elm. Сугубо практическая тема, которой брезгают заниматься профессора CS, но очень необходимая.
Оптимизация. Все знают, что компиляторы умеют оптимизировать код, но я не нашёл книги, которая подробно рассказывает о различных представлениях кода, удобных для оптимизации (CPS, SSA), учит переводить в них свой код и содержит в себе каталог основных оптимизационных приёмов
Компиляция в машинные коды и линкование. Совсем редкая дисциплина, потому что
это не теория, а сугубая практика, зависящая от платформы и ОС
есть готовые ассемблеры и линкеры
есть "слон в комнате" LLVM, который глупо не использовать в качестве бэкенда, если вам действительно нужен свой компилятор не для саморазвития, а для решения практических задач
К чему это приведет? К более широкому распространению on-premise установок registry вроде Harbor, JFROG Container Registry (или Artifactory) в прокси режимах
Я не думаю, что владельцы Докера будут этим расстроены.
Скорее, наоборот. Брахманы — это элитная варна, брахман всегда скажет, что он брахман. Представьте, что у вас в конторе начальник воцерковленный и всюду тащит таких же. Вас перевели к нему в департамент, вы даже быстренько сориентировались и не стали спрашивать за чаем у коллег, что они думают про табачные схемы. Но теперь для построения карьеры вам нужно молиться и поститься, слушать радио "Радонеж", не спросить "спасибо, а с чем?", когда вас поздравят с именинами, потратить отпуск на восстановление крыши какого-нибудь скита, рассказывать, как сходил на пасхальную службу, репостить в соцсетях какие-нибудь православные паблики вместо рок-музыкальных.
И это ещё сравнительно просто, потому что верующим можно стать, а брахманом нужно родиться и вырасти, то есть переделать надо не только своё настоящее и друзей, но и прошлое, и семью.
5 МБ за 15 минут? Да это супер-скорость, я помню, что на моём дайлапе можно было скачать 1 МБ за 10 минут. Вышел вечером посидеть в Интернете, заодно одну песенку скачал.
Да одно само понятие "выйти в Интернет" чего стоит. Подумал сначала, что надо сделать и посмотреть, чтобы время зря не тратить, потом звонишь.
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version
Понятно, что никто не запрещает руками поменять версию языка в csproj, но Microsoft не гарантирует, что это будет работать вообще или будет работать корректно. "Choosing a language version newer than the default can cause hard to diagnose compile-time and runtime errors."
Какая-то совершенно сумбурная статья. Как из неё можно понять, где используется платформа .Net, какие у неё в этих нишах конкуренты? Особенности самого языка из статьи может понять только ветеран боёв в комментариях, а не свежеиспечённый программист.
Даже какой-нибудь IEEE Spectrum, несмотря на спорные результаты, полезнее такой статьи. Там хоть какие-то критерии есть.
Потому что у C# тоже большой бинарь.
Писать можно, но поддержки от MS таких комбинаций, начиная с С# 8.0, не будет
Сейчас можно делать switch с деконструкцией, но без нормальной поддержки DU в C# он всё равно не до конца удобен:
OK(var value)
, аResult.OK<Foo, Bar>(var value)
_
DSL. На котлине приятнее выглядит любой DSL, потому что есть лямбды с имплисит-ресивером и немножко другого мелкого сахара. Посмотрите на адище под названием Cake на C# и на любой DSL на котлине.
F# теперь занят переписыванием своих фич для совместимости с C#.
АДТ планируют добавить через год, в десятой версии. Тайпклассы тоже в планах, но, скорее всего, не успеют так же быстро.
Самая смешная строчка в статье. Дженкинс — это такой Линукс на десктопе в мире CI/CD. Действительно, он может всё, но для этого нужно изрядно попотеть, походить по жирам и гитхаб-репозиториям в поисках таких же страдальцев. И всё равно он будет вас регулярно радовать сюрпризами, когда отвалятся базовые плагины после апгрейда вашей жиры или какого-то ещё сынтегрированного ПО. Но для сборки какого-нибудь махрового легаси на неожиданной платформе другого варианта нет.
Она про совсем другое, я писал в первом комменте, что TAPL закрывает то, о чём CI не говорит.
Crafting Interpreters.
Да, вы правы. Начал перечитывать и увидел, что там действительно есть тайпчекеры на OCaml. И понял, насколько легче читать книгу автора, не получившего в/о, чем учебник профессора информатики.
Допустимы GPLv2, запрещены GPLv3.
А такое требование не будет противоречить GPL?
Я тоже не читал, у меня с красным драконом.
Апдейт: стоит следить за работой Rui Ueyama над chibicc, если вам интересна компиляция в машинные коды. Обещает добавить оптимизационные проходы и написать в итоге книгу.
Драконовая книжка нынче совсем устарела. Очень много времени уделено теоретическим основам компиляторского фронтенда (ДКА, НКА), а всему остальному — мало.
Мои рекомендации по замене (не проверял наличие переводов на русский):
Каких книг не хватает (буду рад рекомендациям), от важных к менее важным:
Я не думаю, что владельцы Докера будут этим расстроены.
Скорее, наоборот. Брахманы — это элитная варна, брахман всегда скажет, что он брахман. Представьте, что у вас в конторе начальник воцерковленный и всюду тащит таких же. Вас перевели к нему в департамент, вы даже быстренько сориентировались и не стали спрашивать за чаем у коллег, что они думают про табачные схемы. Но теперь для построения карьеры вам нужно молиться и поститься, слушать радио "Радонеж", не спросить "спасибо, а с чем?", когда вас поздравят с именинами, потратить отпуск на восстановление крыши какого-нибудь скита, рассказывать, как сходил на пасхальную службу, репостить в соцсетях какие-нибудь православные паблики вместо рок-музыкальных.
И это ещё сравнительно просто, потому что верующим можно стать, а брахманом нужно родиться и вырасти, то есть переделать надо не только своё настоящее и друзей, но и прошлое, и семью.
5 МБ за 15 минут? Да это супер-скорость, я помню, что на моём дайлапе можно было скачать 1 МБ за 10 минут. Вышел вечером посидеть в Интернете, заодно одну песенку скачал.
Да одно само понятие "выйти в Интернет" чего стоит. Подумал сначала, что надо сделать и посмотреть, чтобы время зря не тратить, потом звонишь.