Re: Оставаться в С++ или уходить?
От: checkthestack  
Дата: 14.08.22 16:18
Оценка: 38 (10)
Здравствуйте, checkthestack, Вы писали:

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


Ого, после этого своего вопроса я сюда три года не заходил, ничего себе тут обсуждений наплодили ;DD

Ну раз зашёл, не могу не отчитаться о решении этого своего вопроса и трёхлетних итогах.

Я уволился из той компании и месяца 3-4 потратил на самостоятельное изучение языка Golang. Без проблем устроился работать в российский банк пилить бэкэнд на go. Переход из C++ в Golang оказался очень простым, а вот переход из десктопных приложений, драйверов и прочего low level в современный бэкэнд оказался уже не таким лёгким, но увлекательным. Писать на golang приятно. Конечно тяжело, как и на любом языке, писать чисто, расширяемо, и легко тестируемо, но ты не тратишь время на бесконечное изучение references-ов в попытках избежать UB и других выстрелов в ногу. О переходе из C++ не жалею, удовольствия больше, нервяка меньше, аппетит улучшился, сон нормализовался, судя по письмам рекрутёров на linkedln и своим периодическим поискам на hh актуальность как разработчика возросла. В C++ было ощущение что ты постоянно пытаешься догнать актуальные знания, ты всё время где-то "не в теме". В golang быстро выходишь на универсальное понимание как пишут все и больше времени можно уделять предметной области.

Не знаю сколько я бы сейчас зарабатывал плюсовиком, но гошником выходит 230к на удалёнке на грейде middle+. По собственным ощущениям внутри компании и вакансиям кажется что пространство для роста есть
Re[3]: Оставаться в С++ или уходить?
От: LaptevVV Россия  
Дата: 14.08.22 18:18
Оценка: +2
LK>Ну, всё-таки "переключение" на другой язык (привыкание к новому синтаксису, изучение библиотек) требует времени. И не каждый наниматель готов ждать пока работник "переключится".
Дело фактически не в языке.
а) системы сборки разные.
б) "экология" вокруг языка сильно зависит от задач.
Отсюда — много разных фреймворков под разные задачи
Даже на одном языке

А сам язык проблемы не представляет.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[46]: Оставаться в С++ или уходить?
От: SkyDance Земля  
Дата: 15.08.22 01:55
Оценка: +1
N>Да, можешь посмотреть, как оно работает в Яндекс такси, например. Там скорости Go или Java не хватает, всё на С++

На С++ там не по этой причине.
Re[47]: Оставаться в С++ или уходить?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 15.08.22 06:08
Оценка:
Здравствуйте, SkyDance, Вы писали:

N>>Да, можешь посмотреть, как оно работает в Яндекс такси, например. Там скорости Go или Java не хватает, всё на С++

SD>На С++ там не по этой причине.

Чувствуется какая-то недосказанность. Так по какой?
У них есть доклады, как переписывали части с Java на C++ как раз из-за тормозов первой. То есть C++ у них там не сразу всё завоевал.
Теперь выкатили свой userver в опенсорс, как бы играют в открытую.
Re[48]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 16.08.22 03:29
Оценка: :)
Здравствуйте, Nuzhny, Вы писали:

N>У них есть доклады, как переписывали части с Java на C++ как раз из-за тормозов первой. То есть C++ у них там не сразу всё завоевал.


Чистая спекуляция: проект начинали "модно, стильно, молодежные" на жабе. Что-то пошло не так. Техлидов призвали из другого, успешного подразделения- зубров из 90-х. Они написали как знают, на плюсах.
Хороший ли выбор C++ для распределенного приложения- нет. Go лучше бы подошел.
Re[49]: Оставаться в С++ или уходить?
От: so5team https://stiffstream.com
Дата: 16.08.22 05:53
Оценка: +2
Здравствуйте, Артём, Вы писали:

Аё>Хороший ли выбор C++ для распределенного приложения- нет. Go лучше бы подошел.


Тёмчик, ты бы определение "распределенного приложения" сперва сформулировал бы. А то ведь и расчеты на больших кластерах посредством MPI -- это тоже распределенные приложения. И как-то не слышно примеров, что Go там лучше бы подошел.
Re[49]: Оставаться в С++ или уходить?
От: DiPaolo Россия  
Дата: 16.08.22 08:00
Оценка: +1 :)
Да запиши ты себе уже постулатом: "C++ не годится для перекладывания ЖСОНа в базку и обратно!" И точка. Никто с этим не спорит. Но мир не ограничивается только лишь этим. Тебе тут люди говорят про другое применение плюсов. Но ты зациклился на том, что нужно получить запрос от юзера, демаршалить/десериализовать/смапить/<you name it> DTO во внутренний объект, сходить в базу, в другую, третью, скомпоновать ответ, обмазать слоем бизнес-логики, смаршалить обратно и отдать ответ. Еще раз: для таких задач плюсы действительно далеко не лучший выбор.
Патриот здравого смысла
Re[50]: Оставаться в С++ или уходить?
От: so5team https://stiffstream.com
Дата: 16.08.22 08:10
Оценка:
Здравствуйте, DiPaolo, Вы писали:

DP>Да запиши ты себе уже постулатом: "C++ не годится для перекладывания ЖСОНа в базку и обратно!" И точка. Никто с этим не спорит.


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

А в Яндексе просто нормальных архитекторов и программистов нет, масштаба Тёмки, вот и страдают ерундой на плюсах.
Re[51]: Оставаться в С++ или уходить?
От: DiPaolo Россия  
Дата: 16.08.22 09:28
Оценка: +1
S>Злые языки говорят (говорят!) что если хочется экономить на железе, то "не годится" плавно перетекает в "один из немногих реальных вариантов". Вруть, небось.
Ну когда нужно жестко оптимизировать, то тогда конечно достают с полки плюсы/Си или Раст берут. Но это от силы 1% случаев, в подавляющем большинстве кейс тот, что я описал выше: взять отсюда, положить туда, отдать ответ.
Патриот здравого смысла
Re[52]: Оставаться в С++ или уходить?
От: so5team https://stiffstream.com
Дата: 16.08.22 09:33
Оценка: +1
Здравствуйте, DiPaolo, Вы писали:

DP>Ну когда нужно жестко оптимизировать, то тогда конечно достают с полки плюсы/Си или Раст берут. Но это от силы 1% случаев, в подавляющем большинстве кейс тот, что я описал выше: взять отсюда, положить туда, отдать ответ.


Мне кажется, что уже лет 10 как (а может и 15) плюсы и нужны лишь в 1% случаев. Но, с учетом того, что информатизация проникает в окружающую нас действительность все ширше и ширее с каждым годом, этот 1% в количественном выражении все равно не падает.
Re[4]: Оставаться в С++ или уходить?
От: SergeyIT Россия  
Дата: 16.08.22 10:34
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>А сам язык проблемы не представляет.

Это главное.
Я не айтишник. Но тоже давно компы использую — БЭСМ-4, pdp11... Алгол, Фортран, Асм (pdp), C/C++, Дельфи.
Вспоминаю как-то (подрабатывал в 90-х) начальник дал задание дописывать серверный софт на PHP. Когда я сказал, что не знаю ни php, ни html, ответил — 3 дня на изучение и работай.
Но это было >20 лет назад... сегодняшнюю ситуацию зацикливания на языках и фраймвеках не понимаю.
Извините, я все еще учусь
Re[49]: Оставаться в С++ или уходить?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 16.08.22 11:40
Оценка:
Здравствуйте, Артём, Вы писали:

Аё>Чистая спекуляция: проект начинали "модно, стильно, молодежные" на жабе. Что-то пошло не так. Техлидов призвали из другого, успешного подразделения- зубров из 90-х. Они написали как знают, на плюсах.


C++ команда Яндекса сильная и достаточно молодая, её представители есть в комитете по C++, а также среди авторов некоторых модулей boost. Всё мимо.

Аё>Хороший ли выбор C++ для распределенного приложения- нет. Go лучше бы подошел.


Тебе-то откуда знать? Кажется, что и современные плюсы особо не знаешь, и на То не пишешь, и с требованиями проекта не знаком. Или я что-то путаю?
Re[5]: Оставаться в С++ или уходить?
От: so5team https://stiffstream.com
Дата: 16.08.22 13:28
Оценка:
Здравствуйте, SergeyIT, Вы писали:

SIT>Но это было >20 лет назад... сегодняшнюю ситуацию зацикливания на языках и фраймвеках не понимаю.


Не понятно, это был вопрос, утверждение или бахвальство.

Однако, есть известный в узких кругах Максим Лапшин из Erlyvideo, который придерживается таких же радикальных взглядов, как и ваш начальник из 90-х. Вот, например:

Человек пишет на C++, после чего я даю ему кусок кода на Erlang и говорю: «Поправь». Я не ожидаю от него услышать: «А я не знаю, что писать». Не знаешь – разберись. Два часа тебе на то, чтобы освоить новый язык.


И этот же Максим Лапшин любит говорить (например, на LOR-е), что писать программы на C++ -- это "разбирать корки по утрам" (подразумевается "core dumped" из Unix-ов).

Ведь как-то же в одной голове и то, и другое уживается.
Re[6]: Оставаться в С++ или уходить?
От: SergeyIT Россия  
Дата: 16.08.22 14:28
Оценка:
Здравствуйте, so5team, Вы писали:

SIT>Но это было >20 лет назад... сегодняшнюю ситуацию зацикливания на языках и фраймвеках не понимаю.

S>Не понятно, это был вопрос, утверждение или бахвальство.
Утверждение.

S>Однако, есть известный в узких кругах Максим Лапшин из Erlyvideo, который придерживается таких же радикальных взглядов, как и ваш начальник из 90-х. Вот...


Ничего радикального не вижу в этом. Начальник хорошо знает способности и возможности своих подчиненных... До этого лет 5 уже работал у него.
Кстати, учиться надо всю жизнь.
ЗЫ
Помню, в молодости, попросил помочь преподавателя, который читал нам Алгол60, изучить Фортран. Он посмотрел на меня как на полоумного и сказал — а чего там учить, 4 часа теоретических — 4 часа практических.
Взял описание FortranIV (DEC) из документации pdp11 (английского не знал). И через 8 часов стал писать свои программы. (Не бахвальство — так нас учили!). Были и другие случаи...
Извините, я все еще учусь
Re[7]: Оставаться в С++ или уходить?
От: so5team https://stiffstream.com
Дата: 16.08.22 14:42
Оценка: +1
Здравствуйте, SergeyIT, Вы писали:

SIT>Утверждение.


А зачем оно было сделано?

SIT>Ничего радикального не вижу в этом.


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

SIT>Помню, в молодости, попросил помочь преподавателя, который читал нам Алгол60, изучить Фортран. Он посмотрел на меня как на полоумного и сказал — а чего там учить, 4 часа теоретических — 4 часа практических.

SIT>Взял описание FortranIV (DEC) из документации pdp11 (английского не знал). И через 8 часов стал писать свои программы. (Не бахвальство — так нас учили!). Были и другие случаи...

Если речь о том, чтобы научиться перемножить две матрицы 100x100 на другом языке программирования, то может и 4-х часов много.

Только вот таких простеньких задачек у многих из участников этого обсуждения нет в принципе уже 20, а то и 30 лет.

В современных условиях скорее вызывает удивление утверждение вроде вашего. Вы можете не понимать почему нужно тратить много времени на погружение в язык/фреймворк до тех пор пока вам не потребуется, скажем, подправить кусок чужого C++ного кода, который на Boost.Spirit написан. Или вы столкнетесь с каким-то багом в потрохах ClickHouse или упомянутого здесь Яндексовского userver, и именно вам потребуется разобраться и довести до ума. И так, чтобы оно не падало затем по ночам. И так, чтобы пришедшие после вас не поминали вас незлым тихим словом.

Тут-то и выясняется, что можно дружно ржать на форумах над вопросами о виртуальном деструкторе, а потом выяснять какого органа в коде откровенная лажа и память течет (в том числе и из-за того, что кто-то деструктор как virtual не пометил).
Re[7]: Оставаться в С++ или уходить?
От: so5team https://stiffstream.com
Дата: 16.08.22 17:22
Оценка:
Здравствуйте, SergeyIT, Вы писали:

SIT>Ничего радикального не вижу в этом.


Вот, кстати, прям история в тему:

Примерно в 2014 г., когда у нас в компании вся разработка, по сути, была только в СУБД Oracle (с помощью PL/SQL), у кого-то возникла идея написать продукт на Java. Поставили разработчикам Java и сказали писать на ней. Экспертизы по Java ни у кого не было, архитектуру никто не проектировал, процедурный стиль программирования просто перенесли на Java, а для отрисовки UI разработчики выбрали Vaadin Framework. На продукте разработчики менялись с регулярностью, кто-то пытался переписать отдельные части, кто-то создавал новые классы, соответствующие ООП, но архитектуры по прежнему не было и официально бизнес не давал времени на рефакторинг. Скорость разработки фич была невысокой, в продукте часто появлялись ошибки, они долго находились и исправлялись, а мотивация разработчиков медленно и верно двигалась к 0.


И это еще Java, на C++ было бы кратно хуже.
Re[8]: Оставаться в С++ или уходить?
От: DiPaolo Россия  
Дата: 16.08.22 17:33
Оценка: +1
S>

Примерно в 2014 г., когда у нас в компании вся разработка, по сути, была только в СУБД Oracle (с помощью PL/SQL), у кого-то возникла идея написать продукт на Java. Поставили разработчикам Java и сказали писать на ней. Экспертизы по Java ни у кого не было, архитектуру никто не проектировал, процедурный стиль программирования просто перенесли на Java, а для отрисовки UI разработчики выбрали Vaadin Framework. На продукте разработчики менялись с регулярностью, кто-то пытался переписать отдельные части, кто-то создавал новые классы, соответствующие ООП, но архитектуры по прежнему не было и официально бизнес не давал времени на рефакторинг. Скорость разработки фич была невысокой, в продукте часто появлялись ошибки, они долго находились и исправлялись, а мотивация разработчиков медленно и верно двигалась к 0.


Так тут налицо совершенно другие корневые проблемы:
— отсутсвие опыта у главного технического спеца в выбора технологий; возможно, молодые горячие тимлиды принимали решение, и захотели "пощупать" хайповое, или для строчки в резюме
— частая смена владельца кодовой базы
— кадровая текучка
— в целом неопытность (писать нужно придерживаясь стиля и парадигмы соответствующего языка/фреймворка, а не тащить процедурный стиль в Джаву)
— может была элементарная дурость или желание быть в тренде
— может была политическая борьба среднего или высокого менеджмента

Думаю, с тем же "успехом" они бы и на C#, и на Питон, и на JS переехали.
Патриот здравого смысла
Re[9]: Оставаться в С++ или уходить?
От: so5team https://stiffstream.com
Дата: 16.08.22 19:10
Оценка:
Здравствуйте, DiPaolo, Вы писали:

DP>Так тут налицо совершенно другие корневые проблемы:


Экспертизы по Java ни у кого не было


DP>- отсутсвие опыта у главного технического спеца в выбора технологий

DP>- в целом неопытность (писать нужно придерживаясь стиля и парадигмы соответствующего языка/фреймворка, а не тащить процедурный стиль в Джаву)

Да уж, "вы не понимаете, это другое" (с)

DP>Думаю, с тем же "успехом" они бы и на C#, и на Питон, и на JS переехали.


Да ладно, тут вот утверждается, что освоить новый язык -- это как два... "Ничего радикального не вижу в этом.", если дословно.
Re[10]: Оставаться в С++ или уходить?
От: DiPaolo Россия  
Дата: 16.08.22 19:17
Оценка: +1
Ну можно быть экспертом в языке, а можно быть экспертом в разработке ПО. Я тоже считаю язык всего лишь инструментом. Первичен продукт. Опытный инженер-разработчик ПО сможет подобрать нужные инструменты и освоить их в короткие сроки. В конце концов, он возьмет в команду нужного эксперта или проконсультируется с таковым. А "одностаночник"-эксперт в одном языке будет этот язык пихать где надо и не надо.
Патриот здравого смысла
Re[5]: Оставаться в С++ или уходить?
От: LaptevVV Россия  
Дата: 16.08.22 19:18
Оценка: +1
LVV>>А сам язык проблемы не представляет.
SIT>Это главное.
SIT>Я не айтишник. Но тоже давно компы использую — БЭСМ-4, pdp11... Алгол, Фортран, Асм (pdp), C/C++, Дельфи.
SIT>Вспоминаю как-то (подрабатывал в 90-х) начальник дал задание дописывать серверный софт на PHP. Когда я сказал, что не знаю ни php, ни html, ответил — 3 дня на изучение и работай.
Аналогично. В прежние времена
SIT>Но это было >20 лет назад... сегодняшнюю ситуацию зацикливания на языках и фраймвеках не понимаю.
А я понимаю. Вот сидел я в плюсах, более-менее знал про все необходимое.
А на работе пришлось вдруг на яву пересесть.
Объем фреймворка просто гигантский!
Да еще внешние сторонние компоненты.
Системы сборки совершенно другие по сравнению с С++.
В общем, фактически с нуля врубится в корпоративный легаси-код весьма сложно...
Поэтому в корпоративной разработке сложно сменить специализацию — очень много технических деталей придется осваивать фактически с нуля...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.