Verwendung von Python

Meson ist in Python implementiert. Dies hat sowohl positive als auch negative Seiten. Das Hauptproblem, das die Leute zu beachten scheinen, ist die Abhängigkeit von Python zum Erstellen von Quellcode. Diese Seite erörtert verschiedene Aspekte dieses Problems.

Abhängigkeitshölle

Es gab viele Python-Programme, die auf mehreren Plattformen schwer zu warten waren. Die Gründe liegen hauptsächlich bei den Abhängigkeiten. Das Programm verwendet möglicherweise Abhängigkeiten, die auf bestimmten Plattformen schwer zu kompilieren sind, veraltet sind, mit anderen Abhängigkeiten in Konflikt stehen, für eine bestimmte Python-Version nicht verfügbar sind und so weiter.

Meson vermeidet Abhängigkeitsprobleme mit einer einfachen Regel: Meson darf keine Abhängigkeiten außerhalb der Python-Basisbibliothek haben. Das Einzige, was Sie benötigen, ist Python 3 (und möglicherweise Ninja).

Wiederholbarkeit

Meson wurde so konzipiert, dass die Implementierungssprache niemals in den Build-Definitionen preisgegeben wird. Dies macht es möglich (und vielleicht sogar einfach), Meson in jeder anderen Programmiersprache neu zu implementieren. Es gibt derzeit keine Pläne, Meson neu zu implementieren, aber wir werden sicherstellen, dass Python nicht innerhalb der Build-Definitionen preisgegeben wird.

Plattformübergreifende Werkzeuge

Es gibt keine einzelne technische Lösung oder Programmiersprache, die auf allen derzeit verwendeten Betriebssystemen nativ funktioniert. Als Autotools in den späten 80er Jahren entwickelt wurde, war die Unix-Shell so gut wie überall verfügbar. Das ist nicht mehr der Fall.

Es ist auch so, dass jedes Projekt, wenn es größer wird, früher oder später Code-Generierung, Skripting oder andere Werkzeuge benötigt. Dies scheint unvermeidlich zu sein. Da es keine Skriptsprache gibt, die überall verfügbar ist, müssen diese Werkzeuge entweder für jede Plattform neu geschrieben werden (was viel Arbeit ist und fehleranfällig ist) oder das Projekt muss eine Abhängigkeit von *etwas* eingehen.

Jedes Projekt, das Meson verwendet (zumindest die aktuelle Version), kann sich darauf verlassen, dass Python 3 immer verfügbar sein wird, da das Projekt ohne dieses nicht kompiliert werden kann. Alle Werkzeuge können dann in Python 3 mit dem Wissen erstellt werden, dass sie auf jeder Plattform ohne zusätzliche Abhängigkeiten laufen werden (abgesehen von der üblichen Portierungsarbeit). Dies reduziert den Wartungsaufwand bei plattformübergreifenden Projekten erheblich.

Die Ergebnisse der Suche sind