Programmiersprache für Cross-Platform mit keinen Dependencies

Dreamless

Cadet 3rd Year
Registriert
Juli 2016
Beiträge
42
Hallo Computerbase Community,

ich wollte mal fragen, ob es alternativen zu Go Lang gibt die einem ermöglich Software zu entwicklen die Cross-Platform für Unix und Windows compiled werden kann und ganz wichtig, keine Dependencies auf dem Zielsystem vorraussetzt. Bei Go Lang werden ja meines Wissens nach alle Dependencies mit in die Binary gepackt.

Sollten meine Annahmen falsch sein freue ich mich über Berichtigungen.

mit freundlichen Grüßen
 
kling1 schrieb:
Du könntest Javascript und Electron nutzen. Geht aber in eine ganz andere Richtung.
https://electronjs.org/

Die Software die ich umsetzen möchte ist lediglich eine Terminal Anwendung die über ein Konfigurationsmanagementtool auf verschiedenen Instanzen (Dedicated und/oder EC2) ausgerollt wird und von dort aus APIs anspricht und Dinge tut. Denke dafür ist Javascript und Electron nicht geeignet.

Danke trotzdem für deine Antwort :)

Grüße
 
Warum nicht Java? Ist die Runtime zu groß? Bei Java 9 kann man inzwischen eine minimale Runtime für die eigene Anwendung erzeugen.
 
Eine Anforderung ist leider, dass keine Dependencies auf dem Zielsystem benötigt werden, bzw diese über die Binary bereits mit ausgeliefert werden. Siehe Go Lang.

Ich habe die Software in seiner ersten Basis bereits in Go Lang umgesetzt und sie läuft auch. Das Problem was ich mit Go Lang habe wird in diesem Zitat aus dem bekannten Bild "If Programming Languages were guns" recht gut beschrieben

"Go developed by Google is "novice pistol". It is necessary to check whether it is really fired after shooting. Also, you need to check where you hit. "
 
Was für Dependencies meinst Du? Ich hab in den letzten 15 Jahren noch kein Dependency Problem gehabt. Die Java Runtime ist natürlich Teil der eigenen Anwendung und wird nicht vorrausgesetzt. Auspacken, starten, läuft...
 
In diesem Kontext meine ich als Dependencies alles was auf dem System vorrausgesetzt wird / installiert werden muss, damit die Applikation läuft. Da die EC2 Instanzen je nach Last dynamisch horizontal skaliert, erstellt und gedroppt werden sollen und jegliche Konfiguration auf den Maschinen über CHEF oder Puppet passieren soll, wurde mir die keine Dependencies Geschichte als Anforderung für die Abnahme genannt.
 
Java muss nicht installiert werden, das kann man mit der Anwendung ausliefern.
Ich habe hier mindestens 15 Anwendungen mit 15 verschiedenen Runtimes laufen. Auf dem System ist keine Java Runtime installiert. Jede Anwendung bring in einem JRE Unterverzeichnis die eigene Runtime mit. So gibt es auch keine Versionskonflikte
Ergänzung ()

Hier noch ein schöner Artikel, wie man eine minimale Java 9 Runtime für einen Docker Container erzeugt, der dann sogar auf Alpine Linux läuft: Slim modular Java 9 runtime Docker.
 
Zuletzt bearbeitet:
Werde ich mir mal angucken und mit dem Product Owner abklären.

Vielen Dank Nolag
 
Für ziemlich genau diesen Anwendungsfall hab ich mehrfach Rust verwendet und kann es wärmstens empfehlen. Ich hab die C-Runtime statisch gelinkt, um eben nichts auf den Zielsystemen zu benötigen.
 
Dreamless schrieb:
Werde ich mir mal angucken
Was wäre denn Deine/Eure Wunsch-Programmiersprache?
Ich habe z. B. alte Binaries in C++ mit altem Boost und altem Qt, da kopiere ich einfach alle alten Libs im selben Verzeichnis mit und fertig.
 
Was genau ist denn das Problem mit Go? Die Sprache ist einfacher als C++ oder Rust. Ist sie zu rudimentär?
 
Zurück
Oben