
Als Andrei Alexandrescu als stellvertretender Leiter der Abteilung D-Programmiersprache zurücktrat, wurde ich gebeten, diese Rolle in Zukunft zu übernehmen. Es besteht kein Grund, darüber zu sprechen, aber ich werde trotzdem sagen, dass dieser Hut zu groß für mich ist.
Ich betrete immer noch meine neue Rolle in der Gesellschaft und finde heraus, wie ich handeln möchte und was es wirklich ist. Dieser Prozess findet nicht im luftleeren Raum statt, da Walter auch bei uns ist.
In den
D-Foren wurde ich gebeten, einen Blog-Beitrag über meine „Träume und nächsten Schritte für D“ zu schreiben. Hier ist das Ergebnis. Was ich in naher Zukunft mit D werden möchte:
Speichersicherheit
"Aber D ist eine Sprache mit GC!", Höre ich Ihre Ausrufe. Ja, aber es ist auch eine Systemprogrammiersprache mit Nichtreferenztypen und Zeigern, was bedeutet, dass D heute für die Arbeit mit Speicher nicht ganz sicher ist.
DIP1000 war ein Schritt in die richtige Richtung (ca.
Ausleihsystem , wie in Rust,
siehe hier ), aber die Arbeit mit dem Speicher sollte sicher sein, bis der Programmierer über "Ich weiß, was ich tue" mit
@ ablehnt
vertrauenswürdiges Blockattribut oder Funktion. Dies impliziert standardmäßig einen Wechsel zu
@ safe .
Einfaches und zuverlässiges Multithreading
Wir sind größtenteils bereits am richtigen Punkt - die Verwendung des Akteurmodells beseitigt viele der Probleme, die normalerweise auftreten. Es bleibt die Arbeit am
gemeinsam genutzten Attribut zu beenden und alles
@ safe zu tun.
Machen Sie D zur Standardprogrammiersprache
Die Möglichkeiten von D in Bezug auf statische Reflexion und Codegenerierung machen es zu einem idealen Kandidaten für die Erstellung von Code, der aus mehreren verschiedenen Sprachen und Umgebungen (z. B. Python, Excel, R usw.) aufgerufen werden sollte. Dies erfolgt normalerweise durch Angabe von Datenstrukturen und RPC-Aufrufen in einer Interface Definition Language (IDL) und anschließende Übersetzung in unterstützte Sprachen mit dem entsprechenden Austauschprotokoll.
Im Fall von D wird nichts davon benötigt. Sie können Industriecode in D schreiben und mit Hilfe von Bibliotheken kann dieser Code automatisch aus anderen Sprachen aufgerufen werden. Hinzu kommt, dass Sie leicht D-Code schreiben können, der genauso schnell oder schneller als Alternativen funktioniert, und der an allen Fronten ein Sieg sein wird.
Unübertroffene Reflexion
Anstatt auf unterschiedliche Weise mit fragmentierten APIs (__traits, std.traits, Bikes) zu arbeiten, hätte ich gerne eine Bibliothek, die alle Reflexionsbedürfnisse mit einer schönen API zentralisiert. Ich arbeite schon daran.
Vereinfachen Sie die Interoperabilität mit C ++
Wie ich in meiner
Rede auf der DConf 2019 erwähnt habe , war C ++ erfolgreich, indem der Übergang von C nahezu nahtlos verlief. Ich möchte, dass aktuelle C ++ - Programmierer mit einer veralteten Codebasis genauso einfach mit dem Schreiben von Code in D beginnen. Deshalb habe
ich dpp (
Notizübersetzer für C ++ - Header in D) geschrieben, aber das ist noch nicht alles Möglicherweise müssen wir Änderungen an der Sprache vornehmen, um dies in Zukunft anzupassen.
Entwicklungsgeschwindigkeit
Ich denke, wir brauchen einen unglaublich schnellen Interpreter, damit wir die ständige Generierung und das Layout des Maschinencodes ablehnen können. Meiner Meinung nach sollte dies die Standardmethode sein, um
unittest- Blöcke auszuführen (
primitive Komponententests sind in die Sprache integriert), um schnelles Feedback zu geben, und damit Programmierer ihren Code nur für maximale Leistung und / oder für die Bereitstellung für Endbenutzer kompilieren müssen. Dies würde auch die Einführung von
REPL ermöglichen .
Interpolierte Zeichenfolgen
Anfangs war ich dagegen, aber je mehr ich darüber nachdachte, desto logischer war es für D. Warum? String-Mixins. Die Codegenerierung ist eine der Stärken von D, und mit
String-Token können Sie Codeblöcke, die eigentlich „nur Strings“ sind
, visuell erfreuen. Die String-Interpolation würde ihre Verwendung erheblich vereinfachen. Bisher befindet sich ein
DIP-Entwurf in der Entwicklung.
Das ist mir nach einem langen Spaziergang entlang des Genfersees eingefallen. Ich würde gerne wissen, was die Community darüber denkt, was ihre bevorzugten Schwielen und Möglichkeiten in D sind und wie dies ihrer Meinung nach den Fortschritt für D unterstützen oder behindern wird.
Diskussion im D-Forum hierÜbersetzt mit
www.DeepL.com/Translator (dies ist keine automatische Übersetzung, wenn jemand es nicht bemerkt hat, aber gleichzeitig hilft dieser Übersetzer mit KI-Elementen sehr)
PS Wer hat den
vorherigen Artikel aus dem Blog über D-Pläne für die mobile Entwicklung verpasst? Sie wurde der Werbung verdächtigt (oh, Donat wird erwähnt) und aus Hub D ausgeschlossen.