IDE für große, mehrsprachige Projekte (zB Linux-Kernel)

11

Ich weiß, dass die Frage "Welche IDE benutzt ihr?" Millionen Mal gestellt wurde. Aber ich habe es in diesem Zusammenhang noch nie gefragt gesehen. Was sind einige Vorschläge für eine IDE, wenn Sie an großen Projekten arbeiten, die mehrere Sprachen und Tausende von Dateien umfassen?

Ein gutes Beispiel ist die Android-Quelle. Für den Kernel ist nicht nur eine gute C / C ++ - IDE erforderlich, sondern auch Java- und Shell-Skripte. Gibt es etwas, das für diese Art von Projekt gebaut wurde?

Was ich normalerweise benutze, ist KDevelop für C / C ++. Ich liebe es, aber es scheint zu explodieren, wenn es für große Projekte wie den Linux-Kernel verwendet wird. Außerdem macht es nicht einmal etwas für Java oder Python.

Grundsätzlich suche ich also Vorschläge für IDEs / Setups (dh vim + scripts) für die Arbeit mit großen Projekten, einschließlich des Linux-Kernels selbst.

Bearbeiten :

Ich glaube, ich war vielleicht unklar. Ich bin nicht gerade auf der Suche nach einer IDE an sich. Was mich wirklich interessiert, ist ein Tool (eine Reihe von Tools?), Das die Arbeit mit großen, gekoppelten Projekten erleichtert. Beispielsweise. Der Linux-Kernel definiert viele Makrofunktionen. Ich möchte in der Lage sein, eine bestimmte Quelldatei im Kernelbaum zu öffnen und die Definition dieses Makros zu sehen (sei es durch Bewegen der Maus über ein Vim-Erweiterungsfenster oder irgendetwas anderes).

Falmarri
quelle
Für die spezifische Navigation im Linux-Kernel ist LXR (Online-Linux-Querverweis) sehr hilfreich. Für Android ist Eclipse die bevorzugte IDE, daher haben die Autoren einige Energie aufgewendet, damit die Dinge gut damit funktionieren.
Gilles 'SO - hör auf böse zu sein'
1
Mit Android meinen Sie die Entwicklung von Android Java-Apps? Oder Android Kernel / NDK Entwicklung?
Falmarri
@ Falmarri - Nach dem, was ich im speziellen Fall der Linux-Kernel-Entwicklung gefunden habe, scheint der Link + sehr beliebt zu sein: sourceforge.net/projects/linkplustest
Guy Avraham

Antworten:

5

Was ich empfehlen würde, ist, dass Sie sich nicht an IDEs halten. Lassen Sie Ihren Code als Flatfiles im Dateisystem bleiben und verwenden Sie unabhängige Tools (Emacs, die GCC-Toolchain, Ctags usw.), die Sie für die Implementierung der zu implementierenden Vorgänge benötigen. Dadurch bleibt Ihre Codebasis IDE-unabhängig und frei von Unordnung, die sie umgibt (wie z. B. Projektdateien usw.).

Aarohi Johal
quelle
2
Ich denke, das ist meine Frage. Ich brauche nicht unbedingt eine IDE an sich (wie bei all ihren Funktionen). Was ich aber sehen möchte, ist, wo Kernel-Makros definiert sind, Code vervollständigt werden und solche Dinge. Wenn Projekte beginnen, Zehntausende von Dateien mit Abhängigkeiten zur Kompilierungszeit und bedingten Definitionen zu erreichen, ist es äußerst schwierig, die Sache mit vim klar zu halten.
Falmarri
1

Ich kann nur aus Erfahrung sprechen, daher umfasst es wahrscheinlich keine Projekte von Ihrer Größe. Ich benutze Code :: Blocks für die Entwicklung in C und C ++.

Die allgemeine Idee ist jedoch, Dinge wie git , vim , ctags usw. geschickt zu nutzen und alles an eine bestimmte IDE gebunden zu halten. Der Trick besteht darin, Entwickler nicht zu zwingen, eine bestimmte IDE zu verwenden. Jeder in Ihrem Projekt sollte die von ihm gewünschten Entwicklungstechniken und -programme verwenden.

Lassen Sie das Dateisystem die Arbeit erledigen, um große Mengen an Dateien zu verwalten. Verwenden Sie Ordner und beschreibende Dateien sowie Kommentare in Ihrem Code.

Polemon
quelle
1

Eclipse wäre wahrscheinlich die beste Wahl für Sie. Es verfügt über Plugins für eine Vielzahl von Sprachen und Technologien, die anpassbar sind und für alle Betriebssysteme verfügbar sind. Als Minus verwendet es Java und benötigt viel Speicher.

user6489
quelle
2
Eclipse ist zu unzuverlässig, wenn es für größere Projekte verwendet wird. Java-Entwickler bleiben dabei, weil es kaum Alternativen gibt.
Polemon
Haben Sie es ohne Probleme mit einem großen Projekt verwendet?
Tshepang
2
Das Problem, das ich mit Eclipse hatte, ist die Plugin-Mentalität. Viele waren (sind noch?) Inkompatible und meist inkonsistente Benutzeroberflächen. Wann immer Sie etwas "Neues" tun möchten, z. B. eine Datei bearbeiten, die nicht Java ist, müssen Sie ein Plugin herunterladen und installieren, das die gesamte Installation genauso instabil macht wie funktioniert.
Mattnz
1

Ich verwende Visual Slick Edit für eine große (Millionen von SLOCs), ältere, mehrsprachige, plattformübergreifende und entwicklungsübergreifende Umgebung. Es ist kommerziell und teuer (es sei denn, Sie berücksichtigen Ihre Zeit). Für ernsthafte Java-Sitzungen wechsle ich zu Eclipse, aber für eine schnelle Lösung / ein schnelles Tool in Java, C / C ++, Ada, Python, Pearl, Skripten und vielen anderen ist es das einzige Tool, von dem ich weiß, dass es es einfach kann Box.

Sie würden sich selbst einen schlechten Dienst erweisen, wenn Sie keine Testversion herunterladen und prüfen würden, ob dies der Fall ist

mattnz
quelle