January 4th, 2011

moth

Python IDE

Удивило многообразие ответов на поисковый запрос "python ide". Столкнулся с замечательным свойством опенсорса на примере Eric4. Примерно через час я бросил процесс установки, когда понял, что сделано 15%. Количество prerequisites и необхомиой работы напильником зашкаливает. Я думаю, что Eric IDE приблизилась к той грани, после которой опенсорс будет проигрывает коммерческому софту просто потому что инсталляция будет стоить дороже (по времени, выраженном в деньгах), чем покупка коммерческого аналога, который будет быстро инсталлироваться. В конце концов поставил Eclipse with PyDev, заняло всего полчаса.

* * *

Обратил внимание, что у меня изменились некоторые привычки. Например, раньше, устанавливая библиотеку или язык программирования, я бы назвал каталог, скажем, просто C:\Python. С мыслью о том, что если я перейду на другую версию, мне не нужно будет переделывать все мои скрипты и настройки для интеграции с другим софтом. Сейчас я назвал каталог C:\Python27 по противоположной причине: при смене версии я хочу, чтобы все места, привязанные к старой версии, точно сломались, тогда я буду знать, где нужно будет поправить, вместо того, чтобы ловить сюрпризы и расследовать, почему с новой версией не работает. Веры в то, что "всё само заработает" у меня нет.
moth

Python doc

My first bug found in Python doc:

1. "Note that numeric literals do not include a sign; a phrase like -1 is actually an expression composed of the unary operator ‘-‘ and the literal 1." (Python v2.7.1 language reference, Literals, 2.4.3. Numeric literals)

2. "Plain integer literals that are above the largest representable plain integer (e.g., 2147483647 when using 32-bit arithmetic) are accepted as if they were long integers instead." (Python v2.7.1 language reference, Literals, 2.4.4. Integer and long integer literals)

Based on these two things, I'd expect "-2147483648" be interpreted as long, because 2147483648 is long and unary - of long will result in long. The latter is supported by:

>>> -(2147483647+1)
-2147483648L


However, "-2147483648" is not long, it's int:

>>> -2147483648
-2147483648


Which is good, but which means the doc is incorrect. This is a minor thing, but I am disappointed, because if my reasoning is correct, it means the doc is not trustworthy.
moth

Eclipse + PyDev

Lesson learned: be careful when changing keybindings in the presence of plugins. Changing keybindings for Eclipse seem to cause PyDev to hang while debugging (specifically, with Visual Studio keybindings, Shift+F5 would always cause hang), probably because PyDev is hooks its actions on specific keystrokes, instead of events.