Бабушка Питона
Feb. 26th, 2011 02:32 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Коллеги, посоветуйте пожалуйста правильную IDE-ху для начинающего несовершеннолетнего питонщика и его родителей. Мы тут по совету дорогого товарища oxfv посмотрели на Питон и в общем остались довольны.
Подрастающее поколение, как оказалось, совершенно независимо от наших педагогических планов хочет писать компутерные версии любимых board games, чтобы компутер сам считал очки и вообще заботился о логистике. Кстати, уважаемые bleys и
9cats, поколение у меня сегодня спросило, когда уже наконец поступит в продажу игра про завоёвывающих мир котегов.
What I've seen so far:
- PyCharm. Лежит в руке как влитой, но кагбе стоит стобаксов. Воровать у практически родных людей мне впадлу. Если бы я сам серьёзно чем-то занимался, купил бы не глядя, а вот несмышлёному подростку жалко. Впрочем, может куплю ещё.
- Aptana. Странная она какая-то, ну её.
- Eclipse+PyDev. Не так удобно, как PyCharm, и ваще.
- Komodo. И смотреть не стал, за четырестабаксов они могут иметь себя сами.
- NetBeans. Тоже не стал смотреть.
Emacs, vim, NotePad и кнопку F4 просьба не советовать.
Спасибо!
no subject
Date: 2011-02-26 12:26 pm (UTC)http://www.activestate.com/komodo-edit
питон знает хорошо, автодополнение есть.
Довольно толстоват, правда.
На совсем первых порах может помочь IDLE из поставки --
там есть простенький редактор, но это совсем минимализм,
для чтения tutorial'а и запуска примеров оттуда.
если запрет на nodepad++ не распространяется, то можно его
посмотреть, многим нравится, но вот я не люблю.
Резюмируя, если комодо эдит не помешает своими тормозами,
то стоит его взять, пожалуй.
no subject
Date: 2011-02-26 12:33 pm (UTC)no subject
Date: 2011-02-26 01:52 pm (UTC)Может быть, есть плагин для этого, но я не искал, когда пользовался
комодо -- в питоне всегда хватало
import pdb; pdb.set_trace()
для отладки.
А Керниган и вовсе считает, что:
"The most effective debugging tool is still careful thought,
coupled with judiciously placed print statements."
no subject
Date: 2011-02-26 01:55 pm (UTC)no subject
Date: 2011-02-26 04:02 pm (UTC)> "The most effective debugging tool is still careful thought, coupled with judiciously placed print statements."
Дада, а ещё автокомплит не нужен, например.
Тут как бы проблема только в том, что визуальный дебаггер позволяет увидеть нужную информацию примерно в сто раз быстрее и в десять раз полнее, чем если ручками вставлять принты или просить пдб показать локалс. А так -- нет, никаких качественных отличий невозможно усмотреть!
По теме: у Eclipse + Pydev дебаггер присутствует и вполне няшный. Алсо у них присутствует няшная кнопка F3 (go to definition), которая работает на удивление чотко и дико внедряет. Я к тому, что беглый взгляд может оставить ошибочное впечатление, выставив на передний план мелкие недостатки (которые к тому же обычно можно убрать в настройках) но ничего не сказав о действительно важных вещах!
no subject
Date: 2011-02-26 12:49 pm (UTC)Curses, foiled again.
no subject
Date: 2011-02-26 03:54 pm (UTC)Правда я например для питона всё же Eclipse+PyDev предпочитаю, кстати!
Помимо разных его достоинств там есть вполне мирового качества дебаггер, бывает дико полезен порой!
no subject
Date: 2011-02-26 05:34 pm (UTC)Олсо, раз уж
я тебя поймалмы в кои-то веки пересеклись, как тебе:Ну и далее ожидаемо:
State
иAccessor
дают как бы кусочек стэйта и т. д. Все так императивненько! Только надо еще больше вкусных комбинаторов и джинерик аксессоров.no subject
Date: 2011-02-26 08:11 pm (UTC)Как я написал выше, проблема только в том, что визуальный дебаггер позволяет увидеть нужную информацию примерно в сто раз быстрее и в десять раз полнее, чем если ручками вставлять принты или просить пдб показать локалс. А так -- нет, никаких качественных отличий невозможно усмотреть!
Типа, никто не спорит насчёт того, что подумать бывает полезно, и что стратегическое расставление принтов заставляет подумать помимо всего прочего. Однако с моей точки зрения это как бы вериги, а так же old farts grumbling about their lawns. Я не призываю забыть о старом добром "подумать вначале", но сидеть в каменном веке по собственной воле всё же плохо.
Твой код я совершенно не понял, но это может быть потому, что у меня день рождения в некотором смысле! Он мне напомнил другой код чем-то:
boop foop gee goop = foop goop (gee goop)
ping goop zoom = goop
oot foop gee goop = foop (gee goop)
pop foop gee goop = foop goop gee
zoom foop = foop (zoom foop)
cond bloop foop gee goop = if bloop goop then foop goop else gee goop
floop = zoom (oot (cond ((==) 0) (ping 1)) (oot (boop (*)) (pop oot pred)))
no subject
Date: 2011-02-26 08:45 pm (UTC)Я совершенно не спорю, на самом деле (спорю, но исключительно в порядке троллинга); и в окружениях, где соответствующие средства рэдили эвэйлэбл, охотно ими пользуюсь. Другое дело, что я стараюсь сводить необходимость в отладке такими методами к минимуму, и у меня это по-моему удается. Так что в окружениях, где такие средства не, - матерно мечтаю об их присутствии довольно редко.
> код я совершенно не
Это по мотивам чтения архивов haskell-cafe на тему повышения удобства работы с высокоструктурированными данными (минимизация бойлерплейта етц.): там, правда, все к
Foldable
свели, после чего я утратил нить и поставил закладку почитать статюй основоположников в будущем (самый эффективный способ вкурки ime). Тут жеyoinkz
по аксессору и валюю достает,fiddle
по аксессору, валюю и функции мутирует,st*
- то же самое вState
,\\
комбинирует аксессоры.> другой код
Ты будешь смеяться, но я в последние полгода столько курил комбинаторную логику, что распарсил, не приходя в сознание:
boop foop gee goop = foop goop (gee goop) -- S
ping goop zoom = goop -- K
oot foop gee goop = foop (gee goop) -- B
pop foop gee goop = foop goop gee -- C
zoom foop = foop (zoom foop) -- комбинатор фиксированной точки
cond bloop foop gee goop = if bloop goop then foop goop else gee goop -- не понял только, нахрена goop? опять какие-нибудь радости нон-стриктности?
floop = zoom (oot (cond ((==) 0) (ping 1)) (oot (boop (*)) (pop oot pred))) -- факториал, сопесна
Но труевые чуваки вроде меня пишут, конечно, с Church encoding'ом всего вообще на каком-нибудь экмаскрипте.
no subject
Date: 2011-02-26 09:14 pm (UTC)Я имею в виду, что я, конечно, понимаю, что части этого грешного мира до сих пор пребывают в каменном веке (Solaris, HP-UX) и я должен с ними работать, но это означает только то, что моё взаимодействие с ними сводится к svn up && make. Может, по ssh ещё залью что, или там в vi подправлю что-нибудь, но я НЕ БУДУ ТАМ ПИСАТЬ КОД, ИДИТЕ НАХУЙ, ВЫ МНЕ НЕ ИНТЕРЕСНЫ. Как-то так.
> Это по мотивам чтения архивов haskell-cafe на тему повышения удобства работы с высокоструктурированными данными (минимизация бойлерплейта етц.):
Ну а можешь объяснить, нах оно мне полезно в нормальном языке? Вот как монады мне полезны в Петоне -- это я отлично понимаю, и очень обижен на хаскелеёбов что они не объяснили их мне раньше понятными словами. А это к чему?
> Ты будешь смеяться, но я в последние полгода столько курил комбинаторную логику, что распарсил, не приходя в сознание
Ок, завидую, я даже не пытался после того, как увидел знакомый паттерн в конце, ну конечно же, любая хаски прога вычисляет либо facs, либо fibs, тут ясно, что!
no subject
Date: 2011-02-26 09:46 pm (UTC)Я тэбэ адын стращьный вещь скажу... толко ты нэ абижайса! ОГРОМНЫЕ части этого грешного мира до сих пор пребывают в каменном веке; и, более того, будут там пребывать всегда - так или иначе.
<troll>
And pride ain't something you can shmear you bagel with.</troll>
> нах оно мне полезно в нормальном языке?
<troll>
И эти люди будут мне таки рассказывать про каменный век!</troll>
Не, я-то что, я сам пока не вкладывал персты в раны многопоточных систем с иммутабельными данными; но я готов держать открытый разум для этой идеи.> любая хаски прога вычисляет либо facs, либо fibs
Sad, but largely true.
no subject
Date: 2011-02-26 10:11 pm (UTC)But
ssh target_address cat <localfile ">" remotefile
is. Hence, my fuck off to the world.Да, конечно, иногда приходится иметь дело с багами на каменновековых системах, но там я как бы вообще только с коркой могу работать.
> И эти люди будут мне таки рассказывать про каменный век!
Нет ну правда! То есть я не уверен, что вся эта хуита решает реальную проблему, а не обходит ограничения Хаскеля. Убеди меня в обратном, рассказав как ты можешь написать то же самое в PHP фор греатер глори! (Это мой подход к разным Хаски фишкам, и я уверен в его продуктивности потому что могу заебать моск любому про то, как знание монд помогает мне писать чистый питонокод, например)
no subject
Date: 2011-02-26 11:25 pm (UTC)Да, то есть, хорошо ездить на роллс-ройсе, а не на троллейбусе, - но это не повод собирать роллс-ройс в гараже перед любой поездкой. И даже перед какой бы то ни было поездкой.
> решает реальную проблему
Ты забываешь, что я не магистр Йода, а обыкновенный янглинг. Ну и потом - ты прав, все эта возня с аксессорами, генерализованными фолдами и матрешкообразными стэйтами решает проблемы, возникающие из-за специфического дизайна хаскеля. Потому что в оо/императивном языке, я, конечно, полезу своими opposedthumbless лапами в глобальный стейт и буду там произвольно резвиться, как моей opposedthubmless душеньке будет угодно. Но. Этот самый специфический дизайн хаскеля якобы решает многие проблемы, возникающие при массивном распараллеливании. Решает ли действительно - я судить не компетентен, потому осторожно полагаюсь на мнение совета джедаев. (Ко мне один раз даже приходил в комменты суровый Мэйс Винду и делал выговор за то, что я не понимаю Суть фп, - мол, не простые абстракции, а иммутабельность! конкуррентность! стм! - отчего я очевидным образом стушевался и усох.)
И ситуация тут, конечно, такая, что монады - простая абстракция, которую развидеть нельзя. А вот все эти замысловатые преимущества ленивости и чистоты - их прозреть и прочувствовать несколько сложнее, по-видимому.
Ну а занимаюсь я этим, да, потому что бородавки хочется как-то культурно обойти: не для непосредственной пользы дела, а из тщетного мечтанья переехать как-нибудь из каменного века в бронзовый; но не на уровне банальных дебаггеров. Да и просто интересно.
А вообще мы злоупотребляем г3еприимством, нет?
no subject
Date: 2011-02-27 07:05 am (UTC)no subject
Date: 2011-02-26 01:08 pm (UTC)no subject
Date: 2011-02-26 01:10 pm (UTC)no subject
Date: 2011-02-26 04:25 pm (UTC)однако меня удивило отсутствие в списке Wing IDE (http://www.wingware.com/)
no subject
http://www.jetbrains.com/pycharm/buy/buy.jsp#opensource_
no subject
Date: 2011-02-26 08:51 pm (UTC)no subject
Date: 2011-02-26 06:29 pm (UTC)no subject
Date: 2011-02-26 08:52 pm (UTC)no subject
Date: 2011-02-27 08:03 am (UTC)no subject
Date: 2011-02-26 08:17 pm (UTC)no subject
Date: 2011-02-26 08:19 pm (UTC)no subject
Date: 2011-02-26 08:50 pm (UTC)no subject
Date: 2011-02-27 07:11 am (UTC)Аптану пробовал на позапрошлой работе (для продвинутого javascriptа) и сказал себе примерно то же самое.
no subject
Date: 2011-02-28 06:19 am (UTC)