Entwicklungsumgebungen: JetBrains zielt mit IntelliJ IDEA und Co auf Teamarbeit

Die 2021.1-Releases von IntelliJ IDEA, PyCharm, RubyMine und CLion bringen eine Integration der JetBrains-Tools Code With Me und Space.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 8 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Kurz nach der Veröffentlichung von WebStorm hat JetBrains neben dem Flaggschiff IntelliJ IDEA die Entwicklungsumgebungen PyCharm, RubyMine und CLion veröffentlicht. Alle IDEs bringen eine direkte Integration in die JetBrains-Werkzeuge Space für Projekt- und Teammanagement sowie Code With Me für verteilte Programmierung, inklusive Pair und Swarm Programming.

Die Plattform Space hat das Unternehmen im Dezember 2020 veröffentlicht. Sie soll den gesamten Entwicklungszyklus abdecken, darunter das Hosten von Git-Repositories, den Prüfprozess von Merge-Requests und das Automatisieren von Workflows und CI/CD-Pipelines (Continuous Integration, Continuous Delivery). Daneben bietet es eine Plattform für Chats und Blogs sowie Funktionen für das Verwalten von Teams.

Über ein Plug-in lassen sich neben IntelliJ IDEA auch RubyMine, PyCharm und CLion direkt an Space anbinden.

(Bild: JetBrains)

Entwicklerinnen und Entwickler stellen über Get from VCS im Begrüßungsbildschirm von IntelliJ IDEA, PyCharm, RubyMine oder CLion eine Verbindung zur Space-Organisation her. Anschließend können sie sich Repositories anzeigen lassen, klonen oder Code-Reviews durchführen. Außerdem können sie in der IDE Automatisierungsskripte für Space erstellen.

Das Plug-in Code With Me hat JetBrains im September 2020 veröffentlicht, und es gehört zum Lieferumfang der 2021.1-Releases. Das Tool zielt auf Pair und Swarm Programming in verteilten Teams. Es ermöglicht Video- und Sprachanrufe aus der Entwicklungsumgebung heraus sowohl zwischen zwei Teilnehmern als auch für komplette Teams.

Code With Me ermöglicht die gemeinsame Arbeit am Code und integriert einen Videochat in die IDE.

(Bild: JetBrains)

Die Teammitglieder können parallel zum Gespräch gemeinsam am Code im Editor arbeiten. Für Pair Programming bietet sich beispielsweise sowohl der Full sync mode, der das gemeinsame Editieren desselben Codeabschnitt ermöglicht, als auch das gegenseitige über die Schulter Schauen über follow an. Letzterer Modus, bei dem die Gäste reine Zuschauer sind, ist zudem für Remote Workshops oder Lehrgänge ausgelegt.

IntelliJ IDEA, PyCharm und RubyMine haben neuerdings eine HTML-Vorschau an Bord. Damit zeigt der Editor beim Bearbeiten einer HTML-Datei auf Wunsch eine Preview in der IDE statt in externen Browsern an und reagiert dabei auf Änderungen im HTML sowie in den darin eingebundenen CSS- und JavaScript-Dateien.

PyCharm und die anderren 2021.1-Releases bieten eine HTML-Vorschau innerhalb der IDE.

(Bild: JetBrains)

Editor-Tabs lassen sich zudem in den IDEs neuerdings in der geteilten Ansicht durch einen Doppelklick maximieren. Ein weiterer Doppelklick stellt die geteilte Ansicht mit der ursprünglichen Fenstergröße wieder her.

Die vor allem auf Java und Kotlin ausgerichtete Entwicklungsumgebung IntelliJ IDEA kann mit der neuen Funktion Run Targets Anwendungen direkt auf unterschiedlichen Zielsystemen ausführen. Dazu erstellt die IDE eine passend konfigurierte Umgebung und kümmert sich um das Ausführen des Codes. Die Funktion ist zunächst nur in der Ultimate-Variante verfügbar und erlaubt im aktuellen Release das Ausführen von Java-Anwendungen, JUnit-Tests und Maven-Befehlen aus Java-, Maven- und Spring-Boot-Projekten auf Docker-, SSH- und WSL-Targets.

Unter Windows kann die Entwicklungsumgebung neuerdings Java-Projekte innerhalb von WSL 2 verwalten. Dazu gehört neben dem Kompilieren und Ausführen von Projekten über das IDEA-Build-System das Überprüfen der im Subsystem vorhandenen JDK-Installationen und das Einrichten von JDKs.

Bei der Sprachanbindung kennt IntelliJ 2021.1 erste neue Features des für März geplanten Java 16. So dürfen innere Klassen nun Inhalte haben, die entweder explizit oder implizit statisch sind. Außerdem kann die IDE Stream.collect(toUnmodifiableList()) in stream.toList() umwandeln und zeigt Letzteres bei der Autovervollständigung zu Stream-Objekten vor ersterem Ansatz.

PyCharm fügt neuerdings automatisch passende Importanweisungen ein, wenn Entwicklerinnen oder Entwickler bei der Codevervollständigung ein neues Modul oder Paket auswählen. Dabei erkennt der Editor auch gängige Alias-Namen für Pakete wie np für NumPy oder pd für pandas.

Code-Insight analysiert für Methoden mit mehreren Parametern mit definierten Argumenten den Kontext der aktuellen Zeile, um Vorschläge für alle Parameter zu liefern, sofern lokale Variablen mit demselben Namen vorhanden sind. Für dekorierte Methoden überprüft PyCharm 2021.1 zudem die Typen, basierend auf den Typhinweisen in den Dekoratoren.

PyCharm erkennt für mehrere Parameter passende lokale Variablen.

(Bild: JetBrains)

Neu ist zudem ein Toolfenster für Python-Pakete, das sich über View | Tool Windows | Python Packages öffnen lässt. Es ermöglicht die Installation neuer Pakete und die Suche nach verfügbaren Packages direkt aus der IDE. Es greift auf die installierten Pakete ebenso wie auf die im PyPI-Repository verfügbaren zu.

RubyMine verwendet neuerdings .rbs-Dateien für zusätzliche Informationen zum Code. RBS ist eine Sprache zum Beschreiben der Struktur von Ruby-Programmen, mit der sich Definitionen von Klassen oder Modulen erstellen lassen. Ruby bietet seit der Weihnachten 2020 veröffentlichten Version 3.0 eine Anbindung an RBS.

Die Entwicklungsumgebung nutzt die RBS-Definitionen sowohl für den Anwendungscode als auch für die Standard-Library von Ruby. Die Integration funktioniert wohl unabhängig davon, ob das Projekt auf Ruby 3.0 setzt und setzt lediglich das Hinzufügen des RBS-Gem voraus.

RBS-Definitionen lassen sich neuerdings in RubyMine bearbeiten.

(Bild: JetBrains)

Für das Erstellen der Definitionen in den .rbs-Dateien bietet RubyMine Syntaxhervorhebung sowie Funktionen wie Go to Declaration und Find Usage. Auch das Refactoring zum Umbenennen ist integriert.

Das auf C- und C++-Entwicklung zugeschnittene CLion erweitert die Datenflussanalyse (DFA): Neben der lokalen Analyse einzelner Funktionen bietet die IDE nun auch eine globale DFA, die den Datenfluss über das komplette Programm als geschlossene Einheit untersucht.

Auf die Weise soll sie die lokale Analyse erweitern, um unter anderem Dangling Pointers zu erkennen, also Zeiger, die potenziell auf einen bereits freigegebenen Speicher verweisen. Ebenso soll sie Zeiger-Dereferenzierungen ausmachen, die nullptrs enthalten. Auch Endlosschleifen und unendliche Rekursion (Infinite Recursion) soll die DFA aufspüren.

Daneben führt sie rein globale Untersuchungen ein, um beispielsweise potenziell Funktionen zu erkennen, die immer denselben Rückgabewert liefern (Constant Function Result) beziehungsweise konstante Funktionsparameter (Constant Parameter) haben. Schließlich sucht die DFA Funktionen, die niemals aufgerufen werden, da die entsprechenden Calls im Code nie erreicht werden (Unreachable Function Calls).

Die DFA erkennt unter anderem, wenn Funktionen nie aufgerufen werden.

(Bild: JetBrains)

Daneben bietet CLion einen Assistenten zum Einrichten der Projekte. Der Open Project Wizard hilft beim Konfigurieren der für die "Fremdsprachen" erweiterten CLion das Rust-Plug-in und bietet neuerdings das Swift-Plug-in auch unter Windows an. Hintergrund ist, dass Swift seit September 2020 offiziell für Windows verfügbar ist.

Kurz vor Ostern hat JetBrains DataGrip 2021.1 veröffentlicht. Die Datenbank-IDE bietet unter anderem eine direkte Rechtevergabe innerhalb der Benutzeroberfläche. Die Funktion ist für PostgreSQL, Redshift, Greenplum, MySQL, MariaDB, DB2, SQL Server und Sybase verfügbar.

DataGrip 2021.1 hat eine Benutzeroberfläche für Grants.

(Bild: JetBrains)

Außerdem erweitert die IDE das Konzept der Live-Vorlagen. Neben den allgemeinen bietet sie nun bei der Auswahl eines Objekts im Datenbank-Explorer kontextbezogene Live Templates, die sich direkt auf das Objekt beziehen.

Der Datenbank-Explorer hat zudem ein neues Layout, das weniger wichtige Objekte in einen eigenen Knoten bündelt, um mehr Übersicht zu schaffen. Außerdem lassen sich Datenquellen neuerdings mit den Standard-Tastenkürzeln Strg+C, Strg+V und Strg+X beziehungsweise ⌘+C, ⌘+V und ⌘+X kopieren, einfügen und ausschneiden.

Weitere Informationen zu den 2021.1-Releases lassen sich den Blogbeiträgen zu IntelliJ IDEA, PyCharm, RubyMine, CLion und DataGrip entnehmen. Neben den Entwicklungsumgebungen hat JetBrains auch einige Plug-ins aktualisiert, darunter die für Kotlin und Scala. (rme)