Ich dachte daran, Haxe für seine sprachübergreifende Fähigkeit zu verwenden, war sich aber nicht sicher, ob es für diese Aufgabe am besten geeignet war. Ich werde eine generische Bibliothek schreiben, die in den Zielsprachen verwendet und dokumentiert werden kann (in der Lage, etwas wie doxygen anzuwenden). Um es anders auszudrücken, würde ich gerne eine generische Bibliothek in Haxe schreiben, C++ - Code (und Java, sobald es fertig ist) ausgeben und es anderen Programmierern zugänglich machen (lesbar für mehr als nur den C + Compiler) die beste Wahl für diese Aufgabe, oder wäre es besser, wenn ich nur eine Version der Bibliothek für jede Sprache geschrieben hätte?Würde Haxe für die Erstellung von Bibliotheken arbeiten?
Antwort
Haxe ist nicht für das Schreiben von sprachübergreifende Bibliotheken entwickelt, obwohl es getan werden kann, und ich habe ein paar Beispiele gesehen, dass es funktioniert:
- polygonal, eine Datenstruktur und Physik-Engine verwendbar in Haxe und AS3.
- verb, eine NURBS-basierte CAD-Bibliothek, die in Haxe und JS verwendet werden kann.
- daff, eine Bibliothek zum Vergleichen von Tabellen, verwendbar in JS, Python, Java, C#, C++, Ruby und PHP.
jedoch für C++ speziell, da hxcpp
erzeugt viel Haxe spezielle Sachen, einschließlich GC, es viel Bereinigung benötigen oder es ist nicht trivial zu verwenden. Sie können in der Haxe Mailing-Liste fragen.
Sicher ist es möglich, obwohl es abhängig von der gewählten Plattform einige Ungeschicklichkeit geben könnte.
In JavaScript, Neko und Flash ist der generierte Code sehr nah an den nativen und die Leute können ihn verwenden, ohne zu wissen, dass er in Haxe generiert wurde.
Auf PHP, ich fürchte, ich weiß nicht sehr gut, wie es funktioniert. Aber es gibt einige Namespace-Hacks, die ein wenig peinlich sind, aber ich denke, dass diese gelöst werden könnten, indem die Bibliothek mit handgeschriebenem Code umschlossen wird.
In C++, wenn es Ihnen nichts ausmacht mit ein wenig Boilerplate-Code zu ermöglichen, dass Reflexion funktioniert, wird es meistens in Ordnung funktionieren. Es hat eine nicht-standardmäßige Art, mit Konstruktoren umzugehen, und Sie sollten auch sehr vorsichtig sein, da ein GC an sie angehängt ist, und ich weiß nicht, wie gut es mit externem Code umgehen kann, der Referenzen enthält, von denen es nichts weiß.
Über die neuen Ziele - C# und Java werden 100% mit nativem Code zusammenarbeiten. Die meisten Haxe-Funktionen sind den nativen Funktionen der Plattformen zugeordnet, mit Ausnahme der Delegierten. Aber wenn Sie keine Delegierten in Ihrer Schnittstelle verfügbar machen, ist es in Ordnung. Sie werden auch einige Boilerplate Code generieren, um schnelle Reflexion auf diesen Plattformen zu ermöglichen, aber es gibt Möglichkeiten, dies zu deaktivieren, wenn Sie wissen, was Sie tun.
Kannst du klarstellen, was du mit "gc" in C++ meinst? –
@Anderson Ich meinte Garbage Collection;) – Waneck
Ich bin verwirrt von diesem Satz: 'C# und Java wird 100% mit nativem Code zusammenarbeiten.Was bezieht sich" native Code "in diesem Fall? –
- 1. Würde MEF für ein Produkt arbeiten?
- 2. Würde die Erstellung von 250 HTML-Seiten meine Website verlangsamen?
- 3. Bibliothek für die Erstellung von Diffs
- 4. Warum benötigt meine statische Erstellung gemeinsame Bibliotheken?
- 5. Warum würde shl_load() für Bibliotheken mit lokalem Threadspeicher fehlschlagen?
- 6. Maven-Erstellung für GoogleAppEngine, gezwungen, JDO-Bibliotheken einzubinden?
- 7. .NET Bibliotheken mit JSON arbeiten
- 8. Werkzeug für die Erstellung von Software
- 9. Bibliothek Javascript für die Erstellung von Histogramm
- 10. Allgemeine Rahmenbedingungen für die Erstellung von Trainingsdaten?
- 11. Shortcut für die Erstellung von Zeichenfeld
- 12. Hinweis für die Erstellung von Software
- 13. Gibt es eine Java-Bibliothek für die Erstellung von Thumbnails?
- 14. Javascript-Bibliotheken für die Beschriftung von Text?
- 15. Debuggen von Haxe (ActionScript 3)
- 16. Würde der MSFT Report Viewer (rdlc) mit MVC arbeiten
- 17. Wie würde Meteor mit jQuery Plugins für Table Rendering arbeiten?
- 18. Bibliotheken für die Erstellung eines 'stand alone' Web Service als einzelne Binärdatei
- 19. Design Entscheidung für die Erstellung/Verfügbarmachung von Webservices für Dritte
- 20. Wie funktioniert NetBeans 6.5 shareable Bibliotheken arbeiten
- 21. Gem für die Erstellung von Screenshots in Schienen
- 22. Haxe kann keine Standardbibliotheken finden
- 23. Knoten js wie Parser-Bibliotheken arbeiten
- 24. Shortcuts für die Erstellung von komplizierten Säulenstrukturen in Spark-
- 25. Geschwindigkeit für die Erstellung von MySQL-Tabellen in Django erhöhen?
- 26. Gebäude Satz von Eigenschaften für die Klasse von Textdatei mit Hilfe von Makros in haxe
- 27. Haxe - Lesen von Metadaten im Makro
- 28. Makefile für freigegebene Bibliotheken?
- 29. Haxe Int zu String
- 30. Xpath für die Erstellung von Konfigurationsdatei und Sharepoint-Bereitstellung
Welche Frameworks oder Sprachbindungen werden dann für das Schreiben von sprachübergreifenden Bibliotheken empfohlen? –
Wenn Haxe nicht für das Schreiben von sprachübergreifenden Bibliotheken gedacht ist, gibt es dann bessere Werkzeuge für diesen Zweck (oder ist Haxe im Allgemeinen das beste Werkzeug für diesen Zweck)? –
sehr alt Q aber ich hoffe auf gute Antwort/Tipp –