Frage

Ich bin gerade dabei meine erste unabhängige, für profit venture.Ich habe eine harte Zeit zu entscheiden, welche Sprache zu verwenden.Ich möchte schreiben, dass meine app in Perl, aber ich glaube nicht, es wird einfach genug sein, um zu kompilieren.Wenn ich nicht Schreibe es in Perl Schreibe ich es in C++.

Die Anwendung hat viele Funktionen, einschließlich wxwidgets Schnittstelle, die sich mit SDL, Timer, einige threading-und audio-Verarbeitung.Das Programm selbst ist etwas aufwendig, aber nicht sehr groß.

Also meine Frage ist:

  1. Kann PAR, Perl2exe, oder gleichwertig kompilieren mehr als ein basic test cases?
  2. Geschwindigkeit und Zusammenstellung beiseite, warum sollte ich C++ über Perl?

Edit:Einige meiner Projekt-Spezifikationen.

  • Multi-Plattform.Ich gehe davon aus, dass 50% oder mehr meiner Nutzer zu eigenen macs, mit den Meisten der rest wird Windows-Benutzer.Wenn möglich möchte ich auch die Unterstützung von Linux, da Es meinen Alltag operating system.
  • Da es multi-Plattform-brauche ich eine einheitliche GUI-Erstellung-tool.Es muss in der Lage sein, die grundlegenden Arten, und erlauben Sie mir, benutzerdefinierten Ereignishandler erstellen und benutzerdefinierte GUI-Objekte.
  • Es muss " audio-Verarbeitung.Lesen und zu spielen -, wav-und/oder mp3.Auch ich werde mit einigen benutzerdefinierten algorithmen, um spezielle Eigenschaften von audio-Dateien;Dinge wie tempo, Muster und so weiter.
  • Ich möchte aber nicht erfordern SDL/OpenGL-Unterstützung.

Alles andere ist ziemlich banal.Einige der verschiedenen Klassen und Container.Ein paar benutzerdefinierte GUI-controls.

War es hilfreich?

Lösung

Warum nicht ein Hybrid aus beidem? Es ist im Allgemeinen die Art und Weise eine Menge Entwicklung in diesen Tagen geht.

würde ich einen Lua / C ++ vorschlagen oder eine Python / C ++ Combo (Ich bin nicht sicher, wie gut ein Perl / C ++ Combo funktioniert, aber das kann eine gute Wahl sein).

Ich persönlich habe eine Reihe mit der Lua / C ++ Combo getan und es ist ziemlich fantastisch.

Andere Tipps

Ich bin sowohl C++ und Perl-Programmierer.C++ ist eine schöne Sprache, aber wenn ich die Wahl habe, gehe ich mit Perl seit der Entwicklung einfach Erlös so viel mehr schnell.

Ein paar Kommentare:

  1. PAR, perlapp, und perl2exe nicht-Compiler.Sie sind Verpacker.Es gibt keine Perl-compiler außer perl selbst.Wenn Sie möchten, dass irgendeine form von bytecode in form von Perl-code, Sie werden müssen warten für Perl 6, Parrot.
  2. Ich habe verwendet, PAR Paket eine Anwendung mit einer Gesamtfläche von über 500k SLOC, nicht wie perl sich selbst.Es funktionierte, lief der gleichen Geschwindigkeit wie perl selbst, sondern das startup wurde langsamer.Das war 2005.Seitdem sind die Start-performance hat sich deutlich verbessert, wenn Sie installieren das Archiv::Unzip::Burst-Modul auf der Entwicklung der Maschine, wo Sie das Paket Programm.Ich habe erfolgreich eingesetzt PAR für verschiedene Anwendungen unterschiedlich in der Größe von kleinen zu den oben genannten 500k Zeilen.Wenn Sie Hilfe benötigen mit PAR, es gibt eine aktive und freundliche mailing-Liste.Nur tun Sie sich und uns den gefallen nicht Geläute mit "OMG, nichts funktioniert, hilf mir, kthx!".Menschen tun dies die ganze Zeit (und manchmal noch Hilfe bekommen).:)
  3. Perl-threading ist nicht so toll.Überprüfen Sie, ob so etwas wie POE-passt Ihre Rechnung statt.Ich bin ein Gewinde.pm-Benutzer, aber ich möchte lieber nicht sein.Mit der entsprechenden Entschuldigung an die fleißigen Betreuer, Jerry D.Hedden.
  4. wxPerl ist in ziemlich guter Form, und es gibt eine Gemeinschaft um ihn herum.Natürlich, da wxWidgets C++, ist es immer ein wenig mehr aktuell und vollständig sind.
  5. SDL Perl ist eine gerade wrapper für die Bibliothek.Die (wenig) - Dokumentation davon ausgegangen, dass Sie es schon wissen.In meiner Erfahrung -, lese-docs für eine Bibliothek in einer anderen Sprache kann ein bisschen ein Streit.
  6. Timer sind fein in perl: Time::HiRes
  7. Portabilität ist schwer.Mehr so in C++ als bei Perl, aber es ist wirklich immer kommt es auf Disziplin und die Möglichkeit zum testen auf vielen Plattformen.
  8. Für Perl unter Windows, stellen Sie sicher, check out Strawberry Perl.

Gehen Sie mit C ++. Timer, Gewindeschneiden, Audio, SDL, wxwidgets, das sind alles Dinge, die Perl tun können, aber nicht wirklich zeichnen sich. Auch PAR oder perl2exe sind klobig Mechanismen für die Verteilung. Sie arbeiten, aber sie sind nicht ideal. Inzwischen C ++ (und ich sehr empfehlen Sie, bei Verwendung von Erhöhung ) würden diese Rolle gut in passen.

Ein großer Grund Perl zu verwenden ist Meta-Programmierung.

Perl ist flexibel genug, um Sie Code zu lassen, schreiben Code zu schreiben (das ist, wie Moose hat seine Magie). Sie sparen Zeit und reduzieren die Anzahl der Bugs sparen Sie quetschen müssen.

Der große Grund für die Verwendung von Perl ist CPAN.

Ich habe Nutzung PAR ein wesentliches Perl / Tk-Programm für Windows zu verpacken. Es dauerte ein wenig Gefummel, aber es funktioniert.

Wenn Sie zumindest sind wie in Perl als in C ++ erfahren, die Entwicklung in Perl sollte schneller sein. Aber die Laufzeit Geschwindigkeiten für ein gleichwertiges Programm wird langsamer sein. Alle übrigen Kriterien kann entweder erfüllt werden, so würde ich sagen, es kommt auf die persönliche Wahl.

persönlich? Ich sage nicht zu lange auf diese stecken bleiben. Es gibt Vor- und Nachteile der so oder so gehen, aber es klingt wie Sie gefährlich nahe zu kommen, um in stecken „Analyse-Paralyse.“ Wenn nichts anderes, eine Münze oder wählen Sie die Sie denken, das hübscheste Namen hat.

Die Funktion ist wichtig. Code, unabhängig von der Sprache, wird eine ähnliche Dinge tun, vor allem, wenn die gleichen Bibliotheken und Komponenten. Sofern Sie nicht die genaue Funktion ausgearbeitet durch Bibliotheken und Toolkits haben, Prototyp es in Perl.

Es ist ein Argument, dass die Entwicklung weniger Zeit in einer dynamischen Sprache stattfinden wird. Es gibt ähnliche Probleme in Perl und C ++ in einen Drop-Down an der richtigen Stelle bekommt, ist es mit den richtigen Werten füllen, so dass die richtige Änderung des Programmstatus von Benutzereingaben.

Wenn Perl ist nicht immer auf bestimmte Plattformen getan, um den Code zu C ++ verwandeln.

Es gibt wahrscheinlich einige Hinweise, die in diesem Ansatz unterstützen würden:

  1. Das bedeutet, dass Sie wahrscheinlich den Prototyp mit OO Perl schreiben würden. Sobald Sie die High-Level-Funktionalität genagelt haben sich auf einer Plattform - vorausgesetzt, dass Sie so weit in Perl bekommen - dann C ++ mehr oder weniger ist eine Optimierung.

  2. Vielleicht könnten Sie den Prototyp zurückhalten ++ zu mehr oder weniger cognates von C. Aber ich bin darüber nicht sicher, ob Sie eine map in eine Schleife zersetzen können oder auch nur ersetzen sie durch eine Filterfunktion mit einem Funktionszeiger für eine Testfunktion aufgerufen.

Teilen Sie Ihre Kernfunktionalität in C ++, dann schreiben Sie die Front-End für Ihre Anwendung im Werkzeug für die Plattform in Frage, das heißt Cocoa für Mac OS X, .NET / Delphi / MFC für Windows, etc.

Dies ist meine bevorzugte Art und Weise Cross-Plattform-Desktop-Anwendungen zu entwickeln. Natürlich weiß ich, so sehr wenig über das, was Sie erreichen wollen, so kann es für Sie zu dick sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top