C# 8 | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
Почитал habr.com Как впечатление? Особенно от Nullable Reference Types.
|
Re: C# 8 | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Поживём - увидим
А пока повода рвать волосы на голове я не вижу. Ну разве что язык превращается в крайне сложно изучаемое нечто... Дополнительные проверки на null на этапе компиляции - не самая плохая штука. Другое дело несколько качественно это можно "в принципе" реализовать... ------------------ WBR, Igor |
Re: C# 8 | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
Иначе говоря - повышается порог вхождения. С другой стороны, конкуренция между языками всё возрастает. Те же JS и Python позволяют писать быстрее - на реализацию функционала уходит меньшее букв, т.е. в программе меньше бойлерплейт-кода. Мне кажется, если будет Records - стоит задуматься, что бы его использовать. Но, дьявол как всегда - в деталях. А вдруг понадобится внести изменение в код, генерируемый Records? Конечно, можно и отнаследоваться. Но, наверняка появятся какие то атрибуты, влияющие на Record. Что значит неплохая? IMHO, так должно было быть с самого начала, когда язык разработали. Есть сомнение в способностях тех бородатых дядек, что компилятор пишут? Исправлено 1 раз(а). Последнее : S-type, 05.06.18 11:22 |
Re: C# 8 | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Любопытная статейка.
Records - да) мне еще "Оператор switch будет позволять сжатый синтаксис..." понравилось) И да, Игорь, как и переводчик правы. Язык превращается в монстра. ))) Но давно создалось впечатление, что это судьба любого развивающегося языка. ------------------ |
Re: C# 8 | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Есть сомнения в компетентности огромной массы индусо-китайцев (в т.ч. и тех что вполне славянской внешности ) язык использующих - не будет ли это для них излишне сложным Любое ограничение усложняет жизнь, в особенности не самым умелым людям. При том что кардинально улучшить качество кода эта штука всё одно не способна... ------------------ WBR, Igor |
Re: C# 8 | |
---|---|
h.i.a. Сообщений: 4002 Откуда: Мурманск/Спб/Мск Дата регистрации: 18.11.2005 |
Nullable из коробки есть в Kotlin и позиционируется как основная киллер фича по сравнению с Java. Там насколько я помню все не примитивные переменные по-умолчанию не Nullable, и если нужна поддержка Null, нужно указывать это явно при объявлении. Не уверен, что по-умолчанию так рискнут сделать в финальном релизе 8, так как действительно сломается обратная совместимость. Скорее всего,будет какой-то компромиссный вариант. Сам по себе "Not null" добавляет дополнительную защиту от простреливания ног, так что скорее это плюс, но это при этом требования к коду становятся более строгими. ------------------ |
Re: C# 8 | |
---|---|
h.i.a. Сообщений: 4002 Откуда: Мурманск/Спб/Мск Дата регистрации: 18.11.2005 |
Range реализован в D. И очень удобен в сочетании с лямбдами, позволяет в одну строчку организовать диапазон, проход по нему, сортировку, фильтрацию и т.д. По-сути в шарп перетягивают удачные решения от конкурентов, для разработчиков со стажем это скорее плюс, но для новичков порог входа увеличивается. Если сейчас взять чистый шарп и яву без фрейморков, то конечно ява будет гораздо проще для первоначального освоения. Но и многословнее. С другой стороны, для совсем начинающих, любой язык со статической типизацией будет для освоения концептуально сложнее динамических языков вроде питона или яваскрипта, и тут уже пофиг что шарп более сложный чем ява.
P.S. И дочитав до конца статью, могу сказать, что не совсем разделяю мнение переводчика. Шарп - вполне язык средней сложности, тот же D концептуально более навороченный. Нельзя назвать простыми функциональные языки, чтение кода на Scala требует гораздо больших усилий, чем код шарпа. С другой стороны, если шарп предполагался как язык массовой промышленной разработки и вот для этого среднестатистического промышленного разработчика он становится слишком сложным, возможно MS стоит и призадуматься, чтобы не потерять нишу. Google вон пошли по другому пути - сделали промышленным языком GO под обезьянку средней сообразительности. ------------------ Исправлено 3 раз(а). Последнее : h.i.a., 05.06.18 14:47 |
Re: C# 8 | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
Компромиссный вариант - это как? Первое, что приходит на ум, это использовать атрибут. Примерно так:
Конечно, при этом обратная совместимость сохранится. Но будет ли это красиво? blogs.msdn.microsoft.com Исправлено 1 раз(а). Последнее : S-type, 05.06.18 16:35 |
Re: C# 8 | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
По поводу switch присоединяюсь, ибо break в switch не нравится с момента знакомства А лямбда-подобный синтаксис красив и интуитивно понятен. Похоже, повторяется история с VFP - каждое действие можно будет сделать минимум тремя вариантами.... Исправлено 1 раз(а). Последнее : S-type, 05.06.18 16:44 |
Re: C# 8 | |
---|---|
h.i.a. Сообщений: 4002 Откуда: Мурманск/Спб/Мск Дата регистрации: 18.11.2005 |
Настройка на уровне проекта или namespace. Просто я с трудом представляю, что в финальном релизе такое могут включить в принудительном порядке. И сколько цензурных слов скажут в адрес MS разработчики проектов, состоящих даже из нескольких десятков тысяч строк кода, не говоря о сотнях. По сути тогда нужен будет автоконвертер проекта, что тоже есть дурной костыль. А что делать со сторонними библиотеками/фрейморками? У Kotlin то данное поведение было изначально и программистам не нужно было ничего переделывать в своем старом коде. ------------------ Исправлено 1 раз(а). Последнее : h.i.a., 05.06.18 18:07 |
Re: C# 8 | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Это планируется всего лишь как warning-и компилятора, т.е. это, конечно же, мозолящее глаза, но никак не breaking change. И даже "явно включаемой" эта штука будет, а не "по умолчанию".
А "не замечать" варнинги, и вообще их подавлять - не было проблемой с самого начала Проблема в том что реально весьма сложно отследить все use case приводящие (потенциально) к записи null в некоторое свойство... ------------------ WBR, Igor |
© 2000-2024 Fox Club  |