Здравствуйте, vsb, Вы писали:
vsb>Всё красиво и понятно. А в C# без ChatGPT не разберёшься.
Тогда ты врядли и в любом другом языке разберёшься. Эта фича является неотъемлемой частью синтаксиса Indices and ranges и подобным образом используется в куче всяких других Питонах, Руби, D, Котлинах, F#, Перлах и т.д. По-твоему оно только в C# неуместно?
ЗЫ. Млять, понаберут умников по объявлению...
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
IT>Сделали скорее всего потому что могли. И это было не сложно. Ну типа пусть будет.
По рукам за таки фичи. Если единственная причина сделать — потому что можем, то делать не надо. Если так делать, то мы прийдём к IOCCC но уже на C# — IOC#CC
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Nuzhny, Вы писали:
N>Так что, да. По моему в Питоне сделано хорошо и уместно, а в C# нет.
А по мне в Питоне не логично. -1 выглядит как обращение к минус первому индексу в массиве, а не к минус первому с конца. А в C# как раз нормально. ^1 — первый элемент с конца.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, diez_p, Вы писали:
_>чет после идеи, мавена, грейдла совсем грустно стало
А я вот после LINQ плачу от счастья, когда на Stream API пишу.
Гениально, очень удобно, не код, а песня.
_>бОльшее количество библиотек, бОльшее количество контрибуторов.
Потому что есть библиотека, а потом ещё одна, которая подружит её со Spring Boot. Одни обёртки над обёртками.
Да и в работе в итоге всё равно будет использоваться всё поштучно.
Лучше уж пусть будет мало и по делу, чем выбор из десятка библиотек, в которых свои какие-то заморочки и ни одна полностью не устраивает.
_>Какая массовая ниша остается для .NET?
Ключевое слово field — в Nemerle было сделано менее коряво. Там просто можно было объявить поле внутри свойства:
public Foo
{
mutable _foo = 123;
get _foo;
set _foo = value;
}
В C# же просто решили ввести ключевое слово field, которое волшебным образом создает одноименное скрытое поле, если field упомянуть внутри эксесеров свойства.
params-коллекции.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
IT>Обычная инициализация элементов массива, которую как раз и добавили в C# 13. Т.е. добавили не конкретно [^1] = 1, а вообще в целом. Жаль диапозоны не добавили. Было бы прикольно:
IT>
Здравствуйте, vsb, Вы писали:
vsb>Всё красиво и понятно.
Некрасиво из-за большей писанины, да и Builder кто-то должен реализовать, что ещё добавляет веселья.
Ну, и код не эквивалентен. Там предполагается, что в конструкторе TimerRemaining коллекция buffer заполняется минимум 10 элементами.
Последние из них переписываются в инициализаторе на свои значения. Если в конструкторе 15 элементов заполняется, то первые 5 должны остаться не тронутыми.
В варианте с Builder же подаётся свой новый массив из 10 элементов и только они в итоге передадутся в объект или нужно реализовывать неочевидную логику в билдер, что ещё хуже сделает.
vsb>А в C# без ChatGPT не разберёшься.
Ну, C# пока ещё слабо замусорили непонятным сахаром, но успешно к этому идут.
Здравствуйте, Codealot, Вы писали:
C>Гениальная фича. Как я раньше мог жить без этого. C>Ну и код тоже доставляет. Бить мордой об клавиатуру за такой код.
Я бы понял, если бы эта фича автоматом добавилась, когда они "крышечки" добавили в индексаторы.
А вот зачем их отдельно приделали к инициализаторам — вопрос.
Вот так завязываться на логику конструкторов и переписывать снаружи отдельные элементы по индексу хоть с начала, хоть с конца — это как-то неправильно.
Не могу даже придумать где бы такое было нужно хотя бы как быстрое костыльное решение.
Здравствуйте, IT, Вы писали:
IT>Тогда ты врядли и в любом другом языке разберёшься. Эта фича является неотъемлемой частью синтаксиса Indices and ranges и подобным образом используется в куче всяких других Питонах, Руби, D, Котлинах, F#, Перлах и т.д. По-твоему оно только в C# неуместно?
Один и тот же функционал фожно сделать по-разному. В Питоне индексация с конца — это отрицательные индексы, которые принимаются вполне интуитивно и выглядят логично. Почему знак '^'? Вот почему, как это можно объяснить, какой твой предыдущий опыт наталкивает на трактование этого символа, как индексацию с конца? Интуитивно такой знак может означать возведение в степень, может конъюнкцию. Разве язык программирования не надо делать логичным для людей?
Так что, да. По моему в Питоне сделано хорошо и уместно, а в C# нет.
Сделали скорее всего потому что могли. И это было не сложно. Ну типа пусть будет. При наличии уже всего готового в компиляторе такое делается за пару часов. Тесты писать дольше.
Надо ли оно?
Если пригодится, то непременно сразу сообщу.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, BlackEric, Вы писали:
BE>Еще 12 числа вышел 9 .Net, а также С# 13 и F# 9. Так же продолжают развивать Blazor и MAUI.
BE>Много всего вкусного, в том числе для ИИ. BE>Кратенько на Opennet: Microsoft опубликовал открытую платформу .NET 9.0 (ru) BE>Подробно у МС: Announcing .NET 9 (en)
BE>F# кто-то вообще пользуется? BE>А Basic, я так понимаю, всё?
Кстати как вообще у .NET дела? раньше писал на нем, потом ушел в мир джава, пришлось вернуться в VS и чет после идеи, мавена, грейдла совсем грустно стало, еще немного го застал.
Скажите критерии кто на старте сейчас выберет .NET ?
Если я захочу написать что-то крудошлепное с элементами фреймворка я скорее выберу Kotlin/Java, бОльшее количество библиотек, бОльшее количество контрибуторов.
Если надо что-то потупее и пошустрее, golang и может rust (его не трогал), если нужен перфоманс Си, С++ Rust.
Какая массовая ниша остается для .NET?
Здравствуйте, diez_p, Вы писали:
_>Если я захочу написать что-то крудошлепное с элементами фреймворка я скорее выберу Kotlin/Java, бОльшее количество библиотек, бОльшее количество контрибуторов. _>Если надо что-то потупее и пошустрее, golang и может rust (его не трогал), если нужен перфоманс Си, С++ Rust. _>Какая массовая ниша остается для .NET?
Бекенд для веба, немного десктоп и фронт через Blazor. Как язык будет получше чем Java.
Здравствуйте, IT, Вы писали:
IT>Я вообще не уверен, что эту фичу делали специально. Если правильно всё делать, то это будет самый обычный побочный эффект.
The implicit "from the end" index operator, ^, is now allowed in an object initializer expression.
...
The preceding example creates an array that counts down from 9 to 0. In versions before C# 13, the ^ operator can't be used in an object initializer. You need to index the elements from the front.
Здравствуйте, BlackEric, Вы писали:
BE>Здравствуйте, diez_p, Вы писали:
_>>Если я захочу написать что-то крудошлепное с элементами фреймворка я скорее выберу Kotlin/Java, бОльшее количество библиотек, бОльшее количество контрибуторов. _>>Если надо что-то потупее и пошустрее, golang и может rust (его не трогал), если нужен перфоманс Си, С++ Rust. _>>Какая массовая ниша остается для .NET?
BE>Бекенд для веба, немного десктоп и фронт через Blazor. Как язык будет получше чем Java.
Как язык шарпы конкретно получше, чем джава. Джава дубовая и оченьм многословная.
Здравствуйте, IT, Вы писали:
Ф>>По рукам за таки фичи. Если единственная причина сделать — потому что можем, то делать не надо. Если так делать, то мы прийдём к IOCCC но уже на C# — IOC#CC IT>Я вообще не уверен, что эту фичу делали специально.
Здравствуйте, BlackEric, Вы писали:
BE>Еще 12 числа вышел 9 .Net, а также С# 13 и F# 9. Так же продолжают развивать Blazor и MAUI.
BE>Много всего вкусного, в том числе для ИИ.
Мало чего на самом деле — Aspire и ИИ это мертворожденные темы, отомрут как хайп стихнет.
Нового больше ничего нет, хоть старое (Blazor, MAUI и asp.net, ef) развивают по чуть-чуть.
BE>F# кто-то вообще пользуется?
Маргиналы, особенно учитывая, что все нужные фичи уже C# втянул в себя (кроме возможно DU)
BE>А Basic, я так понимаю, всё?
Да, по факту CLR это теперь не Common Language Runtime, а C# Language Runtime
BE>>А Basic, я так понимаю, всё? G>Да, по факту CLR это теперь не Common Language Runtime, а C# Language Runtime
А как теперь обстоят дела с программированием в приложенях MS Office?
Помнится, лет 10 назад начинали приделывать вместо встроенного VBA разработку dll в студии на C#.
Пользуется ли оно популярностью?
Или кто сидел на VBA, так и продолжают?
Здравствуйте, Osaka, Вы писали:
BE>>>А Basic, я так понимаю, всё? G>>Да, по факту CLR это теперь не Common Language Runtime, а C# Language Runtime O>А как теперь обстоят дела с программированием в приложенях MS Office? O>Помнится, лет 10 назад начинали приделывать вместо встроенного VBA разработку dll в студии на C#. O>Пользуется ли оно популярностью? O>Или кто сидел на VBA, так и продолжают?
Там одно другого не исключает
1) VBA и макросы
2) нативные плагины (COM) (думаю возможно собрать на .net core, но с приседаниями)
3) VSTO (.net fw 4.5), по сути обертка над com
4) office js add-ins (работают даже в браузерных версиях)
Здравствуйте, IT, Вы писали:
IT>Тогда ты врядли и в любом другом языке разберёшься. Эта фича является неотъемлемой частью синтаксиса Indices and ranges и подобным образом используется в куче всяких других Питонах, Руби, D, Котлинах, F#, Перлах и т.д. По-твоему оно только в C# неуместно?
IT>ЗЫ. Млять, понаберут умников по объявлению...
Придумай пример, когда это реально нужно в инициализаторе объекта.
Здравствуйте, Codealot, Вы писали:
C>Я о фиче и сэмпле кода.
В сообщении, на которое я отвечал не было инициализаторов. Но было про красоту и понятность buffer[len — 1] и что с таким можно разобраться и без ChatGPT.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
IT>В сообщении, на которое я отвечал не было инициализаторов. Но было про красоту и понятность buffer[len — 1] и что с таким можно разобраться и без ChatGPT.
Здравствуйте, IT, Вы писали:
IT>Сделали скорее всего потому что могли. И это было не сложно. Ну типа пусть будет. При наличии уже всего готового в компиляторе такое делается за пару часов. Тесты писать дольше.
Не похоже. Видел как их разработчик распинался на тему невероятной стоимости любых изменений в компиляторе, и поэтому они не будут делать фичу, о которой многие пользователи их просили.
IT>Надо ли оно? IT>Если пригодится, то непременно сразу сообщу.
Здравствуйте, Osaka, Вы писали:
BE>>>А Basic, я так понимаю, всё? G>>Да, по факту CLR это теперь не Common Language Runtime, а C# Language Runtime O>А как теперь обстоят дела с программированием в приложенях MS Office? O>Помнится, лет 10 назад начинали приделывать вместо встроенного VBA разработку dll в студии на C#. O>Пользуется ли оно популярностью? O>Или кто сидел на VBA, так и продолжают?
Я делаю иногда плагины на шарпе. Они сейчас продвигают расширения на JS, но мне не нравится.
Здравствуйте, Codealot, Вы писали:
C>Не похоже. Видел как их разработчик распинался на тему невероятной стоимости любых изменений в компиляторе, и поэтому они не будут делать фичу, о которой многие пользователи их просили.
Отчасти это так. Но и звиздежа там тоже хватает.
C>То есть, эта фича бесполезна.
Я бы не назвал это фичей. Так, побочный эффект.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Философ, Вы писали:
Ф>По рукам за таки фичи. Если единственная причина сделать — потому что можем, то делать не надо. Если так делать, то мы прийдём к IOCCC но уже на C# — IOC#CC
Я вообще не уверен, что эту фичу делали специально. Если правильно всё делать, то это будет самый обычный побочный эффект. Тебя сильно смущает такой код?
var countdown = new TimerRemaining()
{
buffer =
{
[0] = 0,
[1] = 1,
}
};
Обычная инициализация элементов массива, которую как раз и добавили в C# 13. Т.е. добавили не конкретно [^1] = 1, а вообще в целом. Жаль диапозоны не добавили. Было бы прикольно:
var countdown = new TimerRemaining()
{
buffer =
{
[0..3] = 0,
[4..5] = 1,
[6..^1] = 2,
}
};
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
IT>Тебя сильно смущает такой код?
На самом деле да, тоже бесполезная хрень. На которую потратили время, вместо того чтобы сделать что-то более полезное.
IT>Жаль диапозоны не добавили. Было бы прикольно:
Здравствуйте, BlackEric, Вы писали:
BE>Еще 12 числа вышел 9 .Net, а также С# 13 и F# 9. Так же продолжают развивать Blazor и MAUI.
для MAUI сделали визуальный редактор? в последний раз, когда я хотел в нем покопаться, был только xml-код, где каждое слово было подчеркнуто как ошибка. Хотелось бы узнать, какой сейчас прогресс
Здравствуйте, karbofos42, Вы писали:
K>Здравствуйте, diez_p, Вы писали:
_>>чет после идеи, мавена, грейдла совсем грустно стало
K>А я вот после LINQ плачу от счастья, когда на Stream API пишу.
Linq делали правильные парни, а Stream Api какая-то пародия.