thevlad
у тебя хорошие знания по пайтону - что делаешь ?
Zefick
> интерпретатор питона написан почему-то всего-лишь на Си.
Мне Си-языки напоминают времена Internet Explorer, когда его запускали что бы скачать более вменяемый браузер. Аналогично Си языки нужны для того что бы написать более комфортный для программирования язык.
innuendo
> у тебя хорошие знания по пайтону - что делаешь ?
дата сайнсом балуюсь за деньги
what's yo numba?
thevlad
> дата сайнсом балуюсь за деньги
и сколько пришлось переписывать на сипипи ?
innuendo
>и сколько пришлось переписывать на сипипи ?
а смысл переписывания? во фреймворках(PyTorch/TensorFlow) все на GPU/CUDA гоняется, а сверху пользователю дается лишь орхестратор над всем этим, для которого скорость особо не важна, за исключением подготовки данных, но там тоже большинство уже готовое, из библиотек написанных на С/С++. Переписывание только на мобилках имеет некоторую, ограниченную актуальность, да и то со временем все меньше и меньше. Можно из любого фрэймворка конвертнутся(через ONNX) в https://www.tensorflow.org/lite/performance/delegates#delegates_by_platform
Те кто гоняет совсем на embedded платформах типа Jetson Nano то да, часто пишут все на плюсах, но это просто потому, что сама нейронка, лишь малая часть разработки, а так же важен риалтайм.
thevlad
> но там тоже большинство уже готовое, из библиотек написанных на С/С++.
и какой процент соотношения пайтон сипипи?
innuendo
Зависит от проекта, если не на мобилках, то обычно 100% на питоне. Другой вопрос что если брать в учет код ключевых библиотек, то там вес C/C++ значительно больше, наверное процентов 80, это собственно ответ на вопрос почему питон, который не может эффективно запускать плюсовые биндинги - никому не нужен. Если на мобилках то какая-то небольшая часть интерфейса к моделькам + JNI в java/kotlin пишется на плюсах. Хотя есть большие конторы, где по хардкору свои нейросетевые движки для инференса пишут(хотя их сейчас как грязи), например для айфонов чтобы на metal запускалось как им надо. Но сейчас уже почти на всех современных смартфонах, есть интерфейс к NPU(neural processing unit) который прибит гвоздями, это NNAPI на андройде и CoreML на айфонах.
NetSpider
> Аналогично Си языки нужны для того что бы написать более комфортный для
> программирования язык.
В этой статье предлагается использовать Си, как промежуточный язык на который можно сгенерировать произвольный хоть с помощью Питона, а потом провести компиляцию и отладку.
Cи в роли промежуточного языка https://habr.com/ru/company/ruvds/blog/589839/
KPG
> использовать Си, как промежуточный язык
Иногда очень хочется писать на «х», потом транслировать его в «у», потом из «у» получить готовый продукт. А получается всегда «й».
Ghost2
> Иногда очень хочется писать на «х»,
Встраивание "x" в "y" для пoлучения "й" довольно популярный подход,
а также реализация "x" на "y" для получения "й".
Вот прямые транспиляции "x" -> "y" для получения "й" уже менее популярно.
P.S. А, получить "й" можно и в рамках использования только "x" :)
Ghost2
> Иногда очень хочется писать на «х», потом транслировать его в «у», потом из «у»
> получить готовый продукт. А получается всегда «й».
100% оптимизирующих компиляторов проводят оптимизации на языке "у". А у некоторых между "у" и "й" есть ещё и четвёртый язык "я". А вот где промежуточных нет - это в чистых интерпретаторах, типа CPython и PUC Lua - там сурс в один проход превращается в байткод, и затем этот байт-код сразу интерпретируется без всяких дополнительных преобразований.
Получается, компиляция - для геев, а настоящие натуралы пользуются только скриптами и пьют смузи?
Имбирная Ведьмочка
Ты не сравнивай цель и средство. Тот же CPython транслируется, почему то, не в C.
0iStalker
> С++ нормальный язык, откровенный говнокод он даже не скомпилирует, в отличии
> от питона.
Foo* foo = reinterpret_cast<Foo*>(intValue);
это хороший код ?
0iStalker
> С++ нормальный язык, откровенный говнокод он даже не скомпилирует, в отличии
> от питона.
Критерии "откровенного говнокода"?
delete this; - это говнокод?
Ручные аллокации - это говнокод? А если со встроенными утечками?
А многопоточка на volatile - это не откровенный говнокод? Говнокод, но только скрытный?
Только не говори, что "откровенный говнокод - это настолько плохой, что даже компилятор крестов отказывается его воспринимать".
innuendo
Тут программист явно пишет "буратино_каст", так не считается.
Тема в архиве.