JetBrains
# JetBrains

JetBrains ist ein tschechisches, multinationales Softwareunternehmen mit Sitz in Prag und unterhält weitere sieben F+E-Niederlassungen, unter anderem in München und Berlin.

## Geschichte

JetBrains wurde im Jahr 2000 von den russischen Softwareentwicklern Sergei Dmitrijew, Jewgeni Beljajew und Walentin Kipjatkow in Prag gegründet. Nach 12 Jahren als CEO gab Sergei Dmitrijew das Unternehmen 2012 an Oleg Stepanow und Maxim Schafirow ab und widmete sich seinen wissenschaftlichen Bemühungen auf dem Gebiet der Bioinformatik.
Das Unternehmen ist bekannt für seine seit 2001 entwickelte Java-Entwicklungsumgebung (IDE) IntelliJ IDEA, für die auf der Java Virtual Machine basierende Programmiersprache Kotlin, welche für Android-App-Entwicklung mittlerweile von Google empfohlen wird und automatisch nach JavaScript übersetzt werden kann sowie für weitere Entwicklungsumgebungen, z. B. PyCharm für Python. Das von JetBrains entwickelte Software-Distributionssystem TeamCity wird von 80 Prozent der Top-100-Firmen in den Vereinigten Staaten eingesetzt.
Die New York Times berichtete 2021 über Untersuchungen der US-Bundespolizei FBI, ob das Entwicklertool TeamCity von russischen Hackern kompromittiert wurde und beim Solarwinds-Hack 2020 eine Rolle als Eingangstor gespielt haben könnten. JetBrains dementierte jede Verbindung zu dem Hack und verwies auch auf eine entsprechende Mitteilung von Solarwinds selbst.
Als Reaktion auf Russlands Überfall auf die Ukraine wurde der Softwarevertrieb in Russland und Belarus auf unbestimmte Zeit ausgesetzt und die Standorte Sankt Petersburg, Nowosibirsk und Moskau von JetBrains im März 2022 auf unbestimmte Zeit geschlossen.

## Produkte

| Name | Beschreibung |
| Aqua | IDE für Testautomatisierung |
| AppCode | Objective-C- und Swift-IDE für macOS und iOS |
| CLion | IDE für C und C++ |
| DataGrip | IDE für verschiedene SQL-Datenbanken |
| DataSpell | IDE für Data Scientists |
| dotCover | Code Coverage Tool für das .Net-Framework |
| dotPeek | Decompiler für .NET Assemblies/Binaries |
| dotTrace | Profiler, um Engpässe bei Leistung und Arbeitsspeicher von .NET-Anwendungen aufzufinden. |
| Fleet | leichtgewichtige IDE für verschiedene Programmiersprachen mittels des Language Server Protocols |
| GoLand | IDE für Go. |
| IntelliJ IDEA | IDE für Java und Kotlin. |
| JetBrains MPS | Softwareentwicklungsumgebung zur Metaprogrammierung, um eigene, spezialisierte Programmiersprachen zu definieren und mit anderen Sprachen zu benutzen. Sie implementiert Konzepte des Language Oriented Programming. |
| JetBrains Space | Kollaborationswerkzeug für Entwicklerteams |
| Omea | Feedreader, Newsgroup-Aggregator und Lesezeichen-Manager. |
| PhpStorm | IDE für PHP |
| PyCharm | IDE für Python. |
| ReSharper | Refactoring-Erweiterung für Microsoft Visual Studio, welche C# und Visual Basic .NET unterstützt. |
| Rider | IDE für .NET Framework, .NET Core und Mono |
| RubyMine | IDE für reines Ruby sowie Webanwendungen auf Basis von Ruby on Rails. |
| RustRover | IDE für Rust |
| TeamCity | Server für die Kontinuierliche Integration und den Build-Prozess. |
| Upsource | Tool für webbasierte Softwarereviews |
| WebStorm | IDE für JavaScript. |
| YouTrack | Web-basiertes Issue-Tracking-System. |
Android Studio ist eine IDE für Android Apps und wird von Google entwickelt. Seit der Alpha-Version 1.2 Preview 1, die am 10. März 2015 veröffentlicht wurde, basiert Android Studio auf IntelliJ IDEA Community Edition.

## Kotlin

Kotlin ist eine hauptsächlich von der JetBrains Niederlassung in St. Petersburg entwickelte Programmiersprache, die nach der Insel Kotlin vor St. Petersburg benannt wurde. Kotlin wurde im Juli 2011 erstmals der Öffentlichkeit präsentiert. Die Version 1.0 wurde am 5. Februar 2016 veröffentlicht. Kotlin kann in Java-Bytecode kompiliert werden. Dieser kann auf der JVM ausgeführt werden. Somit ist der geschriebene Code plattformunabhängig. Jedoch ist es mithilfe eines Transpilers möglich, aus Kotlin-Code JavaScript-Code zu erzeugen. Einer der größten Vorteile von Kotlin ist die Null-Safety, das heißt, eine Variable muss speziell markiert werden, damit sie den Wert null annehmen kann. Dadurch werden unbeabsichtigte NullPointerExceptions verhindert.