Re[5]: Сложность C# приближается к С++
От: rudzuk  
Дата: 29.01.22 20:01
Оценка: +1 -2
Здравствуйте, Jack128, Вы писали:

J> да дело не в скобках, а однобуквенных именах. Замени A,B,C,D на что нить типа Customer/Order/Price и всё нормально будет читаться.


Не будет. Будет нагромождение идентификаторов. Выкинуть элементы обеспечивающие семантическую связанность могут только оторванные от жизни утырки, которые кроме своих пятистрочников ничего больше не читали.
avalon/3.0.0
Re[4]: Сложность C# приближается к С++
От: Pzz Россия https://github.com/alexpevzner
Дата: 29.01.22 20:55
Оценка: +3
Здравствуйте, vsb, Вы писали:

vsb>Я считаю, что C де факто умер и заменён С++. Кто его там развивает, зачем, это вообще непонятно. По сути сейчас это какое-то достаточным произвольным образом взятое подмножество С++ (с кучкой несовместимостей, я в курсе, сути это не меняет).


А я вот, например, не вижу ниши, в которой выбор однозначно был бы в пользу C++, а ни какого-нибудь другого языка. А вот нишу для C вижу: всякое там внутриядерное программирование. В ядре редко встречаются хитрые алгоритмы и структуры данных, и в то же время, в ядре хочется очень точно понимать, что именно происходит.

Очень маловероятно, чтобы в новом проекте, не отягощенном наследственностью, в бы выбрал в качестве основного языка C++.

Так что на мой взгляд, это скорее C++ умер, а не C. Разлагатся он будет, конечно, еще очень долго.
Re: Сложность C# приближается к С++
От: vaa  
Дата: 31.01.22 01:39
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Заметили ли вы, что C# уже не тот. Конечно, еще не догнал старшего собрата, но уже дофига концепций, которые вам могут показаться очевидными, но вот начинающим с нуля — доставят.

Сам язык простой. Еще проще процесс компиляции. Это его плюсы.
Большинство нововведений косметические. легко выводятся из базовых случаев.
Взять хотя бы новую фишку field в свойствах.
нет ничего сложного. новичок ее скорее всего не будет использовать.

S>Просто смотрю С++ и уже не кажется таким уж сложным, т.к. в C# навязано множество концепций, которые тоже не просты.

В плюсах плюсов только два
S>Лет через 15 будет тот же вавилон, имхо.

S>Как то все по одному сценарию идет.

Было бы неплохо, т.к. современные плюсы кажись попроще чем те что были в начале нулевых.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Сложность C# приближается к С++
От: Философ Ад http://vk.com/id10256428
Дата: 31.01.22 06:47
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Ну в принципе то читабельно. Это с непривычки.

S>Но таких конструкций можно и на любом языке
S> Конечно скобочки проставить лучше

прочитать можно всё что угодно. Я одно время бинари в hex-редакторе раглядывал. Только это не быстро.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[2]: Сложность C# приближается к С++
От: Философ Ад http://vk.com/id10256428
Дата: 31.01.22 06:52
Оценка:
Здравствуйте, Shtole, Вы писали:

S>Например, типичный программист не пишет алгоритмы и контейнеры, а пользуется ими. Можно всю жизнь программировать на Шарпе и не знать про ключевое слово `yield`. И не просто программировать, а продуктивно.


Даже не представляю как это возможно.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[5]: Сложность C# приближается к С++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 31.01.22 07:19
Оценка:
Здравствуйте, Философ, Вы писали:

Ф>прочитать можно всё что угодно. Я одно время бинари в hex-редакторе раглядывал. Только это не быстро.


Ну это разные вещи. Давай разберем
public int F() =>
(A is B b) && (b.C is C) ? C.D ?? 1:FalseToNet ;

(A is B b) понятно есла A это тип B то b=a as B
(b.C is C) понятно

? тернарный оператор https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/conditional-operator
?? оператором null-объединения https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/null-coalescing-operator

Все очень понятно, вместо нагорождения кучи If else is as.
Просто желательно правильно форматировать, что бы взгляд быстро и правильно цеплялся
и солнце б утром не вставало, когда бы не было меня
Re[6]: Сложность C# приближается к С++
От: Философ Ад http://vk.com/id10256428
Дата: 31.01.22 07:26
Оценка:
Здравствуйте, Serginio1, Вы писали:


Ф>>прочитать можно всё что угодно. Я одно время бинари в hex-редакторе раглядывал. Только это не быстро.

S> Ну это разные вещи. Давай разберем

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

Чтобы там улучшить читабельность, там надо как минимум не писать в одну строку:

public int F() =>
   (A is B b) && (b.C is C)?
     C.D ??     1
   :FalseToNet ;


Чтение и правка такого кода порождает ошибки. Поубивал бы!
Всё сказанное выше — личное мнение, если не указано обратное.
Re[7]: Сложность C# приближается к С++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 31.01.22 07:42
Оценка:
Здравствуйте, Философ, Вы писали:

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



Ф>>>прочитать можно всё что угодно. Я одно время бинари в hex-редакторе раглядывал. Только это не быстро.

S>> Ну это разные вещи. Давай разберем

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


Ф>Чтобы там улучшить читабельность, там надо как минимум не писать в одну строку:


Ф>
Ф>public int F() =>
Ф>   (A is B b) && (b.C is C)?
Ф>     C.D ??     1
Ф>   :FalseToNet ;
Ф>


Ф>Чтение и правка такого кода порождает ошибки. Поубивал бы!

Ну я говорю, что код нужно правильно форматировать. Проблема в итоге не в операторах! Не в усложнении языка.
А вот по форматированию лучше уже вырабатывать стандарты. Мне так больше нравится
public int F() =>
   (A is B b) && (b.C is C)
  ? C.D ?? 1
  :FalseToNet ;
и солнце б утром не вставало, когда бы не было меня
Отредактировано 31.01.2022 10:07 Serginio1 . Предыдущая версия .
Re[3]: Сложность C# приближается к С++
От: Shtole  
Дата: 31.01.22 08:29
Оценка:
Здравствуйте, Философ, Вы писали:

S>>Например, типичный программист не пишет алгоритмы и контейнеры, а пользуется ими. Можно всю жизнь программировать на Шарпе и не знать про ключевое слово `yield`. И не просто программировать, а продуктивно.


Ф>Даже не представляю как это возможно.


Это полбеды. Беда, когда не представляют люди из комитета по стандартизации.
Do you want to develop an app?
Re[7]: Сложность C# приближается к С++
От: CreatorCray  
Дата: 31.01.22 08:50
Оценка: +4 -2
Здравствуйте, Философ, Вы писали:

Ф>Чтобы там улучшить читабельность, там надо как минимум не писать в одну строку:


Ф>
Ф>public int F() =>
Ф>   (A is B b) && (b.C is C)?
Ф>     C.D ??     1
Ф>   :FalseToNet ;
Ф>

Один хрен выглядит как perl.
Не надо так писать вообще.
Если можно написать более просто читаемый код — надо писать более просто читаемо, машине же всё равно.

Ф>Чтение и правка такого кода порождает ошибки. Поубивал бы!

Верно.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[5]: offtopic
От: Лось Чтостряслось СССР  
Дата: 31.01.22 09:42
Оценка:
Здравствуйте, Jack128, Вы писали:

S>>
S>> public int F() =>
S>>   (A is B b) && (b.C is C) ? C.D ?? 1:FalseToNet ;
S>>


простите, а выделенное что значит?
социализм или варварство
Re[6]: offtopic
От: Sinclair Россия https://github.com/evilguest/
Дата: 31.01.22 09:56
Оценка: 2 (1)
Здравствуйте, Лось Чтостряслось, Вы писали:
ЛЧ>Здравствуйте, Jack128, Вы писали:

S>>>
S>>> public int F() =>
S>>>   (A is B b) && (b.C is C) ? C.D ?? 1:FalseToNet ;
S>>>


ЛЧ>простите, а выделенное что значит?

Если условие A is B вычислится в true, то в b запишут A, приведённое к типу b.
Позволяет сократить код типа
var b = A as B;
if (b!=null)
{
  ...
}

или
if (A is B)
{
  var b = (B)A;
  ...
}
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Сложность C# приближается к С++
От: mrTwister Россия  
Дата: 31.01.22 09:58
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>В Java тоже сложности накручивают потихоньку. Видимо это жизненный цикл любого языка. Я бы с удовольствием писал на Java 1.4-подобном языке. Считаю, что больше этого ничего не нужно.


Бери GO
лэт ми спик фром май харт
Re[6]: offtopic
От: alexander_r  
Дата: 31.01.22 10:00
Оценка: 1 (1)
Здравствуйте, Лось Чтостряслось, Вы писали:

ЛЧ>простите, а выделенное что значит?

if(A is B)
{
  var b = (B)A; 
  if (b.C is C)
  { //...}
{
Re[7]: offtopic
От: CreatorCray  
Дата: 31.01.22 10:15
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Позволяет сократить код типа

А зачем?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[8]: offtopic
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 31.01.22 10:22
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

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


S>>Позволяет сократить код типа

CC>А зачем?
Достает писать кучу if и as с is. Очень удобно и читаемост только увеличивается. А то, что с непривычки не удобно, так менять мышление надо.
Очень удобно в том же pattern matching https://docs.microsoft.com/en-us/archive/msdn-magazine/2019/may/csharp-8-0-pattern-matching-in-csharp-8-0

Нужно для удобства написания и чтения!
и солнце б утром не вставало, когда бы не было меня
Re[2]: Сложность C# приближается к С++
От: yenik  
Дата: 31.01.22 10:31
Оценка:
S>Можно всю жизнь программировать на Шарпе и не знать про ключевое слово `yield`. И не просто программировать, а продуктивно.

Только если програмировать в одиночку. А иначе молодые и горячие коллеги непременно ознакомят со всеми новейшими свистками и звночками.
Re[9]: offtopic
От: CreatorCray  
Дата: 31.01.22 10:45
Оценка: +1 -1
Здравствуйте, Serginio1, Вы писали:

S>читаемост только увеличивается.

Дык нет жеж

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

И опять напомню про Perl
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[3]: Сложность C# приближается к С++
От: Shtole  
Дата: 31.01.22 10:57
Оценка: +1
Здравствуйте, yenik, Вы писали:

S>>Можно всю жизнь программировать на Шарпе и не знать про ключевое слово `yield`. И не просто программировать, а продуктивно.

Y>Только если програмировать в одиночку. А иначе молодые и горячие коллеги непременно ознакомят со всеми новейшими свистками и звночками.

Не соглашусь.

Это не свисток и не звонок, это языковой функционал, нужный для… как бы его назвать… менее прикладного кода (более системного или более хелперного). Перефразируя старый фильм, в командах может быть два типа людей, мой друг: одни заряжают yield, другие пользуются foreach.
Do you want to develop an app?
Re[10]: offtopic
От: Sinclair Россия https://github.com/evilguest/
Дата: 31.01.22 11:12
Оценка: +2
Здравствуйте, CreatorCray, Вы писали:
S>>читаемост только увеличивается.
CC>Дык нет жеж
Увеличивается. Это — вполне органичная конструкция, значительно лучше, чем всякие "?.".
Так и читается: if (animal is Elephant e) e.Trumpet() => "если животное — это слон е, то пусть е протрубит"
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.