Das Beispiel finde ich gut. Die reale Antwort ist vermutlich was mit OData, OpenAPI und sharepoint ;)Krishty hat geschrieben: ↑23.04.2022, 14:27Lässt sich drüber streiten … dann eben ein Fall, in dem die Supportfrage geklärt ist: Ich arbeite bei Microsoft und möchte den User-Mode-Teil von Windows in Rust implementieren, damit wir ein OS ohne Speicherfehler haben. Was muss ich bereitstellen, damit Programme à Firefox meine API (Window Management, Process Management, etc.?) nutzen können?Lord Delvin hat geschrieben: ↑23.04.2022, 13:52dein Beispiel kommt mir aber auch wenig realistisch vor.
Ernsthaft würde ich sagen, dass es keine Alternative zu C gibt, einfach weil es ausdruckststark genug ist aber gleichzeitig kein komplexes Typsystem hat, das inkompatibel zu jeder anderen Sprache ist. Und das ist das eigentliche Problem. Wenn du jetzt deine Schnittstelle mit Rust ABI rausgibst, dann musst du dich auch an die Rustsemantik dahinter halten, sonst stürzt der übersetzte Rust Code einfach ab. Dasselbe hast du auch mit C++ oder GObject oder was auch immer. Tyr wäre genauso, wenn es dir ein C ABI geben würde. Das Tyr ABI funktioniert, weil die Semantik der Aufrufe respektiert wird. Etwas ähnliches sollte auch in jeder anderen Sprache gehen. Du bekommst dadurch aber nur Kompatibilität und Stabilität zu anderem Code derselben Sprache oder vielleicht zu Kindsprachen.
D.h. es ist komplett egal welche Sprache oder Bibliothek du dafür verwenden willst. Was zählt ist, dass sie dir ein solides C ABI liefert, wenn du sie für solche Zwecke einsetzten willst. Das kann sie natürlich nicht automatisch für jede Art von Deklaration, die man gerne hätte. Wenn an einem Funktionsaufruf implizite Verpflichtungen für den Aufrufer hängen ist das kein gutes Interface; insbesondere wenn man als Nutzer dann eine Sprache verwendet, in der die entsprechenden Verpflichtungen nicht existierten.
Ehrlich gesagt ist mir nicht ganz klar, ob es nicht einfach das war, worauf du initial hinaus wolltest.
Meine Erwartung wäre das Go mehr Geld, mehr Zukunft und bessere Kollegen bringt.Alexander Kornrumpf hat geschrieben: ↑23.04.2022, 15:55 Aber wenn hier junge Leute mitlesen sollten, die nicht aus Interesse oder Notwendigkeit sondern für einen Arbeitsmarkt lernen wollen, vergesst Rust _und_ C++ und lernt fucking node.js ;)
EDIT: Das Jonathan Blow Video ist tatsächlich ganz spannend. Im Kern ist sein Argument eines, das ich seit Jahren gegen Rust und davor schon gegen Haskell ins Feld führe.