2012-05-01 7 views
9

ich mit einigen Legacy-C-Code arbeite, die ich brauche, um das DRY-Prinzip Refactoring und in der Regel aufzuräumen, Spaghetti Art Programmierung zu entfernen, halten usw.Sind Vala und Genie Produktion bereit?

ich mit C++ neu zu schreiben dachte, aber ich weiß nicht Ich möchte so weit gehen und möchte so nahe wie möglich an C bleiben (während ich einige OOP-Konzepte verwende [ohne sie von Hand programmieren zu müssen]).

Ich bin kürzlich auf GObject, Vala und Genie gestoßen. Die letzteren beiden sind ziemlich neu. Ist jemand da draußen bewusst, dass Vala oder Genie im Produktionscode verwendet werden?

Last but not least - gibt es eine Liste von Vor- und Nachteilen zwischen den beiden Sprachen. Ich mag ein wenig Genie, weil ich Python liebe und nicht so scharf auf C# bin, aber Genie's (scheinbar?) Insider auf Tabs könnte in der Praxis ein bisschen nervig sein - ich würde mich für eine Liste von Vor- und Nachteilen interessieren zwei Sprachen (vorausgesetzt, eine oder beide sind bereit für die Produktion).

Nebenbei, ich entwickle unter Linux, so dass alle Windows-bezogenen Probleme nicht relevant sind, soweit es mich betrifft.

+0

Vielleicht wollen Sie auch [Objective C] (http berücksichtigen: //en.wikipedia. org/wiki/Objective_c), [D] (http://en.wikipedia.org/wiki/D_%28programming_language%29) und möglicherweise ein [Bündel anderer Sprachen] (http://en.wikipedia.org/ wiki/Objektorientierte_programmierung # OOP_languages) ähnlich wie "C mit Objekten". – pmg

Antwort

10

Unity, die von allen aktuellen Ubuntu-Versionen verwendete Benutzeroberfläche verwendet Vala.

Here is a list von Anwendungen entwickelt mit Vala. Einige davon sind Teil der standardmäßigen GUI-Installation einiger wichtiger GNU/Linux-Distributionen.

Und in Bezug auf Genie: Es ist eine andere Sprache (mit Python wie Syntax) von der Vala-Compiler verstanden. Es ist also nur eine Frage der von Ihnen bevorzugten Syntax (meiner Meinung nach). Hier ist ein Zitat aus dem Genie Sprachführer, scheint, dass die gleiche Sache zu sagen:

Genie ist sehr ähnlich wie Vala in Funktionalität unterscheidet sich aber in der Syntax so dass der Entwickler-Reiniger verwenden und weniger Code zu erreichen, die gleiche Aufgabe.

wie Vala, hat Genie die gleichen Vorteile:

  • Programme in Genie geschrieben sollte ähnliche Leistung und Ressourcennutzung, die direkt in Vala und C geschrieben haben hat
  • Genie hat nichts von der aufblasen und Overhead das kommt mit vielen anderen High-Level-Sprachen, die eine VM verwenden (zB Python, Mono, Java)
  • Klassen in Genie sind eigentlich GObjects so Genie kann zum Erstellen von Plattform-Code wie Widgets und Bibliotheken verwendet werden, wo GObjects für die Bindung erforderlich sind zu othe r Sprachen

Wenn Sie nicht TAB Zeichen mögen, können Sie Leerzeichen verwenden statt:

[indent=2] //two space indent instead of TAB 
init 
    print "Hello World" 
+1

Danke. Ich denke, ich werde mit Vala gehen. Es wird immer noch entwickelt (Es scheint, dass der letzte Codewechsel zu Genie vor ein paar Jahren gemacht wurde). –

+1

Die Formulierung "Programme, die in Genie geschrieben sind ... zu denen, die * direkt * in Vala und C geschrieben wurden" ist etwas aussagekräftig.Welche Ebene der Indirektion wird mit Genie eingeführt? Ich verstehe, dass Vala/Genie vor dem Kompilieren zu Binaries zuerst zu C kompiliert, aber dieser Satz lässt es scheinen, dass in Genie geschriebene Programme zuerst nach Vala kompiliert werden, bevor sie nach C kompiliert werden, dann nach Binaries. Oder vielleicht Swahili dazwischen. Ich habe keine Ahnung. – robru

+0

Ich habe den Quellcode von Unity ausgecheckt, kann dort nur cpp, c, py Erweiterungen sehen. – exebook