Re[2]: Что хорошего в Python-е?
От: Danchik Украина  
Дата: 13.11.18 18:08
Оценка:
Здравствуйте, scf, Вы писали:

scf>Здравствуйте, Shmj, Вы писали:


S>>Java и C# (тем более последний потихоньку портируют на кросс-платформу) — это намного более правильные языки.


scf>Любой серьезный программист обязан знать хотя бы два языка программирования — промышленный, для больших проектов, и скриптовый, для всего остального.


scf>Питон как скриптовый язык в настоящее время может соревноваться только с node.js:

scf>- отсутствие фазы компиляции
scf>- отсутствие статической типизации — можно писать кратко
scf>- мнгновенный запуск и небольшое потребление ресурсов — очень актуально для скриптов по крону
scf>- широкий набор библиотек для всего

Вот опять согласен, только зачем они монстроидальные веб апликации на нем пишут? Я теряюсь в догадках.
Хотя если ты (не вы конкретно) C++ разработчик под Linux, то джаву ты с трудом пойдешь копать. NET Core вот где старт попроще.
Re[3]: Скажем так
От: Ватакуси Россия  
Дата: 12.12.18 11:32
Оценка:
AS>Расскажи как достигнуть огромной скорости разработки? Я честно пытался, но скорость разработки на питоне как минимум на порядок меньше чем на тех же плюсах.
AS>Начинать проект получается резво, а дальше всё начинает вязнуть в дичайшем количестве тесто-кода (рутины). Дойдя до середины проекта понимаешь, что скорость разработки настолько загрузла, что быстрее всё будет бросить и переписать на плюсах. Ибо тогда 99% кодо-тестов просто ненужно, потому что с++ статически типизирован.
AS>Так до конца довести ни один проект на питоне не получилось — тупо жалко столько времени терять на ерунду. Проще сделать на нормальном языке.
Ну, при желании можно любую мысль испортить и что-то там сломать.
Нужно соблюдать равновесие между тестами и кодом. Потом взяв стат. анализатор и используя аннотации ты поймаешь 90% глупых ошибок.

AS>Полезного совета по этому поводу так никто и не дал. Совет — делать часть на плюсах, а остальное на питоне — тоже бредовый (либо от "теоретиков"). Потому что на привязку плюсов к питону тратится больше времени, чем дописать недостающие части на плюсах. Да и вообще деплой зоопарка очень неинтересное занятие.

Не доводить до абсурда и иметь регресиооные и интеграцуионные тесты, а не только юниты.
Нужные QA люди, если программа крупная.

AS>Итого я не вижу применения питону, кроме однострочников, микро-утилит и админства.

Я вообще не вижу смысла писать обработку данных на чём либо ином. Ибо это будет сплошным мучением и вилосипедописательством.
Все будет Украина!
Re[3]: Что хорошего в Python-е?
От: novitk США  
Дата: 13.12.18 19:02
Оценка: +1
Здравствуйте, Danchik, Вы писали:

D>Хотя если ты (не вы конкретно) C++ разработчик под Linux, то джаву ты с трудом пойдешь копать. NET Core вот где старт попроще.


NET Core под Linux вызывает интерес только у NET девов с винды, которые не знают куда им деваться после того как MS сдала сервер. Линуховый плюсовик на нее даже смотреть сейчас не будет и если питончик ему не подойдет, возьмет конечно джаву или какую-нибудь скалу/котлин.
Re[5]: Что хорошего в Python-е?
От: novitk США  
Дата: 14.12.18 16:55
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>А в Питоне каждый тип, начиная с инта, надо превращать в Питоновские объекты с кучей ограничений.

SVZ>Генераторы с этим справляются лишь частично — приходится писать для генератора кучу хинтов. Чтобы получить привычный АПИ надо сперва состряпать маршаллинг во что-то, что в принципе будет понятно Питону, а потом на Питоне написать врапперы, чтобы этим можно было пользоваться.

Ты про ctypes или что-то другое?
Re[2]: Что хорошего в Python-е?
От: rFLY  
Дата: 14.12.18 19:34
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Он умеет откладывать яйца. По-моему, это классно. Какой еще язык программирования умеет откладывать яйца.

С питонихой не путаешь?
Re[6]: Что хорошего в Python-е?
От: Stanislav V. Zudin Россия  
Дата: 14.12.18 19:44
Оценка:
Здравствуйте, novitk, Вы писали:

SVZ>>А в Питоне каждый тип, начиная с инта, надо превращать в Питоновские объекты с кучей ограничений.

SVZ>>Генераторы с этим справляются лишь частично — приходится писать для генератора кучу хинтов. Чтобы получить привычный АПИ надо сперва состряпать маршаллинг во что-то, что в принципе будет понятно Питону, а потом на Питоне написать врапперы, чтобы этим можно было пользоваться.

N>Ты про ctypes или что-то другое?


Не, ctypes это когда надо дёрнуть одну функцию, желательно без параметров

Я про обертки, которые встраиваются в твою dll, дергают функции из Python.h и создают питоновские PyObject'ы.
SWIG худо-бедно справляется с этой задачей, но всё равно приходится ему помогать.
_____________________
С уважением,
Stanislav V. Zudin
Re[7]: Что хорошего в Python-е?
От: novitk США  
Дата: 14.12.18 21:33
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Не, ctypes это когда надо дёрнуть одну функцию, желательно без параметров

Если у тебя C/API использовать надо как раз его. Есть автогенераторы, которые строят все по хедерам. Собственно это и есть аналог матлабовского FFI.

SVZ>Я про обертки, которые встраиваются в твою dll, дергают функции из Python.h и создают питоновские PyObject'ы.

SVZ>SWIG худо-бедно справляется с этой задачей, но всё равно приходится ему помогать.
SWIG nиспользовать стоит только если C++/API. Про cython, boostpython и djinni слышал?
Re[8]: Что хорошего в Python-е?
От: Stanislav V. Zudin Россия  
Дата: 15.12.18 18:01
Оценка:
Здравствуйте, novitk, Вы писали:

SVZ>>Не, ctypes это когда надо дёрнуть одну функцию, желательно без параметров

N>Если у тебя C/API использовать надо как раз его. Есть автогенераторы, которые строят все по хедерам. Собственно это и есть аналог матлабовского FFI.

Я так и не нашел автогенератора, работающего под виндой.
А вручную писать обертки для полторы сотни функций (а ведь потом их придется поддерживать) — проще удавиться.

SVZ>>Я про обертки, которые встраиваются в твою dll, дергают функции из Python.h и создают питоновские PyObject'ы.

SVZ>>SWIG худо-бедно справляется с этой задачей, но всё равно приходится ему помогать.
N>SWIG использовать стоит только если C++/API. Про cython, boostpython и djinni слышал?

СВИГ подходит в первую очередь для Си. В том числе умеет (не известно, насколько хорошо) генерить обёртки для С++.

boostbython — это закат солнца вручную. Нужно оборачивать каждую функцию. Помножаем на число функций и идём за верёвкой и мылом.

cython — это вообще диалект Питона. На мой взгляд, он тут не в кассу. Если пользователь им пользуется, то сможет сам написать обертки.


А что касается djinni, то о чем именно идет речь?
"Hire developers with Djinni"?
Или "Djinni is a tool for generating cross-language type declarations and interface bindings. It's designed to connect C++ with either Java or Objective-C."?
Если второе, то они честно пишут: "Python support is available in an experimental version on the python branch".
Т.е. лет через несколько, если проект не загнется, его можно будет посмотреть.
Ну и опять же, чем оно лучше СВИГа?
_____________________
С уважением,
Stanislav V. Zudin
Re[3]: Что хорошего в Python-е?
От: Андрей Ушаков Финляндия  
Дата: 15.12.18 23:54
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>У него главная проблема, свойственная всем языкам без статической типизации — без подробной инструкции хрен догадаешься, что передавать в параметры. Об ошибке узнаешь только в рантайме.


А Вы читали про type annotations? Pycharm поддерживает, Консольная утилита (mypy) тоже имеется. Иногда, правда, точки зрения этих инструментов расходятся Да еще если разработчики библиотеки удосужились написать docstring'и, то в том же Pycharm'е их можно видеть в отдельном окне просто по установке курсора на класс/функцию.
Re[4]: Что хорошего в Python-е?
От: Stanislav V. Zudin Россия  
Дата: 16.12.18 07:13
Оценка:
Здравствуйте, Андрей Ушаков, Вы писали:

SVZ>>У него главная проблема, свойственная всем языкам без статической типизации — без подробной инструкции хрен догадаешься, что передавать в параметры. Об ошибке узнаешь только в рантайме.


АУ>А Вы читали про type annotations? Pycharm поддерживает, Консольная утилита (mypy) тоже имеется.


type annotations полезная штука, но поздновато появилась. А т.к. она необязательная, то проку от нее как от комментариев — хорошо, если применяется по назначению и горе, если забывают обновлять вместе с кодом.
_____________________
С уважением,
Stanislav V. Zudin
Re[4]: Что хорошего в Python-е?
От: Danchik Украина  
Дата: 17.12.18 21:50
Оценка:
Здравствуйте, novitk, Вы писали:

N>Здравствуйте, Danchik, Вы писали:


D>>Хотя если ты (не вы конкретно) C++ разработчик под Linux, то джаву ты с трудом пойдешь копать. NET Core вот где старт попроще.


N>NET Core под Linux вызывает интерес только у NET девов с винды, которые не знают куда им деваться после того как MS сдала сервер. Линуховый плюсовик на нее даже смотреть сейчас не будет и если питончик ему не подойдет, возьмет конечно джаву или какую-нибудь скалу/котлин.


Или для тех кто начинает работать с Azure.
От заядлого C++ сника и питониста последние 5 лет давиче услышал: «не все так страшно как казалось, сразу заработало и сильно поприятнее Java. И я могу писать в vime. Вместо трассировки меня компилятор потыкал носом в проблемы»
Re[3]: Что хорошего в Python-е?
От: Ватакуси Россия  
Дата: 18.12.18 10:01
Оценка:
D>Вот опять согласен, только зачем они монстроидальные веб апликации на нем пишут? Я теряюсь в догадках.
Веб он весь такой, без привязки к языку.
Если ты про джанго и фласк, то там 80% всего на хтмл-е и ява-скрипте всё равно. Питон нужен только для связки с базой или/и другими системами.
Все будет Украина!
Re[4]: Что хорошего в Python-е?
От: Danchik Украина  
Дата: 18.12.18 11:19
Оценка: +1
Здравствуйте, Ватакуси, Вы писали:

D>>Вот опять согласен, только зачем они монстроидальные веб апликации на нем пишут? Я теряюсь в догадках.

В>Веб он весь такой, без привязки к языку.
В>Если ты про джанго и фласк, то там 80% всего на хтмл-е и ява-скрипте всё равно. Питон нужен только для связки с базой или/и другими системами.

О нет, в моем мире я видел ужас на питоне. И нет это не Javascript, это REST с бизнес логикой на питоне. База данных созданная Django, которая пару лет работала, а потом загибаться начала из-за говнозапросов. Что-то в базе менять — это ганять тесты и проходить ручное тестирование огромнейшего проекта. И они не зря боятся там что-то менять, так как бизнес логика завязана на Django ORM и все полетит к чертям. А как бы все просто было если бы они дотнетовские ORM использовали. Оно бы просто не скомпилилось.

Python 2.6, надо переводить на 3-й, работы куча. Потому что новые либы перестают поддерживать второй. Нужные библиотеки в зародышном состоянии, и иногда с паршивым перформансом.

Я не питонист, но вот насмотрелся. Я им делаю рабочий PoC на .NET за день, а потом они пару недель это имплиментят на питоне. Работает оно потом как правило не < 1сек, а 3-4сек. Да скорее всего уровень питонистов написавших сие не был высок, но такая боль рефакторинга говорит не в пользу подсудимого.
Re[5]: Что хорошего в Python-е?
От: novitk США  
Дата: 18.12.18 14:17
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Или для тех кто начинает работать с Azure.

К Azure сервисам нет Java API?

D>От заядлого C++ сника и питониста последние 5 лет давиче услышал: «не все так страшно как казалось, сразу заработало и сильно поприятнее Java. И я могу писать в vime. Вместо трассировки меня компилятор потыкал носом в проблемы»

Ну не знаю. ИМХО у большинства линуксоидов все, что связано с MS, вызывает отторжение.

Java и С# пахнут для них примерно одинаково — просто и убого, как три копейки. Оставьте такое джамшутам! Настоящим красноглазым плюсовикам имеет смысл посмотреть на Скалу. Там есть любимые натив(и js!) сo стековой аллокацией, неявные преобразования, метапрограммирование, зависимые типу и прочий хаскель. Во время компиляции можно привычно пойти попить кофе.
Re[5]: Что хорошего в Python-е?
От: Ватакуси Россия  
Дата: 18.12.18 17:52
Оценка:
D>>>Вот опять согласен, только зачем они монстроидальные веб апликации на нем пишут? Я теряюсь в догадках.
В>>Веб он весь такой, без привязки к языку.
В>>Если ты про джанго и фласк, то там 80% всего на хтмл-е и ява-скрипте всё равно. Питон нужен только для связки с базой или/и другими системами.

D>О нет, в моем мире я видел ужас на питоне. И нет это не Javascript, это REST с бизнес логикой на питоне. База данных созданная Django, которая пару лет работала, а потом загибаться начала из-за говнозапросов. Что-то в базе менять — это ганять тесты и проходить ручное тестирование огромнейшего проекта. И они не зря боятся там что-то менять, так как бизнес логика завязана на Django ORM и все полетит к чертям. А как бы все просто было если бы они дотнетовские ORM использовали. Оно бы просто не скомпилилось.

Ну, это как бы не так страшно. Если с умом сделано. Если конечно по како-нибудь руководству лабали, таки да, может быть плохо. Но это везде так.

D>Python 2.6, надо переводить на 3-й, работы куча. Потому что новые либы перестают поддерживать второй. Нужные библиотеки в зародышном состоянии, и иногда с паршивым перформансом.

Ну, такое старьё как бы в принципе только проблемы приносит. Если бы ты с 2-го нета (а то и с 1.1) переходил на последний, у тебя бы тоже не сладкая жизнь была бы.

D>Я не питонист, но вот насмотрелся. Я им делаю рабочий PoC на .NET за день, а потом они пару недель это имплиментят на питоне. Работает оно потом как правило не < 1сек, а 3-4сек. Да скорее всего уровень питонистов написавших сие не был высок, но такая боль рефакторинга говорит не в пользу подсудимого.

Ну, это как бы звучит несколько страннова-то. В 100% строго наооборот бывает.
Если конечно ты не про UI говоришь.
Все будет Украина!
Re[6]: Что хорошего в Python-е?
От: Danchik Украина  
Дата: 18.12.18 18:55
Оценка:
Здравствуйте, Ватакуси, Вы писали:

D>>>>Вот опять согласен, только зачем они монстроидальные веб апликации на нем пишут? Я теряюсь в догадках.

В>>>Веб он весь такой, без привязки к языку.
В>>>Если ты про джанго и фласк, то там 80% всего на хтмл-е и ява-скрипте всё равно. Питон нужен только для связки с базой или/и другими системами.

D>>Я не питонист, но вот насмотрелся. Я им делаю рабочий PoC на .NET за день, а потом они пару недель это имплиментят на питоне. Работает оно потом как правило не < 1сек, а 3-4сек. Да скорее всего уровень питонистов написавших сие не был высок, но такая боль рефакторинга говорит не в пользу подсудимого.


В>Ну, это как бы звучит несколько страннова-то. В 100% строго наооборот бывает.

В>Если конечно ты не про UI говоришь.

Я не упоминал UI тут. Ну вот честно, как может питон соревноваться с .NET в скорости вычитки из базы данных? Никак, и джава пасет задних с тем же успехом. Ни у одно ни у другого нет компиляции кода налету, что дает возможность сделать максимально эффективный маппер.
Re[7]: Что хорошего в Python-е?
От: Ватакуси Россия  
Дата: 18.12.18 19:39
Оценка:
В>>Ну, это как бы звучит несколько страннова-то. В 100% строго наооборот бывает.
В>>Если конечно ты не про UI говоришь.

D>Я не упоминал UI тут. Ну вот честно, как может питон соревноваться с .NET в скорости вычитки из базы данных? Никак, и джава пасет задних с тем же успехом. Ни у одно ни у другого нет компиляции кода налету, что дает возможность сделать максимально эффективный маппер.


Я так понял, ты писал про скорость разработки. Причём тут компиляция?
Питон из того же Постгреса читает через драйвер, конечно же.
Который на ц++ или просто ц написан.
Все будет Украина!
Re[8]: Что хорошего в Python-е?
От: Danchik Украина  
Дата: 18.12.18 20:39
Оценка:
Здравствуйте, Ватакуси, Вы писали:

В>>>Ну, это как бы звучит несколько страннова-то. В 100% строго наооборот бывает.

В>>>Если конечно ты не про UI говоришь.

D>>Я не упоминал UI тут. Ну вот честно, как может питон соревноваться с .NET в скорости вычитки из базы данных? Никак, и джава пасет задних с тем же успехом. Ни у одно ни у другого нет компиляции кода налету, что дает возможность сделать максимально эффективный маппер.


В>Я так понял, ты писал про скорость разработки. Причём тут компиляция?

В>Питон из того же Постгреса читает через драйвер, конечно же.
В>Который на ц++ или просто ц написан.

И про скорость разрабоки и исполнения. Ну что вы в самом деле. К черту что там внутрях написано на cpp. Я вам говорю что .NET рантайм дает возможность налету, во ВРЕМЯ ИСПОЛНЕНИЯ, создавать код который подхватывается Jit, который это преобразует в машинные кода и аккуратненько вкладывает данные в обьекты без потерь, как будто бы вы руками это писали на cpp, и даже иногда быстрее. Это на тысячах записей дает ощутимый прирост в скорости. На питоне у вас еще прослойка транслятора, динамический маппинг. На джаве это рефлекшин, со всеми вытекающими тормозами.

Давайте я вам схематисески обьясню что там происходит в ручном варианте

while (reader.Read())
{
   list.Add(
      new SomeEtity
      {
         SomeId = reader.GetInt(0),
         SomeNullableId = reader.IsNull(1) ? null : reader.GetInt(1),
         SomeStr = reader.IsNull(2) ? null : reader.GetString(2)
         /// и так далее
      }
}

И вот весь код начиная с new SomeEntity генерится налету и аккуратно превращается в машинные кода.
В языках типа питон, джава и других это дело надо исполнять динамически на кажный обьект со всеми накладными расходами.
Re[9]: Что хорошего в Python-е?
От: Ватакуси Россия  
Дата: 19.12.18 09:44
Оценка: -1
D>И про скорость разрабоки и исполнения. Ну что вы в самом деле. К черту что там внутрях написано на cpp. Я вам говорю что .NET рантайм дает возможность налету, во ВРЕМЯ ИСПОЛНЕНИЯ, создавать код который подхватывается Jit, который это преобразует в машинные кода и аккуратненько вкладывает данные в обьекты без потерь, как будто бы вы руками это писали на cpp, и даже иногда быстрее. Это на тысячах записей дает ощутимый прирост в скорости. На питоне у вас еще прослойка транслятора, динамический маппинг. На джаве это рефлекшин, со всеми вытекающими тормозами.
Тема скорости разработки на C# не раскрыта. Ты первый кто заявил о превосходящих возможностях C#

D>Давайте я вам схематисески обьясню что там происходит в ручном варианте


D>
D>while (reader.Read())
D>{
D>   list.Add(
D>      new SomeEtity
D>      {
D>         SomeId = reader.GetInt(0),
D>         SomeNullableId = reader.IsNull(1) ? null : reader.GetInt(1),
D>         SomeStr = reader.IsNull(2) ? null : reader.GetString(2)
D>         /// и так далее
D>      }
D>}
D>

D>И вот весь код начиная с new SomeEntity генерится налету и аккуратно превращается в машинные кода.
D>В языках типа питон, джава и других это дело надо исполнять динамически на кажный обьект со всеми накладными расходами.
В курсе про PyPy, Cython? Питоны они разные бывают.
Во-вторых, далеко не всегда нужно перегонять в объекты. В последнее время вообще не нужно. Сразу из бызы в json и на клиента.
Все будет Украина!
Re[10]: Что хорошего в Python-е?
От: Danchik Украина  
Дата: 19.12.18 19:59
Оценка:
Здравствуйте, Ватакуси, Вы писали:

D>>И про скорость разрабоки и исполнения. Ну что вы в самом деле. К черту что там внутрях написано на cpp. Я вам говорю что .NET рантайм дает возможность налету, во ВРЕМЯ ИСПОЛНЕНИЯ, создавать код который подхватывается Jit, который это преобразует в машинные кода и аккуратненько вкладывает данные в обьекты без потерь, как будто бы вы руками это писали на cpp, и даже иногда быстрее. Это на тысячах записей дает ощутимый прирост в скорости. На питоне у вас еще прослойка транслятора, динамический маппинг. На джаве это рефлекшин, со всеми вытекающими тормозами.

В>Тема скорости разработки на C# не раскрыта. Ты первый кто заявил о превосходящих возможностях C#

Да C# с его библиотеками и нововведениями языка дает мне быструю скорость разработки. Если не прыгать по антипаттернам, то все также как на питонируемом движке.

D>>Давайте я вам схематисески обьясню что там происходит в ручном варианте


В>В курсе про PyPy, Cython? Питоны они разные бывают.

В>Во-вторых, далеко не всегда нужно перегонять в объекты. В последнее время вообще не нужно. Сразу из бызы в json и на клиента.

Да, это мощно, загрузить базу сериализацией в придачу с увеличением траффика. Когда можно наставить кучу серверов которые будут это дело сами делать разгрузив RDBMS от рутины.
И что эти ваши версии питона генерят машинные кода под маппинг в рантайме? Хотелось бы увидеть пруфы.
И что это за дело: пишем, пишем, тупит — надо на CPython переходить, со всемы вытекающими нюансами (мои предположения как не питониста).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.