Вышел .Net 9
От: BlackEric http://black-eric.lj.ru
Дата: 18.11.24 20:11
Оценка: 142 (5) +2
Еще 12 числа вышел 9 .Net, а также С# 13 и F# 9. Так же продолжают развивать Blazor и MAUI.

Много всего вкусного, в том числе для ИИ.
Кратенько на Opennet: Microsoft опубликовал открытую платформу .NET 9.0 (ru)
Подробно у МС: Announcing .NET 9 (en)

F# кто-то вообще пользуется?
А Basic, я так понимаю, всё?
https://github.com/BlackEric001
Re: Вышел .Net 9
От: Codealot Земля  
Дата: 19.11.24 16:29
Оценка: -4 :)
Здравствуйте, BlackEric, Вы писали:

Кхм.
var countdown = new TimerRemaining()
{
    buffer =
    {
        [^1] = 0,
        [^2] = 1,
        [^3] = 2,
        [^4] = 3,
        [^5] = 4,
        [^6] = 5,
        [^7] = 6,
        [^8] = 7,
        [^9] = 8,
        [^10] = 9
    }
};

Гениальная фича. Как я раньше мог жить без этого.
Ну и код тоже доставляет. Бить мордой об клавиатуру за такой код.
Ад пуст, все бесы здесь.
Re[2]: Вышел .Net 9
От: vsb Казахстан  
Дата: 20.11.24 00:41
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Кхм.

C>
C>var countdown = new TimerRemaining()
C>{
C>    buffer =
C>    {
C>        [^1] = 0,
C>        [^2] = 1,
C>        [^3] = 2,
C>        [^4] = 3,
C>        [^5] = 4,
C>        [^6] = 5,
C>        [^7] = 6,
C>        [^8] = 7,
C>        [^9] = 8,
C>        [^10] = 9
C>    }
C>};
C>

C>Гениальная фича. Как я раньше мог жить без этого.
C>Ну и код тоже доставляет. Бить мордой об клавиатуру за такой код.

Ну вот о чём я и говорил. Куда лучше написать код типа

int[] buffer = new int[10];
buffer[buffer.length - 1] = 0;
...
buffer[buffer.length - 9] = 9;
TimerRemaining countdown = new TimerRemaining.Builder()
    .buffer(buffer)
    .build();


Всё красиво и понятно. А в C# без ChatGPT не разберёшься.
Re[3]: Вышел .Net 9
От: Codealot Земля  
Дата: 20.11.24 01:35
Оценка: +2 :))
Здравствуйте, vsb, Вы писали:

vsb>Ну вот о чём я и говорил. Куда лучше написать код типа


Кхм, использовать циклы не учили?
Ад пуст, все бесы здесь.
Re[3]: Вышел .Net 9
От: karbofos42 Россия  
Дата: 20.11.24 04:17
Оценка: :)
Здравствуйте, vsb, Вы писали:

vsb>Всё красиво и понятно.


Некрасиво из-за большей писанины, да и Builder кто-то должен реализовать, что ещё добавляет веселья.
Ну, и код не эквивалентен. Там предполагается, что в конструкторе TimerRemaining коллекция buffer заполняется минимум 10 элементами.
Последние из них переписываются в инициализаторе на свои значения. Если в конструкторе 15 элементов заполняется, то первые 5 должны остаться не тронутыми.
В варианте с Builder же подаётся свой новый массив из 10 элементов и только они в итоге передадутся в объект или нужно реализовывать неочевидную логику в билдер, что ещё хуже сделает.

vsb>А в C# без ChatGPT не разберёшься.


Ну, C# пока ещё слабо замусорили непонятным сахаром, но успешно к этому идут.
Re[2]: Вышел .Net 9
От: karbofos42 Россия  
Дата: 20.11.24 04:27
Оценка: :)
Здравствуйте, Codealot, Вы писали:

C>Гениальная фича. Как я раньше мог жить без этого.

C>Ну и код тоже доставляет. Бить мордой об клавиатуру за такой код.

Я бы понял, если бы эта фича автоматом добавилась, когда они "крышечки" добавили в индексаторы.
А вот зачем их отдельно приделали к инициализаторам — вопрос.
Вот так завязываться на логику конструкторов и переписывать снаружи отдельные элементы по индексу хоть с начала, хоть с конца — это как-то неправильно.
Не могу даже придумать где бы такое было нужно хотя бы как быстрое костыльное решение.
Re[3]: Вышел .Net 9
От: Codealot Земля  
Дата: 20.11.24 05:24
Оценка:
Здравствуйте, karbofos42, Вы писали:

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


Вот и я тоже удивляюсь.
Ад пуст, все бесы здесь.
Re[3]: Вышел .Net 9
От: IT Россия linq2db.com
Дата: 20.11.24 05:36
Оценка: +5 -1
Здравствуйте, vsb, Вы писали:

vsb>Всё красиво и понятно. А в C# без ChatGPT не разберёшься.


Тогда ты врядли и в любом другом языке разберёшься. Эта фича является неотъемлемой частью синтаксиса Indices and ranges и подобным образом используется в куче всяких других Питонах, Руби, D, Котлинах, F#, Перлах и т.д. По-твоему оно только в C# неуместно?

ЗЫ. Млять, понаберут умников по объявлению...
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Вышел .Net 9
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 20.11.24 08:44
Оценка: +1
Здравствуйте, IT, Вы писали:

IT>Тогда ты врядли и в любом другом языке разберёшься. Эта фича является неотъемлемой частью синтаксиса Indices and ranges и подобным образом используется в куче всяких других Питонах, Руби, D, Котлинах, F#, Перлах и т.д. По-твоему оно только в C# неуместно?


Один и тот же функционал фожно сделать по-разному. В Питоне индексация с конца — это отрицательные индексы, которые принимаются вполне интуитивно и выглядят логично. Почему знак '^'? Вот почему, как это можно объяснить, какой твой предыдущий опыт наталкивает на трактование этого символа, как индексацию с конца? Интуитивно такой знак может означать возведение в степень, может конъюнкцию. Разве язык программирования не надо делать логичным для людей?
Так что, да. По моему в Питоне сделано хорошо и уместно, а в C# нет.
Re[5]: Вышел .Net 9
От: karbofos42 Россия  
Дата: 20.11.24 09:09
Оценка: :)
Здравствуйте, Nuzhny, Вы писали:

N>В Питоне индексация с конца — это отрицательные индексы, которые принимаются вполне интуитивно и выглядят логично.


Успешной отладки кода на C#, если через IndexOf получил индекс -1 и не глядя его потом в индексатор засунул.
Re: Вышел .Net 9
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 20.11.24 09:55
Оценка:
Здравствуйте, 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
Re[2]: Вышел .Net 9
От: Osaka  
Дата: 20.11.24 10:21
Оценка:
BE>>А Basic, я так понимаю, всё?
G>Да, по факту CLR это теперь не Common Language Runtime, а C# Language Runtime
А как теперь обстоят дела с программированием в приложенях MS Office?
Помнится, лет 10 назад начинали приделывать вместо встроенного VBA разработку dll в студии на C#.
Пользуется ли оно популярностью?
Или кто сидел на VBA, так и продолжают?
Re[6]: Вышел .Net 9
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 20.11.24 10:40
Оценка:
Здравствуйте, karbofos42, Вы писали:

K>Успешной отладки кода на C#, если через IndexOf получил индекс -1 и не глядя его потом в индексатор засунул.


Никто не предлагает так делать. Но так как сделали — это не логично и не интуитивно. Ссылаться при этом на Питон бессмысленно, потому что там лучше.
Re[3]: Вышел .Net 9
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 20.11.24 12:01
Оценка:
Здравствуйте, 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 (работают даже в браузерных версиях)
Re[4]: Вышел .Net 9
От: Codealot Земля  
Дата: 20.11.24 15:35
Оценка:
Здравствуйте, IT, Вы писали:

IT>Тогда ты врядли и в любом другом языке разберёшься. Эта фича является неотъемлемой частью синтаксиса Indices and ranges и подобным образом используется в куче всяких других Питонах, Руби, D, Котлинах, F#, Перлах и т.д. По-твоему оно только в C# неуместно?


IT>ЗЫ. Млять, понаберут умников по объявлению...


Придумай пример, когда это реально нужно в инициализаторе объекта.
Ад пуст, все бесы здесь.
Re: Вышел .Net 9
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.11.24 15:48
Оценка: +2
Здравствуйте, BlackEric, Вы писали:

BE>Еще 12 числа вышел 9 .Net, а также С# 13 и F# 9. Так же продолжают развивать Blazor и MAUI.


Еще пара мелких шагов к Nemerle 0.9 образца 2003 года.

Method group natural type improvements — таки разработчики C# и дотнета доперли, что у функций есть свои типы и это не делегаты.

Ключевое слово field — в Nemerle было сделано менее коряво. Там просто можно было объявить поле внутри свойства:
public Foo
{
  mutable _foo = 123;
  get _foo;
  set _foo = value;
}

В C# же просто решили ввести ключевое слово field, которое волшебным образом создает одноименное скрытое поле, если field упомянуть внутри эксесеров свойства.

params-коллекции.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Вышел .Net 9
От: IT Россия linq2db.com
Дата: 20.11.24 16:18
Оценка: +3
Здравствуйте, Nuzhny, Вы писали:

N>Так что, да. По моему в Питоне сделано хорошо и уместно, а в C# нет.


А по мне в Питоне не логично. -1 выглядит как обращение к минус первому индексу в массиве, а не к минус первому с конца. А в C# как раз нормально. ^1 — первый элемент с конца.
Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: Вышел .Net 9
От: IT Россия linq2db.com
Дата: 20.11.24 16:21
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Придумай пример, когда это реально нужно в инициализаторе объекта.


Ты о чём?
Если нам не помогут, то мы тоже никого не пощадим.
Re[6]: Вышел .Net 9
От: Codealot Земля  
Дата: 20.11.24 16:30
Оценка:
Здравствуйте, IT, Вы писали:

IT>Ты о чём?


Я о фиче и сэмпле кода.
Ад пуст, все бесы здесь.
Re[7]: Вышел .Net 9
От: IT Россия linq2db.com
Дата: 20.11.24 16:46
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Я о фиче и сэмпле кода.


В сообщении, на которое я отвечал не было инициализаторов. Но было про красоту и понятность buffer[len — 1] и что с таким можно разобраться и без ChatGPT.
Если нам не помогут, то мы тоже никого не пощадим.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.