Разработчик Siu Kwan Lam представил (http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-June/051298....) в дискуссионном листе LLVMdev проект Pymothoa (http://code.google.com/p/pymothoa/), в рамках которого разрабатывается расширение интерпретатора Python для JIT-компиляции отдельно взятых функций с помощью LLVM. Расширение не требует модификации интерпретатора и может быть легко установлено в любую систему.
Pymothoa добавляет в Python новый декоратор, позволяющий "пометить" функции, при исполнении которых должен быть задействован JIT-компилятор. При этом, в силу технических ограничений, функция должна быть написана на специальном диалекте Python, предусматривающем явное объявление переменных, статическую типизации и отказ от объектов и исключений. Код функции преобразуется в дерево AST (Abstract Syntax Trees), затем в байткод LLVM и выполняется с помощью виртуальной машины.Сам автор позиционирует свой проект как более удобную замену модулям, написанным на языке Си. Pymothoa позволяет быстро оптимизировать код, без необходимости его переписывания на Си и снимает с пользователя задачу по компиляции и установке модулей. Все, что необходимо сделать, это установить LLVM и Pymothoa.
URL: http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-June/051298....
Новость: http://www.opennet.me/opennews/art.shtml?num=34236
Круто!
Жаль, benchmark-ов нет.
Сначала придумали проблему, а потом героически её решают.
Использование интерпретируемых ЯП как правило повышает надежность, портируемость и скорость написания программ. Да, они медленнее, но это не придуманная кем-то специально проблема.
> Использование интерпретируемых ЯП как правило повышает надежность,Я заметил: 90% багов убунты - в их питоновом булшите, который я по этому поводу деинсталлирую первым делом. После чего у меня перестают падать/виснуть/глючить какие-то недоноски и все просто работает :)
> портируемость
Такая портируемость, конечно - три версии интерпретера в системе. Какого дьявола у меня нет трех версий компилера, а C89-сорсы собираются и по сей день?
> и скорость написания программ.
Да, единственное чем могут покозырять питонисты:
- Моя скорость ввода - 1000 знаков в минуту!!!
- ???!!!
- ...правда такая фигня получается!
>Я заметил: 90% багов убунты - в их питоновом булшите, который я по этому поводу деинсталлирую первым делом. После чего у меня перестают падать/виснуть/глючить какие-то недоноски и все просто работает :)Ну это вы обманываетесь/обманываете. 90% багов убунты это проблемы с видеодрайверами и pulseaudio. Они написаны на чистом си и оносительно нормальными спецами. Как видите, не сильно помогает.
>Такая портируемость, конечно - три версии интерпретера в системе. Какого дьявола у меня нет трех версий компилера, а C89-сорсы собираются и по сей день?Тоже неправда. Компиляторы gcc оказываюся не совместимы даже в случае инкремента минорной версии. В то же время, когда выходит новая версия Python, вам ясно и чётко объясняют, что у вас сломается и что нужно поправить.
>Моя скорость ввода - 1000 знаков в минуту!!!Вот именно, что скорость написания кода не имеет существенного значения. Куда важнее, возможность его последующего рефакторнга/исправления багов. В этом плане питон выглядит куда лучше чем все другие языки. Особенно помогает, то что на нём невозможно написать код с корявыми отступами.
> Ну это вы обманываетесь/обманываете. 90% багов убунты это проблемы с видеодрайверами и
> pulseaudio. Они написаны на чистом си и оносительно нормальными спецами. Как
> видите, не сильно помогает.Простите, вы убунту на картинке видели? Или где там баги с пульсаудио? Ну вот он я, в убунте. Покажите мне баги в пульсе. А то я их не вижу. Работает себе.
Зато питонятина - крешится через раз! Аппорты всякие. Вообще, крашрепортер который сам крашится постоянно - это лол полный. Логин-сервисы (SSO) и куски софтвар-центра - тоже попали под внимание благодаря регулярным крэшам. Чуть шевельнешься - тыдыщ, падает. И как на подбор - все на питоне писано. По поводу чего вся эта питонятина получила деинсталл. Теперь у меня вообще ничего не крешится за пару недель аптайма, хы-хы-хы :)
Апофеозом кретинизма питонистов стал скрипт апдейта с 11.10 на 12.04. Там у меня он не смог найти какой-то файл. Но проверять успех файловых операций - не, ну что вы! Питонисты до такой фигни не опускаются. Они там в высоких концепциях витают, поэтому на неуспех открытия файла просто забивают. Как результат - скрипт пытается до упора открыть какой-то файл. Которого нет. Жрется проц в полку. И ничего не делается. Результат? Полуфакапнутый апгрейд системы: репы уже переключили, а вот дальше - "забуксовал волк на крутой подъем".
Пришлось руками доделывать. Убейтесь веником с таким "качеством".
> Тоже неправда. Компиляторы gcc оказываюся не совместимы даже в случае инкремента минорной
> версии.Ну вот у меня сорц лежит - алгоритм LZ из каких-то 80-х или ранних 90х прошлого века. Тогда еще даже gcc не был популярен и он писался "под си вообще". Ну и собирается он ничуть не хуже. Как будто в 2012 году C89 стал другим ;)
> В то же время, когда выходит новая версия Python, вам
> ясно и чётко объясняют, что у вас сломается и что нужно поправить.Ну так C89 не ломается. Совсем. Собирается вообще без изменений сорец ...цатилетней давности.
>>Моя скорость ввода - 1000 знаков в минуту!!!
> Вот именно, что скорость написания кода не имеет существенного значения. Куда важнее,
> возможность его последующего рефакторнга/исправления багов.Да, для питонистов это актуально - они такой жуткий шит пишут, что просто диву даешься.
булщит не питон, а убунта. пользую дебиан, пишу на питоне - ничего не падает.
> булщит не питон, а убунта. пользую дебиан, пишу на питоне - ничего не падает.Булшит - это то что написано на питоне. А свое - не пахнет, вы про это не забывайте. Самого себя судить нельзя. Это неверное решение.
>Булшит - это то что написано на питонеЛожь.
>А свое - не пахнет, вы про это не забывайте.
Пахнет.
> Самого себя судить нельзя.
Можно.
>Это неверное решение.
Верное.
ооо... вы просто скажите, какой ЯП с вашей точки зрения лучший.
> ооо... вы просто скажите, какой ЯП с вашей точки зрения лучший.Который осваивать сложно. Например плюсы. Так по крайней мере идиоты с ветром в голове отсеиваются. По чисто технической причине :)
"Создайте систему которой может пользоваться даже дурак - и только дурак захочет ей пользоваться". Законы Мерфи :)
почему же так мало сайтов на С++ ?
> почему же так мало сайтов на С++ ?Потому что он на вебню не особо то и заточен. В честь чего там и отхапал все специализированный пых. А на питоне нормальных сайтов тоже хрен найдешь. Все какие-то кривые уроды. Да еще и тормознутые как правило. Хорошо что их мало - не люблю уродов независимо от ЯП.
А на питоне нормальных сайтов тоже хрен найдешь.Ну да всякие там ютубы частью яндексы и вся переодика от вашингтон пост до пионерская зорька.
> Ну да всякие там ютубы частью яндексы и вся переодика от вашингтон пост до пионерская зорька.Напоминает анекдоты про войну чукч и китайцев.
- А давайте воевать?
- Ну давайте.
- Вас сколько?
- Нас 10!
- А вас?
- А нас - миллиард!
- Тц-тц-тц, где ж мы столько хоронить то будем?
>> Ну да всякие там ютубы частью яндексы и вся переодика от вашингтон пост до пионерская зорька.
> Напоминает анекдоты про войну чукч и китайцев.
> - А давайте воевать?
> - Ну давайте.
> - Вас сколько?
> - Нас 10!
> - А вас?
> - А нас - миллиард!
> - Тц-тц-тц, где ж мы столько хоронить то будем?Не смешно как-то.
Предлагайте сразу Malbolge. А то ваше дерьмо с пятью способами передачи объекта по ссылке является основным поставщиком тупых багов последние лет двадцать
Т.е. по-твоему чем сложнее язык, тем он лучше? :)
Чем сложнее язык тем он илитнее.
> Чем сложнее язык тем он илитнее.Тем он лучше держит идиотов на расстоянии. Что хорошо. Хреново когда пироги печет сапожник, а сапоги тачает пирожник.
> Т.е. по-твоему чем сложнее язык, тем он лучше? :)Нет, по-моему, хреново когда всякие дятлы с ветром в голове лезут программить при том что программистами вообще не являются.
Как показал опыт c++ и PERL, если сложный язык и держит идиотов на расстоянии - то только на расстоянии вытянутой руки.
>> ооо... вы просто скажите, какой ЯП с вашей точки зрения лучший.
> Который осваивать сложно. Например плюсы.Питон очень сложный для осваивания язык, где любой тип имеет кучу методов, где классы, метаклассы, декораторы, генераторы... в тоже время функциональщина, тонны синтаксического сахара, кучи фреймворков и библиотек под любые нужды на его освоение нужно много времени и ума.
> Так по крайней мере идиоты с ветром
> в голове отсеиваются. По чисто технической причине :)Нормальный программист может написать код на любом языке программирования, и выбирает язык в зависимости от задачи.
> Питон очень сложный для осваивания язык,Судя по тому кто на нем пишет - это современный вариант вьюжлвасика, не более. Ну то-есть, мона по бырому освоить некий минимум и скорей-быстрей писать очередное глючное угребище. Потолок вхождения очень низкий, понимания как работают компьютеры - почти не требуется. Что получается в результате - несложно догадаться. Куча обезьян пишет войну и мир. Правда больше на Донцову похоже получается.
> Судя по тому кто на нем пишет - это современный вариант вьюжлвасика,
> не более.Не суди и не судим будешь.
> Ну то-есть, мона по бырому освоить некий минимум и
> скорей-быстрей писать очередное глючное угребище.Как и на любом языке.
> Потолок вхождения очень низкий, понимания
> как работают компьютеры - почти не требуется.В Питон? Вранье.
В общем, хватит истерить.
вы с php не путаете?
откуда в гвидобейсике функциональщина, если опоссум сказал, что TCO не нужно?
В гугле забанин? Python язык мультипардигмный и ООП и функциональщина всё в одном флаконе.
Как всегда демонстрация нулевых знаний в предмете обсуждения, зато форсу хоть отбавляй.
что характерно — питонофанбой ничего не понял, но кинулся защищать любимый бейсик.
> Простите, вы убунту на картинке видели? Или где там баги с пульсаудио?
> Ну вот он я, в убунте. Покажите мне баги в пульсе.
> А то я их не вижу. Работает себе.Да tuxguitar запусти, или любой midi секвенсор и всё сам поймешь.
> Зато питонятина - крешится через раз! Аппорты всякие. Вообще, крашрепортер который сам
> крашится постоянно - это лол полный. Логин-сервисы (SSO) и куски софтвар-центра
> - тоже попали под внимание благодаря регулярным крэшам. Чуть шевельнешься -
> тыдыщ, падает. И как на подбор - все на питоне писано.Наверное потому что всё новое и пока не стабильное, и от языка это не зависит.
> По поводу чего вся эта питонятина получила деинсталл. Теперь у меня
> вообще ничего не крешится за пару недель аптайма, хы-хы-хы :)Диски отформатируй -- еще стабильней будет.
> Апофеозом кретинизма питонистов стал скрипт апдейта с 11.10 на 12.04. Там у
> меня он не смог найти какой-то файл.А у меня чего-то все машины обновились без проблем. Кривые руки?
> Ну вот у меня сорц лежит - алгоритм LZ из каких-то 80-х
> или ранних 90х прошлого века. Тогда еще даже gcc не был
> популярен и он писался "под си вообще". Ну и собирается он
> ничуть не хуже. Как будто в 2012 году C89 стал другим
> ;)Хелловордист? Библиотеки у тебя тоже неизменные остались?
> Да tuxguitar запусти, или любой midi секвенсор и всё сам поймешь.Боюсь что в миди-секвенсорах я разбираюсь как свинья в апельсинах. Но ради интереса попробую посмотреть.
> Наверное потому что всё новое и пока не стабильное, и от языка это не зависит.
Наверное, это потому что гребаные рапидчики полагают что если быстро налабал на коленке свою скриптоподелку - миссия "типа, выполнена". Хотя на самом деле - выполнено оно на уровне кавказских чуваков которые зимой асфальт кладут. Джамшутинг - он и есть джамшутинг.
> Диски отформатируй -- еще стабильней будет.
Я предпочитаю разумный минимум. Хотя я понимаю конечно что питонисты не читали тезисы D.J.Berstein насчет количества багов в софте. А я вот читал. И люблю маленькие и аккуратные программы с небольшим количеством зависимостей везде где это возможно и разумно. Это и ресурсы экономит и от багов избавляет естественным путем.
> А у меня чего-то все машины обновились без проблем. Кривые руки?
Только у авторов этой скриптоподелки. По поводу чего мне оказалось проще вообще выбросить эту неработоспособную дрянь и довести апгрейд до финиша голыми руками. Ну и накукуй этот глючный булшит нужен при таком раскладе?
> Хелловордист? Библиотеки у тебя тоже неизменные остались?
Их конечно дописывают, но что-то не вижу чтобы все библы резко побежали переписывать по поводу C11, например. Ну, glibc дописали. Аж 1 либу. И то потому что стандарт требует новых функций. А питонисты с своим питоном носятся как с писаной торбой и переписывают вообще все.
О, по поводу glibc. Когда там у вас в сишечках виртуалбокс из тамблвида перестанет сегфолтить на 11.4?
>> Да tuxguitar запусти, или любой midi секвенсор и всё сам поймешь.
> Боюсь что в миди-секвенсорах я разбираюсь как свинья в апельсинах. Но ради
> интереса попробую посмотреть.А что там разбираться поставь и всё сам услышишь, параллельной обработки звука не будет, или вообще звука не будет.
>> Наверное потому что всё новое и пока не стабильное, и от языка это не зависит.
> Наверное, это потому что гребаные рапидчики полагают что если быстро налабал на
> коленке свою скриптоподелку - миссия "типа, выполнена". Хотя на самом деле
> - выполнено оно на уровне кавказских чуваков которые зимой асфальт кладут.
> Джамшутинг - он и есть джамшутинг.Бредогенератор (С)
>> Диски отформатируй -- еще стабильней будет.
> Я предпочитаю разумный минимум. Хотя я понимаю конечно что питонисты не читали
> тезисы D.J.Berstein насчет количества багов в софте. А я вот читал.Как ты умный, возьми с полки пирожок.
> И люблю маленькие и аккуратные программы с небольшим количеством зависимостей везде
> где это возможно и разумно. Это и ресурсы экономит и от
> багов избавляет естественным путем.Маленькие программы имеют маленький функционал. Отсутствие зависимостей означает "изобретение велосипедов", вместо использования готовых библиотек и существенно тормозит разработку или скорее вообще делает невозможным разработку имеющимися ресурсами. И да, на python можно писать очень маленькие программы.
>> А у меня чего-то все машины обновились без проблем. Кривые руки?
> Только у авторов этой скриптоподелки.Я не автор, как и десятки миллионов пользователей, у которых особых проблем не возникло при обновлении.
>По поводу чего мне оказалось проще вообще
> выбросить эту неработоспособную дрянь и довести апгрейд до финиша голыми руками.Это как? Hex-редактором?
> Ну и накукуй этот глючный булшит нужен при таком раскладе?
>> Хелловордист? Библиотеки у тебя тоже неизменные остались?
> Их конечно дописывают, но что-то не вижу чтобы все библы резко побежали
> переписывать по поводу C11, например.В итоге серьезный код для компиляторов Borland, Microsoft, GCC и т.п. непереносим большей частью даже в рамках описанных стандартами, что уж говорить про библиотеки.
>Ну, glibc дописали. Аж 1 либу. И то потому что стандарт требует новых функций.
Точно хелловордист. Ежедневно выходит сотни новых библиотек, и сотни новых версий библиотек.
> А питонисты с своим питоном носятся как с писаной торбой и переписывают вообще все.
Пример пожалуйста.
> Точно хелловордист. Ежедневно выходит сотни новых библиотек, и сотни новых версий библиотек.и что? мне что-то подсказывает, что про него говорить сложно, а вот ты — точно «хелловорлдист».
> Особенно помогает то, что на нём невозможно написать код с корявыми отступами.Это которые короткой кнопочкой или которые длинной? :]
> Куда важнее, возможность его последующего рефакторнга/исправления багов.Особенно генетических... сегодня прислали:
>>> class B(object):
... arr = []
... def __init__(self):
... self.arr.append(1)
...
>>> x = B()
>>> y = B()
>>> x.arr[1, 1]
>>> y.arr[1, 1]
>>> B.arr[1, 1]
>>> z = B()
>>> B.arr[1, 1, 1]
>>> x.arr[1, 1, 1]
-- бишь обращение к тому, что в Ruby называется class method, способно привести к изменению состояния класса (!), влияющему на состояние инстанциируемых в дальнейшем объектов (!!!).
а в чём проблема-то? в принципе, нормальное поведение для прототипной модели, где «класс» от «объекта» ничем особым не отличается. другое дело, что синтаксис тут корявый — ну так на то оно и гвидобейсик, чтобы страусов не пугать.добавлю, что это достаточно удобная возможность для изменения состояния системы «на лету».
>Какого дьявола у меня нет трех версий компилера, а C89-сорсы собираются и по сей день?Хм, а меня три 4.2 для одного старого проекта, 4.6 основной, и 4,7 на который я собираюсь портировать код но руки пока не доходят, так как работы много.
> 4,7 на который я собираюсь портировать код но руки пока не доходят, так как работы много.Код сишный?
Не на плюсах?Если да - хотелось бы посмотреть на пример такого "чудесного" кода! :-)
> Хм, а меня три 4.2 для одного старого проекта, 4.6 основной, и
> 4,7 на который я собираюсь портировать кодЧто-то руки у вас не оттуда растут. По крайней мере, если сорец писаный "на си вообще" в конце 80-х собирается и сегодня, gcc 4.6 - вам наверное стоило бы подумать о том что вы делаете не так и откуда у вас руки растут.
> багов убунты
> убунтыСами же и ответили на свой вопрос. Убунтоспецифичные утилиты тестируют только убунтойды, а общелинуксовые - тестируются всеми дистрибутивами. В итоге получается, что последние стабильнее.
> а общелинуксовые - тестируются всеми дистрибутивами. В итоге получается, что последние
> стабильнее.Ну да, yum тормозит и ловит OOM не менее стабильно. Ну и так далее. В общем если нечто писано на питоне - это 99% гарантия того что это бажная наколенная поделка, где единственным плюсом было то что разработчики гнали как на пожар. Поскольку я разработчиком этого шита не являюсь, для меня заметны только недостатки. Ну вот пусть сами разработчики и пользуют свой третьесортный крап. А я для себя придумал просто критерий такой: если в зависимостях питон -> не ставим или деинсталлим по возможности. Очень удобно, btw :)
сколько лет пользуюсь yum'ом, ни разу не видел никаких с ним OOMов и тормозов которые были как-то связаны именно с питоном. Заканчивай выгребать дерьмо из своей головы в интернет.
> сколько лет пользуюсь yum'ом, ни разу не видел никаких с ним OOMовИ сколько лет вы им пользуетесь? А то на машине с 128Мб он спокойно ловит OOM. Хотя некоторые конечно предпочитают отращивать немеряный своп и полчаса слушать шуршание винта :)
справедливости ради — wicd работает без нареканий. разве что немного раздражает питонистый демон в htop.
> справедливости ради — wicd работает без нареканий.Справедливости ради, мне и без него неплохо живется. Честное пионерское.
Парадоксально, но на моей системе — факт. Ни разу не имел проблем с ubuntu-only питоновским софтом, но вот GUI к Deluge, писанное вроде как на этом самом питоне, меня уже заколебали своей любовью внезапно сожрать одно, а то и все 4 ядра процессора вообще без видимой на то причины (благо хоть раздача ведётся отдельным процессом, писанном не на питоне) или внезапно отожрать гектар памяти пот хрен знает что вообще (явно не на кэш блоков). А вот Transmission себя очень даже хорошо ведёт, например.
> Какого дьявола у меня нет трех версий компилера...правда чтоле нет? :-D
может плохо искали?
а наберите ка ``sudo aptitude search gcc`` и поглядите на свои три версии GCC
(да, да, установить их можно параллельно, и компилировать разные несовместимые случаи)
> а наберите ка ``sudo aptitude search gcc`` и поглядите на свои три версии GCCИзвините, я про установленные версии. У меня 1 сишный компилер. И ... несколько версий питона. Хотя питон намного моложе, а уже такая бяка творится.
и зачемже вы установили несколько версий Пайтона?по умолчанию их тоже не ставится несколько, вобщето
> и зачемже вы установили несколько версий Пайтона?Так они по дефолту ставятся. Хотя-бы по причине несовместимости 2.х и 3.х.
> по умолчанию их тоже не ставится несколько, вобщето
Ну да, щаз. Как минимум 2.7 и 3 параллельно норовят втюхать, сами знаете почему.
И да, что-то я не помню чтобы мне предлагали для C11 скачать отдельный компилер, а для C89 - еще один. Это прерогатива питонистов.
>> и зачемже вы установили несколько версий Пайтона?
> Так они по дефолту ставятся. Хотя-бы по причине несовместимости 2.х и 3.х.Ложь.
>> по умолчанию их тоже не ставится несколько, вобщето
> Ну да, щаз. Как минимум 2.7 и 3 параллельно норовят втюхать, сами
> знаете почему.В последней Ubuntu 2.7 по дефолту, 3 не установлен.
> И да, что-то я не помню чтобы мне предлагали для C11 скачать
> отдельный компилер, а для C89 - еще один. Это прерогатива питонистов.А какой компилятор сейчас полностью поддерживает C11? Или хотя бы С99?
Ой нет таких, в каждом разная степень поддержки стандартов и еще один повод для несовместимости.
> повышает надежностьА мне казалось, что чем меньше абстракции, тем надёжней. Т.е. ASM -> C -> C++ / интерпретируемые языки.
Абстракции действительно не прибавляют надежности.
Сама по себе интерпретация в большинстве случаев не вводит новых абстракций (не считая байткода). В Си есть компилятор, в Питоне - интерпретатор, стрелочек равное количество.
> Абстракции действительно не прибавляют надежности.Да. Питонистам даже впадлу успех файловых операций проверять как правило. Так что если что хоть минимально не по плану - все, you're screwed up. При том ни внятного сообщения о ошибке, ни культурного завершения, ни retry осмысленного, ни fallback. Просто продолжают вкалывать дальше как ни в чем ни бывало. Получая глюки где-то опосля.
фантазёр, хватит херню нести
> Просто продолжают вкалывать дальше как ни в чем ни бывало.вот уж насмешил так правда насмешил :-D
покажи-ка свой исходный код (на Python), который вот так-бы делал :-D
> покажи-ка свой исходный код (на Python), который вот так-бы делал :-DУ убунтуйцев их апгрейдер посмотрите. Оно так умеет - пытается шпарить не найдя нужный файл и впадает в бесконечный цикл. Поймано вообще strace'ом когда эта срaнь полчаса проц грузила без какого либо выхлопа, делая вид что "типа, работаем, все по плану".
В этом виноват питон?
>> покажи-ка свой исходный код (на Python), который вот так-бы делал :-D
> У убунтуйцев их апгрейдер посмотрите.Для начала название программы.
>Оно так умеет - пытается шпарить не
> найдя нужный файл и впадает в бесконечный цикл. Поймано вообще strace'омПокажите код который это делает.
> Абстракции действительно не прибавляют надежности.
> Сама по себе интерпретация в большинстве случаев не вводит новых абстракций (не
> считая байткода). В Си есть компилятор, в Питоне - интерпретатор, стрелочек
> равное количество.В Си есть и интерпретатор, в Python есть и компилятор.
> А мне казалось, что чем меньше абстракции, тем надёжней. Т.е. ASM ->
> C -> C++ / интерпретируемые языки.Дооо, асемблер(ы) то надеждны. Особенно учитывая количество багов в интеловских процессорах, которые кампиляторы, к слову, стараются обойти. Там уж надежность так надежность.
> которые кампиляторы, к слову, стараются обойти.Вам бы спеллчекер хотя-бы для начала взять. А то похоже баги у вас совсем не в процессорах :). Не, баги там конечно бывают, но для этого есть апдейты микрокода. И в общем случае компилеры все-таки не занимаются воркэраундом чужих багов.
Портируемость - ещё более-менее. С остальным СОВРЕМЕННЫЕ компилируемые языки (вроде D или Go) справляются не хуже, если у вас не скрипт на три строки.
> Портируемость - ещё более-менее.Сказки. Запустить питоновый скрипт 5-летней давности может просто не получиться вообще. А севый сорц из лохматых девяностых откомпилить и сейчас не проблема в общем случае. Нафиг надо такую "портируемость". А еще через 5 лет скрипты для питона 2.х вообще не смогут работать т.к. будет 3.х. Спасибо, сами на такое закладывайтесь и потом переписывайте постоянно, если вам заняться нечем.
>> Портируемость - ещё более-менее.
> Сказки. Запустить питоновый скрипт 5-летней давности может просто не получиться вообще.код в студию.
> А севый сорц из лохматых девяностых откомпилить и сейчас не проблема
> в общем случае.код в студию. желательно что-то сложнее hello world и где есть сокеты и треды.
> код в студию.Вот специально для вас буду по ископаемым какашкам рыться. Мне хватило того что несколько скриптов слитых с посторонних сайтов, писаных под питон 2.4 на том который в системе дефолтный (2.7) просто не изволили работать. Буллшит. Да и сейчас вон питонисты носятся с своим питон 3 переписывая на него все и вся. Вы видите сишников которые бросили все и переписывают на новомодный C11 вообще все подряд? Или они только в новом коде вкусными плюшками балуются? Ну вот этим вменяемые системщики и отличаются от скрипткиддей с ветром в голове и зудением в заднице :)
> код в студию. желательно что-то сложнее hello world и где есть сокеты и треды.
Ну вот, уже заюлили. Да блин, берем "референсный" LZ (Lempel Ziv), ископаемый как черти-что. Собирается. То что сокетов и тредов нет - ну простите пожалста. Зато алгоритм до сих пор представляет некую практическую ценность.
>Мне хватило того что несколько скриптов слитых с посторонних сайтов, писаных под питон 2.4 на том который в системе дефолтный (2.7) просто не изволили работать. Буллшит.Зачем вы едите кактус? вас кто-то заставляет использовать python? почему вы не взяли православный C/C++ ?
>Ну вот, уже заюлили. Да блин, берем "референсный" LZ (Lempel Ziv), ископаемый как черти-что. Собирается.
и что? на python тоже можно писать так, что работать будет на 2.4-2.7 (тройку не трогал).
где ввод/вывод?
> Вот специально для вас буду по ископаемым какашкам рыться. Мне хватило того
> что несколько скриптов слитых с посторонних сайтов, писаных под питон 2.4
> на том который в системе дефолтный (2.7) просто не изволили работать.А почему вы решили что скрипты "слитые с посторонних сайтов" у вас должны работать? И при чём тут версия python?
>> Сказки. Запустить питоновый скрипт 5-летней давности может просто не получиться вообще.
> код в студию.Zope 2.10 подойдёт?
>Zope 2.10 подойдёт?Нет. Это фреймворк а не скрипт со всеми вытекающими.
>>Zope 2.10 подойдёт?
> Нет. Это фреймворк а не скрипт со всеми вытекающими.Досада-то, фреймворк на скриптовом языке уже не скрипт.
Наверное, cray@ этого не осознавал, когда перепирал с одного питона на другой раз за разом.
> Портируемость - ещё более-менее. С остальным СОВРЕМЕННЫЕ компилируемые языки (вроде D или
> Go) справляются не хуже, если у вас не скрипт на три
> строки.А почему вы решили, что python это не компилируемый язык?
> Использование интерпретируемых ЯП как правило повышает надежность, портируемость и скорость
> написания программ.Какое отношение имеет к питону? особенно про "надёжность"?
> Какое отношение имеет к питону? особенно про "надёжность"?Ну как же, сам себя не похвалишь - никто не похвалит. В смысле, это был очередной рекламный булшит от фанатиков. Которые однако делают себе огромные скидки на качество своего кода. Как-то забывая что если код быстро налабан - это означает что в нем море багов. Потому что в нормально поставленном процессе разработки при создании сколь-нибудь большого проекта кодинг вообще не обязан занимать бОльшую часть времени.
> Потому что в нормально поставленном процессе разработки при создании сколь-нибудь большого
> проекта кодинг вообще не обязан занимать бОльшую часть времени.Да, подавляющую часть времени должны занимать собрания, тимбилдинг и корпоративы.
>> Потому что в нормально поставленном процессе разработки при создании сколь-нибудь большого
>> проекта кодинг вообще не обязан занимать бОльшую часть времени.
> Да, подавляющую часть времени должны занимать собрания, тимбилдинг и корпоративы.Аналитика, выбор инструментария 20% времени проекта. Кодинг 10%. Тесты, тесты, и еще раз тесты, а после отладка отладка и еще раз отладка и профилирование и всё это занимает 70 % времени.
Читаю и плачу. Рецепт изготовления быдло-кода на 100%.
Слава богу это только фантазии.
> Читаю и плачу. Рецепт изготовления быдло-кода на 100%.
> Слава богу это только фантазии.Это как раз рецепт изготовления того что будет работать и не обгадится в первые 5 минут работы, не будет долбать тормознутостью и падучестью. И да, с питоном - профилирование натурально займет 70% времени. Потому что общую тормознутость этого крапа придется выволакивать на своем горбу програмеру, демонстрируя чудеса изворотливости. Ну или быдлокодерско-энтерпрайзный подход - "купите машину помощнее!"
Чем оно лучше Cython?
Тем, что JIT, а потому динамичнее.
Иными словами: ещё быстрее сжирает память.
> Иными словами: ещё быстрее сжирает память.Сжирает память = экономит время камня.
а как же PyPy? оно тоже JIT-нутое, вот лучше бы как раз PyPy на LLVM натаскивалии вообще, я верю в светлое будущее баткодовых платформ, когда они будут модульными и шустрыми
судя по опыту Unladden Swallow, такое натаскивание не принесет ничего кроме лишнего гемора. Именно поэтому US и забросили.
LLVM пока плохо работает с динамическими языками, но возможно в будущем его допилят
"и отказ от объектов"
я не спец, но мне казалось что любая переменная или что-либо к коде питона это объект. Там все объекты. В этом и смысл питона.
Или я что-то перепутал ?
Exception нельзя из-за того что оно является дочернем Py-объектом? или в чём там проблема случилась?
>> ШТООО?
> JIT там натурально есть :)Мы таки везде есть :)
Супер круто! Автору респект и уважуха.
Ушел пробовать
> отказ от объектов и исключенийВот это конечно серьёзное ограничение. Сильно снижает ценность решения.
посмотри код решения, это же наколеночное поделие студента. Не удивительно.
а почему наново писать а не Unladden Swallow воскресить?