Porównanie IDE dla C ++ i C w Linuksie: KDevelop, Eclipse, NetBeans, CodeBlocks i Anjuta [zamknięte]

49

Chciałbym zwrócić uwagę na twoje doświadczenia z pełnymi skalami IDE w Linuksie.

Ja osobiście pracuję głównie z vim, jednak inni programiści chcieliby zobaczyć prawdziwe IDE. Chciałbym więc poznać Twoją osobistą opinię na temat różnych IDE i ich porównania w następującym kontekście:

  • C ++ i może trochę rozwoju C (nie Java, Python i inne rzeczy)
  • Programowanie po stronie serwera (nie ma potrzeby tworzenia GUI)
  • Praca na Linuksie, a nie programowanie wieloplatformowe.

Opinia wymaga uwzględnienia:

  1. Jak stabilny jest? Jeśli IDE ulegnie awarii, nie potrzebuję tego.
  2. Wygodny w użyciu.
  3. Potężny do debugowania.
  4. Integracja z różnymi systemami kompilacji
  5. Skalowalność w stosunku do dużych projektów (projekty setek tysięcy linii kodu)

Pracowałem z KDevelop i było to bardzo miłe IDE i wydaje się, że KDevelop 4 to ogromny postęp. Wydaje się również, że wielu używa Netbeans i Eclipse.

Artem
źródło
9
Jestem bardzo zainteresowany odpowiedziami, które dostaniesz, i byłbym wdzięczny osobom udzielającym odpowiedzi, jeśli zastanowią się nad dwoma innymi kwestiami, którymi jestem zainteresowany. Skalowalność do projektów w zakresie 50 tysięcy plików / 30 milionów linii i możliwość dostosowania do struktury projektu, która nie jest domyślnie używana przez IDE. Moje eksperymenty mają kilka lat, ale w tym czasie wszystko, co próbowałem, zawiodło w tych aspektach.
AProgrammer
@AProgrammer - bardzo dobry punkt, dodany do listy.
Artyom,
Możesz także zajrzeć na CodeLite- codelite.org . Niestety nie mam dużego doświadczenia w korzystaniu z niego przy dużych projektach. Niemniej jednak warto to sprawdzić.
rsc
Dzięki wtyczkom project i clang_complete oraz odpowiednio skonfigurowanemu makeowi , vim da ci prawie wszystko, co IDE (oprócz debugowania). Z tymi, które, jak podejrzewam, i tak zostaniesz z vimem; Na pewno tak.
Jan Hudec,
Zastanawiałem się nad tym sam. Dziękujemy za opublikowanie tego pytania.
Zawieszony

Odpowiedzi:

39

Oto moje osobiste doświadczenie z IDE. Zainstalowałem wszystkie IDE, które mogłem znaleźć, i bawiłem się nimi wszystkimi (tak radzę ci zrobić):

  • kdevelop

Ja osobiście go używam. Wersja, którą zainstalowałem, ulega awarii, ale pobrałem najnowszą wersję z ich strony i działa dobrze. Jest prosty w konfiguracji i świetny w użyciu. Obsługują niestandardowy system kompilacji za pomocą wtyczek. Możesz znaleźć dziwne funkcje (takie jak parsowanie tylko bezpośrednio dołączonych nagłówków), ale ogólnie działa dobrze w przypadku dużych projektów.

  • zaćmienie

Bardzo skomplikowany w konfiguracji, ale pozwala dosłownie wszystko. Jeśli masz wystarczająco dużo czasu, aby znaleźć prawidłową konfigurację, która zadowoli wszystkich, wybierz ją. Ale próba zmiany czegokolwiek jest bardzo denerwująca, ponieważ ma tak wiele opcji.

  • anjuta i kody

Próbowałem krótko, ale nie było tak dobrze, jak poprzednie dwa. Codeblocks nadaje się do krótkich projektów, ale nie do średnich i dużych.

  • fasolki szparagowe

Kolejne dobre IDE, ale ponieważ mój dom jest w sieci, a projekt, który pracuję, jest dość duży, był bardzo powolny. Cały czas parsuje.

  • qtcreator

Prosty w konfiguracji, ale brakuje wielu opcji. Na przykład najdziwniejsze jest to, że nie może on parsować i automatycznie uzupełniać klas qt. Obsługuje niestandardowy system kompilacji.


Podsumowując :

  • jeśli jesteś wystarczająco cierpliwy (lub jeśli znajdziesz dobrą konfigurację), idź z eclipse. To naprawdę najlepsze darmowe IDE.
  • Jeśli chcesz coś prostego do skonfigurowania, skorzystaj z kdevelop.

Inną opcją jest zainstalowanie obu i pozwolić programistom wybrać to, co im odpowiada.

BЈовић
źródło
16
Zaćmienie jest jednym wolnym językiem Javy ... Nie ma powodu, aby używać jednego, chyba że nie ma absolutnie żadnych alternatyw. Na moim komputerze zaczęło się to w niecałą minutę. Nuff powiedział, nie?
Koder
10
@ Koder Cóż, uruchomisz go raz i będziesz go używać przez cały dzień bez ponownego uruchamiania. To jest pomysł. 1 minuta jest niczym w porównaniu do tego, jak długo wykorzystasz ją w ciągu dnia.
BЈовић
6
@VJovic: Przełączanie między kartami trwa od 18 sekund do 1 sekundy, w zależności od karty, a spowolnienia nie polegają najpierw na spowolnieniu. Nawet Visual Studio wydaje się być w porządku.
Koder
7
@ Koder Jak powiedział Edison, twoja instalacja lub środowisko nie jest dobre. Moje zaćmienie jest super szybkie. Przełączanie kart jest prawie natychmiastowe.
BЈовић
4
Ecilpse przecieka pamięć jak sito. W systemie Linux z wieloma użytkownikami, z 16 Gig RAM, kończy się pamięć RAM, a kilka instancji Eclipse (CDT) działa dłużej niż kilka dni. Dlatego powolny start jest problemem, ponieważ musisz restartować co najmniej raz dziennie lub spowolnić, a następnie cały zespół deweloperów. Wykorzystanie pamięci RAM Eclispe - 600Meg / wystąpienie rośnie o 100 / dzień. W pełni funkcjonalny IDE 50Meg / instancja rosnąca o 0 / dzień, VIM, 10Meg rosnąca o 0 / dzień. Jedno komercyjne IDE, z ceną 250 USD / stanowisko, wykazało mniej niż 1 rok ROI w oparciu o utraconą produktywność, aby załadować Eclipse raz dziennie.
mattnz
13

Spójrz na Qt Creator.

  • Jest dość stabilny. Nie pamiętam z tym żadnych awarii.
  • Przyzwyczajenie się do braku kart może trochę potrwać, ale ogólny interfejs jest dobry.
  • Używa gdb. Debugowanie nie jest tak świetne jak w Visual Studio, ale wciąż całkiem dobre. Teraz integruje się również z profilerem (Valgrind).
  • Integruje się z qmake i CMake. Ale możesz uruchamiać niestandardowe polecenia, więc powinno być możliwe użycie prawie wszystkiego.
  • Nie mogę nic powiedzieć o wielkich projektach, ale jest on stworzony i używany przez tych samych facetów, którzy piszą Qt, więc wymagania są wysokie.
  • Wydaje się, że nie przyjmuje żadnych założeń dotyczących struktury projektu.

Próbowałem KDevelop 4 jakiś czas temu. Z pewnością zmierza we właściwym kierunku, ale jest nieco wadliwy. Możesz spróbować mimo to.

Używałem CodeBlocks przez bardzo krótki czas, ale pamiętam, że mi się nie podobało, ponieważ interfejs był brzydki.

Anton Barkovsky
źródło
8

Wielu programistów GCC (i GCC ma od 5 do 9 milionów linii kodu źródłowego, w zależności od sposobu ich policzyć) wystarczy użyć emacs lub viz narzędzi takich jak grep, ctagslub etags, make, svn, gcc, itd.).

Nie potrzebujesz IDE do opracowania dużego oprogramowania.

Jeśli twoje oprogramowanie jest wystarczająco duże (np. Co najmniej 0,3 miliona linii), możesz nawet rozważyć dostosowanie wtyczek GCC przez wtyczki lub rozszerzenia MELT do celów metryki oprogramowania, nawigacji oprogramowania, określonych ostrzeżeń, reguł kodowania itp.

Basile Starynkevitch
źródło
10
To nie było pytanie. Jak zauważyłem, używam głównie vim (z grep, ctags itp.) - wiem, jak dobrze to działa. Jednak wielu programistów woli IDE
Artem
1
IDE są szczególnie pomocne dla funkcji związanych z klasą C ++, które są bardzo trudne do skonfigurowania w Vimie. Surowe C jest OK z ctagami.
Ciro Santilli 1 改造 中心 法轮功 六四 事件
6

Pracuję głównie z Eclipse. Z KDevelop korzystałem od lat z wielką satysfakcją, ale teraz pracuję nad projektami wielojęzycznymi (C, C ++, PHP, Java, Python, Baza danych, Internet itp.).

Zalety Eclipse: wiele narzędzi do wszystkiego (w tym kontrola wersji); działa bardzo dobrze do sprawdzania składni i automatycznego uzupełniania. Dobra robota podczas kompilacji / budowania / debugowania. Jest to platforma wieloplatformowa (Linux, Windows, Solaris itp.)
Wady: niektóre funkcje lub ustawienia są koszmarem (na przykład, gdy trzeba wdrożyć projekt ze stacji roboczej na serwer, Eclipse utrzymuje rodzaj pamięci podręcznej i jeśli uważa, że ​​plik na serwerze jest „aktualny”, plik nie jest nadpisywany). Eclipse jest ogromny , dusi większość mocy procesora i wyczerpuje całą pamięć. Więcej informacji na http://www.ihateeclipse.com .

KDevelop jest szybki i świetny dla projektów C / C ++ i KDE / Qt, ale brakuje niektórych funkcji, takich jak obsługa Mercurial (KDevelop 3.3.4, nie wiem dla nowszych wersji).

AndrewQ
źródło
4

Visual SlickEdit - komercyjny, jak każde dobre narzędzie, „po prostu działa”. Obsługuje każdy język pod słońcem, od razu po wyjęciu z pudełka, wysoce konfigurowalny, a jeśli to konieczne, w pełni programowalny, umieszcza GUI wokół GDB do debugowania. Obsługuje bardzo duże projekty (używam go do bazy kodu 5 milionów + SOLC, z których gram z około 1 milionem z nich.) - Zdobył wiele nagród w przeszłości i od tego czasu stał się lepszy. Spróbuj

Eclipse - Narzędzie do wyboru podczas programowania w Javie, OK dla dowolnego obsługiwanego jednego języka. Napisane w Javie dla programistów Java tworzących programy Java. Ale potrzebuje wtyczek do każdej drobnej funkcji i ważnej funkcji. Nie działa „tylko” dla więcej niż jednego języka na raz.

mattnz
źródło
4

Netbeans jest wolnym, wolnym IDE. Nie używamy „komputerów dinozaurów”, ale IDE WIESZA od dłuższego czasu. Jeśli uzyskamy dostęp do IDE Netbeans przez sieć (powiedzmy, używając VNC), to zapomnij o tym !!! Opóźnienie jest tak poważne, że Netbeans jest bezużyteczny!

Uważam, że Eclipse jest trudne do skonfigurowania do pierwszego użycia, ale jeśli będziesz wytrwał, skończysz z IDE, które ma wszystko, czego możesz chcieć lub potrzebować (być może dzięki wtyczkom).

Nie chcę używać więcej niż jednego IDE i podejrzewam, że ty też nie. Polecam Eclipse ze wszystkimi jego wadami.

Mikrofon
źródło
4

Więc ... Po prostu dodaję inną opinię, ale nie sądzę, że możesz wybrać ją jako użytkownika vima, więc

emacs + gdb http://www.cs.bu.edu/teaching/tool/emacs/programming/

przede wszystkim będzie to najlżejsze IDE (mogę nawet nazwać to systemem operacyjnym) i najbardziej konfigurowalne, dzięki czemu możesz zrobić wszystko przy minimalnym zużyciu zasobów, z wyjątkiem niektórych zasobów pracy umysłowej konfiguracji lisp.

Osobiście, gdy mam poważny projekt, korzystam z programu Visual Studio. Ale kiedy muszę pracować na systemie Linux, uruchamiam emacsa. (też w ogóle nie lubię qt)

Poza tym (głównie dlatego, że lubię wtyczkę last.fm i obsługę clojure) znalazłem fajne IDE dla Linuxa (wciąż próbuję przełączyć się na emacs z niego == 'z pewnych powodów) IDEA , nie polecam używać go dla C ++, ale może nie jest też źle, więc możesz dodać go do swojej listy.

cnd
źródło
1

QT i CodeBlocks są w porządku. Ostatnio używam CodeBlocks.

Można go skonfigurować dla projektów makefile, uzupełnianie kodu działa w większości i nie zawiesza się jak w MSVS, przejście do definicji jest niezwykle szybkie. Przeglądanie funkcji jest również dobrze zrobione.

Jest kilka drobnych problemów, ale codzienna praca w systemie Linux jest bardzo dobra, IMHO.

Koder
źródło
0

Moja jedyna próba użycia IDE na Linuksie miała miejsce w 2005 roku, ale w tym czasie żadne IDE, którego próbowałem (KDevelop, eclipse, Anjuta) nie było dobre, więc wróciłem do vim + ctags + gdb i nadal używam go do kodowania Linuksa.

Nemanja Trifunovic
źródło
Prawdopodobnie jesteś człowiekiem, który zna odpowiedź: jak przejść do implementacji metod w innej klasie hierarchii (implementacja nadrzędna / podrzędna) w vim.
Siergiej
na przykład w Eclipse kombinacja to Ctrl + T dla nazwy metody.
Siergiej
@Sergei Przepraszamy, ctags tego nie obsługuje. Możesz mieć więcej szczęścia z czymś takim jak YCM: github.com/Valloric/YouCompleteMe
Nemanja Trifunovic