[Java] Idea vs Eclipse
понимает ли эклипс CamelHumps ?Ещё раз говорю - посмотри Эклипс (чем ты там месяц занимался - неужели хелп читал?). Сразу отпадёт множество идиотских вопросов.
Я не собираюсь с тобой спорить. Я согласен: всё, что ни есть хорошего в Эклипс, появилось (или появится) там из Идеи и накак иначе. Это же ужас - в Идее только планируют, в intention-ах расписывают, а в Эклипсе берут - и реализовывают. Сволочи. Пираты. Плагиаторы.
Ещё раз говорю - посмотри Эклипсоткрыл эклипс чтобы посмотреть как for сам появляется
сразу столкнулся с кучей проблем
1) пишу:
LinkedList list = new
в результе подчеркивается красным new, т.е. сигналит об ошибке и не предлагает никаких вариантов исправления! ctrl+space молчит как партизан
чтобы ИДЕЯ "молчала", т.е. не предлагала исправить ошибку - это нада постараться!
ну ладна, исправляем ошибку руками
стираем new, упс, подчеркивается = и опять молчит!
ну ладна, стираем и равно
УРА!
эклипс сообразил что у меня нет импорта и предложил его
как воспользоваться предложением непонятно (в ИДЕЕ появляется подсказка "нажмите alt+enter для импорта")
ну ладна, как тупые бараны кликаем мышью на ошибку, импорт сделан!
2) добавляем = new
тоесть код сейчас:
LinkedList list = new
жмем ctrl+space, получается:
LinkedList list = new LinkedList
я в шоке!
я что, сам должен скобки ставить? да еще и точку с запятой сам должен ставить?
мдяя, эклипс и вправду "за меня думает"
эххх, ладно, дописываю сам
3) добавляем следующий код
int[] array;
пишем for и жмем ctrl+space
ура! эклипс предложил проитерировать
выбираем итерацию по массиву
получаем:
for (int i = 0; i < array.length; i++) {
}
при этом подчеркнуто ошибкой array.length
эклипс предлагает решение
жмем мышкой и появляется решение: "No suggestions available"
я опять в шоке! это конечно апгрейд по сравнению с пунктом 1, он уже не молчит как партизан, но ведь и не говорит ничего
если в пункте 1 я еще както мог догадаться что тут не так, то тут ошибка менее очевидна
4) ну ладна, надо проинициализировать массив
пишем:
int[] array = new ;
жмем ctrl+space
эклипс на высоте! никаких движений
5) ну ладна, добрались таки до того с чего все началось
тестируем for для списка
то что он не предлагает for по списку, а только по итератору, это еще можно простить
но то что он выдает после ctrl+space это нечто!
for (Iterator iter = list.iterator; iter.hasNext;) {
type element = (type) iter.next;
}
я в глубоком ауте
не сомневаюсь что пункт 6 тоже будет провальным
6) добавляем строчку
list.add(new Integer(1;
итерируем по листу, в эклипсе ничего не изменилось
для сравнения привожу идею:
for(Iterator iterator = list.iterator; iterator.hasNext;) {
Integer integer = (Integer)iterator.next;
}
кстати, я был приятно удивлен что эклипс мне предложил изменить название переменной итератора
но это единственное что он предложил изменить, даже type и то мне нада будет потом в двух местах менять
ВЫВОД
да какой тут собственно может быть вывод?
в эклипсе же есть
JDT, CDT, EMF (Eclipse Modeling Framework GEF (Graphical Editor Framwork Visual Editor и многое, (реально) многое другое!смешно
![](/images/graemlins/smile.gif)
Это же ява!
> 1) пишу: LinkedList list = new
Странно, почему из синтаксиса и семантики операций не следует, что имеются в виду списки.
Кстати, а нафиг высокоуровневому программисту знать, как списки сделаны внутри?
> 3) <...> пишем for и жмем ctrl+space
Сложно написать map, fold или for-each?
А это ведь всё, без дальнейших подсказок.
> 6) добавляем строчку
> list.add(new Integer(1;
Зачем так длинно?
> ВЫВОД
> да какой тут собственно может быть вывод?
Действительно. Какой ещё может быть вывод?
---
...Я работаю антинаучным аферистом...
Кстати, а нафиг высокоуровневому программисту знать, как списки сделаны внутри?надо знать только какие типы списков есть
есть ArrayList а есть LinkedList
это все еще в кнуте было описано
> надо знать только какие типы списков есть
А нафиг это надо?
> есть ArrayList а есть LinkedList
> это все еще в кнуте было описано
Кнут ещё и ассемблер описывал.
---
...Я работаю антинаучным аферистом...
от этого сейчас довольно часто зависит: программа тормозит или очень тормозит, выдает почти что надо или кору дампит
Я, конечно, эклипса не знаток, но если ты то же самое проделаешь в идее, тока вместа
ctrl-space будешь жать shift-alt-reset, то она не только ничего не подскажет, но ещё
комп ни с того ни с сего будет перегружатся
Я это к чему... быть может, есть в мире другие комбинации клавиш, о которых мы и не
подозреваем...
А вообще, я пользуюсь идеей, и ничего, кроме тормозов не по делу (ну, комп слабенький)
против неё сказать не могу Но таки не стал бы так яро рычать на эклипс...
открыл эклипс чтобы посмотреть как for сам появляетсяРеально коматозишь не по делу.
сразу столкнулся с кучей проблем
В 1) попробуй new,Ctrl+Space,Enter (ответ на фсе вопросы, помнишь?). Весь n------e--------w выписывать не обязательно.
Остальное - вечером.
> от этого сейчас довольно часто зависит: программа тормозит или очень тормозит,
Если программа тормозит, то прикладники ставят более быструю машину.
"Machine cycles are cheap."
> выдает почти что надо или кору дампит
Вообще-то, это не должно зависеть от деталей реализации.
У явы всё настолько плохо со внутренностями?
---
...Я работаю антинаучным аферистом...
> "Machine cycles are cheap."
Это если просто тормозит.
А если очень тормозит, то такой машыны не найти.
В 1) попробуй new,Ctrl+Space,Enter (ответ на фсе вопросы, помнишь?). Весь n------e--------w выписывать не обязательно.дык я же так и делал
ААААААА
ага
обнаружил в чем дело
нада жать ctrl+space сразу после new, а я жал после пробела, т.е. после "new "
что он мне предложил после new я упал под стол от гогота
было:
LinkedList list = new
нажал ctrl+space
получил
LinkedList list = type name = new type(arguments);
НУ И ТУПОЙ ЖЕ ОН!
мдя
видимо в эклипсе нужно "по-другому" писать
обычно: я пишу код, а идея мне его дополняет
а тут: сразу надо говорить что хочешь писать, иначе эклипс потом не поймет
пишем new и жмем ctrl+space
получаем
type name = new type(arguments);
причем! все параметры можно изменить, оказывается для перехода от одного параметра к другому нужно жать не ентер а ТАБ
бесит только, что arguments надо стирать, если не хочешь парамов, идея всегда предлагает пустую строчку
вот этот пример очень хорошо показывает различие между идеей и эклипсом
идея - думает
а эклипс - нет
кстати, а почему эклипс не предлагает имен переменных? я думал что уж хотя бы это он умеет
пишу List , ctrl+space, эклипс молчит
идея: List , ctrl+space, итог: List list
балин, ты ж елки палки
предлагает! но только когда импорт сделаешь
Но таки не стал бы так яро рычать на эклипс...да я не рычу, это они рычат
я токо утверждаю, что эклипсу далеко до идеи с точки зрения возможностей редактора языка Джава
а они начинают рыпаться в ответ
я вот лично знаю минусы идеи, и не рыпаюсь в ответ когда мне на них тычут
например: в идее мало бесплатных плагинов, апи открыт, а плагинов мало
![](/images/graemlins/frown.gif)
например, в идее нету плагина для хибернейт 3 (в эклипсе он есть, он убогий настолько насколько можно быть убогим, но он есть)
>> "Machine cycles are cheap."
> Это если просто тормозит.
> А если очень тормозит, то такой машыны не найти.
Ну, что ж! Тогда придётся раскошелиться на программистов,
которые умеют думать самостоятельно, без помощи идей с еклипсами.
---
...Я работаю антинаучным аферистом...
я токо утверждаю, что эклипсу далеко до идеи с точки зрения возможностей редактора языка Джавамне кажется, ты не достаточно хорошо знаешь eclipse, чтобы утверждать такое
мне кажется, ты не достаточно хорошо знаешь eclipse, чтобы утверждать такоекажись я привожу реальные примеры...
кажись я привожу реальные примеры...ты демонстрируешь свою полную некомпетентность в eclipse
![](/images/graemlins/smile.gif)
ты демонстрируешь свою полную некомпетентность в eclipseтыкни плиз хоть в одно место, где я это сделал
то что она после new подставляет мне тупой шаблон, совершенно не соображаю в каком контексте я это вызываю, это моя некомпетентность?
то что она подчеркивает ошибки, но не говорит в чем ошибки и тем более не предлагает их исправить это моя некомпетентность?
тыкни плиз хоть в одно место, где я это сделалда хотя бы вот это:
дык я же так и делал
ААААААА
ага
обнаружил в чем дело
нада жать ctrl+space сразу после new, а я жал после пробела, т.е. после "new "
![](/images/graemlins/smile.gif)
ты без опыта использования эклипса, не читая доки, решил использовать его как идею и удивляешься, что у тебя это не получается.
ты без опыта использования эклипса, не читая доки, решил использовать его как идею и удивляешься, что у тебя это не получается.вранье
внимательно прочти еще раз мой пост
нада жать ctrl+space сразу после new - это то про что говорил
так вызывается live template
к нему у меня нареканий нет
нарекания были именно с ctrl+space после new в контексте создания класса, а не для live template
да, я не знал как в эклипсе вызывается live template, но я к live template и не придирался
я придирался к code completion, и моя придирка осталась в силе, просто сказал, что там где не работает code completion можно использовать live template
в идее я тоже могу live template для этого юзать, речь же не про это
открыл эклипс чтобы посмотреть как for сам появляется
сразу столкнулся с кучей проблем
Приношу свои извинения от лица Eclipse-community за то, что Eclipse отличается от IDEA, и, таким образом, доставляет тебе столько хлопот. Надеюсь, к следующему релизу мы это исправим этот чудовищный недостаток.
1) - 2)
Спасибо, повеселил. То, что ты хотел (LinkedList list = new LinkedList;) делается так:
n,Ctrl+Space,Enter,LLi,Enterтип списка, если нужноTab:
LinkedList<Object> name = new LinkedList<Object>(arguments);
Ctrl+Enter(если тебе нужен именно list, а не linkedList, придётся ещё нажать "вниз"):
LinkedList<Object> list = new LinkedList<Object>(arguments);
Tab,Del:
LinkedList<Object> list = new LinkedList<Object>
3)
У тебя там что за Eclipse? У меня предлагает эту неинициализированную переменную проинициализировать или переименовать.
4)Поздравляю! Оплачены тяжкие труды! Ты нашёл недоработку в Eclipse!
5)-6)Я не понял что тебе не нравится. Поддержка foreach есть. Чем предложенный шаблон не подходит? По-моему, ты сам лажанул. Там всё можно изменить.
смешно
Что смешного? В Идее все эти компоненты тоже есть? Что-то не верится.
враньеок. сколько времени ты пользовался эклипсом?
внимательно прочти еще раз мой пост
Кстати, а нафиг высокоуровневому программисту знать, как списки сделаны внутри?Сам-то как думаешь?
list.add(new Integer(1; Зачем так длинно?
В самом деле, зачем?
Мне ещё перед тобой извиниться, что Java не такая, как Forth? Чтобы на ней программировать, надо её как минимум немного знать.
> list.add(new Integer(1; Зачем так длинно?кстати, я тоже не понимаю, зачем.
В самом деле, зачем?
можно было просто list.add(1);
А эклипс под jdk1.5 есть? Хочу попробовать очень, а через итераторы циклы делать не привык...
нада жать ctrl+space сразу после new, а я жал после пробела, т.е. после "new "1) Ты выбрал в меню "create new object" а теперь гогочешь.
что он мне предложил после new я упал под стол от гогота
было:
LinkedList list = new
нажал ctrl+space
получил
LinkedList list = type name = new type(arguments);
2) Ты когда свой itar с Tab-ом в середине строчки напишешь, что будет?
НУ И ТУПОЙ ЖЕ ОН!
А что ты думаешь тут люди про тебя думают?
кстати, а почему эклипс не предлагает имен переменных? я думал что уж хотя бы это он умеет
пишу List , ctrl+space, эклипс молчит
идея: List , ctrl+space, итог: List list
балин, ты ж елки палки
предлагает! но только когда импорт сделаешь
Во-первых ты чего-то недоговариваешь, правда? Ну там про Alt+Tab.
Во-вторых, когда ты нажимаешь Ctrl+Space после типа (можно весь его набрать, а можно не весь импорт появляется автоматически. Так что не надо ля-ля.
например, в идее нету плагина для хибернейт 3 (в эклипсе он есть, он убогий настолько насколько можно быть убогим, но он есть)Ты просмотрел ВСЕ плагины к Эклипсу, которые только существуют на свете?
тыкни плиз хоть в одно место, где я это сделалИменно. Ты сам выбрал этот пункт - create new object.
то что она после new подставляет мне тупой шаблон, совершенно не соображаю в каком контексте я это вызываю, это моя некомпетентность?
то что она подчеркивает ошибки, но не говорит в чем ошибки и тем более не предлагает их исправить это моя некомпетентность?Разумеется. Кликни на красный крестик или нажми Ctrl+1 (кажется; никогда не нажимал чтобы вызвать Quick Fix.
А эклипс под jdk1.5 есть? Хочу попробовать очень, а через итераторы циклы делать не привык...3.2 вроде под 1.5... поправьте, если я не прав.
через итераторы очень удобно.
for(int a: values)
смотрится симпатичнее
for(;values.hasNext;){
int a = values.iterator.next;
ок. сколько времени ты пользовался эклипсом?год WSAD 5
потом переехал на идею
потом месяц эклипс 3.1
можно было просто list.add(1);это токо в 5 джаве можно
n,Ctrl+Space,Enter,LLi,Enterтип списка, если нужноTab:мдя
по-видимому нада эклипс 3.2 тянуть
в 3.1 это не работает
это токо в 5 джаве можнотак она уже давным давно вышла
![](/images/graemlins/wink.gif)
уже шестая намечается
+1
так она уже давным давно вышла, уже шестая намечаетсяага, ты это работодателям объясни
есть минус - в дебиане только 3.1 а со стороны скачать влом
и плюс - в 3.1. таки поддерживается синтаксис 1.5
Ну что ж, должны же в дистрибутивы Linux включать какие-то правильные вещи, а не только всякие ash, bsh, csh, ..., ksh, ..., zsh, kedit, gedit, nedit, kdevelop и прочую лабудень.
Среди меня бытовало мнение, что почти все linux дистрибы имеют практически одинаковые наборы пакетов. Это не так?
В любом случае, по сравнению с идеей он просто летает.
А в нём привязки клавиш можно менять?
В Эклипсе можно всё, это же open source. Берёшь (импортируешь) плагин (скажем, org.eclipse.ui.editors открываешь его plugin.xml, находишь нужный extension (например, org.eclipse.ui.bindings) и вперёд.
Другой вопрос, а нафига. Чтобы сделать как в Идее? Это бред. В эклипсе горячие клавиши подобраны не менее разумно.
Я думаю это будет полезно не только мне, а потом из таких вопросов-ответов можно будет сверстать migration guide =)
![](/images/graemlins/smile.gif)
Я бы тебе книжек посоветовал, типа старенькой Contributing to Eclipse, но в Eclipse реально хороший Help
Если тебя интересует программирование плагинов под Eclipse, всё есть в Help Contents > Platform Plug-in Developer Guide > Programmer's Guide. Покрутись там, и всё поймёшь, хоть и может не сразу.
Ещё есть тематические статьи на www.eclipse.org/articles
Это та х%йня в виде панельки справа, выдающая туевы хучи говна из гугл?
но в Eclipse реально хороший Help
Вот как выглядит хелп для Eclipse: http://help.eclipse.org/help32/index.jsp
хелп помогает слабо, т.к. мне бывают нужны весьма конкретные вещи, к которым я привык в идее, а что именно искать в этом хелпе я не знаю
раздел tips & tricks уже прочитал =)
что именно искать в этом хелпе я не знаюА что тебе нужно?
![](/images/graemlins/grin.gif)
Оставить комментарий
pitrik2
офигеть, это вот это: http://www.jetbrains.com/idea/training/demos/AJAX_demo.htmlа все что нового появляется в эклипсе - тащится из ИДЕИ
ИДЕЯ правда тоже не без грешка, целых одну вещи знаю которую она из эклипса утащила - в навигаторе подсветка файлов в которых есть ошибки
любители эклипса вечно ругают идею за отсутствие этого, видимо им оно надо
в идее оно не надо вообще
кстати, вот тут немного описано что делает ctrl+shift+space
http://blogs.jetbrains.com/idea/2006/06/something-more-about...
в идее четкое разделение, ctrl+space угадывает подстановку с точки зрения редактора, ctrl+shift+space с точки зрения кода
в эклипсе все это свалено в кучу, при этом не все вещи делаются
еще кстати вспомнил
понимает ли эклипс CamelHumps ?
например я пишу MVLCN и жму ctrl+space, в результе получаю MyVeryLongClassName