Представлен (http://nuitka.net/posts/nuitka-release-0517.html) новый выпуск проекта Nuitka (http://nuitka.net/), в рамках которого развивается компилятор, позволяющий транслировать скрипт на языке Python в представление на C++, которое затем можно скомпилировать в исполняемый файл, использующий libpython для обеспечения максимальной совместимости с CPython (используются штатные средства CPython для управления объектами). Обеспечена полная совместимость с актуальными выпусками Python 2.x и 3.x. По сравнению с CPython скомпилированные скрипты демонстрируют (http://nuitka.net/pages/overview.html) в тестах pystone повышение производительности на 258%. Код проекта распространяется под лицензией Apache. Ключевыми улучшениями новой версии является обеспечение полной поддержки Python 3.5 и сопрограмм, добавление новых оптимизаций, а также улучшение реализации генераторов.
URL: http://nuitka.net/posts/nuitka-release-0517.html
Новость: http://www.opennet.me/opennews/art.shtml?num=43600
Щас у питонохейтеров пукан разорвет.
Скорее у питонфанбоев, потому что ху^Wнуитка это признание тормознутости питона.
> нуитка это признание тормознутости питона.А picoc и tcc – это признак чего?
А что с ними не так?
> А что с ними не так?А если подумать? Каким боком вообще компилятор к языку относится?
>А если подумать?Не зарывайся! Ты на опупнете! Иш чего захотел - подумать! 8-/
Т.е. если выпускник ПТУ Вася наваял кАнпилятор в C++ - это каким-то
образом касается питона?ЗЫ:
This is a personal blog, running on my personal machine.
А Вы это про МГУ?
Леонардо да Винчи и Архимед там не учились, это им не мешало.
>А Вы это про МГУ?Это он про выпускников технических университетов-пту, почти в каждой новости упоминает их.
У него просто болезненная фиксация на этом. Возможно он учился в пту и не смог освоить программирование
Это я про автора блога.
А вы думаете МГУ чем-то лучше ПТУ?
Раньше там точно также приплюснутым мозги детям портили,
называя это информатикой. Так шта...
Зато сейчас там мозги выпрямляют вордо-екселем. Пользы больше, ага.
> Скорее у питонфанбоев, потому что ху^Wнуитка это признание тормознутости питона.Все знают, что он медленнее по определению (а также проще, быстрее разработка и многое еще). А если кто-то на это тыкает пальцем и смеется, то это говорит об интеллекте кого-то...
>Все знают, что он медленнее по определению*лядь.
Медленнее чего?
>>Все знают, что он медленнее по определению
> *лядь.
> Медленнее чего?Большой "прикладной" тройки - С++, С#, Java.
Я, конечно, понимаю, что тут опеннент, но всё-таки как насчёт пруфов? Вот порог вхождения в Java или C++, он выше гораздо. Но никак не возьму в толк как синтаксис связан со скоростью разработки?
Никак. На скорость разработки влияет главным образом наличие необходимых библиотек и, возможно, система типов. Питонисты по большей части школьники, не знают про Qt, Boost и т.д.
Всё относительно. В самих C++ и Java много направлений в которых можно работать и у каждого свой уровень сложности. Выучить язык не трудно. Но для программирования на нём нужно знать алгоритмы, структуры, паттерны, особенности операционных систем, особенности CPU/GPU/др.устройств, инструменты разработки (некоторые из которых по сложности не уступают самому языку).
И не просто знать, а уметь правильно применять, знать где и что лучше применить. Знать, где почитать о новых багах и недоработках неисправляемых годами, чтобы использовать костыль (как все).
А если ещё вспомнить о проектах на которых обычно применяется язык/инструмент определенной версии и никто его не будет менять на более удобный потому что нету времени/денег на переписывания кода? То есть можно сколько угодно знать Java 8, но на работе будет Java 6.1.1. И не дай бог ты её поменяешь на 6.2! Если проект выкинет ошибку не на этапе тестировани, а через дня работы в реале - полетишь с работы.
> В самих C++ и JavaПоставить жабу вровень с плюсами мог только питонист, для которого даже жаба слишком сложна.
> Выучить язык не трудно.
Но питонисты и этого не осиливают.
> Но для программирования на нём нужно знать алгоритмы, структуры, паттерны, особенности
> операционных систем, особенности CPU/GPU/др.устройств, инструменты разработки (некоторые
> из которых по сложности не уступают самому языку).
> И не просто знать, а уметь правильно применять, знать где и что
> лучше применить.Бред жабисто-питонистов. Это им приходится извращаться, т.к. их недоязычки не позволяют писать по настоящему быстрый софт. Хотя и это особо не помогает – Ubuntu Software Center так и неосилили, а все туда же, в программисты лезут.
А вот нормальный человек просто выучит за пару-тройку лет С++ и горя знать не будет!
Подписываюсь. Для прикладного уровня есть Java, С# и функциональные надстройки - Scala и F#.
Для системы есть С, для микса системы с аппликухой - C++.Все. С прямыми мозгами их осилить проще, после чего иметь универсальный подход, чем скакать по 100500 скриптовых языков и упираться в их ограничения, вытекающие из BASIC-овости.
> Но для программирования на нём нужно знать алгоритмы, структуры, паттерны, особенности операционных систем, особенности CPU/GPU/др.устройств, инструменты разработки (некоторые из которых по сложности не уступают самому языку).Не правда. Нужно знать синтаксис и как открыть документацию. Все базовые алгоритмы и структуры давно реализованы, для использования достаточно ctrl+c, ctrl+v.
> Знать, где почитать о новых багах и недоработках неисправляемых годами, чтобы использовать костыль (как все).За всю свою карьеру ни разу не сталкивался с "багами и недоработками с++, неисправляемыми годами", если так вообще корректно говорить. Если вы про Qt, то это как минимум с версии 4.8 уже очень сомнительное утверждение.
> А если ещё вспомнить о проектах на которых обычно применяется язык/инструмент определенной версии и никто его не будет менять на более удобный потому что нету времени/денег на переписывания кода?Вы про с++11? Какие глупости. Зачем это делать?
>> То есть можно сколько угодно знать Java 8, но на работе будет Java 6.1.1. И не дай бог ты её поменяешь на 6.2! Если проект выкинет ошибку не на этапе тестировани, а через дня работы в реале - полетишь с работы.- Вы явно никогда не работали с Java. Версий 6.1.1 и 6.2 нет в природе, обратная совместимость между JDK 8 и JDK 6 практически полная и редкие нестыковки решаются через endorsed.
> Я, конечно, понимаю, что тут опеннент, но всё-таки как насчёт пруфов? Вот
> порог вхождения в Java или C++, он выше гораздо. Но никак
> не возьму в толк как синтаксис связан со скоростью разработки?"Порог выхода" из гов^Wгвидобейсика значительно выше и тяжелее, чем "порог входа" в C++.
> "Порог выхода" из гов^Wгвидобейсика значительно выше и тяжелее, чем "порог входа" в
> C++.Смело задирай последний в бесконечность - после более-менее нормального языка на C++ никто
в здравом уме и трезвой памяти и не взглянет.
Я начинающий питонист, и у меня бомбануло. Просто от того, что я этого не знал :)
Да ни у кого ничего не разорвёт. Как-то пробовал код для вычислений с NumPy прикрутить к JIT компиляторам, оказалось что все эти компиляторы - набор костылей и так ничего завести не получилось. Что Nuitka, что Numba. В PyPy поддержки NumPy для Python3 нет вообще. Хотя оно выглядит самым нормлаьным. Плюнул и переписал на матлабе.
> В PyPy поддержки NumPy для Python3 нет вообще.Поддержку py2 в своем "коде для вычислений" - не осилили?
> Плюнул и переписал на матлабе.
Чем бы дитя не тешилось...
Согласитесь, выглядит странно. Простое портирование кода, чтобы он стал совместимым
с py2 - выглядит куда проще. Для "вычислений" - это куда проще чем для среднестатистической
программы/библиотеки.Че-т не так с кодом, я бы предположил.
Так-то двойка уже неактульна, а за н лет можно быо все эти компиляторы для тройки доработать.
>Так-то двойка уже неактульна,Поддержка до 2020 года.
Так чего же тебе, собака, ещё надо?(С)Иван наше всио Васильевич>а за н лет можно быо все эти компиляторы для тройки доработать.
Ну так а чего же _ТЫ_ не сделал? Работай над собой.
А он должен был сделать? Ты ему денег что ли за это заплатил? Странные претензии на пустом месте.
Любопытно можно ли закомпилять, скажем, проект на Джанго? Или на Флэске? Если да, то это открывает интересные перспективы.
> Любопытно можно ли закомпилять, скажем, проект на Джанго? Или на Флэске? Если
> да, то это открывает интересные перспективы.А почему бы просто на С/С++ их сразу не написать?
Есть фреймворки уровня Flask или Django на C/C++?
Конечно, на С целые ОСи пишут, дрова и прошивки. Какие-то там флажки - говор вопрос.
Потому что в одной строчки кода python(bash,sh,ruby...) больше духа Unix чем в 10000 строк кода Cи.
Т.е. линукс юниксом не пахнет совсем-совсем?
http://www.catb.org/esr/writings/unix-koans/ten-thousand.html
"но только глупец стал бы тратить время на подобное, когда его ожидает столько куда более важных задач." Эрик Реймондперевод http://habrahabr.ru/post/273023/
Забавная ссылочка. Я и не знал, что этих "анекдотов" так много...
И как обычно - бред
И как обычно - попоболь
Бреда больше.Просветление путают с пониманием. Коаны с притчами. Факты перевираются. Много просто бездоказательных оскорблений.
Взять первый "коан" с хабра: документация для подготовке к сертификации MSCE полностью открыта. Даже больше, если пойти на принцип, то можно получить название книги, номер страницы и строки в которой дан ответ на каждый из вопросов экзаменационного теста. Linux до такого уровня документации ещё расти и расти.
А можно открыть исходник и почитать как работает linux на примере и ДАЖЕ подправить. А в m$ так можно?
> А можно открыть исходник и почитать как работает linux на примере и
> ДАЖЕ подправить. А в m$ так можно?Такого вопроса нет в его экзаменах. Не отвлекай илиота от заучивания номеров страниц и строк.
Если компания требует от сис. админа дебажить и программить ОС и драйвера, это гнилая компания и оттуда лучше бежать подальше.
> Если компания требует от сис. админа дебажить и программить ОС и драйвера,
> это гнилая компания и оттуда лучше бежать подальше.Если сисадмин зубрит номер страниц "для экзаменов" - пусть бежит, в ужасе.
Сис. админ не умеет "дебажить" и никто его заставлять не будет - это делают высококвалифицированные программисты и инженеры. Linux != OS, о великий [s]мудрец[/s] клоун.
Нет, нельзя. Но это и не нужно.Вы путаете админов с программистами.
Также, вы наивно полагаете, что любой программист (штатный 1С-ник, хе-хе) сможет без подготовки и за короткое время разобраться в исходных кодах операционной системы просто потому, что он программист и он может.
Linux != OS. Истинный программист изначально знает систему в которой он работает! Чтобы администрировать систему нужно знать как она работает. В m$ ты не сможешь изменить ничего и не имеешь на это право, знаешь как оно работает только по слухам... Штатный 1С-ник, хе-хе, не сможет выучить и сдать экзамены MSCE, за короткое время, без подготовки.
Добавлять надо - с точки зрения пользователя-человека, залогинившегося в этот Unix.Потому что это верно для всяких пользовательских скриптов. А как только эта строчка начинает крутиться в каком-то цикле - ситуация "вдруг" начинает меняться.
дружище, BSD бородатые дядьки написали за 2 месяца. Вот где этот дух в пайтоне?)
> А почему бы просто на С/С++ их сразу не написать?Возможно, потому что "эксперты" (количество коих необъяснимым образом увеличивается в несколко раз во время каникул) почему-то не спешат делом показать "как надо правильно"?
Странная закономерность, почему-то пользователи с никами Нимано и myhand всегда появляются в новостях про Python, при этом оба пишут очень похожие и явно предвзятые комментарии в защиту Python, похоже троллят и главное постоянно от них что-то слышно либо про школьников, либо про выпускников технических университетов-пту.
Явный жидомасонский заговор же. Поговори с Шигориным - найдешь родственную душу.
Шигорин давит М$ ботов и щырных. Ты к которым относишься?
> Шигорин давит М$ ботов и щырных. Ты к которым относишься?Ну, поскольку масоном, жидом, и бандеровцем меня уже
называли - видать щырный жидобандеровец.
> Явный жидомасонский заговор же. Поговори с Шигориным - найдешь родственную душу.Вы явно зациклились на своем жидомасонский заговоре в каждой теме.
Странная закономерность, почему-то в любой новости про Python появляются "эксперты", про питон знающие только то, что "оно тормозит" и "С++ в 100500 раз лучше!".
При этом так же регулярно и авторитетно делаются заявления, что "нужно переписать/сделать на Ъ-языге", т.к. "питон только для неосиляторов плюсов!".
Однако, дальше балабольства дело так и не заходит. К чему бы это?
> К чему бы это?Ни к чему.
Это современный интернет детка. Тут слова и буквы _НЕ_ служат для передачи мыслей :-)
Ну вы еще скажите что питон не тормозит. Для питона факт тормознутости уже давно стал аксиомой, ибо доказывался не одну тысячу раз в различных тестах. Если для вас это новость, запустите Ubuntu Software Center.
> Ну вы еще скажите что питон не тормозит.Питон не тормозит. Довольны?
Я даже прокапитаню:
Тормозит конкретная реализация языка.> Для питона факт тормознутости
> уже давно стал аксиомой, ибо доказывался не одну тысячу раз в
> различных тестах.Аргументация в стиле "все знают ..." – это круто, да. Ничего иного и не ожидал.
> Если для вас это новость, запустите Ubuntu Software Center.
Ну так покажите всем "тормознутым", сделайте "правильный" Ubuntu Software Center.
> Питон не тормозит. Довольны?Нимано, ну так в чем дело, покажите всем "правильный" Ubuntu Software Center на Python. Вы эту тему мозолите ни один год, однако ничего не меняется. И я скажу почему - вы не можете, потому что питон всего на всего тормозной язык, и ничего с этим не поделать.
> покажите всем "правильный" Ubuntu Software Center на Python.Вам оно надо - вы и делайте. С какого вдруг других должны волновать
половые проблемы Ubuntu?
Скорее питонисты не шевелятся. На С++ очень много чего реализовано и доказано.
Потому что современным плюсам не так уж много лет, а до C++11 это было редкостным извращением, о чистом C и говорить нечего.
> Потому что современным плюсам не так уж много лет, а до C++11
> это было редкостным извращением, о чистом C и говорить нечего.Закусывать надо, Ыгспёрд! :)
То же самое можно сказать о любом языке до версии х.y.zВ С++ продвинулся не столько язык, сколько развились STL, boost, Qt.
Язык с начала 90-х скорее переразвит, чем недоразвит.
auto, лямбды, улучшенные шаблоны и move semantic.Первые три кардинально упрощают написание кода, уменьшая количество boilerplate - в результате имеем увеличившуюся продуктивность, уже вполне пригодную для веба. Последний сильно снижает нагрузку на систему управления памятью, в чём плюсы при работе с большим количеством объектов (а для фреймфорков это норма) проседали.
STL, разумеется, сильно от этого выиграла, и это тоже важно - это необходимай часть плюсов. Boost - в основном избавился от костылей.Qt - вообще к чистым плюсам, честно говоря, относится слабо, а уж к веб-фреймворкам и подавно.
И нет, нельзя сказать о любом языке. Это всё - довольно кардинальные изменения. Тот же питон с 2.7 до 3, например, не приобрёл ничего настолько нового, чтобы нужно было менять половину best practices и чтобы можно было претендовать на новые ниши. Вот C++14 - там да, ничего особо революционного.
> и чтобы можно было претендовать на новые ниши.А что, таковые оставались для Python 2?
Разумеется. Если бы в тройке, скажем, добавилась опциональная статическая типизация - её с шансами можно было бы запихнуть туда, откуда сейчас Go вытесняет C - всякие специфические высокопроизводительные сервера и тому подобное. Да и самому Go питон бы гарантированно место не уступил, в отличие от нынешнего состояния.
> Разумеется. Если бы в тройке, скажем, добавилась опциональная статическая типизацияPEP 484 же уже, не?
> Go вытесняет
Овладевает, да.
> Да и самому Go питон бы гарантированно место не уступил, в отличие от
> нынешнего состояния.А что не так с Python тут в нынешнем состоянии? Даже создатели Go им
не особо пока пользуются (я разумею Google). Короче, победное шествие
по планете - в далеко идущих планах... И как бы им не обломаться, учитывая
что много вещей из Go плавно превращается... в современный Python.
Не. Потому что https://www.python.org/dev/peps/pep-0484/#id11 - с таким подходом не будет плюшек. Минимум, того, что там должно было быть заявлено для их получения - что в CPython везде, где возможно, в стандартной библиотеке будут хинты.Go - то, что писать на нём не медленнее, чем на питоне, но за счёт компилируемости он даёт выигрыш в производительности с ровного места, плюс результат не зависит от наличия интерпретатора определённой версии. А список пользователей у него уже достаточно большой - https://github.com/golang/go/wiki/GoUsers . Не то, чтоб меня это радовало...
> Минимум, того, что там должно было быть заявлено для их
> получения - что в CPython везде, где возможно, в стандартной библиотеке
> будут хинты.А оно надо, заявлять-то? Это ж вроде как PEP...
> плюс результат не зависит от наличия интерпретатора определённой версии.
И что означает эта странная фраза? Надо полагать, что в Python - зависит?
Вот сам плюсами балуюсь, но от версии к версии они имхо только всё более и более адовыми становятся. )) и компиляция всё дольше и дольше. ))Их бы упростить, а туда наоборот всё тащат новую хрень какую-то и тащат...
A Calibre с помощью его можно как-то закомпилить?
А если apt скомпилять,yum, ну или emerge... (?)
>А если apt скомпилятьapt написан на C.
Не всё в этом мире на питоне, а то бы он повис и ушел в ребут
> повышение производительности на 258%т.е. в два раза - жидковато както то.
А что тогда, по-твоему, означает «на 100%», а, гений? :3
Только полгода прошло, а ты уже математику прогуливаешь, ай-яй-яй!
Если брать за 100% на CPython, то 258% - это в 2.5 раза. А так да, в 3.5 раза скорость выросла. При том, что производительность питона в некоторых тестах на два порядка ниже с++, это конечно очень весомое достижение и заставит поменять мнение пользователей о питоне. Полагаю и сжирание памяти тоже уменьшилось в 3.5 раза?
Ага, ну 3 раза конечно всё меняет
Странный какой-то этот Nuitka, простецкий скрипт в 250 строчек компилирует в EXE и при попытке его выполнить вываливается в крэш-дамп. О каком прохождении каких тестов идет речь?
Хз, я пробовал свое собрать - работает. Только компиляет долго слишком.
> компилирует в EXE и при попытке его выполнить вываливается в крэш-дамп.Вендузятник должен страдать.
Косвенно от питона страдают более миллиарда человек - пользователей Ubuntu, по мнению Дастина Киркленда
> Косвенно от питона страдают более миллиарда человек - пользователей UbuntuМожет дело в Ubuntu?
Может дело в IBM, AMD, Intel и т.д., они же делают компы? Нет, дело именно в питоне.
> на 258%Это точно? Нолик нигде не упустили?
>> на 258%
> Это точно? Нолик нигде не упустили?Не, там "a 258% factor on pystone", то есть "в 258% раз", не не по-русски как-то, так что, видимо, д.бы б. "на 158%". Но кто я такой, чтоб учить кого бы то ни было языку и процентам?--
И да, везде копипасятят "it doesn't make all the optimizations possible, but a 258% factor on pystone is a good start (number is from version 0.3.11)." (гы! некоторые опускают "it doesn't"?? почти все пропускают про "0.3.11"), первоисточник, видимо, здесь http://nuitka.net/posts/nuitka-release-0311.rst:
"So this a speedup factor of 258%, last time on another machine it was 240%. Yet it only proves that the generated and compiled are more efficient than bytecode, but Nuitka doesn't yet do the relevant optimization. Only once it does, the factor will be significantly higher."
--Группа маркетолyхов, завлекающая под девизом "То ли ещй будет!!".
> про "0.3.11"), первоисточник, видимо, здесь http://nuitka.net/posts/nuitka-release-0311.rst:+ http://nuitka.net/posts/nuitka-release-0311.html
> --Группа маркетолyхов, завлекающая под девизом "
Сам себя не похвалишь, не продашь".
а по сравнению с компилируемыми языками он как работает?
Большая радость если вообще работает. На вскидку 50/50 что запустится.
Если по скорости - отстает где-то на порядок. Работать им еще долго
Лол. сколько разных компиляторов пилят под Питон, а нормального решения с хорошей производительностью так и нет.
Компилятор для питона - всё равно, что велосипед с мотором: едет, конечно, быстрее, но...
есть Cython и автоматический инструмент генерации его типов из оригинального пайтона. Но вам я инструмент не дам
а Сайтон быстрый что твой С