Re[7]: Welcome to C# 9.0
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.05.20 13:43
Оценка: -1
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Обсуждение твоих думок лишено какого либо смысла.


Ну, да. Они сбываются с вероятностью 99%. Обсуждать нечего.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Welcome to C# 9.0
От: Ночной Смотрящий Россия  
Дата: 26.05.20 13:47
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Ну, да. Они сбываются с вероятностью 99%. Обсуждать нечего.


Тебе опять поднять мой старый пост, где я в ответ на твои космические корабли предсказал будущее Немерле?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[6]: Welcome to C# 9.0
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.05.20 13:59
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Я уже посмотрел повнимательнее, в данном случае синтаксис остаётся как у метода, поэтому проблем не будет.


И где логическая связь? А ее нет!

Проблем не будет просто потому, что это проверенно на практике. В Немрле позиции определяются порядком определения полей. Но никаких проблем нет. Ты просто понимаешь, что позиции полей имеют значение и не меняешь их без необходимости.

Единственно, что... возможно кому-то придется пересмотреть порядок объявлений. Лично я и те кто со мной работает на Немерле давно привыкли описывать весь список полей (не зависимо от того приватные они или публичные) и автосвойства вначале файла, а методы и простые свойства после конструкторов (если они есть).

Но это полезно не только из-за рекородв, а в принципе. Опять же практикой подтверждено. Поля в классе объясняют его суть (и наследование, конечно же). А значит она должны быть на виду.

V>Ну я и С++ пользовался лет 10, где порядок объявления членов в классе влиял на логику программы. Но это не значит, что я считаю, что это хорошо.

V>Но, ещё раз: в данном случае используется синтаксис вызова метода, поэтому проблем не будет.

Не надо сравнивать творение рук не человеческих и наунчо обоснованную вещь.

С++ создает проблемы потому что криво спроектирован изначально. Тут же таких родовых травм нет.

Ты базами данных пользовался? Функциями? Ну, вот тут очень близкая база. Все растет из котрежей. А они и есть структурный тип.

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

V>Вот уж тут Вы точно не угадали Чего чего, а боязни нового у меня нет.


Боязнь нового, как и просто боязнь — это нормально. Не бояться может только дурак или маньяк. Вопрос лишь в разумности. Насколько человек может рационально взвесить пользу и возможные проблемы.

V>Наоборот, я постоянно смотрю, где что появилось и как это может мне пригодится.


Значит это первый случай в твоей жизни.

V>Но вместе с тем, некоторые (именно некоторые) вещи вызывают во мне опасение, так я наловился за свою жизнь ошибок в программах, как своих так и не своих, и примерно понимаю, где могут быть слабые места.


Вот, вот. Это и есть страх "как бы чего не вышло". Это нормально. Даже хорошо. Но нужно подходить к нему рационально. А то вот люди тоже боятся чипирования и прочего бреда из тех же соображений. Но у них нет понимания того чего они боятся.

V>В качестве контрпримера: под реляционными базами тоже лежит нехилый научный базис, даже поболее, чем то, что мы обсуждаем.

V>Что совершенно не мешает поколениям программистов ходить строем по одним и тем же граблям.

По граблям вообще сложно запретить ходить. В Шарпе много думали о том как их число сократить. Хотя иногда и факапили.

И ты прав. Под РСБУД лежит не просто наука, а ровно та же наука. Только ее там немного в другое русло увело (в множества). А теория типов там очень похожая. И именно по этому АлгТД отлично ложатся на работу с СУБД.

V>Верить не буду. Ни плюсам, ни минусам. Дойдут руки — проверю сам.

V>Верить не буду потому, что неоднократно видел, как мыши годами ели кактус и считали, что всё замечательно.

Ну, дерзай. Я тоже на слово редко верю.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Welcome to C# 9.0
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.05.20 14:01
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Тебе опять поднять мой старый пост, где я в ответ на твои космические корабли предсказал будущее Немерле?


Да ты можешь хоть об отвечаться. Это ничего не меняет. Шарп неумолимо превращается в нНемерл с чуть другим синтаксисом. Поду и макры лет через 10 осилят.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Summer of Code ...
От: rameel https://github.com/rsdn/CodeJam
Дата: 26.05.20 15:23
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>И как оно видно в студии? Отсутствующие типы? Так то по идее если насрать текст в файл и подсунуть это студии через проектную систему должно кое-как работать.


Голая студия видит сгенерированные типы и методы после перезагрузки. Решарпер же ни в какую их видеть не хочет — подсвечивает все красным
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[7]: Welcome to C# 9.0
От: vmpire Россия  
Дата: 26.05.20 15:35
Оценка:
Здравствуйте, VladD2, Вы писали:

V>>Я уже посмотрел повнимательнее, в данном случае синтаксис остаётся как у метода, поэтому проблем не будет.

VD>И где логическая связь? А ее нет!
А она есть. К тому, что порядок параметров метода имеет значение все привыкли.
К тому, что порядок объявления членов класса в C# имеет значение не только никто не привык, а даже мало кто подозревает об этом.

VD>Проблем не будет просто потому, что это проверенно на практике. В Немрле позиции определяются порядком определения полей. Но никаких проблем нет. Ты просто понимаешь, что позиции полей имеют значение и не меняешь их без необходимости.

Не соглашусь. Сравнение с Немерлем вообще некорректное: те, кто на нём пишет изначально привыкли к поведению, которое для него специфично и не меняется.
Изменение поведения языка, на котором уже много кто пишет — это совсем другое дело.

VD>Единственно, что... возможно кому-то придется пересмотреть порядок объявлений. Лично я и те кто со мной работает на Немерле давно привыкли описывать весь список полей (не зависимо от того приватные они или публичные) и автосвойства вначале файла, а методы и простые свойства после конструкторов (если они есть).

Лично вы — привыкли. Но не все пишут в таком стиле и не стоит считать его единственно верным.

А привыкнуть можно ко всему (кроме PowerShell ). На С когда-то тоже переменные группировали наверху. А JS (местами) и TSQL и сейчас так неявно делают. Но это не значит, что это удобно. И как раз из за этого бывают иногда реальные ошибки.
Привыкнуть — да, можно. Я, например, как-то привык писать на языке, где не было циклов, а есдинственным способом их сделать было goto. Причём, списков и даже целочисленных переменных там тоже не было.
Привык? Да, привык. Понравилось ли это? Нет.

VD>Но это полезно не только из-за рекородв, а в принципе. Опять же практикой подтверждено. Поля в классе объясняют его суть (и наследование, конечно же). А значит она должны быть на виду.

Только для DTO. А так, точно так же можно сказать, что суть класса объясняют его методы. Или название. Или интерфейсы.
Это понимание у каждого своё, спорить тут бессмысленно.

V>>Ну я и С++ пользовался лет 10, где порядок объявления членов в классе влиял на логику программы. Но это не значит, что я считаю, что это хорошо.

V>>Но, ещё раз: в данном случае используется синтаксис вызова метода, поэтому проблем не будет.
VD>Не надо сравнивать творение рук не человеческих и наунчо обоснованную вещь.
Нескромный вопрос: а "научно обосновал" кто? инопланетяне? Тоже ведь люди.
И никто ничего не сравнивает, это разные вещи, которые обе нужно брать во внимание.

VD>С++ создает проблемы потому что криво спроектирован изначально. Тут же таких родовых травм нет.

VD>Ты базами данных пользовался? Функциями? Ну, вот тут очень близкая база. Все растет из котрежей. А они и есть структурный тип.
VD>Ну, или тогда будь последователен и протестуй против кортежей, которые давно в шаре есть.
Я ни против чего не протестую. Я высказываю мнение, что при изменении привыченого поведения возможны ошибки.

<психологический флейм скипнут>
Re[3]: Welcome to C# 9.0
От: σ  
Дата: 26.05.20 16:58
Оценка:
>>> Версия 9.0
>>> Добавили covariant return types

σ>>Вот что значит доверить проектирование языка дельфисту.

S>Дельфист сейчас разрабатывает TypeScript https://ru.wikipedia.org/wiki/TypeScript

Т.е. банальные covariant return types завезли только когда дельфист отстранился (ну или его отстранили) от разработки языка?
Re[4]: Welcome to C# 9.0
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 26.05.20 17:21
Оценка:
Здравствуйте, σ, Вы писали:

>>>> Версия 9.0

>>>> Добавили covariant return types

σ>>>Вот что значит доверить проектирование языка дельфисту.

S>>Дельфист сейчас разрабатывает TypeScript https://ru.wikipedia.org/wiki/TypeScript

σ>Т.е. банальные covariant return types завезли только когда дельфист отстранился (ну или его отстранили) от разработки языка?

ну если ты прочитаешь ссылочку, то он с 12 года занимантся. И он активно развивается.

При нем так и не ввели метаклассы. Типа статические методы класса можно было переопределять.
Там же были и виртуальные конструкторы.
А вот как он ушел, даже and, or, not и with вспомнили!
и солнце б утром не вставало, когда бы не было меня
Re[10]: Welcome to C# 9.0
От: Ночной Смотрящий Россия  
Дата: 26.05.20 20:16
Оценка:
Здравствуйте, VladD2, Вы писали:

НС>>Тебе опять поднять мой старый пост, где я в ответ на твои космические корабли предсказал будущее Немерле?

VD>Да ты можешь хоть об отвечаться. Это ничего не меняет.

Безусловно. Как Немерле был в жопе, так там и остался.

VD>Шарп неумолимо превращается в нНемерл с чуть другим синтаксисом.


Когда у тебя в руках молоток ...
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[6]: Summer of Code ...
От: anton_t Россия  
Дата: 27.05.20 04:53
Оценка: 9 (1) +1 :)
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Ночной Смотрящий, Вы писали:


НС>>Потому что C# это не F# и Nemerle.


VD>И в чем разница, особенно в плане equals и копированя?


VD>Не выдумывай.


VD>А Шарп продолжает движение к Немерлу. И это правльно. Вот только не ясно зачем было тратить на это 20 лет и делать столько ошибок. Рано или поздно Шарп станет Немерлом с уговняконным, не консистентным синтаксисом, косяками дизайна, но идеальной реализацией компилятора и ИДЕ. О чем я и говорил 13 лет назад.


Десятое правило Гринспена:

Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp.

Re[10]: Welcome to C# 9.0
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 27.05.20 07:23
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Да ты можешь хоть об отвечаться. Это ничего не меняет. Шарп неумолимо превращается в нНемерл с чуть другим синтаксисом. Поду и макры лет через 10 осилят.


Влад я не знаю немерл.
Можешь подсказать какой процент изменений в шарпе присутствовал в Немерле начиная с C# 6
https://docs.microsoft.com/ru-ru/dotnet/csharp/whats-new/csharp-8

В C# 7.2. появились Span<T> и Memory<T>
https://docs.microsoft.com/ru-ru/dotnet/csharp/write-safe-efficient-code
и солнце б утром не вставало, когда бы не было меня
Отредактировано 27.05.2020 7:39 Serginio1 . Предыдущая версия . Еще …
Отредактировано 27.05.2020 7:32 Serginio1 . Предыдущая версия .
Re[11]: Welcome to C# 9.0
От: rameel https://github.com/rsdn/CodeJam
Дата: 31.05.20 19:11
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Влад я не знаю немерл.

S>Можешь подсказать какой процент изменений в шарпе присутствовал в Немерле начиная с C# 6
S>https://docs.microsoft.com/ru-ru/dotnet/csharp/whats-new/csharp-8

Этак всю документацию процитировать придется Это http://nemerle.org/About и и вот это https://github.com/rsdn/nemerle/wiki

Чего не было (как сейчас не знаю), так это ref locals/ref return values, expression bodied methods, throw expressions и async streams вроде. При чем поддержать все это можно, было бы желание). Unsafe подмножество немерле не поддерживает изначально по идеологическим причинам насколько помнится. Все остальное было с 2006, что-то может немного позже, а то, чего не хватало появлялось достаточно быстро, можно было и самому написать, вплоть до расширения синтаксиса. К тому же, то что было и то, что есть в языке — на две головы выше, чем в том же шарпе есть сейчас. При чем многое из всего этого доступно было еще 10-14 лет назад Карл! К чему можно придраться, так это, чтобы написать linq query нужно писать linq <# from .... #>.

Просто, чтобы расширить кругозор пройдись по ссылкам, что я дал, посмотри примеры и оцени масштабы

И главное, в немерле многие вещи, которые казались невозможными или труднореализуемыми — доступны, главное понять это. А понимаешь это не сразу, так как трудно сразу думать другими категориями.

S>В C# 7.2. появились Span<T> и Memory<T>

S>https://docs.microsoft.com/ru-ru/dotnet/csharp/write-safe-efficient-code

Нативная поддержка Span<T> это заслуга рантайма, а не шарпа.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Отредактировано 31.05.2020 19:21 rameel . Предыдущая версия .
Re[12]: Welcome to C# 9.0
От: Ночной Смотрящий Россия  
Дата: 31.05.20 21:40
Оценка:
Здравствуйте, rameel, Вы писали:

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


Что и было продемонстрировано на примере добавления линка. Правда, почему то пришлось параллельно основательно перепахать компилятор, потому что expression tree не влез в возможности макросов, но то такое.

R>К тому же, то что было и то, что есть в языке — на две головы выше, чем в том же шарпе есть сейчас. При чем многое из всего этого доступно было еще 10-14 лет назад Карл! К чему можно придраться, так это, чтобы написать linq query нужно писать linq <# from .... #>.


А к чему придраться, видимо, нельзя, так это к тому что линк в немерле появился позже шарпа.

Ну и еще один мелкий нюансик. До Немерле те же фичи были в Хаскеле и еще пачке других языков, а подиж ты.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[13]: Welcome to C# 9.0
От: rameel https://github.com/rsdn/CodeJam
Дата: 31.05.20 22:29
Оценка: +1 :)
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Что и было продемонстрировано на примере добавления линка. Правда, почему то пришлось параллельно основательно перепахать компилятор, потому что expression tree не влез в возможности макросов, но то такое.


Для того, чтобы поддержать линк в том виде, что есть, перепахивать компилятор не пришлось. А вот с expression tree всех деталей я не помню. Недостатки в реализации макросов пересмотрели только в N2, но заметь, даже этого хватило, чтобы линк заработал. Если так смотреть, то в шарпе так вообще грамматику языка перепахали, но то такое

R>>К тому же, то что было и то, что есть в языке — на две головы выше, чем в том же шарпе есть сейчас. При чем многое из всего этого доступно было еще 10-14 лет назад Карл! К чему можно придраться, так это, чтобы написать linq query нужно писать linq <# from .... #>.


НС>А к чему придраться, видимо, нельзя, так это к тому что линк в немерле появился позже шарпа.


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

НС>Ну и еще один мелкий нюансик. До Немерле те же фичи были в Хаскеле и еще пачке других языков, а подиж ты.


А кто-то говорил об исключительности?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[12]: Welcome to C# 9.0
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.06.20 08:42
Оценка:
Здравствуйте, rameel, Вы писали:

Из немерля мне не хватало толька патерн матчинга.
Макросы заменяли T4 и использование рослина для генерации классов.
То, что появилось и нет в Nemerle больше нужно. Один async awaite чего стоит.
>> это заслуга рантайма, а не шарпа.
Ну этого не хватало, а так как основной язык .Net это C# то и заслуга его.
Все таки говорить, что C# это недоделанный немерль неправда!
и солнце б утром не вставало, когда бы не было меня
Re[14]: Welcome to C# 9.0
От: Ночной Смотрящий Россия  
Дата: 01.06.20 09:04
Оценка:
Здравствуйте, rameel, Вы писали:

НС>>Ну и еще один мелкий нюансик. До Немерле те же фичи были в Хаскеле и еще пачке других языков, а подиж ты.

R>А кто-то говорил об исключительности?

Никто, однако, не говорит, что C# превращается в Хаскель или там Скалу, верно?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[13]: Welcome to C# 9.0
От: rameel https://github.com/rsdn/CodeJam
Дата: 01.06.20 10:23
Оценка: 146 (2) +1
Здравствуйте, Serginio1, Вы писали:

S>Из немерля мне не хватало толька патерн матчинга.


То, что в шарпе появился паттерн-матчинг хорошо, теперь ждем 9 версию, в которой может устранят куцость текущего.

S>Макросы заменяли T4 и использование рослина для генерации классов.


Вы делаете мне смешно... Если мощностей T4 хватало бы, в команде шарпа не задумались бы о source generator. Только сколько времени теперь пройдет, когда мы увидим квазицитаты для этого?

S>То, что появилось и нет в Nemerle больше нужно. Один async awaite чего стоит.


async/await есть в немерле. Я говорил об async streams, которые только вот появились в шарпе

S>Все таки говорить, что C# это недоделанный немерль неправда!


ЗЫ. Вы зачем так агритесь на то, что кто-то указал на недостатки шарпа?!

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

ЗЫ. Несколько лет назад у нас в команде были джависты, которым тоже все эти var, foreach, структуры, linq и expression trees, properties не нужны были, излишними и чужеродными. Но стоило некоторым вещам появится в джаве как вдруг это все надо и удобно. Или вот, одному из команды джавистов нужно было пересесть на шарп, то скажем так, проникся, особенно поработав с linq2db. Да, по началу плевался, чертыхался, здесь не так и тут не эдак, но позже возвращаясь обратно было досадно, что нельзя как в шарпе. При том, что и джаве было/есть что предложить шарпу — те же реализации методов интерфейса по умолчанию. Или к примеру, анонимные классы с реализацией интерфейса по месту. Или вот, поддержка tiered compilation в джите. Разве плохо, что плюсы и возможности других языков и платформ появляются в твоем любимом языке или платформы?! Или теперь нельзя обсуждать недостатки/недоделки языка/платформы потому что чьи чувства будут задеты, потому что в моем инструменте все прекрасно, все идеально. Нет не все, иначе язык не развивался бы так как сейчас.

Только здесь на форуме не мало копий было сломано об этом, не хочу повторяться, но взять хотя бы паттерн-матчинг. Много было тут людей, которым и обычного switch хватало, а теперь посмотри как наличие только одного паттерн-матчинга облегчает работу https://github.com/igor-tkachev/Linq.Expressions.Deconstruct/blob/master/Tests/Tests.cs#L156-L183

Expression<Func<int,int>> f = i => i * 0 + 0 + i + 10 * (i * 0 + 2);

var f1 = f.TransformEx(ex => ex switch
{
    Multiply(Constant(0) e,   _)               => e,               // 0 * e => 0
    Multiply(_,               Constant(0) e)   => e,               // e * 0 => 0
    Multiply(Constant(1),     var e)           => e,               // 1 * e => e
    Multiply(var e,           Constant(1))     => e,               // e * 1 => e
    Divide  (Constant(0) e,   _)               => e,               // 0 / e => 0
    Divide  (var e,           Constant(1))     => e,               // e / 1 => e
    Add     (Constant(0),     var e)           => e,               // 0 + e => e
    Add     (var e,           Constant(0))     => e,               // e + 0 => e
    Subtract(Constant(0),     var e)           => Negate(e),       // 0 - e => -e
    Subtract(var e,           Constant(0))     => e,               // e - 0 => e
    Multiply(Constant(int x), Constant(int y)) => Constant(x * y), // x * y => e
    Divide  (Constant(int x), Constant(int y)) => Constant(x / y), // x / y => e
    Add     (Constant(int x), Constant(int y)) => Constant(x + y), // x + y => e
    Subtract(Constant(int x), Constant(int y)) => Constant(x - y), // x - y => e
    _                                          => ex
});

Console.WriteLine(f);
Console.WriteLine(f1);

Assert.IsTrue(f1.EqualsTo(i => i + 20));
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[15]: Welcome to C# 9.0
От: rameel https://github.com/rsdn/CodeJam
Дата: 01.06.20 10:23
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

R>>А кто-то говорил об исключительности?


НС>Никто, однако, не говорит, что C# превращается в Хаскель или там Скалу, верно?


Шарп и немерл визуально очень близки, вот и сравнение... Был бы F# с С-подобным синтаксисом говорили бы... хотя о шарпе наверное мало бы тогда говорили
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[14]: Welcome to C# 9.0
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.06.20 10:54
Оценка:
Здравствуйте, rameel, Вы писали:

Шарп развивается сейчас быстро и много фич из разных языков взято. Здесь проблема скорее всего была с совместимостью итд.
Сейчас язык будет развиваться без оглядки на старый фреймворк и будут вводиться новые фичи в том числе и для Source Generators .
Посмотрим.
А так не хватало даже обычного
if (o is int n)
и солнце б утром не вставало, когда бы не было меня
Отредактировано 01.06.2020 11:03 Serginio1 . Предыдущая версия .
Re[12]: Welcome to C# 9.0
От: hi_octane Беларусь  
Дата: 01.06.20 11:00
Оценка:
R>Чего не было (как сейчас не знаю), так это ref locals/ref return values, expression bodied methods, throw expressions
throw expressions вроде были, не было catch ... when
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.