Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 8, 2011 22:38:01

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Про Eclipse IDE

Господа, кто-нибудь сумел заставить эту IDE нормально дополнять код для PyQt???



Офлайн

#2 Янв. 8, 2011 23:55:26

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Про Eclipse IDE

автодополнение - зло



Офлайн

#3 Янв. 9, 2011 00:15:38

bazooka
От:
Зарегистрирован: 2009-04-12
Сообщения: 165
Репутация: +  0  -
Профиль   Отправить e-mail  

Про Eclipse IDE

а почему



Офлайн

#4 Янв. 9, 2011 00:30:41

gkraser
От:
Зарегистрирован: 2007-08-25
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Про Eclipse IDE

Андрей Светлов
автодополнение - зло
А еще экономия времени и памяти (человеческой). Да и просто приятно.

Но, к сожалению (а возможно и к счастью), в python полноценное автодополнение невозможно в принципе. Если только конечно IDE не смеет импортировать все связанные модули, что может привести (мягко говоря) к интересным последствиям.

В большинстве очевидных случаях (глобальные переменные модуля, методы класса, атрибуты класса инициализированные в __init__) eclipse (точнее pydev) прекрасно справляется.

Проблема (а в перспективе - и зло) в том, что практически возникает ситуация, когда IDE в части случаев может предложить автодополнение, а в части (основной) - нет. И человек-код-пишущий подсознательно ожидает подсказки, которая почти всегда неправильная… А не понимании природы и сущности динамических языков приводит к тому, что люди говорят - “Автодополнение работает не правильно/не так/ужас как…”.

На самом деле - это печально. Ибо в своем коде, каким бы динамически извращенным он не был, я всегда могу ткнуть носом IDE, в то, что она должна по моему разумению, показывать по Ctrl+SPACE. Однако - они думают по другому, проекты - разные, динамические извраты - тоже….

По-этому: если кто на windows => far, F4 (не настаиваю - но удобно)…, если кто на linux=> ну тут вариантов поболее :). А ide (eclipse+pydev) -> прекрасный отладчик/запускалка/unittest-runner + еще чтототамплагин…

А про автодополнение - забыть. Или по крайней мере, научится им пользоваться _скептически_.



Офлайн

#5 Янв. 9, 2011 00:59:12

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Про Eclipse IDE

К сожалению, всё ещё хуже.
Даже идеально правильно работающее дополнение - зло.

Как я заметил, использование автодополнения (и быстрых переходов) изменяет восприятие с библиотеки-пакета-модуля на “непонятно где лежащий кусок кода, обладающий именем”.
В результате чужие исходники не читаются, программа перестает восприниматься как единое органическое целое, рефакторинг крайне ограничен - зато говнокод лезет из всех дыр. Чем больше людей работают над проектом тем проблема лучше проявляет себя.

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



Офлайн

#6 Янв. 9, 2011 01:16:44

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Про Eclipse IDE

Андрей Светлов
К сожалению, всё ещё хуже.
Даже идеально правильно работающее дополнение - зло.

Как я заметил, использование автодополнения (и быстрых переходов) изменяет восприятие с библиотеки-пакета-модуля на “непонятно где лежащий кусок кода, обладающий именем”.
В результате чужие исходники не читаются, программа перестает восприниматься как единое органическое целое, рефакторинг крайне ограничен - зато говнокод лезет из всех дыр. Чем больше людей работают над проектом тем проблема лучше проявляет себя.

Единственный полезный режим автодополнения - заканчивать, базируясь на списке слов редактируемого файла. Необходимый и достаточный минимум.
1.
Библиотека PyQt содержит более 600 классов, запомнить наизусть всё считаю не то чтобы нереальным, но ненужным занятием. Смотреть одним глазом в справочник, другим в код, конечно можно, но утомительно. С другой стороны почти всегда, пробежав глазами список, найдешь нужный метод по имени. Если работаешь с несколькими языками или библиотеками, бывает путаешься, Label.Text или Label.Capture?
2.
При чисто ручном наборе не избежать синтаксических ошибок, исправлять их конечно просто, хотя иногда глаз замыливается и просто не видит косяка, например перепутал похожие буквы или размер. Время это отнимает однозначно.
3.
Где есть автодополнение, как правило всплывает мини справка по классу или методу, например ты сразу видишь обязательные и необязательные параметры у метода, что удобно
ПС: расслаблен вижуал студией, пинайте :)



Офлайн

#7 Янв. 9, 2011 01:31:33

gkraser
От:
Зарегистрирован: 2007-08-25
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Про Eclipse IDE

Андрей Светлов
Даже идеально правильно работающее дополнение - зло.
Идеальное злом не может быть по определению :)

Здесь я не согласен. Идеальное работающие дополнение - это то, что знает об исходниках проекта все (а зачастую и гораздо больше, чем на практике нужно). И идеальные примеры такого есть (в мире java по крайней мере). И это помогает _очень_ сильно и не мешает/портит почти совсем. Хотя….

java программу написать без ide - практически невозможно. Нет, можно конечно, если вы задались такой целью. Однако _черезвычайно_ затруднительно. Я проводил совсем недавно такой эксперимент и пришел в некоторый ужас, когда понял, что программисты, на проекте проработавшие год(!) не знают (!) имена базовых классов. Ибо их знает ctrl+space…. И нечего с эти поделать нельзя. Ибо кроме базовых классов проекта есть еще и куча разнобиблиотечных и имя им - легион…

python не требует ide. Программу можно (и не маленькую) написать в простом человеческом редакторе (лишь бы только indent работал по Tab, да tab на пробелы заменял :)). И тут ctrl+space ненужен. Нужно помнить/знать/догадываться о именах. Возможно именно поэтому многие (очень многие) понятия/классы в python достаточно просты и интуитивно запоминаемы. В отличие от языков/библиотек, ориентированных на написание в специализированных для них ide (C#/Java). Где без автодополнения (предпологающей за тебя ide) делать нечего совсем.

Я видел, как на имя метода из 3-х символов программеры нажимали этот самый пресловутый ctrl+space, и в выпадающем (достаточно большом :)) списке искали, то что хотели ввести… Это ужасно…

Да… хотел написать одно, а что то другое вырвалось… Вообщем (по моему сугубо личному мнению, как человеку, знающем, чего он собственно хочет написать), автодополнение (как не странно) помогает знающим и мешает новичкам. Хотя должен вроде как наоборот…



Офлайн

#8 Янв. 9, 2011 01:39:04

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Про Eclipse IDE

gkraser
… пришел в некоторый ужас, когда понял, что программисты, на проекте проработавшие год(!) не знают (!) имена базовых классов. Ибо их знает ctrl+space….
Именно это мне больше всего в автодополнении и не нравится. Вы привели очень характерную ситуацию.
А еще не помнят, какой класс в иерархии наследования принадлежит тот или иной метод - ведь в eclipse pydev всегда можно нажать <F3>.
Список можно продолжать очень долго.

P.S. Новичкам нужно читать исходный код до полного просветления и не жаловаться на карму.



Офлайн

#9 Янв. 9, 2011 05:42:58

alexx11
От:
Зарегистрирован: 2010-05-13
Сообщения: 208
Репутация: +  0  -
Профиль   Отправить e-mail  

Про Eclipse IDE

Сабж так же присутствует в notepad++ в релизе начиная с 5.8.6. Насколько полезна вещь, сказать сложно, т.к. не юзаю.



Офлайн

#10 Янв. 9, 2011 16:26:52

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Про Eclipse IDE

alexx11
Сабж так же присутствует в notepad++ в релизе начиная с 5.8.6. Насколько полезна вещь, сказать сложно, т.к. не юзаю.
Работает не так, как в эклипсе.

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



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version