W jaki sposób IntelliJ jest lepszy od Eclipse? [Zamknięte]

67

Wiem, że pojawiły się pytania typu Jaki jest twój ulubiony edytor / IDE? , ale żaden z nich nie odpowiedział na to pytanie: Po co wydawać pieniądze na IntelliJ, gdy Eclipse jest bezpłatny?

Osobiście jestem wielkim fanem IntelliJ, ale tak naprawdę nie próbowałem Eclipse. Używałem IntelliJ do projektów, które były Java, JSP, HTML / CSS, JavaScript, PHP i Actionscript, a najnowsza wersja, 9, była doskonała dla nich wszystkich.

Wielu współpracowników w przeszłości powiedziało mi, że wierzą, że Eclipse jest „prawie taki sam” jak IntelliJ, ale, aby temu przeciwdziałać, od czasu do czasu siedziałem za programistą używającym Eclipse, który wydawał się stosunkowo nieefektywny (aby osiągnąć mniej więcej to samo zadanie), a nie doświadczyłem tego z IntelliJ. Mogą być na równi z funkcją, ale funkcje mogą zostać zrujnowane przez słabe wrażenia użytkownika i zastanawiam się, czy jest możliwe, że IntelliJ jest łatwiejszy do znalezienia i odkrycia funkcji oszczędzających czas.

Dla użytkowników, którzy już znają Eclipse, oprócz rzeczywistych kosztów IntelliJ, istnieje również koszt czasu poświęconego na naukę nowej aplikacji. Eclipse ma wielu użytkowników, którzy po prostu nie chcą wydawać 250 USD na IDE.

Jeśli IntelliJ naprawdę może pomóc mojemu zespołowi w zwiększeniu produktywności, jak mogę mu to sprzedać? Dla tych użytkowników, którzy wypróbowali jedno i drugie, byłbym bardzo zainteresowany konkretnymi zaletami lub wadami.

Nicole
źródło
3
Być może widzisz tutaj pewne odchylenie od wyboru. Klient IntelliJ ma większe szanse na poznanie funkcji i skrótów niż przeciętny użytkownik Eclipse.
Macneil
3
Nie nakłaniałbym innych do korzystania z narzędzi, które działają dla ciebie. Jest to bardzo subiektywne, a takie głupie rzeczy mogą zrujnować już ustalony związek. Jeśli masz wybór użycia IntelliJ lub Eclipse, a projekt kompiluje się dobrze za pomocą jednego z nich - wybij się, użyj IntelliJ. Jeśli chcesz go wypromować, wspomnij o tym od niechcenia, kiedy nadejdzie właściwy czas. Dorośli nienawidzą tego tak samo jak dzieci, kiedy inni próbują podejmować za nich decyzje. Nadal możesz zmusić ich do zmiany, ale musi to być „ICH” decyzja, więc musisz tylko zrobić odpowiedni szum w odpowiednim momencie.
Job
@Job, zgadzam się z tym. Chciałbym dowiedzieć się A) czy IntelliJ ma prawdziwą przewagę nad Eclipse, więc B) jeśli tak, mogę go sprzedać, a nie upoważnić.
Nicole,
Wiesz, że IntelliJ ma darmową wersję, prawda? Nie możesz sprawić, żeby brzmiało to tak, jakby jedyną opcją była wersja
płatna
@TheLQ, masz rację, dla zwięzłości założyłem, że użytkownicy znający IntelliJ będą również zaznajomieni z ograniczeniami darmowej wersji. Osobiście nigdy nie miałem projektu, w którym byłby on użyteczny, ponieważ zawsze potrzebowałem czegoś więcej niż tylko czysty komponent Java.
Nicole

Odpowiedzi:

63

Codziennie współpracuję z Intellij (9.0.4 Ultimate) i Eclipse (Helios), a Intellij bije Eclipse za każdym razem.

W jaki sposób? Ponieważ Intellij indeksuje świat i wszystko działa po prostu intuicyjnie. Mogę poruszać się po mojej bazie kodu znacznie, znacznie szybciej w Intellij. F3 (definicja typu) działa na wszystkim - kontekstach Java, JavaScript, XML, XSD, Android, Spring. Refaktoryzacja działa wszędzie i jest całkowicie niezawodna (miałem problemy z Eclipse zepsuło moje źródło w dziwny sposób). CTRL + G (jeśli używany) działa wszędzie . CTRL + T (implementacje) śledzi najczęstsze instancje, których używam i pokazuje je jako pierwsze.

Sugestie dotyczące uzupełniania kodu i zmiany nazwy są tak sprytne, że dopiero po powrocie do Eclipse zdajesz sobie sprawę, ile to dla ciebie znaczyło. Na przykład rozważ przeczytanie zasobu ze ścieżki klas, wpisując getResourceAsStream("/w tym miejscu Intellij wyświetli listę możliwych plików, które są obecnie dostępne w ścieżce klas i możesz szybko przejść do tego, który chcesz. Zaćmienie - nie.

Wtyczka Spring (gotowa do użycia) dla Intellij jest znacznie lepsza od SpringIDE, głównie z powodu inspekcji kodu. Jeśli opuściłem zajęcia lub przeliterowałem coś źle, to dostaję czerwony blok w rogu i czerwony atrament właśnie tam, gdzie leży problem. Zaćmienie - trochę.

Ogólnie rzecz biorąc, Intellij gromadzi dużą wiedzę na temat aplikacji, a następnie wykorzystuje tę wiedzę, aby pomóc Ci szybciej pisać lepszy kod.

Nie zrozum mnie źle, uwielbiam Eclipse na kawałki. W tej cenie nie ma zamiennika i polecam go moim klientom pod nieobecność Intellij. Ale kiedy wypróbowałem Intellij, zwrócił się w ciągu tygodnia, więc kupiłem go i każde z głównych ulepszeń od tego czasu. Nigdy nie oglądałem się za siebie.

Gary Rowe
źródło
Dokładnie tego szukałem. Jedno pytanie, ale myślę, że mam kilka różnych kluczowych mapowań niż ty. Czy możesz wyjaśnić, o jakich funkcjach mówisz?
Nicole,
2
Czy możesz ustawić IntelliJ do korzystania ze skrótów Eclipse? To może być ostatni impuls, który naprawdę muszę dać IntelliJowi szansę - pamięć mięśni mnie powstrzymywała. Dzięki za wskazówkę!
yatima2975,
9
@ yatima2975 Bez obaw. Wystarczy spojrzeć na preferencje, przefiltrować „mapę klawiszy” i wybrać Eclipse. Masz Emacsa i kilka innych.
Gary Rowe,
1
Na moim komputerze z Linuksem niedawno przerzuciłem się z Eclipse na IntelliJ IDEA Community Edition (open source i całkowicie darmowy) dla projektu Java / Android i miałem takie same dobre doświadczenia. IDEA jest po prostu fantastyczna. Pobierz tutaj: jetbrains.com/idea/free_java_ide.html . Jak twierdzi JetBrains, IDEA jest najbardziej inteligentnym IDE Java na rynku. Nie zrozumcie mnie źle: używam i uwielbiam środowiska IDE Eclipse, NetBeans i Qt Creator (w zależności od zadania i języka).
AlexBottoni,
2
Dodam nacisk na obsługę javascript, a także innych języków interfejsu użytkownika. Intellij obejmuje WebStorm, który sam w sobie jest fantastyczny dla interfejsu.
y3sh
16

Słyszę różnicę w przypadku IntelliJ polegającą na tym, że znacznie częściej naprawiają i zamykają zgłoszone błędy . To może mieć dużą różnicę, jeśli blokuje cię jakiś błąd Eclipse.

Z drugiej strony, nie można patrzeć na IDE w izolacji; musisz spojrzeć na ekosystem . Tutaj myślę, że Eclipse ma przewagę (podobną do przewagi Firefoksa nad Chrome *): Dostępnych jest o wiele więcej wtyczek, a programiści mają o wiele większe szanse na napisanie wtyczki Eclipse niż w innym przypadku.

[Tangens: * W przypadku przeglądarki Firefox mam na myśli Zotero i HTTPS-Everywhere. Używam zarówno Chrome, jak i Firefox, ale niektóre rzeczy Chrome po prostu nie mogą sobie poradzić. Ponadto przy tworzeniu materiałów informacyjnych naprawdę potrzebuję podglądu wydruku.]

Macneil
źródło
Czy istnieją fakty potwierdzające stwierdzenie o naprawianiu błędów? (Ja sam zawsze mam problem z porównywaniem takiego pomiaru, szczególnie z oprogramowaniem, w którym nie widać łatwo napływu błędów ... jak większość programów komercyjnych, a nawet niektórych produktów typu open source)
John
@johannes Chociaż mogę osobiście za to ręczyć, możesz to zobaczyć na youtrack.jetbrains.com/issues
y3sh
1
Chociaż prawdą jest, że Eclipse oferuje większy zestaw wtyczek, IntelliJ oferuje również wszystkie niezbędne wtyczki, które są wymagane do wykonania zadania. Innymi słowy, przewaga liczbowa dostępności wtyczek powinna być uwzględniana w kontekście. Widzę to jako główny powód, dla którego Eclipse jest preferowane w stosunku do IntelliJ.
e28Makaveli
13

Oświadczenie
Ogranicza się to tylko do rozwoju Androida (oczywiście w Javie).

Przechodzę do tego z pewną ograniczoną znajomością Eclipse i IntelliJ; Ostatnio jednak zdecydowałem się na środowisko programistyczne dla Androida. Wydaje się, że pierwszym wyraźnym wyborem byłoby użycie Eclipse, ponieważ Google obsługuje go za pomocą wtyczki ADT. Niestety, przyzwyczaiłem się do poruszania się, ponieważ jestem przyzwyczajony do Visual Studio (2010, ostatnio 2012). Zawsze korzystałem z ReSharpera w Visual Studio, więc postanowiłem wypróbować IntelliJ. Po około 10 minutach zdałem sobie sprawę, że podjąłem właściwą decyzję.

Jak niektórzy stwierdzili, IntelliJ indeksuje wszystko. Praca z inteligencją była przyjemnością, a sugestie dotyczące inteligencji były doskonałe. Debugowanie było dla mnie przyjemnością i szczerze mówiąc, naprawdę nie mogłem żyć bez analizy kodu. Wiem, że wielu purystów miałoby problem z tego rodzaju rzeczami, ale mnie to nie obchodzi. Muszę bardzo szybko wypierać projekty dla wielu osób, więc czasem miło jest uruchomić anaylsis kodu i zobaczyć, co sugeruje IDE. To, czy weźmiesz te sugestie, to inna historia, ale nie znalazłem czegoś takiego w Eclipse.

Niektórzy twierdzą również, że w obecnej wersji IntelliJ nie ma projektanta Androida. Z pewnością tak jest, ale i tak nigdy bym go nie użył. Debuguję na urządzeniu przez większość czasu, więc to nie ma znaczenia. Widzę interfejs i bawię się nim za każdym razem, gdy uruchamiam program. W każdym razie, od tradycyjnie „nie Java” faceta muszę powiedzieć, że Java jest szczególnie przyjemna w porównaniu z Eclipse.

Nodey The Node Guy
źródło
6

Musisz wyraźnie i bez wątpienia wykazać, że w przypadku zadań, które musisz wykonywać codziennie, IntelliJ pozwala zaoszczędzić znacznie czasu i wysiłku w przeciwieństwie do Eclipse (i NetBeans).

Będzie to wymagać przeprowadzenia badań, aby dowiedzieć się, co to może być, a następnie zbudowania demonstracji pokazującej to ludziom, którzy mogą zdecydować, jak pracować.

Podejrzewam, że będzie to dla ciebie trudne zadanie, ponieważ Eclipse w dzisiejszych czasach może zrobić całkiem sporo. Jeśli znajdziesz punkty zabójcy, podziel się nimi - jestem pewien, że wiele osób chce wiedzieć.


źródło
2
„Jeśli znajdziesz punkty zabójcy, podziel się nimi - jestem pewien, że wiele osób chce wiedzieć.” - Właśnie dlatego pytam - trudno jest znaleźć czas na to badanie lub samemu wypróbować Eclipse (i prawdopodobnie jestem stronniczy). Mam nadzieję, że odkryję użytkowników, którzy mają dobre doświadczenia z obiema osobami!
Nicole,
1
@ Thorbjørn To prawda, ale mówię o ogólnych zadaniach, które mają zastosowanie w co najmniej wszystkich przypadkach użycia, które moim zdaniem są dość szerokie. Ale jeśli jest coś konkretnego, dobrze byłoby wiedzieć, co to jest.
Nicole,
1
@ Thorbjørn Masz rację, co ich przekonuje, ale myślę, że tutaj obowiązują ogólne zadania. Moja produktywność jest zwiększona o 10: 1 dzięki ogólnym funkcjom IDE vs. podzbiorom funkcji związanych z moim konkretnym zadaniem. Innymi słowy, standardowe funkcje IDE co mnie / im pomóc w codziennej pracy.
Nicole,
2
W rzeczywistości, biorąc pod uwagę koszty, wszystko, co musisz realistycznie zrobić, to wykazać, że może zaoszczędzić co najmniej ~ 10 godzin produktywności przez cały okres użytkowania zgodnego z przeznaczeniem (przy założeniu, że programista płaci 25 USD / godz.). Wszystko po tym jest sos.
Steven Evers,
1
Dla przypomnienia. Eclipse i IntelliJ (i Netbeans) działają dobrze z Maven. Oznacza to, że jeśli korzystasz z projektów Maven, możesz użyć najbardziej odpowiedniego IDE dla danej sytuacji.
5

Intellij jest lepszy z wielu powodów, w tym motywu darcula ... ale jest kilka innych:

  • autouzupełnianie nazw metod - oferuje to, co chcę nazwać konwencją usign.
  • autouzupełnianie jquery bardzo łatwe do skonfigurowania (nigdy nie działało z eclipse).
  • Autouzupełnianie EL w jsp
  • integracja i inspekcja wiosenna pokazuje błędy w konfiguracji (np. zduplikowane nazwy fasoli)
  • autouzupełnianie mapowań kontrolera / adresu URL
  • łatwa w użyciu i skonfigurowana integracja bazy danych (automatycznie wykrywa źródło danych) i oczywiście autouzupełnianie
  • inspekcje kodu, takie jak checkstyle i findbugs, wbudowane i łatwe w użyciu.
  • jslint i jshint wbudowane i łatwe w użyciu.
  • Integracja z maven działa natychmiast po wyjęciu z pudełka.
  • Wszystkie ustawienia są zgodne z oczekiwaniami.
  • Nie wykrywa błędów niepoprawnie, zwykłem wyświetlać błędy w eclisp tam, gdzie ich nie było i musiałem restartować.
  • Automatyczne uzupełnianie i wykrywanie błędów w plikach xml (wielka sprawa ze wiosną)
  • hibernacja mapowań ma włączoną funkcję autouzupełniania (pola pojos są dostarczane jako opcja autouzupełniania w mapowanym pojo - gr8).
  • ctrl + alt + kliknięcie otwiera implantację, a nie deklarację
  • Hotdeploy: możesz go łatwo skonfigurować tak, aby gdy intellij traci koncentrację, twoja wdrożona aplikacja była aktualizowana automatycznie - I tabulację w mojej przeglądarce i nowy kod (czy to klasy, javascript, czy jsps) jest już wdrożony.
  • wbudowany klient spoczynkowy bez dodatkowej konfiguracji.
  • wbudowany klient czatu, który pozwala na korzystanie ze wskaźników kodu - faktycznie bardzo przydatne.
  • widok trwałości, łatwy dostęp do wszystkich twoich encji i ustawień jpa / hibernacji.
  • naprawianie błędów, faktyczne naprawianie błędów zgłoszonych Zgłoszono wiele błędów i zostały one natychmiast naprawione.
  • inspekcja i autouzupełnianie w twoich dokumentach xml, bardzo bardzo przydatne ze wiosną (wiem, że to jest powtórzenie, ale jest świetne, ujawniło mnóstwo błędów).

Używam go abotu już 3 tygodnie, więc mam nadzieję, że wkrótce znajdę więcej; jest warte swojej ceny.

Och, jeszcze jedna rzecz , którą się faktycznie otwiera ... Miałem zaćmienie, które oznaczało, że nie chce się otworzyć. Po prostu „Google Eclipse się nie otworzy” jest mnóstwo linków. Czuję się głupio, że tak długo muszę się zmieniać.

Nim Chimpsky
źródło
To bardzo pomocna lista, ale zapomniałeś wspomnieć o IDE, o którym mówisz. Na podstawie twojej wzmianki o wersji 12 w ostatnim zdaniu, myślę, że chodzi o IntelliJ.
Xander Dunn
3

Niedawno Google ogłosił, że przenosi programowanie Androida na IntelliJ.

Jest ku temu powód. Używam Eclipse jako środowiska do nauczania kursów od kilku lat zarówno w C ++, jak i Android / JAVA. Widziałem, jak jakość Eclipse pogarsza się, co zbliża się do bezużyteczności. Jesienią 2012 roku zaadoptowałem Eclipse Juno na mój kurs i była to katastrofa bez żadnych ograniczeń. Program był nie tylko bardzo powolny i pełen błędów, ale miał kilka zmian w interfejsie użytkownika, które były głupie. Teraz używam go jako studium przypadku w złym projekcie interfejsu użytkownika.

W tej chwili nie mogę nikomu polecić Eclipse. Baza danych błędów stała się tak duża, że ​​nie ma szans, że zajmą się nawet niewielką ich częścią.

Charles
źródło
Jest to pomocne na wysokim poziomie, ale czy możesz podać więcej szczegółów?
Kazark
1

Nie znam solidnych ciosów funkcja po funkcji, ale odkryłem, że w środowisku IntelliJ od około dekady odkryłem, że zespoły projektowe w JetBrains wykonały świetną robotę zarówno posiadające IDE „indeksujące świat”, jak i utrzymujące funkcje indeksowania i autouzupełniania zarówno responsywne, jak i spójne - zazwyczaj nie myślę o tym, ale z responsywnością i liczbą skrótów klawiaturowych (i możliwością mapowania więcej), IntelliJ bardzo łatwo buduje „pamięć mięśni” podczas korzystania z edytora.

Nie jest małą rzeczą, gdy możesz pisać kod, autouzupełnianie, kompilować i testować bez dotykania klawiatury, w sposób, który nie przypomina stereotypowej, powolnej aplikacji Java.

Chad Thompson
źródło