2012-05-01 29 views
9

Pracuję z niektórymi starszymi kodami C, które muszę naprawić i ogólnie oczyścić, aby usunąć programowanie typu spaghetti, stosować się do zasady DRY itd.Czy produkcja Vala i Genie jest gotowa?

Zastanawiam się nad przepisaniem przy użyciu C++, ale ja nie chcesz posunąć się tak daleko i chciałbyś pozostać tak blisko C, jak to możliwe (podczas używania niektórych koncepcji OOP [bez konieczności ręcznego ich kodowania]).

Niedawno natknąłem się na GObject, Vala i Genie. Te dwa ostatnie są dość niedawne. Czy ktoś jest świadomy, że Vala lub Genie są używane w kodzie produkcyjnym?

Ostatni, ale nie najmniej - czy istnieje lista argumentów za i przeciw. Pochylam się trochę do Genie, ponieważ uwielbiam Pythona i nie jestem zbyt zainteresowany C#, ale Genie (pozorna?) Sprzeciw na kartach może być trochę irytujący w praktyce - byłbym zainteresowany listą zalet i wad dla dwa języki (zakładając, że jedno lub oba z nich są gotowe do użycia produkcyjnego).

Na marginesie pracuję nad Linuksem, więc wszelkie problemy związane z oknami nie są istotne, jeśli chodzi o mnie.

+0

Można też rozważyć [Objective C] (http: //en.wikipedia. org/wiki/Objective_c), [D] (http://en.wikipedia.org/wiki/D_%28programming_language%29), a także prawdopodobnie [garść innych języków] (http://en.wikipedia.org/ wiki/Object-oriented_programming # OOP_languages) podobne do "C z obiektami". – pmg

Odpowiedz

10

Unity, interfejs użytkownika używany przez wszystkie najnowsze wersje Ubuntu, używa Vala.

Here is a list aplikacji opracowanych przy użyciu Vala. Niektóre z nich są częścią domyślnej instalacji GUI niektórych głównych dystrybucji GNU/Linux.

A jeśli chodzi o Genie: Jest to inny język (ze składnią podobną do Pythona) rozumiany przez kompilator Vala. Tak naprawdę to tylko kwestia, którą składnię wolisz (Moim zdaniem). Oto cytat z przewodnika językowego Genie, który wydaje się powiedzieć to samo:

Genie jest bardzo podobna do Vala w funkcjonalności, ale różni się w składni pozwalając programiście używać czystsze i mniej kod, aby wykonać to samo zadanie.

Jak Vala, Genie ma te same zalety:

  • programów napisanych w Genie powinny mieć podobną wydajność i wykorzystanie zasobów dla tych zapisywane bezpośrednio w Vala i C
  • Genie ma żaden z wzdęć i napowietrznych który jest dostarczany z wieloma innymi wysokopoziomowymi językami, które wykorzystują VM (np. Python, Mono, Java)
  • Klasy w Genie są w rzeczywistości obiektami GO, więc Genie można używać do tworzenia kodu platformy, takiego jak widżety i biblioteki, w których wymagane są GObjects do wiązania do othe r języki

Jeśli nie podoba TAB znaków, można zamiast używać spacji:

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

Dzięki. Myślę, że pójdę z Vala. Nadal jest rozwijany (Wydaje się, że ostatnie zmiany kodu w Genie zostały wykonane kilka lat temu). –

+1

Frazowanie "Programy napisane w Genie ... do tych napisanych * bezpośrednio * w Vala i C" jest dość wymowne.Jaki poziom obostrzenia został wprowadzony przy użyciu Genie? Rozumiem, że Vala/Genie kompiluje najpierw do C przed kompilacją do plików binarnych, ale to zdanie sprawia, że ​​wydaje się, że programy napisane w Genie są najpierw kompilowane do Vala przed kompilacją do C, a następnie do plików binarnych. A może pomiędzy nimi Swahili. Nie mam pojęcia. – robru

+0

Sprawdziłem kod źródłowy Unity, widzę tam tylko rozszerzenia cpp, c, py. – exebook