The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Google представил Grumpy, транслятор кода Python на язык Go

04.01.2017 23:57

Компания Google открыла исходные тексты проекта Grumpy, в рамках которого развивается экспериментальный Python runtime для языка Go. Grumpy обеспечивает трансляцию кода на языке Python в представление на языке Go и позволяет бесшовно запускать оттранслированные Python-программы в runtime-окружении языка Go. Отмечается, что одной из основных целей проекта является обеспечение высокого уровня совместимости с CPython и достижение возможности применения Grumpy в качестве полноценной замены Python runtime для проектов на языке Python. Код транслятора написан на языке Python и поставляется под лицензией Apache 2.0.

Grumpy нацелен на использование в качестве прозрачной замены CPython 2.7 и позволяет решить проблемы с плохой работой CPython в условиях обработки массовых параллельных запросов. В частности, одной из поставленных перед Grumpy задач была оптимизация работы API YouTube, написанного на Python и обрабатывающего миллионы запросов в секунду. Grumpy не формирует байткод и не использует виртуальную машину. На выходе генерируется набор обычных исходных текстов на языке Go, которые затем могут быть преобразованы в машинный код при помощи штатного компилятора Go. В полученных после компиляции исходных текстах продолжают использоваться специфичные для Python структуры данных, но реализация структур оптимизирована для хорошей масштабируемости в условиях массовой параллельной обработки данных.

Grumpy избавлен от ключевой проблемы Python - глобальной блокировки интерпретатора (GIL, Global Interpreter Lock), не допускающей параллельного выполнения нескольких нитей кода. Grumpy также использует сборщик мусора Go для управления жизнью объектов вместо применяемой в Python системы на основе подсчёта ссылок. В сочетании с компиляцией в исполняемый код, подобные улучшения позволяют добиться существенного прироста производительности. Уровень масштабируемости Grumpy хорошо демонстрирует нижеприведённый график, отражающий результаты прохождения теста производительности Fibonacci:

Grumpy состоит из трёх основных компонентов:

  • grumpc - компилятор, выполняющий разбор кода на языке Python и генерацию кода на языке Go. Для разбора используется модуль ast (Abstract Syntax Trees);
  • Grumpy Runtime. Сформированный код на языке Go оперирует структурами данных, представляющими Python-объекты. Данные структуры и операции с ними определены в runtime-библиотеке grumpy, реализованной по аналогии с Python C API;
  • Стандартная библиотека Grumpy. Большинство штатных библиотек Python написаны на языке Python и без проблем работают в Grumpy. Стандартная библиотека Grumpy является незначительно модифицированной копией stdlib из состава CPython 2.7. Python-библиотеки в которых используются модули на языке Си переписаны на Python, но используют родные расширения языка Go (напрямую Grumpy не поддерживает Python C API).


  1. Главная ссылка к новости (https://opensource.googleblog....)
  2. OpenNews: Выпуск языка программирования Go 1.7
  3. OpenNews: В рамках проекта gonix, развивается реализация unix-утилит на языке Go
  4. OpenNews: В рамках проекта jvm.go развивается вариант JVM, написанный на языке Go
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/45816-grumpy
Ключевые слова: grumpy, golang, python
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (121) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 00:45, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Как там дела с GIL?
     
     
  • 2.2, lucentcode (ok), 00:52, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Не внимательно видно статью читали, в ней написано, в частности:

    Grumpy избавлен от ключевой проблемы Python - глобальной блокировки интерпретатора (GIL, Global Interpreter Lock)

     
     
  • 3.129, pavlikvk (?), 15:03, 06/01/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Только GIL - это *не* проблема.
     
     
  • 4.145, Аноним (-), 13:29, 10/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Это фича?
     
  • 2.79, superanon (?), 16:43, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А откуда GIL в Go?
     

  • 1.3, нонайм (?), 00:55, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    да так и на питоне можно жить теперь получается?
     
     
  • 2.15, Аноним (-), 02:56, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +8 +/
    А без питона можно жить ещё лучше. :-)
     
     
  • 3.18, Аноним (-), 03:22, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А без питона можно жить ещё лучше. :-)

    Завести гарем жен и меньше вкалывать :)

     
     
  • 4.22, Андрей (??), 08:56, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +6 +/
    С гаремом-то как раз почаще прилётся вкалывать :)
     
  • 2.31, Аноним (-), 13:08, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это спасение миллионов пользователей убунты
     
     
  • 3.41, Аноним (-), 14:02, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Это спасение миллионов пользователей $your_distribution_name

    Потому что бидон везде, чёрт бы его подрал. Ну разве что ты используешь исключительно CLI софт. И у тебя не Debian-based дистр. Ибо apt.

     
     
  • 4.62, Аноним (-), 15:44, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В минимальной система он нужен в основном reportbug'у и installation-report'у, apt/aptitude без них будет работать.

    Но очень быстро приезжает по зависимостям при попытке поставить что-либо ещё, например bind.

     
  • 4.102, Аноним (-), 20:10, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Что и винда вся в питоне?
     
     
  • 5.131, Урри (?), 17:31, 06/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Хуже. Винда вся в дотнете.
     

  • 1.4, Андрей (??), 01:00, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    А гугл, смотрю, серьёзно взялся за перетаскивание Python-программистов в Go. Уже раньше говорили, что (к сожалению) не столько С++, сколько именно питоновцы мигрируют.
     
     
  • 2.19, Eklykti (?), 04:19, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > не столько С++, сколько именно питоновцы мигрируют

    А зачем плюсерам мигрировать с нормальных шареных либ, которые обновляются отдельно и никого не трогают, на инклуды с гитхаба, которые надо каждый раз обновлять самостоятельно?

     
     
  • 3.20, asdasd (?), 04:28, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > которые обновляются отдельно и никого не трогают
    > на инклуды с гитхаба, которые надо каждый раз обновлять самостоятельно?

    Эм, а первый вариант сам по себе обновляется? А если вы про static/shared, то:
    A) есть gccgo
    B) есть Go>=1.5: http://blog.ralch.com/tutorial/golang-sharing-libraries/

     
     
  • 4.27, Аноним (-), 11:55, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Сторонние и экспериментальные костыли не интересуют.
     
     
  • 5.29, фвфыв (?), 12:41, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Во первых, Go1.5 не экспериментальный (и уже двести лет в обед существует 1.7).
     
  • 4.34, Мадара (ok), 13:15, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    добавлю что в Go 1.8 ещё добавили плагины https://beta.golang.org/pkg/plugin/
     
  • 3.46, Аноним (-), 14:46, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Шареные либы не нужны. От них один бардак в продакшене. Гугловцы правильно делают, что навязывают всем статическую линковку.
     
     
  • 4.59, Аноним (-), 15:39, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    при обновлении уязвимой системы пересобирать весь софт. логично.
     
  • 4.64, Аноним (-), 15:46, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А ещё они при любых проблемах с хостом просто его переустанавливают с нуля. Не надо сову натягивать на глобус.
     
     
  • 5.134, . (?), 21:03, 07/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Cat vs cattle ... (C) Google (кажись)

    Неужели не читали? Многое бы стало понятнее, почему гугель и другие большие делают так, а не иначе...

     
  • 4.101, Led (ok), 20:07, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Шареные либы не нужны. От них один бардак в продакшене.

    Вендузятник должен страдать.

     
  • 2.38, mumu (??), 13:25, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А вот и не соглашусь. Зачем мне теперь изучать Go, если я могу всё написать на питоне на коленке и получить вон какую производительность многопоточность на шару?
     
     
  • 3.42, Мадара (ok), 14:06, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    для старых проектов, да. А если для новых то уже начинаешь задумываться - если при трансляции кода ты получаешь хорошую производительность и многопоточность, то что будет если писать код напрямую с учётом особенностей самого языка и разрабатываемой программы, естественно результат будет ещё лучше, а если взять во внимание что язык Go довольно легко изучается то желание перейти становится довольно сильным.
     
  • 3.47, Crazy Alex (ok), 14:48, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    1) Потому что примерно с сотни тысяч строк статическая типизация становится крайне важной, да и когда меньше - от неё толк есть.
    2) Потому что на Go пишется ровно так же "на коленке" - и при росте популярности его изучение становится вполне выгодным вложением сил.

    Хотя я вот так и не смог себя заставить плотно за него взяться - уж больно чуждая идеология.

     
  • 2.45, Crazy Alex (ok), 14:44, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё бы - идеология у Go именно питоновская - довольно ограниченные возможности и хождение строем в плане организации кода, стиля и т.п. В отличие от мультипарадигменных здоровенных, мощных и сложных плюсов, в которых для каждой бочки несколько разных затычек найдётся. То есть для питона замена более чем адекватная выходит, а для плюсов - очень нишевая.
     
     
  • 3.76, superanon (?), 16:31, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В питоне ничего строго, кроме оформления кода. Питон любят как раз за крайнюю гибкость: в нём можно перерыть все кишки интерпретатора, подгружать модули на ходу, переписывать критические участки кода на C/Cython, а также за полное ООП и прочие плюшки. А Go больше похож на какую-то очень урезанную Яву без исключений.
     
     
  • 4.84, Crazy Alex (ok), 18:18, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    1) Гибкость - это Perl/C++/D. Да хоть та же Java - с аннотациями там много нетривиального можно сотворить. Питоновкий код куда более прямолинеен. Может, в питоне даже и можно сделать больше, чем обычно - но это будет ни разу не идиоматично. В упомянутых же языках это норма.

    2) есть, грубо говоря, два подхода. В одном (образно "паскалевском") считается более правильным явным образом писать простыни сравнительно простого кода. В другом (образно "сишном") считается более правильным писать компактный код, состоящий из идиом, которые, в общем-то, требуется один раз понять. Питон и голанг, джава принадлежат к первым, плюсы - ко вторым. Что правильнее - сильно от задачи зависит, в энтерпрайзах первый подход всяко лучше, в ядре - второй.

     
     
  • 5.108, Аноним (-), 20:47, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Гибкость - это не только и не столько возможность написать одно и ту же функцию четырьмя способами.
     
  • 4.121, angra (ok), 00:03, 06/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ну чисто для примера гибкости, расскажи как в нем сделать класс на основе массива или скаляра, а не структуры(структура с единственным элементом массивом/скаляром за решение не считается). Как обстоит дело с созданием нескольких конструкторов? Можно ли иммитировать другой вариант ООП, например прототипное из js?

     
  • 2.63, Аноним (-), 15:45, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ubuntu весит 1,4 Гб. 800 мегабайт из них - Python. Получается скоро Ubuntu будет весить 600 мегабайт, т.е. снова будет влезать на CD диск
     
     
  • 3.87, Аноним (-), 18:26, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Ubuntu весит 1,4 Гб. 800 мегабайт из них - Python. Получается скоро
    > Ubuntu будет весить 600 мегабайт, т.е. снова будет влезать на CD
    > диск

    Это как? Эпичное неосиляторство убунтщиков или опять анон заврался? o_O
    [CODE]
    # %s[bh] The flat size of the matched package, where b is in bytes, and h is in human readable format.
    % pkg rquery %n:%sh python27 python34 python36
    python27:66.6MiB
    python34:78.6MiB
    python36:100MiB

    % pkg rquery %n:%sh $(pkg_deps_all python36)        
    libffi:124KiB
    readline:1.52MiB
    gettext-runtime:802KiB
    indexinfo:11.5KiB

    % pkg rquery %n:%sh $(pkg_deps_all python27)
    libffi:124KiB
    readline:1.52MiB
    gettext-runtime:802KiB
    indexinfo:11.5KiB
    [/CODE]


     
     
  • 4.133, Аноним (-), 19:34, 07/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Зависимости забыли посчитать
     
     
  • 5.140, Аноним (-), 02:10, 08/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Зависимости забыли посчитать

    Нет, не забыли.


     
     
  • 6.142, Аноним (-), 21:11, 08/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И все же забыли, там под сотню пакетов будет
     
     
  • 7.143, Аноним (-), 21:47, 08/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А почему не тысяча, ведь гладиолус Еще раз, пошагово CODE -d, --dependen... большой текст свёрнут, показать
     
  • 2.139, Вы забыли заполнить поле Name (?), 01:42, 08/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А гугл, смотрю, серьёзно взялся за перетаскивание Python-программистов в Go. Уже раньше
    > говорили, что (к сожалению) не столько С++, сколько именно питоновцы мигрируют.

    А зачем плюсерам мигрировать на язык без возможности управления памятью, без нормальных типов и шаблонов, без нормальных классов, без исключений?

     
     
  • 3.141, Аноним (-), 13:09, 08/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Потому что модно-молодежно, потому что сам Google продвигает
     

  • 1.5, Аноним (-), 01:19, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Судя по графику, на одном потоке питон почти вдвое уделывает этот грумпи? Это сам го такой медленный, или транслятор?
     
     
  • 2.6, Паша Красников (?), 01:23, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А ложка удерживает в 30 раз больше супа, чем вилка. Давайте использовать инструменты по их назначению.
     
     
  • 3.24, anonimous (?), 09:33, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А ложка удерживает в 30 раз больше супа, чем вилка. Давайте использовать инструменты по их назначению.

    Кстати, ложкой можно есть всё и без проблем. А вот вилка -- довольно ограниченный инструмент, разве что есть интересное применение -- ткнуть кого-нибудь в глаз. Хотя и здесь ложка справится не сильно хуже.

     
     
  • 4.26, Аноним (-), 10:16, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > ткнуть кого-нибудь в глаз
    > ложка справится не сильно хуже

    Да вы владеете тайным тюремным искусством!

     
     
  • 5.65, Аноним (-), 15:48, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Да, он может сделать так, чтоб ложка удерживать столько же жидкости, сколько и вилка. ЕВПОЧЯ. :-)
     
  • 4.43, Аноним (-), 14:10, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А вот вилка -- довольно ограниченный инструмент

    Спагетти тоже ложкой есть?

     
     
  • 5.89, Аноним84701 (ok), 18:29, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> А вот вилка -- довольно ограниченный инструмент
    > Спагетти тоже ложкой есть?

    Вообще-то, ложка при "правильном подходе" тоже необходима ;)

     
  • 4.72, Аноним (-), 16:13, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >ложкой можно есть всё и без проблем

    Я посмотрю, как ты управишься с приличным куском мяса.

     
     
  • 5.144, Аноним (-), 12:10, 10/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Девочки не ссорьтесь.

    Без ножа(pure C), кусок мяса вам будет на посмотреть.

    А вот для роллтона нож не нужен...

     
  • 2.30, Аноним (-), 12:47, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ну пока это альфа, скорее всего там ещё можно миллион всего оптимизировать (что уже сделано в CPython). Так что надо подождать) чудес не бывает и байткод всегда будет медленнее, чем нативный.
     
  • 2.33, Аноним (-), 13:14, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Судя по субъективной оценке сотен тысяч пользователей все питоновские приложения в ubuntu - жручее тормозное лагалово. Помните тот же менеджер приложений, который удалось искоренить большими усилиями сообщества, не давало питоновское лобби. Он больше времени висел, чем работал. И в философии питона 19 пунктов из 20. 20 - это производительность , которая идет в жертву остальным 19.
     
     
  • 3.99, Аноним (-), 19:33, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А код на сишке от таких же перцев - жручее тормозное падалово Только не надо оп... большой текст свёрнут, показать
     
     
  • 4.117, Аноним (-), 22:34, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Спасибо за развернутый комментарий.
     
  • 2.83, Аноним (-), 18:10, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И го медленный и транслятор медленный. У четких пацанов уже везде, где нужно, заюзан multiprocessing и использовать транслятор выйдет себе дороже
     

  • 1.7, Дуплик (ok), 01:24, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Но зачем? В Python даже многострочные лямбы не завезли.
     
     
  • 2.48, Crazy Alex (ok), 14:50, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот чтобы переезжать с питона, вестимо
     

  • 1.8, Аноним (-), 01:31, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ну наконец, питон побежден.
    Даже Google надоели эти ваши GIL.

    В масштабах планеты это фейлы.

     
     
  • 2.9, Аноним (-), 02:00, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    GIL не такая страшная штука какой вы ее представляете, но если для вас это страшно используйте Jython без GIL
     
     
  • 3.13, Аноним (-), 02:35, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Смотря до скольки ядер масштабировать в пределах нод.
     
     
  • 4.77, superanon (?), 16:35, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Для обработки запросов используют multiprocessing. Потоки нужны больше для того, чтобы интерпретатор не простаивал из-за I/O .
     
  • 3.16, leap42 (ok), 03:05, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    не страшная? вы ещё раз график посмотрите (особенно ту часть, где видно разницу между 5-ю тредами и 8-ю). java, как я понимаю, увеличивает и без того нескромное использование памяти python вообще до неприличного? да и, например, "местные эксперты" намекают на жуткие тормоза сборщика мусора java, что с этим делать?
     
     
  • 4.17, Аноним (-), 03:15, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Wowza тормозит как не в себе, не кому не рекомендую изучать Oracle(Java)
     
  • 4.25, Аноним (-), 09:51, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не страшная. Потому что есть такие инструменты, как gevent. А у python 3 есть asyncio с uvloop. Или Вы из тех странных людей, которые плодят кучу потоков там, где нет IO?
     
     
  • 5.49, Crazy Alex (ok), 14:54, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    При правильном применении потоки упрощают поддержку - считай, ещё один способ собрать логически связанный код в одну кучу и получить понятную логику его работы. Примерно по той же причине (в том числе) и микросервисы в моде. да, можно и жуть накрутить - так с асинхронностью это тоже запросто
     
  • 2.35, Аноним (-), 13:16, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Еще не побежден, из ubuntu надо выгрести 600 метров мусора
     
     
  • 3.66, Аноним (-), 15:49, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Оставить только ядро и переименовать в ubuntoo.
     

  • 1.14, имя (?), 02:56, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Интересно будет сравнить с shedskin, компилирующим в C++. Впрочем, в плане фич сразу видно, кто впереди: в гуглобложеке хвастаются возможностью импорта изо всяких __go__.net.http.
     
  • 1.23, Аноним (-), 09:13, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > Grumpy

    http://i0.kym-cdn.com/photos/images/newsfeed/000/406/346/fd3.jpg

     
  • 1.28, Пользователь Debian (?), 12:01, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ветка на golang-nuts: https://groups.google.com/d/topic/golang-nuts/OJX0TlOF-hw/discussion
     
  • 1.36, Аноним (-), 13:21, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Всегда говорил, питону не место в продакшине. Но всякие неумехи пихают его просто везде. А благодаря низкому порогу дистрибутивы сегодня завалены кривым кодом школьников. Google молодцы, взялись за решение этой проблемы.
     
     
  • 2.40, Аноним (-), 13:32, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Так они сами себе создали эту проблему. Сейчас вот успешно её решают.
     
     
  • 3.52, Crazy Alex (ok), 14:59, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Они использовали тот инструмент что был. Сделали новый, лучше подходящий - теперь переезжать будут. Не спеша, ибо масштабы.
     
     
  • 4.56, Аноним (-), 15:25, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Не тот, что был, а тот, что осилили. В то время уже было много приемлемых вариантов. Сейчас же C++ + QML эталон функциональности и производительности, но нет видимых признаков перехода, т.к. продолжают писать школьники-неумехи-неосиляторы. Вот для них сделали инструмент попроще - Go, чтобы хоть как-то решить проблему.
     
     
  • 5.69, Crazy Alex (ok), 15:56, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    "Осилили" - то есть он им хоть как-то подходил. Блин, ну не может большая контора опираться только на умников - их может банально не хватить, лишние риски никому на фиг не нужны.  А плюсы, да ещё на масштабах - штука сложная, как их не поверни, и для вебовского бакэнда выбор несколько сомнительный. При чём тут QML - вооще не понял, у гугла десктопных апп на питоне я и не помню.
     
     
  • 6.85, Аноним (-), 18:22, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > При чём тут QML - вооще не понял, у гугла десктопных апп на питоне я и не помню.

    Для нытиков, которые приводят гуи в аргументы питону. А насчет веба, это, имхо, изврат, питон вообще не для него. Для веба есть php, ruby и т.п. специализированные языки.

     
     
  • 7.113, Аноним (-), 21:09, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >А насчет веба, это, имхо, изврат, питон вообще не для него.

    Как раз для него. Главное, не пихать его в бэкэнд. Ибо Django и Zope. И Flask. И Tornado. Вообще, лёгкие приложения работают на питоне достаточно шустро.

     
  • 5.146, Geek (?), 09:12, 20/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Читал читал и решил таки вставить свои 5 копеек на вашем комментарии C QML... большой текст свёрнут, показать
     
  • 2.44, Аноним (-), 14:43, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    пихаю школо-код в продакшен. Согласен, что
    Google молодцы, взялись за решение своей, и исключительно своей психологической, проблемы.
    И что питон получил очередной инструмент при желании портировать часть кода в golang. На Tiobe между ними пропасть, по деньгам, и тем более по количеству предложений еще более скромнее golang смотрится. Все в гугл не попадем думаю, манйстримная школота по крайней мере остаеться пока на Питоне ) А если и дергаться немножко параллельно куда, так на ноду.
     
     
  • 3.54, Crazy Alex (ok), 15:10, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А чуток в будущее заглядывать религия не велит? Надо всегда в догонялки играть?
     
     
  • 4.55, Аноним (-), 15:23, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А куда заглядывали те, кто совсем недавно восторженно бегал с гугловским Dart?
    В моем мире golang уже свою нижу занял, где-то между Ruby и Swift. Зачем туда заглядывать?
    Питон же после java, c/c++  на почетном 3 месте, уже спихнув c# с бронзы. Будущее уже наступило.
     
     
  • 5.68, Аноним (-), 15:53, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > А куда заглядывали те, кто совсем недавно восторженно бегал с гугловским Dart?

    Почему-то вспомнился фильм "human centipede".

     
  • 5.70, Crazy Alex (ok), 16:05, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А завтра оно станет прошлым. Я ж  о том и говорю - тренды надо смотреть.

    И ниша - это не "между", это конкретная сфера применения. Да, для go она уже определилась - "стандартный" софт средней сложности, прежде всего сетевой. То есть это ровно та ниша, где продакшн-питон и живёт.

    Дарт - хреновый аналог. Чем дартоверы думали - понятия не имею, вроде ж довольно быстро понятно стало, что не взлетит - в браузере может выжить только консенсусное решение - вот тот же WebAssembly взлететь практически обречён. И уж точно это стало понятно до того, как там появилось, что изучать. А здесь - платформа не ограничивает никак.

     
  • 3.57, Аноним (-), 15:33, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Этo не психoлoгическая прoблема Google. oчевиднo всем, крoме Вас, чтo прилoжения на питoне дo ужаса тoрмoзные и жрущие память. Пoмните какoй скандал был с менеджерoм прилoжений ubuntu? Пoвальные тoрмoза вo всех прилoжениях - этo прoблема именнo питoна.
    Некoтoрые пишут чтo питoн тoрмoзит из-за разрабoтчикoв, кoтoрые в нем тoлкoм не разбираются. Нo этo, oпять же, прoблема языка. oн пoзвoляет вытвoрять такoе.
    И самoе неприятнo - ничегo если бы шкoльники дрли свои лабы у себя дома. Но нет, всё это пoделие вываливают в продакшн, пихают во все дистрибутивы линукса, всё тормозит и портит репутацию linux в конечном итоге.
     
     
  • 4.126, Гвидо (?), 06:35, 06/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, мы на всё пойдём,чтобы доставить тебе больно.
     
  • 2.51, Crazy Alex (ok), 14:58, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Место, но не там. Управляющие скрипты, системы сборки/развёртывания/бэкапа и тому подобное - вполне для него.
     
     
  • 3.58, Аноним (-), 15:36, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Школьные лабы, домашние сервачки ему предел
     
     
  • 4.71, Crazy Alex (ok), 16:06, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да что угодно тысяч до 10 строк и не требующее какой-то особой производительности. Дальше - смотреть надо по ситуации.
     
  • 3.104, Led (ok), 20:14, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Управляющие скрипты, системы сборки/развёртывания/бэкапа и тому подобное - вполне для него.

    Нет.

     
     
  • 4.136, . (?), 22:04, 07/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Управляющие скрипты, системы сборки/развёртывания/бэкапа и тому подобное - вполне для него.
    > Нет.

    Да.
    На sh\ksh\tsch\bash после определённого размера становится просто больно это писать. Тут уж в зависимости от твоих "корней" - либо в питон, либо в перл. ТЧК.

     
     
  • 5.137, . (?), 22:05, 07/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > ... в зависимости от твоих "корней" - либо в питон, либо в перл. ТЧК.

    В оригинале было ещё tcl ... но я его уж лет "в живую" 10 не встречал :(

     

  • 1.61, Аноним (-), 15:40, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Рано радуетесь. Битон на столько въелся в дистрибутивы, что я думаю еще не скоро будет искоренен
     
     
  • 2.74, Аноним (-), 16:16, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Рано радуетесь. Битон на столько въелся в дистрибутивы, что я думаю еще
    > не скоро будет искоренен

    И не будет. Примерно как и perl.

     
  • 2.86, Аноним (-), 18:25, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Какой-то минусятор не согласен, а ведь всё именно так
     

  • 1.73, Аноним (-), 16:13, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А можно объективно и тезисно, почему Python настолько ужасен, что тут все так его раскритиковали?
     
     
  • 2.78, superanon (?), 16:39, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Низкая производительность, ибо JIT пока не завезли, и отсутствие нормальной многопоточности, ибо GIL. Всё остальное - субъективщина.
     
     
  • 3.80, Аноним (-), 16:49, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Спасибо. Да c этими минусами трудно поспорить
     
  • 3.124, leap42 (ok), 02:35, 06/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    производительность и JIT в python есть, но завезли их только в PyPy. он хоть и отстаёт по фичам, но большинству его хватит (если не используете C-ные либы, то совместимость будет около 100%).
     
  • 2.88, Аноним (-), 18:27, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Еще большое потребление памяти, что обусловлено архитектурными особенностями. И чтобы приложение работало с терпимой скоростью - надо воротить костыли. Ну т.е. этот язык 100% заточен на удобство программирования.
     

  • 1.82, economist (?), 17:59, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Только на opennet измеряют производительность не приложений, а самого языка, причем в таких идиотских единицах измерения:

    - одна нежить (неJIT)
    - один неигил (неGIL)

    По-сути - это наименее разумный способ проводить время - сравнивать скорость языков. Python настолько туп и прекрасен в своей простоте и ясности кода, что попытки его изменить - делают его только лучше. Все эти Go - только упрочат популярность самого Python-а.

    И еще - предлагаю внести в матофильтр слово продакш[е]н - никто не значет что еэто такое, но все пользуются как универсальным доказательством как непригодности "для чего-то", так и исключительного соответствия "непонятно чему".  

      

     
     
  • 2.90, Аноним (-), 18:35, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Питон и производительность не совместимы. Почитайте философию: https://ru.wikipedia.org/wiki/Python
    Python - язык для красоты и удобства. Никто в тормозах именно его не упрекает, это вполне ожидаемо и нормально. Проблема начинается тогда, когда приложения на нем пихают в продакшн, во все дистрибутивы линукса и вообще везде, где попало. В придачу к найтивной тормознутости языка из-за низкого порога код пишут школьники-неумехи, что сказывается на его качестве в худшую сторону. Сюда же стоит добавить огромный вес библиотек, около 500 мегабайт. Программисту всё это удобно, а пользователю нет. И таких эгоистов становится всё больше.
     
     
  • 3.100, Аноним (-), 19:38, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Сюда же стоит добавить огромный вес библиотек, около 500
    > мегабайт.
    > 500 мегабайт.

    [CODE]
    % pkg info -s python27
    python27-2.7.13_1              66.6MiB
    % pkg info -s $(pkg info -dq python27)
    libffi-3.2.1                   124KiB
    readline-6.3.8                 1.52MiB
    gettext-runtime-0.19.8.1_1     802KiB
    [/CODE]
    Хотя да, подоконники должны страдать.

     
     
  • 4.120, economist (?), 23:37, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У "подоконников" распакованная стандартная библиотека ~100 Мбайт. А человек, писавший про 500 - до сих пор считает что прав именно он.
     
     
  • 5.123, Аноним (-), 02:01, 06/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ладно, разрешаю не страдать , но что там намутили в убунтах, я не знаю Дефолт... большой текст свёрнут, показать
     
  • 3.110, Аноним (-), 20:51, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >В придачу к найтивной тормознутости языка из-за низкого порога код пишут школьники-неумехи, что сказывается на его качестве в худшую сторону.

    В общем-то эту проблему на данный момент удалось решить только ML-подобных языках. У всех остальных слишком низкий порог вхождения. Даже в С++.

     

  • 1.92, economist (?), 19:03, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В "философии" P. нет ни слова про замедленную производительность. И что, у нас еще один супер-критерий - содержание "философии"?

    Не в ней ли сосредоточена самобичующая самооценка про так часто здесь упоминаемый "низкий" порог? Вы считаете asincio, scipy, odoo итп признаками низкого порога? А может низкого интеллекта?  

    Так у Ассемблера философии вообще нет. Нет её и у BAT/VBS/WSH/PowerShell, которые работают на одном  том же коде в 5-10 раз медленнее, при этом не перестают быть самыми популярными скриптовыми языками под Windows.

    Упрекать Python его же стандартной библиотекой (100 Мб), умеющей почти всё - это апофеоз демагогии.  

      

     
     
  • 2.93, Аноним (-), 19:07, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В философии вообще ничего нет про скорость. Философия ориентирует язык на удобство(!!!), и даже там, где это идут в ущерб производительности. И он не стал медленным в какой-то момент. Это изначально так планировалось и реализовано.
     
     
  • 3.95, Аноним (-), 19:13, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Удивляют вообще эти люди, дают им хороший рабочий инструмент, ваз 2110, а они из него бугатти требуют сделать. Дак возьми с++ и будет тебе хоть целый боинг.
     
  • 2.94, Аноним (-), 19:10, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    У него низкой порог, теперь не пользоваться им что ли? У php до 7 тоже низкий порог, все успешно пользуются, применяют по назначению и вполне довольны.
     
     
  • 3.106, Led (ok), 20:18, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > У него низкой порог

    Да, хоббиты и прочие гномы оценили.

     

  • 1.96, Аноним (-), 19:16, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Такое ощущение, что у go все же есть проблемы с адаптацией в отрасли.
     
  • 1.107, Линукс еще не готов (?), 20:37, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А есть хоть один дистр без питона?
     
     
  • 2.111, Аноним (-), 20:55, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Почти нет, ибо он постепенно занимает нишу Perl'а. Ждём ответа от Prel 6!
     
  • 2.115, Аноним (-), 21:12, 05/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > А есть хоть один дистр без питона?

    Да. Например, дистрибутивы BSD.


     
  • 2.122, angra (ok), 00:17, 06/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Способный нормально работать без питона или вообще не имеющий пакетов питона в репах? Если первое, то их хватает, если второе, то только что-то очень экзотическое.

     

  • 1.109, economist (?), 20:51, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Теперь буду клиентам и студентам рассказывать про то что философская "ориентация языка на удобство, даже в ущерб производительности" означает преднамеренно запланированный и реализованный JIT и GIL. Вот они-то будут рады! Может напомнить достопочтенной оппонирующей аудитории в чем у этих досадных механизмов есть преимущества?

    А если серьезно - давайте поспорим: вычисление чисел Фибоначчи на Питоне будет не более чем на 50% медленнее, чем на любом из 90% языков первой по популярности двадцатки языков. Но время разработки любого более-менее сложного алгоритма на Питоне будет в разы быстрее именно из-за его ущербной "философии". Правда, поверят в это только "апологеты" языка - а это, судя по топику, вымирающий вид, мыши, неспособные прогуглить скорое затопление корабля, кишащего Змеями...  

    Очень жаль, друзья, что мы все очень ревностно отстаиваем собственные предпочтения в языках. Знать их много, да еще и с реальной полезностью в жизни - невозможно. А разговаривать на смеси двух и более - почему-то считается зазорным.

    Программируйте на Питоне - не смотря ни на что! Это красивый и простой язык, на котором приятно кодить и шкодить.


    А выбирая что изучать из языков программирования по "рейтингам" - помните про 1С, - это, увы, реалии, о которых на очень уважаемом мною opennet.ru - можно не увидеть новостей годами. Хотя это свободная (и бесплатная, не спорьте) среда программирования, занимающая уверенно 1-е место и целых 80% вакансий программистов. Вот так-то...  

     
  • 1.114, economist (?), 21:10, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ах да, я не увидел еще одну проблему - Python, оказывается, пихают во все дистрибутивы! Куда смотрит ФАС и туловище(с). Сжечь их и его! ... Правда, мы это уже много раз проходили.


    Кстати, можно хоть один реальный пример "школо-кода в продакшене"? Только предупреждаю - прорефакторим его вместе. Но критерий "хорошести", чур, один - единственно объективно измеряемый: на 50% лучшая скорость выполнения. Поэтому любителей функций, структурного программирования, массивов, нелюбителей меток итп - ждет разочарование: часто всё это ускоряет код, если есть определенность в коде, не-равноверятность условий, предсказуемость в множествах. ВО всех этих случаях то, что придумает неправильный программист или просто человек, который умеет "крыжить" - будет быстрее.      

     
  • 1.119, 1111 (??), 23:29, 05/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Grumpy нацелен на использование в качестве прозрачной замены CPython 2.7
    > 2.7

    Ага, ещё десяток лет тащить будут.

     
  • 1.125, JavaC (?), 03:10, 06/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Потом гугл по привычке всё выбросит, и займётся новыми костылями. Тоска.
     
     
  • 2.127, ни имени ни звания (?), 06:44, 06/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Странно это. Пистон вон тоже 2.7-совместимый.
     
     
  • 3.128, oopsy (?), 13:19, 06/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ничего странного -

    https://github.com/dropbox/pyston#current-state

    > Current state
    > Pyston should be considered in alpha: it "works" in that it can successfully run Python code, but it is still quite far from being useful for end-users.
    > Currently, Pyston targets Python 2.7, only runs on x86_64 platforms, and only has been tested on Ubuntu. Support for more platforms -- along with Python 3 compatibility -- is desired but deferred until we feel successful on our initial platform. Pyston does not currently work on Mac OSX, and it is not clear when it will.

    Оба проекта находятся в состоянии альфа-версии, у авторов того и другого проекта тонны кода на python 2. И тем и другим нет смысла тратить силы на поддержку ненужного им python 3.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру