Ja, Gtk+ in C ist... halt C. Vala ist schön aber ich bemängle daran z.B. das Exception Handling. Zumal Vala C kompatibel bleiben muss weil es nach C kompiliert, kann es keine echten Exceptions haben sondern nur welche per output Parameter. D.h. man muss einen conditional branch über diesen output Parameter einbauen um zu prüfen ob ein Fehler passiert ist. Man könnte aber Exceptions so zu Binärcode/Assembler kompilieren, das nur im Fehlerfall, aber nicht im Normalfall, ein Overhead entsteht.
Ok, der Overhead mag nicht groß sein, aber in so Sachen bin ich ein wenig ein Purist. Heutzutage ist das Problem mit Exceptions schon gelöst, da wirkt so eine Sprache wie Vala schon ziemlich veraltet (in diesen einen Punkt; mag mich da in was Unwichtigen verbeißen).
Welche Funktionen werfen denn Exceptions? Funktionen, die IO betreiben, auf Dateien zugreifen, übers Netzwerk oder einen Message Bus kommunizieren, auf die Datenbank zugreifen. Du willst mir doch nicht erzählen, dass dort eine einzige (!) Przessorinstruktion (JNZ) auch nur irgendwie ins Gewicht fällt, während andere "hippe" und dynamische Programmiersprachen pro Methodenaufruf einen String-Lookup oder ähnliches machen?
Ich glaube du möchtest echt nicht wissen, was bei anderen Programmiersprachen alles unter der Haube passiert. Du könntest wahrscheinlich gar keine mehr benutzen
Naja ich hab ja nix davon, das in Vala das Exception Handling so funktioniert. Das Python/Ruby/JavaScript dynamisch sind, davon hat man sogar sehr viel. Wobei der Ansatz von RPython wohl ein sehr intelligenter ist.
Ja, Gtk+ in C ist... halt C. Vala ist schön aber ich bemängle daran z.B. das Exception Handling. Zumal Vala C kompatibel bleiben muss weil es nach C kompiliert, kann es keine echten Exceptions haben sondern nur welche per output Parameter. D.h. man muss einen conditional branch über diesen output Parameter einbauen um zu prüfen ob ein Fehler passiert ist. Man könnte aber Exceptions so zu Binärcode/Assembler kompilieren, das nur im Fehlerfall, aber nicht im Normalfall, ein Overhead entsteht.
Ok, der Overhead mag nicht groß sein, aber in so Sachen bin ich ein wenig ein Purist. Heutzutage ist das Problem mit Exceptions schon gelöst, da wirkt so eine Sprache wie Vala schon ziemlich veraltet (in diesen einen Punkt; mag mich da in was Unwichtigen verbeißen).
Welche Funktionen werfen denn Exceptions? Funktionen, die IO betreiben, auf Dateien zugreifen, übers Netzwerk oder einen Message Bus kommunizieren, auf die Datenbank zugreifen. Du willst mir doch nicht erzählen, dass dort eine einzige (!) Przessorinstruktion (JNZ) auch nur irgendwie ins Gewicht fällt, während andere "hippe" und dynamische Programmiersprachen pro Methodenaufruf einen String-Lookup oder ähnliches machen?
Stimmt wahrscheinlich eh, trotzdem finde ich's unschön.
Ich glaube du möchtest echt nicht wissen, was bei anderen Programmiersprachen alles unter der Haube passiert. Du könntest wahrscheinlich gar keine mehr benutzen
Naja ich hab ja nix davon, das in Vala das Exception Handling so funktioniert. Das Python/Ruby/JavaScript dynamisch sind, davon hat man sogar sehr viel. Wobei der Ansatz von RPython wohl ein sehr intelligenter ist.