for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  

Список Форумов  :: Не фоксом единым
   :: Помощь сайту :: 

C# 8
S-type

Сообщений: 2337
Дата: 04.06.18 16:07:33ОтветитьЦитировать
Почитал habr.com Как впечатление? Особенно от Nullable Reference Types.
Ratings: 0 negative/0 positive

Re: C# 8
Igor Korolyov
Автор

Сообщений: 31995
Дата: 04.06.18 18:23:38ОтветитьЦитировать
Поживём - увидим
А пока повода рвать волосы на голове я не вижу. Ну разве что язык превращается в крайне сложно изучаемое нечто...
Дополнительные проверки на null на этапе компиляции - не самая плохая штука. Другое дело несколько качественно это можно "в принципе" реализовать...


------------------
WBR, Igor
Ratings: 0 negative/0 positive

Re: C# 8
S-type

Сообщений: 2337
Дата: 05.06.18 10:13:40ОтветитьЦитировать
Igor Korolyov
Ну разве что язык превращается в крайне сложно изучаемое нечто...
Иначе говоря - повышается порог вхождения. С другой стороны, конкуренция между языками всё возрастает. Те же JS и Python позволяют писать быстрее - на реализацию функционала уходит меньшее букв, т.е. в программе меньше бойлерплейт-кода. Мне кажется, если будет Records - стоит задуматься, что бы его использовать. Но, дьявол как всегда - в деталях. А вдруг понадобится внести изменение в код, генерируемый Records? Конечно, можно и отнаследоваться. Но, наверняка появятся какие то атрибуты, влияющие на Record.

Igor Korolyov
Дополнительные проверки на null на этапе компиляции - не самая плохая штука.
Что значит неплохая? IMHO, так должно было быть с самого начала, когда язык разработали.

Igor Korolyov
Другое дело несколько качественно это можно "в принципе" реализовать...
Есть сомнение в способностях тех бородатых дядек, что компилятор пишут?



Исправлено: S-type, 05.06.18 11:22
Ratings: 0 negative/0 positive

Re: C# 8
Аспид

Сообщений: 3139
Откуда: Москва
Дата: 05.06.18 13:35:11ОтветитьЦитировать
Любопытная статейка.
Records - да)
мне еще "Оператор switch будет позволять сжатый синтаксис..." понравилось)

И да, Игорь, как и переводчик правы.
Язык превращается в монстра. )))
Но давно создалось впечатление, что это судьба любого развивающегося языка.


------------------
Ratings: 0 negative/0 positive

Re: C# 8
Igor Korolyov
Автор

Сообщений: 31995
Дата: 05.06.18 13:55:54ОтветитьЦитировать
S-type
Igor Korolyov
Другое дело несколько качественно это можно "в принципе" реализовать...
Есть сомнение в способностях тех бородатых дядек, что компилятор пишут?
Есть сомнения в компетентности огромной массы индусо-китайцев (в т.ч. и тех что вполне славянской внешности ) язык использующих - не будет ли это для них излишне сложным Любое ограничение усложняет жизнь, в особенности не самым умелым людям. При том что кардинально улучшить качество кода эта штука всё одно не способна...


------------------
WBR, Igor
Ratings: 0 negative/0 positive

Re: C# 8
h.i.a.

Сообщений: 3989
Откуда: Мурманск
Дата: 05.06.18 14:07:46ОтветитьЦитировать
S-type
Особенно от Nullable Reference Types.
Nullable из коробки есть в Kotlin и позиционируется как основная киллер фича по сравнению с Java. Там насколько я помню все не примитивные переменные по-умолчанию не Nullable, и если нужна поддержка Null, нужно указывать это явно при объявлении. Не уверен, что по-умолчанию так рискнут сделать в финальном релизе 8, так как действительно сломается обратная совместимость. Скорее всего,будет какой-то компромиссный вариант. Сам по себе "Not null" добавляет дополнительную защиту от простреливания ног, так что скорее это плюс, но это при этом требования к коду становятся более строгими.


------------------
Ratings: 0 negative/0 positive

Re: C# 8
h.i.a.

Сообщений: 3989
Откуда: Мурманск
Дата: 05.06.18 14:21:00ОтветитьЦитировать
Range реализован в D. И очень удобен в сочетании с лямбдами, позволяет в одну строчку организовать диапазон, проход по нему, сортировку, фильтрацию и т.д. По-сути в шарп перетягивают удачные решения от конкурентов, для разработчиков со стажем это скорее плюс, но для новичков порог входа увеличивается. Если сейчас взять чистый шарп и яву без фрейморков, то конечно ява будет гораздо проще для первоначального освоения. Но и многословнее. С другой стороны, для совсем начинающих, любой язык со статической типизацией будет для освоения концептуально сложнее динамических языков вроде питона или яваскрипта, и тут уже пофиг что шарп более сложный чем ява.

P.S. И дочитав до конца статью, могу сказать, что не совсем разделяю мнение переводчика. Шарп - вполне язык средней сложности, тот же D концептуально более навороченный. Нельзя назвать простыми функциональные языки, чтение кода на Scala требует гораздо больших усилий, чем код шарпа. С другой стороны, если шарп предполагался как язык массовой промышленной разработки и вот для этого среднестатистического промышленного разработчика он становится слишком сложным, возможно MS стоит и призадуматься, чтобы не потерять нишу. Google вон пошли по другому пути - сделали промышленным языком GO под обезьянку средней сообразительности.


------------------




Исправлено: h.i.a., 05.06.18 14:47
Ratings: 0 negative/0 positive

Re: C# 8
S-type

Сообщений: 2337
Дата: 05.06.18 16:34:25ОтветитьЦитировать
h.i.a.
Не уверен, что по-умолчанию так рискнут сделать в финальном релизе 8, так как действительно сломается обратная совместимость. Скорее всего,будет какой-то компромиссный вариант. Сам по себе "Not null" добавляет дополнительную защиту от простреливания ног, так что скорее это плюс, но это при этом требования к коду становятся более строгими.

Компромиссный вариант - это как? Первое, что приходит на ум, это использовать атрибут. Примерно так:

  
  [NotNull]  
  IWeapon cantBeNull; // в статье предлагают IWeapon cantBeNull  
    
  IWeapon canBeNull; // в статье предлагают IWeapon? canBeNull

Конечно, при этом обратная совместимость сохранится. Но будет ли это красиво?

blogs.msdn.microsoft.com



Исправлено: S-type, 05.06.18 16:35
Ratings: 0 negative/0 positive

Re: C# 8
S-type

Сообщений: 2337
Дата: 05.06.18 16:44:18ОтветитьЦитировать
Аспид
Любопытная статейка.
Records - да)
мне еще "Оператор switch будет позволять сжатый синтаксис..." понравилось)
По поводу switch присоединяюсь, ибо break в switch не нравится с момента знакомства А лямбда-подобный синтаксис красив и интуитивно понятен.

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



Исправлено: S-type, 05.06.18 16:44
Ratings: 0 negative/0 positive

Re: C# 8
h.i.a.

Сообщений: 3989
Откуда: Мурманск
Дата: 05.06.18 18:04:47ОтветитьЦитировать
S-type
Компромиссный вариант - это как? Первое, что приходит на ум, это использовать атрибут. Примерно так:
Настройка на уровне проекта или namespace. Просто я с трудом представляю, что в финальном релизе такое могут включить в принудительном порядке. И сколько цензурных слов скажут в адрес MS разработчики проектов, состоящих даже из нескольких десятков тысяч строк кода, не говоря о сотнях. По сути тогда нужен будет автоконвертер проекта, что тоже есть дурной костыль. А что делать со сторонними библиотеками/фрейморками?
У Kotlin то данное поведение было изначально и программистам не нужно было ничего переделывать в своем старом коде.


------------------




Исправлено: h.i.a., 05.06.18 18:07
Ratings: 0 negative/0 positive

Re: C# 8
Igor Korolyov
Автор

Сообщений: 31995
Дата: 05.06.18 18:58:12ОтветитьЦитировать
Это планируется всего лишь как warning-и компилятора, т.е. это, конечно же, мозолящее глаза, но никак не breaking change. И даже "явно включаемой" эта штука будет, а не "по умолчанию".
А "не замечать" варнинги, и вообще их подавлять - не было проблемой с самого начала
Проблема в том что реально весьма сложно отследить все use case приводящие (потенциально) к записи null в некоторое свойство...


------------------
WBR, Igor
Ratings: 0 negative/0 positive



Извините, только зарегистрированные пользователи могут писать в этом форуме.

On-line: 52 pasha_usue Vladimir Sklyar  and Guests: 50


© 2000-2018 Fox Club 
Яндекс.Метрика