Re[12]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 11.05.22 21:22
Оценка:
Здравствуйте, so5team, Вы писали:

S>Ты на питоне вызвал готовую функцию. Почему другой чел на C++ не смог взять готовую стороннюю реализацию -- это отдельный вопрос.


Хороший вопрос. Я взял встроенную функцию. Да и сторонние пакеты затянуть в питоне на порядки быстрее, чем это в C++. Я когда работал над модулем на Go, удивлялся, насколько там быстро подцеплять сторонние пакеты- еще проще, чем в питоне. Сравни это с C++, где такое ощущение, что специально, усложнения и грабли.
Re[13]: Оставаться в С++ или уходить?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.05.22 21:35
Оценка: +1
Здравствуйте, Артём, Вы писали:

Аё>Хороший вопрос. Я взял встроенную функцию. Да и сторонние пакеты затянуть в питоне на порядки быстрее, чем это в C++. Я когда работал над модулем на Go, удивлялся, насколько там быстро подцеплять сторонние пакеты- еще проще, чем в питоне. Сравни это с C++, где такое ощущение, что специально, усложнения и грабли.


Тут не так всё однозначно. Я сутки промучался, пытаясь запустить на Питоне один проект. Ставлю всё чин чином, pip install -r requirements.txt, все дела. Запускаю — где-то падает, что-то несовместимо. Ищу по issue на гитхабах, узнаю, что кто-то там что-то поменял в API, оно работало на Python 3.6, а для моего 3.9 уже такого нет. Правлю, запускаю — падает. Ищу, говорят, что надо обновить другой пакет теперь. Этот новый конфликтует с другими старыми. Удаляю старое, ставлю новое — теперь не работает уже то, что работало до этого. Я где-то ллазаю по гихабу, где-то поисходникам, исправляю. Теперь начало работает, падает в конце после получаса работы алгоритма. Опять ищу причину, опять какое-то API какого-то пакета (а их штук 30 в зависимостях). И так целый день, с утра до вечера, а потом ещё и утро следующего дня. Компиляции нет, совместимость API не проверить пока оно не упадёт где-то.
Может, у меня с лыжами проблема? Или реально в питоновском мире перенести проект с компилятора в пределах одной мажорной версии (3.х) такая большая проблема? Ну, сущее мучение разбираться со всей этой хренью. На С++ я не трачу столько времени на инфраструктурные проблемы. Переход между стандартами приносит минимальные сложности. Да и то эти сложности хорошо задокументированы и решение лежит тут же на cppreference. В жопу всю эту динамику с её библиотеками, на ней только формулы небольшие писать, а не программы.
Re[14]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 11.05.22 22:43
Оценка: :)
Здравствуйте, Nuzhny, Вы писали:

N>Тут не так всё однозначно. Я сутки промучался, пытаясь запустить на Питоне один проект. Ставлю всё чин чином, pip install -r requirements.txt, все дела. Запускаю — где-то падает, что-то несовместимо. Ищу по issue на гитхабах, узнаю, что кто-то там что-то поменял в API, оно работало на Python 3.6, а для моего 3.9 уже такого нет. Правлю, запускаю — падает.


Проблема кривого пакета, запускай под питон 3.6. Деплоить в докер. Да, компилируемая среда тут лучше- Go lang как пример, просто супер, компилит в target одним ключиком, batteries included.
Re[15]: Оставаться в С++ или уходить?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 12.05.22 03:14
Оценка: +1 -1
Здравствуйте, Артём, Вы писали:

Аё>Проблема кривого пакета, запускай под питон 3.6. Деплоить в докер. Да, компилируемая среда тут лучше- Go lang как пример, просто супер, компилит в target одним ключиком, batteries included.


Не, все пакеты нормальные. Но мало кто заботится о сохранении совместимости. А в условиях динамики я не могу без запуска приложения по всем веткам исполнения сразу понять, где и какой пакет это API поменял.
Докер тут — это просто костыль, который не решает проблему, а лишь оттягивает решение на неопределённый срок.
Re[12]: Оставаться в С++ или уходить?
От: night beast СССР  
Дата: 12.05.22 06:33
Оценка:
Здравствуйте, so5team, Вы писали:

S>Ты на питоне вызвал готовую функцию. Почему другой чел на C++ не смог взять готовую стороннюю реализацию -- это отдельный вопрос.


вот кстати -- одна из основных проблем плюсов, которая, похоже, так никогда и не будет решена
Re[16]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 12.05.22 06:34
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Не, все пакеты нормальные. Но мало кто заботится о сохранении совместимости.

Как это нормальные, если сломались?

N>Докер тут — это просто костыль,


Докер тут- главная причина твоей боли с поломанной совместимостью: народу просто стало не надо и лишь ты наступил на граблю.
Re[17]: Оставаться в С++ или уходить?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 12.05.22 06:47
Оценка:
Здравствуйте, Артём, Вы писали:

N>>Не, все пакеты нормальные. Но мало кто заботится о сохранении совместимости.

Аё>Как это нормальные, если сломались?

Сломалась совместимость с ними в данном конкретном проекте, который писался на Питоне 3.6. И я не могу обнаружить все эти проблемы пока не пройду все ветки выполнения. В компилируемом языке мне бы о них сказал компилятор.

N>>Докер тут — это просто костыль,

Аё>Докер тут- главная причина твоей боли с поломанной совместимостью: народу просто стало не надо и лишь ты наступил на граблю.

Я наступил на типичную граблю типичного языка с динамической типизацией. Докер тут не нужен и не поможет. На том же С++ я могу взять большой чужой проект, включить его исходники в свой, собрать, при необходимости подключить правильно собранные зависимости и компилятор мне найдёт ошибки, связанные с несовместимостью API и/или типов данных. В Питоне библиотек туева хуча, все они развиваются и никто совместимость их друг с другом не поддерживает. У меня в проект на С++ может собираться и правильно работать с 5-6 версиями OpenCV. Или с разными версиями ffmpeg — это не проблема. Посмотри на типичные питоновские проекты, где фиксируются версии десятка пакетов сразу и ни-ни: CUDA 11.1, TensorRT 7.5, TensorFlow 1.14 etc. Мне надо использовать одну функцию и что, заводить Докер с гигабайтом зависимостей? И сколько Докеров мне таких надо для небольшого проекта? Бред же
Re[18]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 12.05.22 07:00
Оценка: :))
Здравствуйте, Nuzhny, Вы писали:

N>Сломалась совместимость с ними в данном конкретном проекте, который писался на Питоне 3.6. И я не могу обнаружить все эти проблемы пока не пройду все ветки выполнения. В компилируемом языке мне бы о них сказал компилятор.


Да, это так. Также верно и то, что компилятор бы тебе сказал, и ты бы мучался это скомпилить.

N>>>Докер тут — это просто костыль,

Аё>>Докер тут- главная причина твоей боли с поломанной совместимостью: народу просто стало не надо и лишь ты наступил на граблю.

N>Я наступил на типичную граблю типичного языка с динамической типизацией. Докер тут не нужен и не поможет.

Слушай, ну что ты уперся? Докер для того и существует- слепить из того, что было, и забыть о совместимостях. Пакет работает только под 3.6? Ок, пишем, питон 3.6. Все.

N> Мне надо использовать одну функцию и что, заводить Докер с гигабайтом зависимостей? И сколько Докеров мне таких надо для небольшого проекта? Бред же

Не с той стороны смотришь. Микросервис завернул в докер и все. Да, поднять 50 микросервисов сразу- нужно от 64г рамы. Ну и что. Облака же.
Re[19]: Оставаться в С++ или уходить?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 12.05.22 07:08
Оценка: +1
Здравствуйте, Артём, Вы писали:

Аё>Да, это так. Также верно и то, что компилятор бы тебе сказал, и ты бы мучался это скомпилить.


Я бы мучался не долго и в известных местах.

Аё>Слушай, ну что ты уперся? Докер для того и существует- слепить из того, что было, и забыть о совместимостях. Пакет работает только под 3.6? Ок, пишем, питон 3.6. Все.


Нет, это хрень какая-то. У меня плюсовые проекты работают одинаково на серверах, на ноутах, в облаках и на Nvidia Jetson. И это один репозиторий, одни и те же исходники. Я не хочу и не буду разводить на Питоне хрень с десятком версий, считаю это неверным и непрофессиональным.

Аё>Не с той стороны смотришь. Микросервис завернул в докер и все. Да, поднять 50 микросервисов сразу- нужно от 64г рамы. Ну и что. Облака же.


Это мировоззрение мне не близко и непонятно.
Re[20]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 12.05.22 07:22
Оценка:
Здравствуйте, Nuzhny, Вы писали:

Аё>>Да, это так. Также верно и то, что компилятор бы тебе сказал, и ты бы мучался это скомпилить.


N>Я бы мучался не долго и в известных местах.

В чужих исходниках? Но что тебе в питоне помешало тогда?
Просто я считаю неправильным делать правки в стороннем пакете. Это обычно приводит к тому же version lock- поправил, положил в свою репку, все, так и застрянет.

Аё>>Слушай, ну что ты уперся? Докер для того и существует- слепить из того, что было, и забыть о совместимостях. Пакет работает только под 3.6? Ок, пишем, питон 3.6. Все.


N>Нет, это хрень какая-то. У меня плюсовые проекты работают одинаково на серверах, на ноутах, в облаках и на Nvidia Jetson. И это один репозиторий, одни и те же исходники. Я не хочу и не буду разводить на Питоне хрень с десятком версий, считаю это неверным и непрофессиональным.

Ты путаешь теплое с мягким. Точно также при компиляции приходится лочить версию компилятора. Потому что при апгрейде компилятора, ненулевая вероятносиь что что-то отвалится.

Аё>>Не с той стороны смотришь. Микросервис завернул в докер и все. Да, поднять 50 микросервисов сразу- нужно от 64г рамы. Ну и что. Облака же.


N>Это мировоззрение мне не близко и непонятно.

Т.е. ты не пишешь распределенные масштабируемые под нагрузку приложения?
Re[13]: Оставаться в С++ или уходить?
От: so5team https://stiffstream.com
Дата: 12.05.22 07:22
Оценка: :)
Здравствуйте, night beast, Вы писали:

S>>Ты на питоне вызвал готовую функцию. Почему другой чел на C++ не смог взять готовую стороннюю реализацию -- это отдельный вопрос.


NB>вот кстати -- одна из основных проблем плюсов, которая, похоже, так никогда и не будет решена


Поживем увидим.

Еще 6 лет назад проблему управления зависимостями каждый решал в меру своей распущенности. Сейчас уже есть vcpkg и conan, каждый со своими тараканами, но они есть и ими уже можно пользоваться. К чему-то же это должно привести в итоге.
Re[14]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 12.05.22 07:27
Оценка:
Здравствуйте, so5team, Вы писали:

S>Еще 6 лет назад проблему управления зависимостями каждый решал в меру своей распущенности. Сейчас уже есть vcpkg и conan, каждый со своими тараканами, но они есть и ими уже можно пользоваться. К чему-то же это должно привести в итоге.


О конан докладывал его автор в ~2017г. Это как весь мир пересел на теслу, а C++ все пытается разродиться копейкой.
Re[21]: Оставаться в С++ или уходить?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 12.05.22 07:31
Оценка:
Здравствуйте, Артём, Вы писали:

Аё>В чужих исходниках? Но что тебе в питоне помешало тогда?


Да, конечно, исходники надо читать. В Питоне я не умею читать исходники: не знаю, где сломано — только в момент выполнения в одном из N проблемных мест. Далее, читаю я исходники и очень редко понимаю, что там за типы используются. Редко кто использует аннотации типов и это сложно читать, быстро устаю.

Аё>Просто я считаю неправильным делать правки в стороннем пакете. Это обычно приводит к тому же version lock- поправил, положил в свою репку, все, так и застрянет.


Ничего не застрянет. Я что-то форкаю и веду параллельно, что-то из правок авторы репозиториев принимают себе. Нет проблем.

Аё>Ты путаешь теплое с мягким. Точно также при компиляции приходится лочить версию компилятора. Потому что при апгрейде компилятора, ненулевая вероятносиь что что-то отвалится.


Не приходится в том смысле, как в том же Питоне. Выставляю в cmake С++17 и всё, проект нормально собирается компиляторами, поддерживающими эту опцию.

N>>Это мировоззрение мне не близко и непонятно.

Аё>Т.е. ты не пишешь распределенные масштабируемые под нагрузку приложения?

Нет, я пишу приложения/библиотеки/сервисы, которые оптимизированы под конкретный инстанс. Зачастую они работают там, где масштабирование в принципе невозможно (на столбе на edge device или на сервере со строго определённым железом и строго определёнными требованиями). Что-то работает и в облаках, и в докерах, но этой частью я уже не занимаюсь.
Re[15]: Оставаться в С++ или уходить?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 12.05.22 07:36
Оценка:
Здравствуйте, Артём, Вы писали:

Аё>О конан докладывал его автор в ~2017г. Это как весь мир пересел на теслу, а C++ все пытается разродиться копейкой.


Кажется, что одна Тойота в год продаёт раз в 10 больше автобобилей, чем Тесла. А производителей-то много.
Re[14]: Оставаться в С++ или уходить?
От: night beast СССР  
Дата: 12.05.22 07:40
Оценка: +1
Здравствуйте, so5team, Вы писали:

NB>>вот кстати -- одна из основных проблем плюсов, которая, похоже, так никогда и не будет решена


S>Поживем увидим.


S>Еще 6 лет назад проблему управления зависимостями каждый решал в меру своей распущенности. Сейчас уже есть vcpkg и conan, каждый со своими тараканами, но они есть и ими уже можно пользоваться. К чему-то же это должно привести в итоге.


а еще есть bazel.
и у всего этого нет поддержки со стороны разработчиков стандарта, которых это проблема не особо волнует.

к чему-то может и придет, но не уверен что к чему-то простому (см. например cmake)
Re[15]: Оставаться в С++ или уходить?
От: so5team https://stiffstream.com
Дата: 12.05.22 07:48
Оценка:
Здравствуйте, Артём, Вы писали:

S>>Еще 6 лет назад проблему управления зависимостями каждый решал в меру своей распущенности. Сейчас уже есть vcpkg и conan, каждый со своими тараканами, но они есть и ими уже можно пользоваться. К чему-то же это должно привести в итоге.


Аё>О конан докладывал его автор в ~2017г.


Тёмчик, освежи арифметику на уровне первого класса. Шесть лет назад был 2016-й год. Тогда на ладан дышала предтеча conan-а, biicode.

Аё>Это как весь мир пересел на теслу


Весь мир уже пересел на теслу?
Re[15]: Оставаться в С++ или уходить?
От: so5team https://stiffstream.com
Дата: 12.05.22 08:00
Оценка: 4 (2)
Здравствуйте, night beast, Вы писали:

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


С одной стороны, разработчиков стандарта, временами, реальная жизнь вообще не волнует. Можно хотя бы вспомнить то, что стандарт C++98 появился в 1998-ом, а компиляторы, которые поддерживали его в более-менее полном объеме, только спустя 5-6 лет. Да и то, вроде как был всего один широко известный в очень узких кругах компилятор, который поддерживал C++98 в полном объеме. После чего еще можно и вспомнить ряд мертворожденных штук, которые вошли в C++98, а к C++20 были выпилены нафиг.

Кстати, тот же C++20. Принят, если не ошибаюсь, или в самом конце 2019-го или в начале 2020-го. Сейчас уже 2022-й, два года прошло. Как там с поддержкой C++20 в основных компиляторах? Кого это волнует, неужели комитет?

А комитет уже вроде как к feature freeze для C++23 готов.

Ну и у меня много незлых тихих слов по поводу того, как и куда C++ развивается в последние лет 5. Но не буду
Просто посмотрю, куда все это идет.

И да, еще на счет комитета. Вроде как еще во время работы над C++20 в комитете была создана рабочая группа по тулчейну для C++. Но я не верю в то, что эта группа даст какой-то результат. Скорее мы будем наблюдать за естественной эволюцией и борьбой vcpkg/conan/bazel/bukaroo/cpm и пр.

NB>к чему-то может и придет, но не уверен что к чему-то простому (см. например cmake)


К простому точно не приведет, мы же в C++, здесь просто не бывает. Ну вот вообще никогда
Re[22]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 12.05.22 08:11
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Не приходится в том смысле, как в том же Питоне. Выставляю в cmake С++17 и всё, проект нормально собирается компиляторами, поддерживающими эту опцию.

Похоже, питон так не может. Но никто не мешает установить параллельно старую версию питона. Гемор, не спорю.

N>Нет, я пишу приложения/библиотеки/сервисы, которые оптимизированы под конкретный инстанс

Т.е. пишешь монолит.
Re[16]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 12.05.22 08:15
Оценка: :)
Здравствуйте, so5team, Вы писали:

S>К простому точно не приведет, мы же в C++, здесь просто не бывает. Ну вот вообще никогда


+1

И это imho причина маргинализации C++. Т.е. того, что в нем остались лишь маргиналы.
Re[16]: Оставаться в С++ или уходить?
От: night beast СССР  
Дата: 12.05.22 08:16
Оценка:
Здравствуйте, so5team, Вы писали:

S>И да, еще на счет комитета. Вроде как еще во время работы над C++20 в комитете была создана рабочая группа по тулчейну для C++. Но я не верю в то, что эта группа даст какой-то результат. Скорее мы будем наблюдать за естественной эволюцией и борьбой vcpkg/conan/bazel/bukaroo/cpm и пр.


NB>>к чему-то может и придет, но не уверен что к чему-то простому (см. например cmake)


S>К простому точно не приведет, мы же в C++, здесь просто не бывает. Ну вот вообще никогда


+1
потому в последнее время и посматриваю на раст.
но сейчас в основном работа на питоне идет, так что руки не доходят.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.