piggymouse: (jamaica-muminpappan)
[personal profile] piggymouse

Коллеги, посоветуйте пожалуйста правильную IDE-ху для начинающего несовершеннолетнего питонщика и его родителей. Мы тут по совету дорогого товарища [livejournal.com profile] oxfv посмотрели на Питон и в общем остались довольны.

Подрастающее поколение, как оказалось, совершенно независимо от наших педагогических планов хочет писать компутерные версии любимых board games, чтобы компутер сам считал очки и вообще заботился о логистике. Кстати, уважаемые [livejournal.com profile] bleys и [livejournal.com profile] 9cats, поколение у меня сегодня спросило, когда уже наконец поступит в продажу игра про завоёвывающих мир котегов.

What I've seen so far:

  • PyCharm. Лежит в руке как влитой, но кагбе стоит стобаксов. Воровать у практически родных людей мне впадлу. Если бы я сам серьёзно чем-то занимался, купил бы не глядя, а вот несмышлёному подростку жалко. Впрочем, может куплю ещё.
  • Aptana. Странная она какая-то, ну её.
  • Eclipse+PyDev. Не так удобно, как PyCharm, и ваще.
  • Komodo. И смотреть не стал, за четырестабаксов они могут иметь себя сами.
  • NetBeans. Тоже не стал смотреть.

Emacs, vim, NotePad и кнопку F4 просьба не советовать.

Спасибо!

Date: 2011-02-26 12:26 pm (UTC)
From: [identity profile] little-arhat.livejournal.com
у Комодо есть бесплатная версия -- Komodo Edit, вполне приличная.
http://www.activestate.com/komodo-edit
питон знает хорошо, автодополнение есть.
Довольно толстоват, правда.

На совсем первых порах может помочь IDLE из поставки --
там есть простенький редактор, но это совсем минимализм,
для чтения tutorial'а и запуска примеров оттуда.

если запрет на nodepad++ не распространяется, то можно его
посмотреть, многим нравится, но вот я не люблю.

Резюмируя, если комодо эдит не помешает своими тормозами,
то стоит его взять, пожалуй.

Date: 2011-02-26 12:33 pm (UTC)
From: [identity profile] piggymouse.livejournal.com
Спасибо! Я правильно понимаю, что в Komodo Edit отладчика нет?

Date: 2011-02-26 01:52 pm (UTC)
From: [identity profile] little-arhat.livejournal.com
Судя по http://www.activestate.com/komodo-edit/compare-with-komodo-ide -- нет.
Может быть, есть плагин для этого, но я не искал, когда пользовался
комодо -- в питоне всегда хватало import pdb; pdb.set_trace()
для отладки.

А Керниган и вовсе считает, что:
"The most effective debugging tool is still careful thought,
coupled with judiciously placed print statements."

Date: 2011-02-26 01:55 pm (UTC)
From: [identity profile] piggymouse.livejournal.com
Керниган имеет пойнт.

Date: 2011-02-26 04:02 pm (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
> import pdb; pdb.set_trace()

> "The most effective debugging tool is still careful thought, coupled with judiciously placed print statements."

Дада, а ещё автокомплит не нужен, например.

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

По теме: у Eclipse + Pydev дебаггер присутствует и вполне няшный. Алсо у них присутствует няшная кнопка F3 (go to definition), которая работает на удивление чотко и дико внедряет. Я к тому, что беглый взгляд может оставить ошибочное впечатление, выставив на передний план мелкие недостатки (которые к тому же обычно можно убрать в настройках) но ничего не сказав о действительно важных вещах!

Date: 2011-02-26 12:49 pm (UTC)
From: [identity profile] pbl.livejournal.com
> vim [...] просьба не советовать.

Curses, foiled again.

Date: 2011-02-26 03:54 pm (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
лолд

Правда я например для питона всё же Eclipse+PyDev предпочитаю, кстати!

Помимо разных его достоинств там есть вполне мирового качества дебаггер, бывает дико полезен порой!

Date: 2011-02-26 05:34 pm (UTC)
From: [identity profile] pbl.livejournal.com
Вышеприведенное от Кернигана - оно в самую точку. Я знаю, что я дикий ретроград, но.

Олсо, раз уж я тебя поймал мы в кои-то веки пересеклись, как тебе:
data Accessor a b = Accessor (a -> b) ((b -> b) -> a -> a)
p1 = Accessor fst first
p2 = Accessor snd second
(Accessor f g) \\ (Accessor f' g') = Accessor (f' . f) (g . g')
yoinkz (Accessor f _) val = f val
fiddle (Accessor _ f) val p = f p val
patch a val v' = fiddle a val (const v')
styoinkz a = do
  st <- get
  return (yoinkz a st)
stfiddle a p = do
  st <- get
  put (fiddle a st p)
stpatch a v' = do
  st <- get
  put (patch a st v')
Ну и далее ожидаемо: State и Accessor дают как бы кусочек стэйта и т. д. Все так императивненько! Только надо еще больше вкусных комбинаторов и джинерик аксессоров.

Date: 2011-02-26 08:11 pm (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
> Вышеприведенное от Кернигана - оно в самую точку. Я знаю, что я дикий ретроград, но.

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

Типа, никто не спорит насчёт того, что подумать бывает полезно, и что стратегическое расставление принтов заставляет подумать помимо всего прочего. Однако с моей точки зрения это как бы вериги, а так же 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)))

Date: 2011-02-26 08:45 pm (UTC)
From: [identity profile] pbl.livejournal.com
> визуальный дебаггер

Я совершенно не спорю, на самом деле (спорю, но исключительно в порядке троллинга); и в окружениях, где соответствующие средства рэдили эвэйлэбл, охотно ими пользуюсь. Другое дело, что я стараюсь сводить необходимость в отладке такими методами к минимуму, и у меня это по-моему удается. Так что в окружениях, где такие средства не, - матерно мечтаю об их присутствии довольно редко.

> код я совершенно не

Это по мотивам чтения архивов 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'ом всего вообще на каком-нибудь экмаскрипте.

Date: 2011-02-26 09:14 pm (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
> Так что в окружениях, где такие средства не, - матерно мечтаю об их присутствии довольно редко.
    It is said that the two great human sins are pride and
    hate. Are they? I elect to think of them as the two great
    virtues. To give away pride and hate is to say you will
    change for the good of the world. To vent them is more
    noble; that is to say the world must change for the good
    of you. I am on a great adventure.
                            HAROLD EMERY LAUDER

Я имею в виду, что я, конечно, понимаю, что части этого грешного мира до сих пор пребывают в каменном веке (Solaris, HP-UX) и я должен с ними работать, но это означает только то, что моё взаимодействие с ними сводится к svn up && make. Может, по ssh ещё залью что, или там в vi подправлю что-нибудь, но я НЕ БУДУ ТАМ ПИСАТЬ КОД, ИДИТЕ НАХУЙ, ВЫ МНЕ НЕ ИНТЕРЕСНЫ. Как-то так.

> Это по мотивам чтения архивов haskell-cafe на тему повышения удобства работы с высокоструктурированными данными (минимизация бойлерплейта етц.):
Ну а можешь объяснить, нах оно мне полезно в нормальном языке? Вот как монады мне полезны в Петоне -- это я отлично понимаю, и очень обижен на хаскелеёбов что они не объяснили их мне раньше понятными словами. А это к чему?

> Ты будешь смеяться, но я в последние полгода столько курил комбинаторную логику, что распарсил, не приходя в сознание
Ок, завидую, я даже не пытался после того, как увидел знакомый паттерн в конце, ну конечно же, любая хаски прога вычисляет либо facs, либо fibs, тут ясно, что!

Date: 2011-02-26 09:46 pm (UTC)
From: [identity profile] pbl.livejournal.com
> понимаю, что части этого грешного мира до сих пор пребывают в каменном веке

Я тэбэ адын стращьный вещь скажу... толко ты нэ абижайса! ОГРОМНЫЕ части этого грешного мира до сих пор пребывают в каменном веке; и, более того, будут там пребывать всегда - так или иначе.
<troll>And pride ain't something you can shmear you bagel with.</troll>

> нах оно мне полезно в нормальном языке?

<troll>И эти люди будут мне таки рассказывать про каменный век!</troll> Не, я-то что, я сам пока не вкладывал персты в раны многопоточных систем с иммутабельными данными; но я готов держать открытый разум для этой идеи.

> любая хаски прога вычисляет либо facs, либо fibs

Sad, but largely true.

Date: 2011-02-26 10:11 pm (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
> And pride ain't something you can shmear you bagel with.
But ssh target_address cat <localfile ">" remotefile is. Hence, my fuck off to the world.

Да, конечно, иногда приходится иметь дело с багами на каменновековых системах, но там я как бы вообще только с коркой могу работать.

> И эти люди будут мне таки рассказывать про каменный век!

Нет ну правда! То есть я не уверен, что вся эта хуита решает реальную проблему, а не обходит ограничения Хаскеля. Убеди меня в обратном, рассказав как ты можешь написать то же самое в PHP фор греатер глори! (Это мой подход к разным Хаски фишкам, и я уверен в его продуктивности потому что могу заебать моск любому про то, как знание монд помогает мне писать чистый питонокод, например)

Date: 2011-02-26 11:25 pm (UTC)
From: [identity profile] pbl.livejournal.com
А теперь смотри, какая ситуация. У нас есть окружение для разработчиков, воспроизводящее продакшн-окружение примерно на 99.9%. Поддержки нормальных отладчиков в нем нет и не будет (потому что "напиши таск, получи апрув у цто, через три месяца сделаем, если оно не е3т при пересборке" - а оно е3т при пересборке, и будет забито на!.. да и цто не апрувнет, ибо инфраструктурщики и так перегружены). Что я могу сделать? Собрать то же самое окружение локально, вот этими мозолистыми руками, но с поддержкой отладчиков. Это значит, что а) мне придется сидеть на богомерзкой федоре очень специфической конфигурации, чего мне абсолютно не хочется; б) мне придется порядком зае2ться, ибо занятие сие сводит с ума 85% джуниор сисадминов, которым его поручают (сборка весьма нетривиальная и обвешана кучей ништяков, в которых я секу очень слабо - или вообще не), - чего мне абсолютно не хочется! И ради чего? Чтобы получить интегрированный отладчик, который мне не сильно-то и нужен, и сбережет хорошо если полпроцента времени на длинной темпоральной дистанции. Мне уе3ный энвайронмент больше времени потеряет! Да и лень - тоже одна из программистских добродетелей.

Да, то есть, хорошо ездить на роллс-ройсе, а не на троллейбусе, - но это не повод собирать роллс-ройс в гараже перед любой поездкой. И даже перед какой бы то ни было поездкой.

> решает реальную проблему

Ты забываешь, что я не магистр Йода, а обыкновенный янглинг. Ну и потом - ты прав, все эта возня с аксессорами, генерализованными фолдами и матрешкообразными стэйтами решает проблемы, возникающие из-за специфического дизайна хаскеля. Потому что в оо/императивном языке, я, конечно, полезу своими opposedthumbless лапами в глобальный стейт и буду там произвольно резвиться, как моей opposedthubmless душеньке будет угодно. Но. Этот самый специфический дизайн хаскеля якобы решает многие проблемы, возникающие при массивном распараллеливании. Решает ли действительно - я судить не компетентен, потому осторожно полагаюсь на мнение совета джедаев. (Ко мне один раз даже приходил в комменты суровый Мэйс Винду и делал выговор за то, что я не понимаю Суть фп, - мол, не простые абстракции, а иммутабельность! конкуррентность! стм! - отчего я очевидным образом стушевался и усох.)

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

Ну а занимаюсь я этим, да, потому что бородавки хочется как-то культурно обойти: не для непосредственной пользы дела, а из тщетного мечтанья переехать как-нибудь из каменного века в бронзовый; но не на уровне банальных дебаггеров. Да и просто интересно.

А вообще мы злоупотребляем г3еприимством, нет?

Date: 2011-02-27 07:05 am (UTC)
From: [identity profile] piggymouse.livejournal.com
Отнюдь. Продолжайте, коллеги, продолжайте.

Date: 2011-02-26 01:08 pm (UTC)
From: [identity profile] mbravo.livejournal.com
считаю, что надо занедорого продать практически родным людям идею сделать недорогую детскую лицензию. примерно как раз за одну такую лицензию.

Date: 2011-02-26 01:10 pm (UTC)
From: [identity profile] astaff.livejournal.com
Поддерживаю Майка. Мне кажется практически родные люди могут эту лицензию подарить молодому дарованию. :-)

Date: 2011-02-26 04:25 pm (UTC)
ext_213331: (Default)
From: [identity profile] mss.livejournal.com
я пользуюсь только вимом, поэтому собственного опыта нет :-/

однако меня удивило отсутствие в списке Wing IDE (http://www.wingware.com/)

Date: 2011-02-26 05:19 pm (UTC)
From: [identity profile] chemodax.livejournal.com
Положить репозиторий на Google Code и попросить у родных людей open-source лицензию:
http://www.jetbrains.com/pycharm/buy/buy.jsp#opensource_

Date: 2011-02-26 08:51 pm (UTC)
From: [identity profile] piggymouse.livejournal.com
Обойдутся, у нас теперь Эклипс.

Date: 2011-02-26 06:29 pm (UTC)
From: [identity profile] taxifish.livejournal.com
PyCharm, сцуко, хорош, ага

Date: 2011-02-26 08:52 pm (UTC)
From: [identity profile] piggymouse.livejournal.com
Димон, а ты-то ПайЧарм нафига использовал? Для хобби?

Date: 2011-02-27 08:03 am (UTC)
From: [identity profile] taxifish.livejournal.com
для удовольствия - ынджой айти

Date: 2011-02-26 08:17 pm (UTC)
From: [identity profile] irishterrier.livejournal.com
у PyCharm есть Classroom License (FREE) -- это не твой вариант?

Date: 2011-02-26 08:19 pm (UTC)
From: [identity profile] irishterrier.livejournal.com
а чем Aptana не покатила, это ж тот же самый PyDev вид сбоку? AFAIK

Date: 2011-02-26 08:50 pm (UTC)
From: [identity profile] piggymouse.livejournal.com
Наверное. Я просто стал старый, нетолерантный и требую, чтобы всё сразу было привычно. За Эклипсом я в своей жизни немного сидел, Идея==ПайЧарм просто по жизни офигенно удобная, а тут как-то сразу не показалось.

Date: 2011-02-27 07:11 am (UTC)
From: [identity profile] pechkin.livejournal.com
Я, может быть, не настоящий сварщик, и уж точно не перл-ниндзя, а так, красный пояс. У меня комодо, качаный еще до того, как он стал продажным, и в нем видимый дебаггер есть и goto definition тоже есть. Неуклюж, тугодумен, но когда раз в полгода что-то надо вспомнить - годится.

Аптану пробовал на позапрошлой работе (для продвинутого javascriptа) и сказал себе примерно то же самое.

Date: 2011-02-28 06:19 am (UTC)
From: [identity profile] bleys.livejournal.com
Не раньше, чем Лёша и Лёша оторвут сами знаете что от сами знаете чего и станут таки тьюнить дальше =) Спасибо ему, дарованию, за его concern :)

Profile

piggymouse: (Default)
piggymouse

April 2011

S M T W T F S
     1 2
34 56 789
10 1112 13141516
17181920212223
24252627282930

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 15th, 2025 10:03 am
Powered by Dreamwidth Studios