SDKMAN - Tot, es lebe SDKMAN

Ursprünglicher Autor: Marco Vermeulen
  • Übersetzung

TL; DR: SDKMAN CLI wird in Golang umgeschrieben.

Sechs Jahre sind vergangen, seit wir die erste Version von SDKMAN veröffentlicht haben. In früheren Versionen wurde es als GVM bezeichnet und zur Verwaltung von Groovy und den zugehörigen Tools verwendet. Es stellte sich bald heraus, dass es nicht auf das Groovy-Ökosystem beschränkt sein sollte und dass es auch auf andere SDKs in der JVM angewendet werden könnte. Zu diesem Zeitpunkt wurde die GVM in SDKMAN umbenannt. Obwohl sich der Name geändert hat, bleibt die Basistechnologie gleich.

So wie die GVM einst ihren Namen verdrängte, entwickelte SDKMAN die Technologie, auf der sie gebaut wurde. Obwohl die Backend-Services durch bessere Alternativen ersetzt wurden, blieb die CLI des Kunden gleich und wurde zu unserer größten Frustration.

Am Anfang haben wir uns für die Erstellung der GVM für Bash entschieden, da sie alle Anforderungen abdeckt. Es war auf allen * nix-Systemen verfügbar, arbeitete schnell und bot uns eine Laufzeitumgebung ohne zusätzliche Abhängigkeiten oder zusätzlichen Aufwand. Dies bedeutete, dass das Herunterladen einer neuen Installation praktisch keine Anstrengungen auf fast jedem System erforderte.

Trotz der Vorteile, die Bash uns brachte, entdeckten wir im Laufe der Zeit viele Probleme mit dieser Wahl:

  • Windows-Benutzer müssen während der Installation von Cygwin / Git Bash über die Reifen springen
  • unsere software funktioniert nicht immer gut mit alternativen schalen wie der fischschale
  • Sie müssen spezielle Hacks für die Kompatibilität mit ZSH unterstützen
  • Inkompatibilität zwischen den Hauptversionen von Bash (und Apples hartnäckiger Weigerung, OSX mit der aktuellen Version von Bash zu versenden, wegen dummer Lizenzierungsprobleme)
  • Netzwerkprobleme aufgrund der Verwendung von curl als Haupt-http-Client
  • Schwierigkeiten beim Testen des effektiven Bash-Codes

All dies sagt uns, dass es an der Zeit ist, Bash für etwas anderes zu werben, und so begann ich in den letzten Monaten mit Go als praktikable Alternative. Nach dem Abwägen der Chancen können die Vorteile der Implementierung von CLI on Go wie folgt zusammengefasst werden:

  • Statisch typisierte kompilierte Sprache, um Fehler während der Entwicklung zu erkennen
  • unglaublich schnell durchgeführt
  • keine Abhängigkeit von wackeligem Boden unter den Füßen
  • erstellt kompilierte Binärdateien für alle Architekturen und vermeidet unerwartete plattformbezogene Nebenwirkungen
  • einfachere Unterstützung der Abnahmetests über Godog (Version von Cucumber, in Go geschrieben)
  • Ermöglicht das Umdenken über die aktuelle Implementierung von SDKMAN (mehr dazu später)
  • hilft, die Zusammenarbeit zu verbessern und den Beitrag der Mitglieder der Gemeinschaft zu erhöhen
  • einfach und lässt uns einfach den verdammten Job erledigen (Get Shit Done)

Aus diesem Grund beschloss ich, die erste funktionierende Version der neuen CLI-Schnittstelle SDKMAN zu erstellen . Nach Abschluss dieser Arbeiten wird die neue Version zur Standardversion von SDKMAN. Natürlich können wir damit auch überprüfen, wie es aktuell funktioniert. Sechs Jahre später haben wir gelernt, was funktioniert und was nicht, und wir können dieses Wissen in unserer brillanten neuen Version in Erinnerung rufen.

Hier ermutigen wir unsere Gemeinschaft, sich dem Gespräch anzuschließen und Teil des Gesprächs zu werden. Wir möchten wissen, welche Funktionen Sie sehen möchten (oder nicht). Dafür eröffnen wir in Gitter einen neuen Raum .. Wir laden Sie ein, mitzumachen und mitzuwirken, indem Sie uns Feedback zur neuen CLI geben. Wie in der Bash-Version verwenden wir weiterhin Gurke, um Verhalten in einer verständlichen Sprache zu beschreiben, und wir bitten alle, an der Implementierung jeder Funktion mitzuwirken. Wir möchten, dass diese Funktionen nach wie vor Live-Dokumentation erstellen.

Deshalb habe ich diesen Beitrag so genannt. Wir haben die Originalversion von SDKMAN gerne entwickelt, aber wir haben festgestellt, dass es Probleme gibt. Jetzt haben wir die Möglichkeit, es zuverlässiger zu machen und für alle zu verbessern. Wir helfen Ihnen gerne bei der Implementierung einer neuen CLI!

Vom Übersetzer: SDKMAN ist einer meiner Lieblingspaketmanager. Er installiert JVM, Gradle und Kotlin auf einer neuen Maschine. Aus diesem Grund haben wir kürzlich in der CUBA-Plattform begonnen, unser CUBA-CLI- Hilfsprogramm in SDKMAN zu veröffentlichen . Ich habe diese Übersetzung gemacht, weil ich mich über die Entwicklung von SDKMAN freue und auf die neue Version freue.

Nur registrierte Benutzer können an der Umfrage teilnehmen. Bitte melden Sie sich an.

Wie installiere ich das JDK?


Jetzt auch beliebt: