Showing posts with label python. Show all posts
Showing posts with label python. Show all posts

Monday, January 28, 2019

What is Python's biggest disadvantage?


1) Python seems simple at first glance. There are a lot of points that always need to keep in mind. Since 2003 I used Python because it was simple. Since 2016 I use Emacs Lisp instead of Python for disposable tasks, prototypes and text processing.
2) Backward incompatibility of language and libraries more than of Java, Delphi or Emacs.
3) Dynamic typing per se. This is good for little project/team but, it is a pain in another case. I wrote a library for type checking in a big project.
4) Dynamic typing implementation makes Python slow. Even slower than Emacs Lisp. Common Lisp implementations prove that dynamically typed languages could be faster.

Friday, November 25, 2011

Почему лучше не связываться с wxPython

Если вы начинаете проект на Python и в качестве GUI думаете использовать wxPython, то я не советую вам это делать по причинам переносимости. Ниже мой комментарий в теме, где такая проблема всплыла.

Тема wxPython на Linux вылазит, как правило в начале работы, когда вовсю вылазят косяки сборки wxPython. В свое время мы отказались от wx по двум причинам:
  • у wx (по крайней мере с wxPython) была проблема с обратной совместимостью на неосновных версиях.
  • wx, под Linux, дергает GTK. Но, работая с GTK напрямую еще есть шансы на то, что на другой конфигураци*  версия библиотеки будет совместима с той, которая используется для разработки. С wх, и в особенности с wxPython, такие шансы невысоки и вот почему. wxPython представляет собой связку четырех сущностей упомянутые выше GTK и wx, плюс wxPython и Python. Пакеты с GTK, wx, wxPython и Python собирают разные люди. Насколько они договорятся между собой о используемых версиях (UPD: и насколько большое рукожопие проявят в процессе сборки) -  большой вопрос. 
Если вы только начинаете проект я бы рекомендовал использовать более популярные альтернативы: pyQT или pyGTK**. Они вовсю используются в дистрибутивах, потому вероятность поиметь проблем с кривыми сборками и переносимостью на порядок меньше. Перед этим, для GUI, я использовал связку TkInter+Tile. Теперь, я предпочитаю вариант Java+Jython.

* - например, апгрейд дистрибутива или его смена
** - pyQT, пожалуй, самое лучшее. Но для коммерческих проектов надо лицензироваться, причем - недешево. Вместо него можно попробовать PySide, если он присутствует в вашем дистрибутиве. Вариант с GTK тоже имеет свои нюансы. Не так давно вышла GTK3. Я не знаю, совместимы ли GTK2 и GTK3, есть ли биндинг к GTK3, насколько он совместим с GTK2 и насколько вообще стабильна эта связка.

Thursday, March 10, 2011

Время от времени я играюсь бенчмарком, где надо посчитать числа Фибоначчи несколько странным образом - с генерацией кучи объектов.
Так вот, python Фибоначчи сливает по производительности свежему jython-у (2.5.2), который оказался немного шустрее, чем 2.5.1:
root@asm3:/home/miha/tmp# jython fib.py
Thu Mar 10 13:00:32 2011
102334155
Thu Mar 10 13:04:02 2011
root@asm3:/home/miha/tmp# jython fib.py
Thu Mar 10 13:12:34 2011
102334155
Thu Mar 10 13:15:53 2011
root@asm3:/home/miha/tmp# jython fib.py
Thu Mar 10 13:16:57 2011
102334155
Thu Mar 10 13:20:17 2011
root@asm3:/home/miha/tmp# jython fib.py
Thu Mar 10 13:21:15 2011
102334155
Thu Mar 10 13:24:42 2011

а вот python-вариант:
root@asm3:/home/miha/tmp# python fib.py
Thu Mar 10 13:45:48 2011
102334155
Thu Mar 10 13:51:06 2011

root@asm3:/home/miha/tmp# python fib.py
Thu Mar 10 13:52:54 2011
102334155
Thu Mar 10 13:58:24 2011

Да, я знаю, что psyco может существенно ускорить, но он все-таки костыль.
Кроме того я знаю, что под рутом сидеть моветон, но тесты гонялись сразу после установки.
Текст теста под катом.