Re[8]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Sinclair Россия https://github.com/evilguest/
Дата: 19.07.21 03:01
Оценка: 1 (1) +5 :)
Здравствуйте, kaa.python, Вы писали:

KP>Это не проблема, изучается крайне просто. Язык не более чем инструмент, важны базовые знания.

Сложный вопрос. Вот лично мне переходы даже между языками более-менее одной группы, типа C#/Java даются тяжело — потому что идиоматика существенно другая. И это — императивные ОО-языки со сборкой мусора.
Понятно, что code review часть проблем может решить, но для меня это означает, что первые пару недель весь мой код на "новом" языке придётся выкидывать и переписывать полностью.
Там, где в одном я буду просто прицеплять метод к событию, в другом мне придётся плодить анонимный интерфейс. И такого — очень много, как только мы выходим на шажок за пределы hello world.

То есть код-то, наверное, работать будет. Но это будет не идиоматический код.

Всё будет ещё хуже при переезде на какой-нибудь функциональный язык, где конструкции типа "добавить к массиву ещё один элемент" выполняются за O(log(N)), а не за O(N), как ожидает любой императивщик.

И даже после освоения базовых кирпичиков языка, остаётся ещё неизвестного размера стандартная библиотека. Которую нужно знать более-менее наизусть, чтобы не тратить по полчаса на stackoverflow лучшего способа прибавить время к дате (или скачать документ по http), а сразу писать код. То есть с переезом в новую экосистему эффективность работы снижается в разы.

Это — мой личный опыт. Помню, как я переходил с java на С# — причём это был C#2, без большинства тех штук, которые его от жавы отличают. Ну ведь невозможно вспомнить тот код без слёз.
Ушло примерно год-полтора на то, чтобы начать думать на C#.

В обратную сторону сейчас переходить — займёт примерно столько же.

Поэтому мне не близок ваш оптимизм по поводу перехода между Go с его каналами и С# с его TPL. Ну, то есть если человек плохо умеет на Go — то есть медленно пишет неэффективный, избыточный код и велосипедит стандартные вещи, то переход на C# его не сильно испортит — он просто продолжит писать неэффективный, избыточный код и велосипедить стандартные вещи. Если же это был нормальный разработчик, который при постановке задачи сразу в голове видит примерный код, который ему надо только записать, то переезд на новый язык сделает его в десяток раз менее эффективным.
Наверное, вы говорите о каких-то мега джедаях, которые способны за неделю-две, пусть даже и с помощью коллектива, изучить совершенно новый для себя язык вместе с его набором библиотек так, чтобы сразу думать на нём.
Увы, я к таким не отношусь, и своими глазами таких никогда не видел.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.