Meine Vision für die Zukunft D.

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.

Source: https://habr.com/ru/post/de471950/


All Articles