Discourse ist speichersicher. Ruby ist eine speichersichere Sprache; alle Garbage-Collected-Sprachen sind das. Der Hauptunterschied zu Rust in dieser Hinsicht liegt darin, wann die Sicherheitsprüfungen durchgeführt werden; Rust führt sie zur Kompilierzeit durch, Ruby zur Laufzeit.
Rust befasst sich nur mit wenigen Fehlerklassen, hauptsächlich denen, die durch das Fehlen einer Garbage Collection in C++ verursacht werden. Es ist sicherlich cool, dass sie einen Weg gefunden haben, dies zu tun und gleichzeitig die theoretisch mit Zeigern möglichen Leistungsvorteile zu erhalten, aber es verhindert keineswegs die Art von Fehlern, die man als Benutzer sehen würde. Wenn ich zum Beispiel < verwende, wenn ich <= meinte, und dadurch ein Off-by-one-Fehler entsteht, wird Rust mich nicht retten. Wenn ich vergesse, nach Abschluss einer Aktion eine Erfolgsmeldung auszugeben, wird Rust mich nicht retten.
Was Fehler tatsächlich verhindert, ist die Art von Test-Driven Development, die Discourse bereits einsetzt. Es gibt nur sehr wenige Projekte, die man direkt von Master bereitstellen und erwarten kann, dass sie stabil sind, aber Discourse ist eines davon.
„Moderne Plattformen“ sprießen links, rechts und in der Mitte mit JavaScript für Backend und Frontend aus dem Boden. Ruby liegt in der Beliebtheit zwei Plätze hinter Rust (Kotlin liegt dazwischen), sodass es derzeit kaum eine seltene Sprache ist. Sicher, in 10 Jahren kann sich die Situation ändern, aber selbst eine Neuentwicklung zu Rust wäre in 10 Jahren technische Schuld.
Es ist schwer zu vermitteln, wie naiv diese Aussage ist, weshalb alle über die Idee lachen. Ich habe gesehen, wie meine Entwickler seit 3 Jahren Code refaktorisieren, und sie sind gerade erst bereit, mit der Portierung von wxWidgets/ShuttleGUI auf Qt/QML zu beginnen – was kontextbezogen eine Migration von C++ zu C++ ist, nur ein anderer UI-Toolkit. Es ist einfach schwierig, Code zu transformieren und gleichzeitig sicherzustellen, dass das Verhalten identisch bleibt. 12-16 Tage ist wahrscheinlich die Zeit, die man nur für die Planung benötigt, bevor überhaupt jemand anfängt.