Доступен (http://www.mail-archive.com/python-announce-list@python...) выпуск Cython 0.25 (http://cython.org/), компилятора для языков Python и Cython. Язык Cython является расширенным вариантом языка Python, нацеленным на упрощение интеграции с кодом на языке Си и позволяющим создавать расширения на языке Си для проектов на языке Python так же просто, как писать код на Python. Cython расширяет возможности Python средствами для прямого вызова функций на языке Си, поддерживает определение переменных с типами языка Си и позволяет компилировать итоговый код на языке Cython в представление на языке Си, которое затем собирается штатным системным компилятором.
Основные новшества:- Ускорен вызов функций Python, благодаря задействованию FastCall-оптимизаций, добавленных для CPython 3.6;
- Добавлена поддержка системы сборки bazel (https://www.bazel.io/);- Начальная поддержка использования модулей Cython в Pyston (https://www.opennet.dev/opennews/art.shtml?num=44789), реализации языка Python с JIT-компилятором;
- Реализованы классы C++, которые могут осуществлять прямые вызовы основных методов класса;
- Добавлена директива cython.no_gc, позволяющая отключить сборщик мусора для классов cdef;- Проведена оптимизация целочисленных операций и функции cython.inline();
- Добавлена поддержка C++ оператора typeid;- В классы cdef добавлены методы def/cpdef, поддерживающие интроспекцию и построчное профилирование;
- Обновлено расширение Cython.Distutils.build_ext, которое теперь использует команду cythonize, корректно обрабатывающую зависимости. Старый вариант расширения объявлен устаревшим, но пока доступен как Cython.Distutils.old_build_ext.
URL: http://www.mail-archive.com/python-announce-list@python...
Новость: http://www.opennet.dev/opennews/art.shtml?num=45378
А есть ли примеры его практического применения (в продакшене) в серьезных проектах? Вопроса без подкола и без издевок.
Ога, гугл и дропбокс перешли, кто на rust, кто на go. Типичный success story питона в эти дни.
уровни сравни где го/раст и где питон. Одно для опытных другое для начинающих. Мои симпатии к pypy
Вот и я не понимаю, зачем питон тащать в продакшен
Нет.
> уровни сравни где го/раст и где питон. Одно для опытных другое для начинающих.Ну ты сам все про продакшны сказал. Нубам в больших продакшнах не место :).
Как тут многие любят бросаться этим словом "продакшен". ХЗ что означает, но зато как круто звучит и поднимает ЧСВ.
Python исключительно для начинающих говорите? А что же его тогда так любят математики и теорфизики? NumPy, SciPy, Matplolib тому примеры.
>А что же его тогда так любят математики и теорфизики?Где ты видел математиков и физиков, которые умеют программировать? Они в большинстве своём такой быдлокод хреначат, что код индийских математиков граничит, вероятно, с абсолютным злом.
Касательно программирования математики и физики "начинающие".
Математики и физики, умеющие программировать мне встречались чаще, чем программисты, умеющие читать и понимать чужой код.> Они в большинстве своём такой быдлокод хреначат
Поверьте, ваши навыки кодера не настолько уникальны - всему этому очень легко научиться, в отличие от специальных знаний.
> Где ты видел математиков и физиков, которые умеют программировать?На физическом факультете, где когда-то учился, в НИИ, где после этого работал. В других организациях, где доводилось бывать в то время. Поверьте, для физика или математика научиться программировать не составляет никакой проблемы.
Отвечу как океанолог : любим патамуша не дали денег на Matlab. А иначе мы к этому гнусному поделию и не прикасались бы !
Ага, Matlab - вершина совершенства, ога. :))
go проще питона
Продакшн и Python вещи не совместимые. Жаль многие этого не понимают и миллионы людей потом страдают от тормозов и зависаний того, что не должно было выйти за пределы школьной лабы.
Cython используют такие известные питоновские либы и проекты, как lxml, numpy, scipy, pandas, sage
И всё это от безысходности, надо заметить
Cython на всю катушку используют в SageMath. Доложите, пожалуйста, что для вас "продакшен" - вконтактик?
> Cython на всю катушку используют в SageMath. Доложите, пожалуйста, что для
> вас "продакшен" - вконтактик?SageMath наверное все-таки ближе к исследователям и лабам чем к продакшнам. А лабы и исследователи какое только гхэ не используют, от вольфрама до лабвью.
> продакшнамШто это? Таки вконтактик?
Что угодно, вконтактик тоже подойдет, либо какие-то библиотеки которые часто и широко применяются (как, например, Qt или проект Electron). Есть исследовательские проекты, есть проекты "just for fun", много можно придумать категорий. Просто было интересно увидеть какие-то сферы, которые наиболее просто оценить не знающему Cython человеку и понять область его применения. Если сузить категорию, то да, крупные компании/средние, которые применяют язык/проект для каких-то значительных продуктов, которые доступны широкому кругу пользователей. Скорее даже примеры использования.
> Что угодно, вконтактик тоже подойдет, либо какие-то библиотеки которые часто и широко
> применяются (как, например, Qt или проект Electron)Тогда таки чем вам SageMath не угодил? Применяется Cython там строго по назначению (о котором имеет смысл осведомляться на cython.org).
Вот на вскидку что собирается при помощи cython в портах FreeBSD: http://www.freshports.org/lang/cython (смотрите раздел "This port is required by: for Build"). Мы в "продакшене" используем собранный им py-libzfs.Вообще cython идеален для быстрого написания python-биндингов к сишным либам. Это в сотни раз проще, чем писать биндинг с использованием стандартных средств python. Причем cython можно натравить на либу, он интроспектирует ее (на основе include файлов) и собирает начальный уже работащий проект, который экспортирует функции, доступные для вызова из python. Остается дописать/поправить сгенерированные им функции.
Это расплата за всеобъемлющую универсальность.Радует другое: куча профессионального свободного ПО все шире интегрирует API для использования вместе с Python: Blender, GIMP, InkSacpe, Reaper, OpenOffice. LibreOffice итд итп.
Лично мне приятно что почти каждый мой административный или субд-шный скрипт (~1k строк кода), переписанный с BAT/VBS/WSH/PowerShell/BASH на самый обычный Python - работает в среднем в 8-10 раз быстрее (вместо минут - секунды).
Посему за cython, pypy, jit-ы и прочую возню не переживаю: даже если они что-то сделают плохо - хуже никому не будет.
Только сменой языка получаешь на порядок быстрее скрипт ?Это в какой вселенной ты живёшь ?
> Лично мне приятно что почти каждый мой административный или субд-шный скрипт (~1k строк кода), переписанный с BAT/VBS/WSH/PowerShell/BASH на самый обычный Python - работает в среднем в 8-10 раз быстрее (вместо минут - секунды).Это ж как надо "хорошо" на баше писать, чтобы питон его потом обогнал. :)
Секрет скорости Python, по сравнению с другими скриптовыми языками и Башем в частности - в использовании байт-кода и высокоуровневых библиотек: re, sqlite3 итп. А также в богатстве встроенной библиотеки. И это еще без многопоточности и прочих ускорялок.
> Секрет скорости PythonНасмешил.
> по сравнению с другими скриптовыми языками и Башем в
> частности - в использовании байт-кода и высокоуровневых библиотек: re, sqlite3 итп.
> А также в богатстве встроенной библиотеки.Ну нашёл, с кем соревноваться. Комбайн с тяпкой сравнил. Ты выйди сначала со своей змеюкой к Perl-у, и попробуй ему сказать то же самое. :)
Я не "соревновал" Python с BASH, а лишь констатировал факт.
Другие товарищи считают что Bash априори быстрее.Про Perl уверен - в скорости он будет если и лучше, то ненамного.
Код будет компактней на Python. Скорость разработки для меня важнее скорости выполнения.Вот еще затравка: код на VBS - 5 кБ, время написания 15 часов. Аналог на Python - 1 кБ, время написания 3 часа. На Perl не пишу, может кто сравнит.
> Я не "соревновал" Python с BASH, а лишь констатировал факт.
> Другие товарищи считают что Bash априори быстрее.Ну выглядело-то это как заявка на серебяную пулю.
> Про Perl уверен - в скорости он будет если и лучше, то ненамного.
В задачах обработки текста довольно-таки намного. Сто раз уже сравнивалось.
> На Perl не пишу... Код будет компактней на Python.
Смелые выводы. Я вот уверен в обратном. Впрочем, это наверное потому, что я мало писал на Python и много на Perl, а Вы - наоборот.
> Это расплата за всеобъемлющую универсальность.Делать все, одинаково хреново. Вариант.
А тем временем в LibreCAD 3 отказались от Python в пользу Lua.
> А тем временем в LibreCAD 3 отказались от Python в пользу Lua.
> http://github.com/librecad/librecad_3И это надо приветствовать! Грустно было бы - если бы они совсем убрали макросы. Lua хороший язык, близок к змеюке. На как 1С-ник скажу - 5% времени кодинга тратятся на ;
> А тем временем в LibreCAD 3 отказались от Python в пользу Lua.
> http://github.com/librecad/librecad_3И это надо приветствовать! Грустно было бы - если бы они совсем убрали макросы. Lua хороший язык, близок к змеюке. На как 1С-ник скажу - 5% времени кодинга тратятся на ;
> позволяющим создавать расширения на языке Си для проектов на языке Pythonкостылек - Костылище
питонисты смешные
варят кашку, и Си сдобрят, и С++
Си нынче стильно, модно, молодежно. Питонисты чеж, левые что ли? Вливаются потихоньку
> Си нынче стильно, модно, молодежно. Питонисты чеж, левые что ли? Вливаются потихонькуТак питонисты и туда вливаются как-то по левому. Лучше в яваскрипт компилить, он ближе питонистам по духу, потому что там тоже все делают через то самое место.
Вот тут зацепили слово "продакшен". А как вам вот Это:- 1500 независимых разработчиков;
- программное обеспечение загружается 1000 раз в день;
- 4000 программных модулей, разработанных независимыми разработчиками;
- в 120 странах существуют компании-партнёры, занимающиеся внедрением системы.Это ПО написано на Python, и это ПО отвоевало у компании SAP 30% рынка, в деньгах - 1,5 млрд. долларов. Точнее уменьшило их выручку на эту сумму, потому что как почти всё, написанное на Python, - свободно.
Вот это - продакшн и серьезный проект. Впрочем, если вернуться по времени к змеиным временам "корпорации добра" - молчали все в тряпочку. Потому что унижать 4/5-й по популярности язык программирования - популярно. Но недостойно айтишника. Просто не к лицу ему.
А что за ПО, если не секрет?
> А что за ПО, если не секрет?Предположил бы, что Odoo, но она очень даже небесплатная, а с версии 9 - ещё и огороженная по самое небалуй.
>> А что за ПО, если не секрет?
> Предположил бы, что Odoo, но она очень даже небесплатная, а с версии
> 9 - ещё и огороженная по самое небалуй.YetAnotherOnanym - это да, ODOO. И она имеет бесплатную открытую Community-версию. Проект с недавних пор разделен. Большинство модулей имеют лицензию AGPL-GPL-LGPL. Платные - только небольшие фильтры и экзотика. Всё это можно написать самому.
Миллиарды долларов, я вижу, никого уже не впечатляют. Тема продакшн-непригодности не сходит с уст прогрессивного человечества... :-)
- миллионы мух
> Это ПО написано на Python, и это ПО отвоевало у компании SAP 30% рынкаЭскобар.jpg
А чё редакторы забили новости про NUITKA кидать? Последняя 2015 г., а с тех пор Нуитка хорошо продвинулась, и на мой взгляд намного эффективнее чем все остальные, если нужно вытянуть из питон программы максимум производительности.
Думаю, проблемы повышения производительности программ на Python - в большинстве случаев надуманны. Уверен что оптимизация алгоритмов и перенос части работы в более подходящие python-библиотеки - даст сопоставимый с тяжелой артиллерией эффект (чем распараллеливание, вынос кода в си-библы, задействование GPU итп).Пример ускорения кода по сравнению с BAT/VBS/WSH/PS я привел, и ведь на моих сисадминов это никакого влияния не произвело: административные скрипты, на 80% взятие из Интернета они переписывать не будут даже из-за кратного роста скорости.
"Быстрота" нужна в очень ограниченном круге задач (процессинг итп), но там скорее нужна realtime os, где все упомянутые ЯП идут лесом. Но и здесь хватает субъективизма: обычный CPython обеспечивает опрос 5 сенсоров с интервалом в 100 миллисекунд на Pi2, ежеминутно скидывает дамп в память, крутит web-сервер, делает фото и рассылает почту с ними. Я себе плохо представляю ЯП и задачу, которую нельзя реализовать на змеюке так, чтобы не захотелось ее переписать на другом, более быстром ЯП.