Re[8]: Новости C#12
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.04.23 01:22
Оценка: -1
Здравствуйте, rudzuk, Вы писали:

R>Макросы позволяющие менять синтаксис языка не нужны. Они может и хороши в качестве игрушек для церебральных соитий, но в практическом смысле несут больше вреда, нежели пользы. Как и чистая функциональщина, например.


Ох не туда ты попал. Ша тебя заклюют. Тут большая часть народа с бэкграундом Nemerle.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Новости C#12
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.04.23 01:27
Оценка:
Здравствуйте, hi_octane, Вы писали:

_>А твой страх что "в практическом смысле больше вреда" — это просто указание что культура подключения языковых наворотов пока не сформирована.


Скорее страхи высосанные из пальца. Чё-то как-то в Nemerle никому новые конструкции не мешали. Они ведь подключались нэймспэйсами. Не подключил — нет лишнего.

_>Но она не сложнее чем культура подключеням библиотек. Посмотреть, почитать, попробовать на тестовом проектике, подумать, полезно ли оно, и только потом подключать.


Самое смешное, что пропали бы вот эти недовольства новыми наворотами. Не подключай новые фичи (причем даже к отдельным файлам) и будешь гарантированно защищен от них.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Новости C#12
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.04.23 01:31
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>А это не страх, это понимание в какую жопу превратиться код, особо одаренных личностей.


На чём основывается этот страх? У тебя есть реальный опыт?

Вот у всех кто с тобой тут дискутирует реальный опыт есть, а страхов нет, так как опыт положительный.

R>Людям этот код читать потом, но райтонли пейсателям на это пофиг.


Так расширения языка позволяют сделать код понятнее и безопаснее. Не все же стреляют себе в ногу. Тебя не пугает, что ты можешь вызвать какую-нибудь библиотеку?

R> Не, можно, конечно, ввести ограничения в проект на использование некоторых фичей языка... Ой, чего-то плюсами напахнуло.


Можно если язык модульный как Nemerle, но нельзя, если он монолитный как в C#, C++ и т.е.. В них ты можешь ограничить только версию языка. В модульных языках ты можешь ограничить список фичей.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Новости C#12
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.04.23 01:42
Оценка:
Здравствуйте, IT, Вы писали:

IT>ЗЫ. У нас в команде есть один девелопер, который упорно не ставит пробел между 'if' и '('. Любые воздействия и задушевные беседы бесполезны. Один единственный макрос решил бы эту проблему раз и навсегда.


Это и без макросов решается. Есть стайл-чекеры. Тупо выдают ошибку, если что-то не по стилю (или варнинг, как настроишь).

IT>ЗЫ2. Это я к тому, что плагинами к компилятору можно решать огромный круг задач, не только по генерации кода, но и по его контролю, высокоуровневой оптимизации (типа переписывания Enumerable в циклы) и т.п.


Просто эти стайл-чекеры можно было бы сделать одним из видов макросов.

И вообще, макросы не очень правильное название. Влияние Лиспа и Немерла. По уму — это расширяемые языки.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Новости C#12
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.04.23 01:44
Оценка:
Здравствуйте, IT, Вы писали:

IT>Может где и есть, но не в наших голимых ынтырпрайзах. Так что остаются только задушевные беседы.


Это у МС из коробки теперь. Настраиваешь стили и компилятор выдает ворнинги. Выставляешь настройку рассматривать их как ошибки и тебя орел даже скомпилить код не сможет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Новости C#12
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.04.23 01:45
Оценка:
Здравствуйте, Silver_S, Вы писали:

S_S>Есть еще не освоенное направление, как в Kotlin. При помощи лямбд и лаконичного синтаксиса имитировать DSL : Type-safe builders


Это решает 10% проблем. Даже ДСЛи не все так можно сделать.

S_S>P.S. А почему Kotlin не переводят на .Net? Куча второстепенных языков переведена. А для Kotlin технические нестыковки или идеологические (это не в интересах MS)?


Потому что он тут никому не нужен. Те кто сидят на МС ничего кроме от МС не потребляют.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Новости C#12
От: IT Россия linq2db.com
Дата: 19.04.23 02:42
Оценка:
Здравствуйте, VladD2, Вы писали:

IT>>Может где и есть, но не в наших голимых ынтырпрайзах. Так что остаются только задушевные беседы.

VD>Это у МС из коробки теперь.

Какая нафик коробка? C# 7.3 не хотел?
Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: Новости C#12
От: Евгений Акиньшин grapholite.com
Дата: 19.04.23 03:08
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Евгений Акиньшин, Вы писали:


ЕА>>А что там реально такого нужного, чего нет в C# ?

S>В основном мне понравились их функциональные литералы. Собственно, по ссылке как раз был пример DSL на этих литералах, который безо всяких макросов позволяет описывать XML/HTML/Json структуры.

Да, хорошая фича, но:

— ИМХО не настолько, чтобы целый другой язык нужен был. Проще в си-шарп доделать
— В шарпе подобный синтаксис используется для инициализаторов и это тоже очень удобно. В котлине, насколько я понял, такого нет. Надо писать apply()
— Для xml\html мне больше нравиться подход в blazor
Не шалю, никого не трогаю, починяю примус Diagrams Designer for iPad and Windows 10
Re[3]: Новости C#12
От: 4058  
Дата: 19.04.23 06:00
Оценка: +3
Здравствуйте, VladD2, Вы писали:

VD>По ссылке аж три фичи добавили. Две полезных и одну бесполезную.


VD>

VD>Primary constructors for non-record classes and structs
VD>Using aliases for any type
VD>Default values for lambda expression parameters


VD>Самое полезное Using aliases for any type — давно такую хотел.


Если под бесполезной подразумевается: "Primary constructors for non-record classes and structs", то она мало того, что бесполезная, так ещё и вредная, т.к. будет продолжать способствовать замусориванию кода бесполезными "фичами", которые и так за последние 10+ лет обильно раздули язык своей практической бесполезностью.
Вообще это частое явление, когда процесс ведётся ради самого процесса, а не для решения каких-то практических потребностей, как в своё время говорил Ритчи:

Одни языки создаются для решения задачи, другие — для доказательства той или иной точки зрения.

На языке, в котором чего-то не хватает, программировать всегда проще, чем на языке, который богат своими возможностями.


Как по мне C# изначально подкупал сбалансированной простотой и практичностью, и первое время производилось добавление очевидных по полезности "фич", которых реально не хватало (Generics — 2.0, Lambda expressions — 3.0), а потом понеслась душа в рай ...
Re[19]: Новости C#12
От: _FRED_ Черногория
Дата: 19.04.23 07:55
Оценка:
Здравствуйте, IT, Вы писали:

IT>Проблема в том, что чел как бы совсем не против следовать общим правилам, он постоянно как бы забывает, т.к. как бы привык к как бы такому стилю. Постоянно его контролировать — это всё равно что постоянно контролировать рост бурьяна в огороде.


А почему в таком случае не помогают настройки студии или .editorconfig? // Вопрос не праздный, интересна реальная сторона этого дела, какие кейсы бывают на практике.

Я сам тоже абсолютно не понимаю, зачем между ключевым словом и круглой скобкой ставить пробел но у нас такое же соглашение в проекте и настройки студии отлично помогают "не забывать".
Help will always be given at Hogwarts to those who ask for it.
Re[13]: Новости C#12
От: Философ Ад http://vk.com/id10256428
Дата: 19.04.23 09:05
Оценка:
Здравствуйте, IT, Вы писали:

IT>Какая нафик коробка? C# 7.3 не хотел?


Какие вы все продвинутые! А как?! Зачем и по какой причине апается инструментарий и среда?

-----
последний раз я апнул гошный проект просто потому что зависимость этого требовала. При этом я тут же столкнулся с проблемами типа
grpc-gateway/v2/ и grpc-gateway неспособны уживаться вместе. И ещё такими как криво прикрученная валидация метаданных в новой версии grpc-go (русские буквы — спецсимволы). При этом такой опыт был всю мою жизнь!!!111 Т.е. он подсказывает, что поднять версию среды — далеко не всегда простое занятие.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[10]: Новости C#12
От: rudzuk  
Дата: 19.04.23 09:36
Оценка:
Здравствуйте, VladD2, Вы писали:

VD> _>А твой страх что "в практическом смысле больше вреда" — это просто указание что культура подключения языковых наворотов пока не сформирована.


VD> Чё-то как-то в Nemerle никому новые конструкции не мешали.


Потому что Nemerle и есть игрушка для любителей церебральных соитий.

VD> Они ведь подключались нэймспэйсами. Не подключил — нет лишнего.


Это, конечно, хорошо, только читающему код человеку от этого не легче. Как он должен понять, что else в энумераторе это для пустого энумератора? Он, конечно, может догадаться об этом, но для подтверждения догадки, все равно, придется лезть в код макроса (ну спасибо, блин). А если макросы вообще семантику выражения меняют, где это видно в коде? Риторический вопрос. Тут уже предложили ломать макросом "некрасивый" код... Это же, блин, диверсия в чистом виде!
avalon/3.0.2
Re[4]: Новости C#12
От: vaa  
Дата: 19.04.23 09:46
Оценка:
Здравствуйте, Silver_S, Вы писали:

S_S>Здравствуйте, IT, Вы писали:


IT>>А всё! ООП фичи давно закончились. Из ФП подтянули всё необходимое. Ну может только поддержку монад сделать (хотя...) вменяемую. А так осталось только переходить к реализации полноценного метапрограммирования ...


S_S>Есть еще не освоенное направление, как в Kotlin. При помощи лямбд и лаконичного синтаксиса имитировать DSL : Type-safe builders


S_S>P.S. А почему Kotlin не переводят на .Net? Куча второстепенных языков переведена. А для Kotlin технические нестыковки или идеологические (это не в интересах MS)?


Наверно потому что это есть и никому не нужно https://fsbolero.io/docs/HTML

хотя даже так https://giraffe.wiki/view-engine#samples смотрится неплохо, зачем вводить новые сущности если есть функции?
впрочем, раз уж тут речь о макросах зашла, иногда хочется код подсократить конечно, но это как коммунизм, все знают что это хорошо, но никто не готов пожертвовать
синицей в руках.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[11]: Новости C#12
От: Sinclair Россия https://github.com/evilguest/
Дата: 19.04.23 10:03
Оценка: :)
Здравствуйте, rudzuk, Вы писали:

R>Это, конечно, хорошо, только читающему код человеку от этого не легче. Как он должен понять, что else в энумераторе это для пустого энумератора? Он, конечно, может догадаться об этом, но для подтверждения догадки, все равно, придется лезть в код макроса (ну спасибо, блин).

if (mylist.Any())
  foreach(var i in mylist)
    Console.WriteLine(i);
  else
    Console.WriteLine("None");

Красота!
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[12]: Новости C#12
От: rudzuk  
Дата: 19.04.23 10:37
Оценка:
Здравствуйте, Sinclair, Вы писали:

S> Красота!


Да! Только форматировать нужно правильно:
if (args.Any())
    foreach(var a in args)
        Console.WriteLine(a);
else
    Console.WriteLine("Empty argument list");
avalon/3.0.2
Re[13]: Новости C#12
От: Sinclair Россия https://github.com/evilguest/
Дата: 19.04.23 11:22
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Да! Только форматировать нужно правильно:

R>
R>if (args.Any())
R>    foreach(var a in args)
R>        Console.WriteLine(a);
R>else
R>    Console.WriteLine("Empty argument list");
R>

Угу. Так — ещё лучше. И пусть программист седеет, выясняя, почему else не срабатывает.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[13]: Новости C#12
От: _FRED_ Черногория
Дата: 19.04.23 12:05
Оценка:
Здравствуйте, IT, Вы писали:

IT>>>Может где и есть, но не в наших голимых ынтырпрайзах. Так что остаются только задушевные беседы.

VD>>Это у МС из коробки теперь.
IT>Какая нафик коробка? C# 7.3 не хотел?

Вроде как это "фича" не версии языка, а студии / компилятора. Можно в 2022 студии программировать на 7.3 (опять же мой случай).
Help will always be given at Hogwarts to those who ask for it.
Re[14]: Новости C#12
От: rudzuk  
Дата: 19.04.23 12:15
Оценка:
Здравствуйте, Sinclair, Вы писали:

S> Угу. Так — ещё лучше. И пусть программист седеет, выясняя, почему else не срабатывает.


Он срабатывает
avalon/3.0.2
Re[15]: Новости C#12
От: Sinclair Россия https://github.com/evilguest/
Дата: 19.04.23 13:06
Оценка:
Здравствуйте, rudzuk, Вы писали:
R>Он срабатывает
Хм, и по какому это правилу он срабатывает?
Я не знаю тонкости грамматики вашего макроса, но к чему бы ни цеплялся else — к if или к foreach — я могу написать пример кода с контринтуитивным поведением.
Здесь я предположил жадную грамматику, т.е. else прицепился к foreach; в таком случае он никогда не будет вызван. Ведь весь foreach расположен в true-ветке if, то есть в коллекции заведомо есть элементы.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[16]: Новости C#12
От: rudzuk  
Дата: 19.04.23 13:20
Оценка:
Здравствуйте, Sinclair, Вы писали:

S> R>Он срабатывает


S> Хм, и по какому это правилу он срабатывает?

S> Я не знаю тонкости грамматики вашего макроса, но к чему бы ни цеплялся else — к if или к foreach — я могу написать пример кода с контринтуитивным поведением.

Это код на C#, без макросов
avalon/3.0.2
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.