piggymouse (
piggymouse) wrote2011-02-26 02:32 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Entry tags:
Бабушка Питона
Коллеги, посоветуйте пожалуйста правильную 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
http://www.activestate.com/komodo-edit
питон знает хорошо, автодополнение есть.
Довольно толстоват, правда.
На совсем первых порах может помочь IDLE из поставки --
там есть простенький редактор, но это совсем минимализм,
для чтения tutorial'а и запуска примеров оттуда.
если запрет на nodepad++ не распространяется, то можно его
посмотреть, многим нравится, но вот я не люблю.
Резюмируя, если комодо эдит не помешает своими тормозами,
то стоит его взять, пожалуй.
no subject
no subject
Curses, foiled again.
no subject
no subject
no subject
Может быть, есть плагин для этого, но я не искал, когда пользовался
комодо -- в питоне всегда хватало
import pdb; pdb.set_trace()
для отладки.
А Керниган и вовсе считает, что:
"The most effective debugging tool is still careful thought,
coupled with judiciously placed print statements."
no subject
no subject
Правда я например для питона всё же Eclipse+PyDev предпочитаю, кстати!
Помимо разных его достоинств там есть вполне мирового качества дебаггер, бывает дико полезен порой!
no subject
> "The most effective debugging tool is still careful thought, coupled with judiciously placed print statements."
Дада, а ещё автокомплит не нужен, например.
Тут как бы проблема только в том, что визуальный дебаггер позволяет увидеть нужную информацию примерно в сто раз быстрее и в десять раз полнее, чем если ручками вставлять принты или просить пдб показать локалс. А так -- нет, никаких качественных отличий невозможно усмотреть!
По теме: у Eclipse + Pydev дебаггер присутствует и вполне няшный. Алсо у них присутствует няшная кнопка F3 (go to definition), которая работает на удивление чотко и дико внедряет. Я к тому, что беглый взгляд может оставить ошибочное впечатление, выставив на передний план мелкие недостатки (которые к тому же обычно можно убрать в настройках) но ничего не сказав о действительно важных вещах!
no subject
однако меня удивило отсутствие в списке Wing IDE (http://www.wingware.com/)
no subject
http://www.jetbrains.com/pycharm/buy/buy.jsp#opensource_
no subject
Олсо, раз уж
я тебя поймалмы в кои-то веки пересеклись, как тебе:Ну и далее ожидаемо:
State
иAccessor
дают как бы кусочек стэйта и т. д. Все так императивненько! Только надо еще больше вкусных комбинаторов и джинерик аксессоров.no subject
no subject
Как я написал выше, проблема только в том, что визуальный дебаггер позволяет увидеть нужную информацию примерно в сто раз быстрее и в десять раз полнее, чем если ручками вставлять принты или просить пдб показать локалс. А так -- нет, никаких качественных отличий невозможно усмотреть!
Типа, никто не спорит насчёт того, что подумать бывает полезно, и что стратегическое расставление принтов заставляет подумать помимо всего прочего. Однако с моей точки зрения это как бы вериги, а так же 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
no subject
no subject
Я совершенно не спорю, на самом деле (спорю, но исключительно в порядке троллинга); и в окружениях, где соответствующие средства рэдили эвэйлэбл, охотно ими пользуюсь. Другое дело, что я стараюсь сводить необходимость в отладке такими методами к минимуму, и у меня это по-моему удается. Так что в окружениях, где такие средства не, - матерно мечтаю об их присутствии довольно редко.
> код я совершенно не
Это по мотивам чтения архивов 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
no subject
no subject
no subject
Я имею в виду, что я, конечно, понимаю, что части этого грешного мира до сих пор пребывают в каменном веке (Solaris, HP-UX) и я должен с ними работать, но это означает только то, что моё взаимодействие с ними сводится к svn up && make. Может, по ssh ещё залью что, или там в vi подправлю что-нибудь, но я НЕ БУДУ ТАМ ПИСАТЬ КОД, ИДИТЕ НАХУЙ, ВЫ МНЕ НЕ ИНТЕРЕСНЫ. Как-то так.
> Это по мотивам чтения архивов haskell-cafe на тему повышения удобства работы с высокоструктурированными данными (минимизация бойлерплейта етц.):
Ну а можешь объяснить, нах оно мне полезно в нормальном языке? Вот как монады мне полезны в Петоне -- это я отлично понимаю, и очень обижен на хаскелеёбов что они не объяснили их мне раньше понятными словами. А это к чему?
> Ты будешь смеяться, но я в последние полгода столько курил комбинаторную логику, что распарсил, не приходя в сознание
Ок, завидую, я даже не пытался после того, как увидел знакомый паттерн в конце, ну конечно же, любая хаски прога вычисляет либо facs, либо fibs, тут ясно, что!
no subject
Я тэбэ адын стращьный вещь скажу... толко ты нэ абижайса! ОГРОМНЫЕ части этого грешного мира до сих пор пребывают в каменном веке; и, более того, будут там пребывать всегда - так или иначе.
<troll>
And pride ain't something you can shmear you bagel with.</troll>
> нах оно мне полезно в нормальном языке?
<troll>
И эти люди будут мне таки рассказывать про каменный век!</troll>
Не, я-то что, я сам пока не вкладывал персты в раны многопоточных систем с иммутабельными данными; но я готов держать открытый разум для этой идеи.> любая хаски прога вычисляет либо facs, либо fibs
Sad, but largely true.
no subject
But
ssh target_address cat <localfile ">" remotefile
is. Hence, my fuck off to the world.Да, конечно, иногда приходится иметь дело с багами на каменновековых системах, но там я как бы вообще только с коркой могу работать.
> И эти люди будут мне таки рассказывать про каменный век!
Нет ну правда! То есть я не уверен, что вся эта хуита решает реальную проблему, а не обходит ограничения Хаскеля. Убеди меня в обратном, рассказав как ты можешь написать то же самое в PHP фор греатер глори! (Это мой подход к разным Хаски фишкам, и я уверен в его продуктивности потому что могу заебать моск любому про то, как знание монд помогает мне писать чистый питонокод, например)
no subject
Да, то есть, хорошо ездить на роллс-ройсе, а не на троллейбусе, - но это не повод собирать роллс-ройс в гараже перед любой поездкой. И даже перед какой бы то ни было поездкой.
> решает реальную проблему
Ты забываешь, что я не магистр Йода, а обыкновенный янглинг. Ну и потом - ты прав, все эта возня с аксессорами, генерализованными фолдами и матрешкообразными стэйтами решает проблемы, возникающие из-за специфического дизайна хаскеля. Потому что в оо/императивном языке, я, конечно, полезу своими opposedthumbless лапами в глобальный стейт и буду там произвольно резвиться, как моей opposedthubmless душеньке будет угодно. Но. Этот самый специфический дизайн хаскеля якобы решает многие проблемы, возникающие при массивном распараллеливании. Решает ли действительно - я судить не компетентен, потому осторожно полагаюсь на мнение совета джедаев. (Ко мне один раз даже приходил в комменты суровый Мэйс Винду и делал выговор за то, что я не понимаю Суть фп, - мол, не простые абстракции, а иммутабельность! конкуррентность! стм! - отчего я очевидным образом стушевался и усох.)
И ситуация тут, конечно, такая, что монады - простая абстракция, которую развидеть нельзя. А вот все эти замысловатые преимущества ленивости и чистоты - их прозреть и прочувствовать несколько сложнее, по-видимому.
Ну а занимаюсь я этим, да, потому что бородавки хочется как-то культурно обойти: не для непосредственной пользы дела, а из тщетного мечтанья переехать как-нибудь из каменного века в бронзовый; но не на уровне банальных дебаггеров. Да и просто интересно.
А вообще мы злоупотребляем г3еприимством, нет?
no subject
no subject
Аптану пробовал на позапрошлой работе (для продвинутого javascriptа) и сказал себе примерно то же самое.
no subject
no subject