Здравствуйте, kaa.python, Вы писали:
KP>Это не проблема, изучается крайне просто. Язык не более чем инструмент, важны базовые знания.
Сложный вопрос. Вот лично мне переходы даже между языками более-менее одной группы, типа C#/Java даются тяжело — потому что идиоматика существенно другая. И это — императивные ОО-языки со сборкой мусора.
Понятно, что code review часть проблем может решить, но для меня это означает, что первые пару недель весь мой код на "новом" языке придётся выкидывать и переписывать полностью.
Там, где в одном я буду просто прицеплять метод к событию, в другом мне придётся плодить анонимный интерфейс. И такого — очень много, как только мы выходим на шажок за пределы hello world.
То есть код-то, наверное, работать будет. Но это будет не идиоматический код.
Всё будет ещё хуже при переезде на какой-нибудь функциональный язык, где конструкции типа "добавить к массиву ещё один элемент" выполняются за O(log(N)), а не за O(N), как ожидает любой императивщик.
И даже после освоения базовых кирпичиков языка, остаётся ещё неизвестного размера стандартная библиотека. Которую нужно знать более-менее наизусть, чтобы не тратить по полчаса на stackoverflow лучшего способа прибавить время к дате (или скачать документ по http), а сразу писать код. То есть с переезом в новую экосистему эффективность работы снижается в разы.
Это — мой личный опыт. Помню, как я переходил с java на С# — причём это был C#2, без большинства тех штук, которые его от жавы отличают. Ну ведь невозможно вспомнить тот код без слёз.
Ушло примерно год-полтора на то, чтобы начать думать на C#.
В обратную сторону сейчас переходить — займёт примерно столько же.
Поэтому мне не близок ваш оптимизм по поводу перехода между Go с его каналами и С# с его TPL. Ну, то есть если человек плохо умеет на Go — то есть медленно пишет неэффективный, избыточный код и велосипедит стандартные вещи, то переход на C# его не сильно испортит — он просто продолжит писать неэффективный, избыточный код и велосипедить стандартные вещи. Если же это был нормальный разработчик, который при постановке задачи сразу в голове видит примерный код, который ему надо только записать, то переезд на новый язык сделает его в десяток раз менее эффективным.
Наверное, вы говорите о каких-то мега джедаях, которые способны за неделю-две, пусть даже и с помощью коллектива, изучить совершенно новый для себя язык вместе с его набором библиотек так, чтобы сразу думать на нём.
Увы, я к таким не отношусь, и своими глазами таких никогда не видел.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.