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

S>>Наверное, вы говорите о каких-то мега джедаях, которые способны за неделю-две, пусть даже и с помощью коллектива, изучить совершенно новый для себя язык вместе с его набором библиотек так, чтобы сразу думать на нём.

S>>Увы, я к таким не отношусь, и своими глазами таких никогда не видел.

KP>Начнём с того, что такого человека ты знаешь и регулярно видишь — это ты, и это вообще любой нормальный программист. Что такое нормальный? Ну, он хочет развиваться, учить что-то новое, а не просто как-то сделать задачу и пойти домой. Таких, само собой, не 100% в АйТи мире, но изрядное количество.

Странно, что ты проигнорировал тот абзац, где я написал про полтора года, ушедшие у меня на переход с Java на C#. Я же не говорю про принципиальную невозможность — я говорю про невозможность перепрыгнуть мгновенно.

KP>Когда разработчик выходит на новое место работы, его основная сложность далеко не язык программирования, а то наследие в которое он погружается.

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

KP>Ну серьёзно, будет ли AWS Lambda на Python как-то значительно отличаться от лямбды на JS? Да ничего подобного, но вот знать что такое лямбды и как их готовить уже реально полезно.

Не знаю насчёт лямбды, а вот нормальное идиоматическое приложение на Спринге сильно отличается от нормального идиоматического приложения на ASP.Net.
Если я правильно понимаю, что такое AWS Lambda — то это как раз тот пример, когда пишется заведомый говнокод, "лишь бы работало". То, что он там неидиоматический — хрен с ним, он же одноразовый, его никто не планирует эксплуатировать десятилетями. Чудовищно неэффективный — хрен с ним, всё равно клауд поднимет столько инстансов, сколько надо.

А вот написать саму платформу типа AWS Lambda на Java, Go, или C# — вот прямо большая разница выйдет. Даже если ты уже эксперт вот в этих вот serverless computing и имел опыт написания на Java — написать то же самое на C# или Go нормально займёт в разы больше времени, чем допилить аналогичную по объёму фичу на том же языке.

KP>В итоге получается, что подход "мы ищем бэкенд разработчика на C#" имеет широкое распространение в РФ, но это не более чем создание дополнительных сложностей компании на ровном месте. А вот более правильный вариант "мы ищем бэкенд разработчика готового работать с нашим стеком" даёт куда как более широкий простор для маневра и получения в штат реально высококлассных специалистов. Кроме того, если компания хоть слегка крупнее чем Рога-и-Копыта, то за время роста и развития кодовая база успевает обрасти несколькими языками и технологиями которые всяко нужно поддерживать и развивать, знания и навыки не пропадут.

Ну, вот мне повезло работать в основном в Рогах и Копытах. Где постепенно идёт унификация стека, т.к. "у нас нет возможности находить разработчиков под экзотические языки". Поэтому С++, C#, PowerShell, Ruby, PHP планомерно вытесняются Java, Python, и JS.

KP>Но как я уже говорил выше, такой подход не будет нормально работать с "языками для мутантов" типа C++/Rust или Haskell, где язык на столько сложен, что это становится критичным, т.к. вероятность всё разломать становится довольно не иллюзорной. Основная же масса коммерческих языков таких как C#, Java, Python, Go, Elixir, JS, TS (и наверняка кучи других, с которыми я просто не сталкивался еще) позволяют легко их менять без заметного негативного эффекта для качества кодовой базы и/или производительности. Я такое постоянно наблюдаю в компаниях в Сингапуре, аналогичная ситуация всегда была и в наших американских офисах. Был бы разработчик хороший, а язык — это вторично (за редкими исключениями).


Возможно, у вас другой опыт. У меня — полностью отличающийся. И я даже в фантазиях себе не могу представить, как это разработчик на какой-нибудь java пересядет на C# и тут же начнёт писать эффективный код с value-типами или идиоматический с Expression Trees. Домен и легаси вполне можно изучать по частям — вот тебе кусочек нашего огромного проекта, в нём вот это поле неверно валидируется, исправь это. Уже через месяц разработчик может приносить пользу. При условии, что он пишет на знакомом языке — тогда он легко узнаёт конструкции, из которых построено решение.

Возможно, это оттого что лично я — плохой программист Но я не умею требовать от людей того, на что сам неспособен.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.