Re[4]: [C#] горшочек, не вари
От: Codealot Земля  
Дата: 29.10.24 13:47
Оценка:
Здравствуйте, rFLY, Вы писали:

FLY>Что угодно будет плохим если не знать меры.


Как-то получилось, что именно с этой фичей меры не знают. Вероятно, играет свою роль, что решарпер все время предлагает повыкидывать имена типов.
В любом случае — им не следовало разрешать это делать, когда возникают неоднозначности в прочтении.
Ад пуст, все бесы здесь.
Re[3]: [C#] горшочек, не вари
От: IT Россия linq2db.com
Дата: 29.10.24 19:00
Оценка:
Здравствуйте, Codealot, Вы писали:

IT>>А можно вот прям кусочек кода, который тебя сильно сильно раздражает. А то "тяп-ляа, никакой продуманности" выглядит как откровенное нытьё.

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

Вывод типов он такой. Но тогда тебе нужно заклеймить практически все функциональные и полуфункциональные языки. Даже в C++ уже добавили auto. Ведь тебе по идее тогда должен раздражать и такой код:

var wtfIsThat = GetSomething()


Мне до типов как-то редко бывает дело. Но если надо, то подведи курсор к new (в твоём случае) или var и быстро узнаешь что к чему. Надеюсь ты не распечатки на бумаге читаешь? Т.е. если надо, а надо бывает в одном из двадцати случаев, то вообще не вопрос.

Что-то ещё?
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: [C#] горшочек, не вари
От: Codealot Земля  
Дата: 29.10.24 19:41
Оценка:
Здравствуйте, IT, Вы писали:

IT>Ведь тебе по идее тогда должен раздражать и такой код:


Нет, не должен. Там нет такого нагромождения неизвестных.

IT>Но если надо, то подведи курсор к new (в твоём случае) или var и быстро узнаешь что к чему. Надеюсь ты не распечатки на бумаге читаешь? Т.е. если надо, а надо бывает в одном из двадцати случаев, то вообще не вопрос.


Если в коде трудно разобраться без поддержки IDE, то этот код — полное говно. Фичи языка, которые такой код поощряют — тоже полное говно.

IT>Что-то ещё?


Вот, например, partial methods. Фича крайне сомнительной полезности, и в языке ей просто не место.
Ад пуст, все бесы здесь.
Re[5]: [C#] горшочек, не вари
От: IT Россия linq2db.com
Дата: 29.10.24 21:00
Оценка: +2
Здравствуйте, Codealot, Вы писали:

IT>>Ведь тебе по идее тогда должен раздражать и такой код:

C>Нет, не должен. Там нет такого нагромождения неизвестных.

Ну давай я тебе сразу 5 var'ов напишу один за одним. Будет такое же нагромождение. Ещё раз, не нравится вывод типов — претензии к ФП.

C>Если в коде трудно разобраться без поддержки IDE, то этот код — полное говно. Фичи языка, которые такой код поощряют — тоже полное говно.


Какое наивное заблуждение. Современную производительность программиста обеспечивает не только выразительность языка, но даже в большей степени продвинутость IDE. Времена, когда можно было эффективно навигировать в нотепаде по всем 3-м файлам проекта и запомнить абсолютно все 200 функций и их сигнатуры стандартной библиотеки давно прошли. Лет 40 назад (хотя сигнатуры memcpy и cpymem я так и не запомнил, какая из них какая). Сейчас ни один современный язык не разрабатывается без учёта IDE. Прикинь! Даже C# был переписан через 10 лет его существования с нуля, чтобы облегчить его интеграцию в IDE, т.к. для этой самой интеграции требовалась команда большая, чем команда самого C#. И эта команда всё равно не успевала добавлять новые фичи языка в IDE.

F# вроде не самый плохой язык, но с убогой поддержкой IDE. Результат — на нём пишут только конченные фрики. Я знаю ещё один язык, который не стал популярным и уже приказал долго жить, главным образом благодаря тому, что поддержка IDE оказалась для его команды разработчиков непосильной задачей. Хотя сам язык я до сих пор считаю одним из лучших.

В общем, по такому твоему мнению об IDE складывается впечатление, что проекты сложнее 300-х строк ты никогда не видел. Бывает. Я тебя наверное огорчу, но сегодня IDE — это один из главных инструментов разработчика, не менее важный, чем сам язык. А дальше будет только хуже. Всякие Copilots уже подтягиваются и встраиваются они не в язык, прикинь!, а в IDE.

C>Вот, например, partial methods. Фича крайне сомнительной полезности, и в языке ей просто не место.


Эта фича предназначена и широко применяется совместно с генераторами кода.

Вот классический код для INotifyPropertyChanged, сгенерированный T4:

public partial class WeatherViewModel : INotifyPropertyChanged
{
    private string? _location;
    public  string?  Location
    {
        get { return _location; }
        set
        {
            if (_location != value)
            {
                BeforeLocationChanged(value);
                _location = value;
                AfterLocationChanged();

                OnLocationChanged();
            }
        }
    }

    partial void BeforeLocationChanged(string? newValue);
    partial void AfterLocationChanged ();
}


Вот использование

partial class WeatherViewModel
{
    partial void AfterLocationChanged()
    {
        _lastUpdate = DateTime.MinValue;
        Update();
    }
}


Из двух partial методов вызов генерируется только для одного, который реализуется разработчиком. В результате всё очень гибко и эффективно.

Как по мне, так волне себе качественное решение. А как бы ты сам решал подобную задачу? Какими-нибудь виртуальными методами?
Если нам не помогут, то мы тоже никого не пощадим.
Re: [C#] горшочек, не вари
От: vsb Казахстан  
Дата: 29.10.24 21:07
Оценка: +1 -1 :)
Здравствуйте, Codealot, Вы писали:

C>Новый синтаксис для инициализации коллекций, который примерно такой же как старый, но другой.

C>Новый синтаксис для объявления переменных... аналогично.
C>Фичи, которые в теории были полезны, но их реализовали так, что лучше бы вообще не делали. Тела методов в интерфейсах, например.
C>Тяп-ляп, заплатка на заплатку, никакой продуманности, никакой целостности дизайна.

C>Меня одного это уже начинает раздражать?


Так C# же с рождения такой — эдакая недо-Java, в которую тащут всё блестящее. На третий день Орлиный Глаз заметил, что у сарая нет одной стены.
Re[6]: [C#] горшочек, не вари
От: Codealot Земля  
Дата: 29.10.24 21:12
Оценка:
Здравствуйте, IT, Вы писали:

IT>Ну давай я тебе сразу 5 var'ов напишу один за одним. Будет такое же нагромождение. Ещё раз, не нравится вывод типов — претензии к ФП.


Нет, такой же многократно вложенной хрени не будет.

IT>В общем, по такому твоему мнению об IDE складывается впечатление


Кхм, это всё ты просто из пальца высосал.
IDE помогает, но код, который без нее даже разобрать нельзя — говно.

IT>Как по мне, так волне себе качественное решение. А как бы ты сам решал подобную задачу? Какими-нибудь виртуальными методами?


Один из вариантов. Только не говори, что это будет жжжутко медленно.
Ад пуст, все бесы здесь.
Re[2]: [C#] горшочек, не вари
От: Codealot Земля  
Дата: 29.10.24 21:14
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Так C# же с рождения такой — эдакая недо-Java, в которую тащут всё блестящее.


Раньше до такого все же не доходило. Сейчас смотрю на список новых фич и периодически чешу репу — а что, это кому-то нужно, кроме горстки людей на весь мир? И эта горстка, по чистому совпадению, в основном работает в C# team?
Ад пуст, все бесы здесь.
Re[3]: [C#] горшочек, не вари
От: vsb Казахстан  
Дата: 29.10.24 21:23
Оценка: +1 -4 :)))
Здравствуйте, Codealot, Вы писали:

vsb>>Так C# же с рождения такой — эдакая недо-Java, в которую тащут всё блестящее.


C>Раньше до такого все же не доходило. Сейчас смотрю на список новых фич и периодически чешу репу — а что, это кому-то нужно, кроме горстки людей на весь мир? И эта горстка, по чистому совпадению, в основном работает в C# team?


Ну видимо у каждого своя граница. Я как ни посмотрю на очередной список фич в C#, так у меня это впечатленеи и складывается. Вот взять C# 3.

LINQ — недо-SQL, недо-ORM в языке. Не нужно.

Customer c = new Customer { Name = "John" };

вместо двух строчек. Не нужно.

MyList list = new MyList { 1, 2 };

вместо обычного метода List.of(1, 2). Не нужно.

Ну про var уже говорили, по-мне не нужная фича, но весь мир сошёл с ума, чёрт с ним.

var x = new { FirstName = "John", LastName = "Doe" };

Анонимный тип. Не нужно.

Лямбды. Ок, нужно.

Дальше мотать устал. В общем примерно так — на 1 нужную фичу 10 ненужных. И это 3 версия, 17 лет назад выпущенная. Что там с тех времён насували, страшно представить.

Вот в Java хорошо. Никаких новых фич. switch 10 лет расширяют тривиальными улучшениями (по-мне тоже не нужно, но видимо у дизайнера джавы детская травма, связанная с ADT, поэтому он их потихоньку и тянет в язык). А так все улучшения тупо на уровне JVM, то GC новый придумают, то вот потоки зелёные делают, в стандартную библиотеку какие-то методы новые потихоньку добавляют, по сути последнее фундаментальное обновление языка было в 5 версии 20 лет назад.
Re: [C#] горшочек, не вари
От: diez_p  
Дата: 29.10.24 21:53
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Новый синтаксис для инициализации коллекций, который примерно такой же как старый, но другой.

C>Новый синтаксис для объявления переменных... аналогично.
C>Фичи, которые в теории были полезны, но их реализовали так, что лучше бы вообще не делали. Тела методов в интерфейсах, например.
C>Тяп-ляп, заплатка на заплатку, никакой продуманности, никакой целостности дизайна.

C>Меня одного это уже начинает раздражать?



А C# живой вообще? помнится мне когда он заходил после дельфи в 2007, когда был .NET 1.1 и потом 2.0 было конечно круто, у всех стояла винда и шарпы были на взлете.
Потом UI постепенно начал уходить в веб и мобилку, сервера на *nix. Шарпы и .NET стал совсем не нужен, хотя в плане языка мне очень нравится.
Далее конечно выпустили .NET Core и официально стали саппортить *nix, но на линухе альтернативы просто вагон и маленькая тележка.

Тот кому надо быстро наговнятькать — возьмет питон или php, то что будет тормозить на питоне перепишет на го. Тот кому нужен ынтерпрайз возьмет java/kotlin где либов просто ворох всяких разных и коммьюнити очень большое.
Тот кому надо написать что-то спейифическое возьмет С++/С/Rust/Go где тут место шарпам? Разве что только альтернатива джава/котлин?
Re[7]: [C#] горшочек, не вари
От: IT Россия linq2db.com
Дата: 29.10.24 22:05
Оценка:
Здравствуйте, Codealot, Вы писали:

IT>>Ну давай я тебе сразу 5 var'ов напишу один за одним. Будет такое же нагромождение. Ещё раз, не нравится вывод типов — претензии к ФП.

C>Нет, такой же многократно вложенной хрени не будет.

Будет многократно не вложенная хрень.

IT>>В общем, по такому твоему мнению об IDE складывается впечатление

C>Кхм, это всё ты просто из пальца высосал.

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

C>IDE помогает, но код, который без нее даже разобрать нельзя — говно.


Да я уже понял. 300 строк — максимальный размер твоего проекта.

IT>>Как по мне, так волне себе качественное решение. А как бы ты сам решал подобную задачу? Какими-нибудь виртуальными методами?

C>Один из вариантов. Только не говори, что это будет жжжутко медленно.

Это решение, при наличии качественного, как раз и можно назвать говном. Всё как ты любишь.

Больше у тебя, как я понимаю, никаких претензий к C#. Или ещё чего-нибудь высосешь?
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: [C#] горшочек, не вари
От: Codealot Земля  
Дата: 29.10.24 22:45
Оценка:
Здравствуйте, IT, Вы писали:

IT>Будет многократно не вложенная хрень.


Не разводи демагогию. В случае с var, тип однозначно определяется результатом метода. В случае с этой фичей, что там происходит на фоне десятка перегруженных методов с разными аргументами — сам черт ногу сломит.

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

IT>Да я уже понял. 300 строк — максимальный размер твоего проекта.

Тебя на работе обидели, что ли?
Ад пуст, все бесы здесь.
Re[4]: [C#] горшочек, не вари
От: · Великобритания  
Дата: 31.10.24 11:37
Оценка:
Здравствуйте, rFLY, Вы писали:

FLY>AddItem(new("foo", 123, false));

Это осложняет жизнь разработчикам библиотек и пользователям. Допустим, есть CoolLib v1.0 с таким методом void AddItem(SimpleItem item). Уже становится невозможно просто добавить void AddItem(SpecialItem item) в CoolLib v1.1 не сломав совместимость.
Т.е. overloading стал неюзабельным.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Отредактировано 31.10.2024 11:38 · . Предыдущая версия .
Re[5]: [C#] горшочек, не вари
От: rFLY  
Дата: 31.10.24 11:47
Оценка:
Здравствуйте, ·, Вы писали:

·>Это осложняет жизнь разработчикам библиотек и пользователям. Допустим, есть CoolLib v1.0 с таким методом void AddItem(SimpleItem item). Уже становится невозможно просто добавить void AddItem(SpecialItem item) в CoolLib v1.1 не сломав совместимость.

·>Т.е. overloading стал неюзабельным.
А как компилятор это пропускает или в AddItem принимает object без конкретного типа?
Re[6]: [C#] горшочек, не вари
От: · Великобритания  
Дата: 31.10.24 11:55
Оценка: 1 (1)
Здравствуйте, rFLY, Вы писали:

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


FLY>·>Это осложняет жизнь разработчикам библиотек и пользователям. Допустим, есть CoolLib v1.0 с таким методом void AddItem(SimpleItem item). Уже становится невозможно просто добавить void AddItem(SpecialItem item) в CoolLib v1.1 не сломав совместимость.

FLY>·>Т.е. overloading стал неюзабельным.
FLY>А как компилятор это пропускает или в AddItem принимает object без конкретного типа?
Я не понял вопрос. Повторюсь:
CoolLib v1.0:
void AddItem(SimpleItem item) {doStuff();}

В юзерском коде в 100500 местах:
AddItem(new("foo", 123, false));


CoolLib v1.1:
void AddItem(SimpleItem item) {doStuff();}

void AddItem(SpecialItem item) {doSpecialStuff();}


весь юзерский код при апдейте v1.0 -> v1.1 перестаёт компиляться с ambiguity.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[7]: [C#] горшочек, не вари
От: rFLY  
Дата: 31.10.24 12:42
Оценка:
Здравствуйте, ·, Вы писали:

·>весь юзерский код при апдейте v1.0 -> v1.1 перестаёт компиляться с ambiguity.

В библиотеку было добавлено новое объявление метода по этому и ошибки с неоднозначностью? Тут, не уверен — не обгоняй, чего еще можно сказать.
Re[2]: [C#] горшочек, не вари
От: Osaka  
Дата: 31.10.24 13:19
Оценка:
_>А C# живой вообще? помнится мне когда он заходил после дельфи в 2007, когда был .NET 1.1 и потом 2.0 было конечно круто, у всех стояла винда и шарпы были на взлете.
WPF ты стало быть пропустил.
_>Потом UI постепенно начал уходить в веб и мобилку, сервера на *nix. Шарпы и .NET стал совсем не нужен, хотя в плане языка мне очень нравится.
Никто никуда не "начал уходить", это физически невозможно в большинстве задач для стационарных машин (ну нет у смердфона большого экрана и клавиатуры с мышью, и ничего созидательного кроме игрушек и обмана на деньги туда не влазит).
_>Тот кому надо быстро наговнятькать — возьмет питон или php, то что будет тормозить на питоне перепишет на го. Тот кому нужен ынтерпрайз возьмет java/kotlin где либов просто ворох всяких разных и коммьюнити очень большое.
_>Тот кому надо написать что-то спейифическое возьмет С++/С/Rust/Go где тут место шарпам? Разве что только альтернатива джава/котлин?
Т. е. кому надо "наговнятькать", тот отвлечётся на несколько лет выучить всё это?
А кому надо сделать рентабельно и качественно, и потом поддерживать, и он уже знает C#, зачем ему что-то другое?
Re[8]: [C#] горшочек, не вари
От: · Великобритания  
Дата: 31.10.24 19:09
Оценка:
Здравствуйте, rFLY, Вы писали:

FLY>·>весь юзерский код при апдейте v1.0 -> v1.1 перестаёт компиляться с ambiguity.

FLY>В библиотеку было добавлено новое объявление метода по этому и ошибки с неоднозначностью?
Да.

FLY>Тут, не уверен — не обгоняй, чего еще можно сказать.

Так я хочу сказать, о том как добавление абсолютно бесполезного сахара ведёт к поломке действительно удобной фичи оверлоада методов. Сабж, однако.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[8]: [C#] горшочек, не вари
От: e.thrash  
Дата: 01.11.24 13:58
Оценка:
Здравствуйте, IT, Вы писали:



C>>IDE помогает, но код, который без нее даже разобрать нельзя — говно.


IT>Да я уже понял. 300 строк — максимальный размер твоего проекта.



вещи которые автор написал усложняют чтение кода.
Зависеть от IDE так себе идея, часто они глючат, не говоря уже про подсказки в них.
Re[9]: [C#] горшочек, не вари
От: m2user  
Дата: 01.11.24 14:28
Оценка: :)
·>Так я хочу сказать, о том как добавление абсолютно бесполезного сахара ведёт к поломке действительно удобной фичи оверлоада методов. Сабж, однако.

Могу предположить, что MS предусмотрел какой-нибудь атрибут, которым авторы библиотеки могут пометить одну из перегрузок для устранения ambiguity.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: [C#] горшочек, не вари
От: e.thrash  
Дата: 01.11.24 14:48
Оценка:
Здравствуйте, Codealot, Вы писали:

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


vsb>>Так C# же с рождения такой — эдакая недо-Java, в которую тащут всё блестящее.


C>Раньше до такого все же не доходило. Сейчас смотрю на список новых фич и периодически чешу репу — а что, это кому-то нужно, кроме горстки людей на весь мир? И эта горстка, по чистому совпадению, в основном работает в C# team?


ну так есть команда, ей же надо что-то делать,чтобы народ видел фичи новые идут.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.