Tuesday, October 11, 2016

Pythoneye Entwickeln Python Heller

Skriptsprache für Trading-Strategie Entwicklung Im Moment arbeite ich an einem Bauteil eines Handelsprodukt, mit denen ein Quant oder Strategie-Entwickler, um ihre eigenen Strategien zu schreiben. Ich kann natürlich nicht haben, diese Strategien zu schreiben in nativ kompilierten Sprachen (oder auch eine Sprache, die auf einen Bytecode kompiliert, um auf einer VM laufen), da ihre dev / Testzyklen müssen in der Größenordnung von Minuten sein. Beste Antwort Mark-Jason Dominus, der Autor von Perl-Text :: Template Modul, hat einige Erkenntnisse, die relevant sein könnten: Wenn die Leute machen eine Vorlage Modul wie diese, sie beginnen fast immer durch die Erfindung eine spezielle Syntax für Substitutionen. Beispielsweise bauen sie es so, dass ein String wie %% VAR %% wird mit dem Wert von $ VAR ersetzt. Dann erkennen sie die Notwendigkeit, zusätzliche Formatierungen, so setzten sie in einigen speziellen Syntax zum Formatieren. Dann müssen sie eine Schleife, so dass sie eine Schleife Syntax zu erfinden. Ziemlich bald haben sie eine neue kleine Template-Sprache. Dieser Ansatz hat zwei Probleme: Erstens wird ihr kleines Sprache verkrüppelt. Wenn Sie etwas, das der Autor hat nicht gedacht tun müssen, verlieren Sie. Zweitens: Wer will, eine andere Sprache zu lernen? Wenn Sie Ihre eigene Mini-Sprache zu schreiben, könnten Sie am Ende in der gleichen Situation - die Aufrechterhaltung einer Grammatik und einen Parser für ein Werkzeug, das von Entwurf verkrüppelt ist. Wenn eine echte Programmiersprache scheint ein bisschen zu Low-Level kann die Lösung nicht darin bestehen, die Sprache aufzugeben, sondern um die Endbenutzer mit übergeordneten Utility-Funktionen zur Verfügung stellen, so dass sie mit vertrauten Begriffen, ohne zu verzetteln in der arbeiten kann Unkräuter der zugrunde liegenden Sprache. Das erlaubt es Benutzern, beginnend auf einem hohen Niveau zu betreiben; aber Sie und alle Endverbraucher mit einem Händchen für die es - Ihr super-Nutzer - noch nutzen die volle Leistung von Ruby oder Python oder was auch immer.


No comments:

Post a Comment