Czy masz doświadczenia z haxe i innymi językami kompilującymi się do PHP? [Zamknięte]

23

Chciałbym usłyszeć opinie ludzi, którzy używali języka kompilującego się do php. Jednym z takich znanych mi języków jest Haxe . Inne, o których czytałem, to Kira i Pharen .

Jak dobrze te języki integrują się z PHP? Czy stosunkowo łatwo jest napisać w nich wtyczkę do PHP CMS?

Jak dojrzałe są ich wdrożenia i narzędzia?

Czy poleciłbyś je komuś, kto musi użyć php cms, ale nienawidzi php?

Kim
źródło
1
HaXe jest dobry. Przynajmniej spróbuj. Właśnie go zainstalowałem, przesłałem i przetestowałem moją pierwszą stronę PHP w 9 minut (w tym czas na pobranie haxe), jest to łatwe i jest za tym wspaniała społeczność z dużą ilością dokumentów
JTS
Stworzyłem pratphall.org, który jest językiem pisanym na maszynie, który kompiluje się do PHP.
Chad Retz

Odpowiedzi:

9

Jestem twórcą Pharena, który kompiluje dialekt Lisp do PHP. Aby odpowiedzieć na twoje pytania, całkiem dobrze integruje się z PHP. Łatwo jest dołączyć istniejące funkcje wywoływania bibliotek / używać ich obiektów.

Jeśli chodzi o dojrzałość, kod Pharena nie został jeszcze użyty do celów produkcyjnych. Podczas gdy pod względem języka wszystko, czego chcesz, jest tam i działa, takie rzeczy jak wdrożenie wciąż wymaga trochę dodatkowego wysiłku.

To powiedziawszy, jeśli wybierzesz Pharena, chętnie pomogę, jak tylko mogę. Daj mi znać, jeśli masz inne pytania!

Skryptor
źródło
„Łatwo jest dołączyć istniejące funkcje wywoływania bibliotek / używać ich obiektów.” Co powinno wystarczyć do pracy z większością bibliotek zewnętrznych, w tym wtyczek API dla CMS. Oryginalny post nie był zbyt konkretny na temat tego, co oznacza integracja. Wyjaśniłem także stan jego (braku) dojrzałości.
Scriptor,
Dziękuję za odpowiedź i Twoją ofertę pomocy. Czy Pharen jest kompatybilny z jakimkolwiek innym seplenieniem? Czy ma swoich operatorów, czy używa tylko tych w php? Na przykład, czy == w pharenie zachowuje się tak samo jak w php?
Kim
Jest to teraz własny dialekt, z pewną inspiracją Clojure. Głównym tego powodem jest to, że inne standardy mają dużo bagażu, podobnie jak własne biblioteki standardowe, co byłoby niepotrzebne. Używa tych samych operatorów co PHP, więc możesz użyć (== "foo" "foo")
Scriptor
3

Josh K ma rację pod pewnymi względami, lepiej poznać php, aby lepiej celować w środowisko wykonawcze php. Jednak głównym powodem tego nie jest to, że haxe jest złym kompilatorem, ale ten php jest takim „idiosynkratycznym” językiem.

Php ma niesamowitą liczbę funkcji w swojej podstawowej przestrzeni nazw. Istnieje więc wiele zastrzeżonych słów kluczowych i funkcji specjalnych, o których musisz wiedzieć, aby uniknąć konfliktów nazw. Niektórzy ludzie są w porządku, myślę, że to okropny projekt językowy. HaXe rozwiązuje ten problem, tworząc własną przestrzeń nazw w php.

Php automatycznie zmienia liczbę całkowitą na zmiennoprzecinkową przy przepełnieniu. To oczywiście łamie ścisłe pisanie, na którym języki takie jak HaXe polegają na bezpieczeństwie typów (i umożliwiają proste rzeczy, takie jak algorytmy szybkiego mieszania). Myślę, że to kolejna straszna funkcja językowa. Również haXe nie może tutaj pomóc, ponieważ tego zachowania php nie można zmienić.

A więc proszę bardzo. Myślę, że haXe ulepsza php, ponieważ usuwa kilka (postrzeganych) wad językowych php. Jednak w php jest tak wiele dziwnych rzeczy, że w końcu musisz się go dobrze nauczyć, aby naprawić niektóre z jego dziwactw.

Mimo wszystko język haXe jest niesamowity. Pozwala uporządkować kod php w lepsze przestrzenie nazw, ma dość wyrafinowany system typów, ma kilka opcji kompilacji warunkowej do obsługi specyficznych problemów z php i ma kilka ładnych operacji dokumentacji. Z tych samych powodów nie jest złym wyborem zaprojektowanie wyrafinowanej biblioteki ... nawet dla czegoś takiego jak php.

Ważne linki:

php magic: http://haxe.org/doc/advanced/magic

(szukaj też „dziwactw platformowych” w sekcji społeczności na głównej stronie haxe.org)

Jdonaldson
źródło
Dzięki za odpowiedź. Czy miałeś jakieś problemy z dzwonieniem do php z haxe lub odwrotnie?
Kim
Więc PHP (język dynamiczny) ma problemy z haXe (zależy od pisania statycznego)? Niesamowity! PHP jest nieco dziwnym językiem, ale biorąc pod uwagę jego korzenie w Perlu, jest zrozumiały. To, co uważasz za „okropne cechy języka” i „standardowy dynamizm”, wydaje się dość podobne.
Josh K
1
Możesz mieć funkcje języka statycznego wraz z funkcjami dynamicznego środowiska wykonawczego. Nie wykluczają się wzajemnie. HaXe używa do tego celu wskaźnika typu „Dynamiczny”. Przestrzeń nazw i operacje matematyczne tak naprawdę nie mają nic wspólnego z dynamiką języka. To tylko dziwactwa php.
jdonaldson,
2

Okropne śmieci

Użyłem haXe na polecenie kogoś i nigdy nie poleciłbym tego nikomu z jakiegokolwiek powodu .

Kompilacja krzyżowa między językami prowadzi do zamieszania, pomyłek i błędów. To sprawia, że ​​debugowanie jest monumentalnym zadaniem.

Czy poleciłbyś je komuś, kto musi użyć php cms, ale nienawidzi php?

Nie! Poleciłbym albo nauczyć się poprawnie PHP lub użyć innego CMS. Ponieważ wydaje się, że nie masz wyboru w części CMS, drugą opcją jest nauka języka i radzenie sobie z nim.

Jak dojrzałe są ich wdrożenia i narzędzia?

W najlepszym razie młodzi, w najgorszym niestabilni. Nie znajdziesz dla nich dużego wsparcia.


Wygląda na to, że masz zadanie napisać coś dla aplikacji PHP. Poza oczywistymi problemami, że Twój kod będzie musiał zaimportować istniejące funkcje / obiekty PHP do pracy, i wyżej wspomniane śmieci, każdy, kto nad tym pracuje, będzie musiał nauczyć się kompilatora języka na język. W przeciwnym razie będą mieszać się z cienkim kodem „PHP”, który jest wynikiem. Oznacza to również, że jeśli będą nad tym pracować, będziesz musiał ponownie wprowadzić te zmiany w kodzie lub zaryzykować utratę zmian przez kogokolwiek innego.

Jeśli nie znosisz pracy z PHP, poczekaj, aż będziesz musiał pracować z kodem wyjściowym tych języków.


„„ Kompilowanie między językami ”

Prowadzi to do zamieszania, błędów i błędów. Podczas pisania kodu, który jest tłumaczony na inny język, usuwasz się z początkowego źródła. To, co piszesz i co generujesz, zależy całkowicie od kompilatora. Pisanie kodu do generowania kodu robi się mylące, popełnisz błędy i znajdziesz błędy, których się nie spodziewasz. Nie polecam ich używać.

Josh K.
źródło
5
Staraj się nie przejmować się tym zbytnio i staraj się nie przyjmować zbyt wielu założeń. Co sprawia, że ​​myślisz, że nie nauczyłem się php „poprawnie”? Jak inaczej miałbym tego nienawidzić? Wygenerowany kod nie stanowi dla mnie problemu, ponieważ nie chcę go dotykać. Debugowanie nie stanowi problemu, ponieważ bardzo rzadko używam debugera. Inni programiści również nie stanowią problemu, ponieważ większość wtyczek CMS i tak nie jest dużymi projektami. Robisz bardzo szerokie twierdzenia na temat haxe. Czy możesz poprzeć je przykładami? Byłoby to bardzo mile widziane. Poza tym, jak dawno go używałeś?
Kim
5
Więc mówisz, że kompilator tworzy błędny kod php? To jedno z tych ogólnych twierdzeń, które chciałbym, abyście poparli przykładem. Innym szerokim stwierdzeniem jest: „Kompilacja krzyżowa między językami prowadzi do zamieszania, błędów i błędów”. Proszę podać przykłady. Jeśli chcesz dyskutować, czy PHP jest językiem, którego warto używać, jestem pewien, że znajdziesz w Internecie tysiące ludzi, którzy zrobią to z tobą. Nie jestem jednym z nich.
Kim
10
„Kompilacja krzyżowa między językami - prowadzi do zamieszania, błędów i błędów”. Dziwne, a tutaj byłem, myśląc, że każdy kompilator właśnie to zrobił - tłumacząc jeden język na inny (jak na asembler, C, kod JVM ...).
foo
1
W rzeczywistości, będąc profesjonalnym programistą i mając wiele języków / frameworków / API pod moim pasem (java, c ++, python, php, ruby, javascript itp.), HaXe był dla mnie światłem. Po raz pierwszy zetknąłem się z językiem, który według mnie działał prawidłowo i który był „ok” ze wszystkich stron. Nie rozumiem, jak ktoś może tego nie lubić. W przypadku PHP jest to jednak ograniczone.
Dagnelies
1
W pełni uzgodniony z większością warunków (szczególnie dotyczących haxe). Ale praca z php przy użyciu składni lisp jest naprawdę fajna! Więc chcę być w tak dziwnej części kodu dla zabawy.
cnd
1

Używałem wielu tłumaczy językowych, a na końcu zawsze musisz się za bardzo zabrać z tym, czego chcesz uniknąć ... Więc jeśli nienawidzisz PHP, poczekaj, aż pojawi się naprawdę niejasny problem, który wymaga Ciebie głęboko w głąb jelit. Chociaż muszę być żarłokiem, ponieważ myślę, że celowanie w Neko za pomocą haXe byłoby całkiem fajne.

czerwony brud
źródło
Wszystkie kompilatory są „tłumaczami języków”. Mówisz, że nie powinniśmy używać kompilatorów? ;) To, czy musisz „zanurzyć się głęboko w trzewiach”, zależy całkowicie od tego, czy kompilator dobrze sobie radzi, i właśnie tego próbuję się dowiedzieć. Sądząc po odpowiedziach tutaj, sądzę, że będę musiał przeprowadzić własne dochodzenie.
Kim
Chciałbym zaatakować Neko za pomocą haXe, ale nie chcę polegać na httpd Apache. Lubię mieć możliwość wyboru na serwerach internetowych.
Stesch
1

Jeśli chcesz stworzyć wtyczkę do PHP CMS, pozostań przy PHP.

Chociaż używam HaXe i uważam, że jest naprawdę świetny, nie polecam go w tym przypadku. To po prostu zbyt wiele pośrednich, a koszty byłyby wyższe niż zyski tylko dla małej wtyczki.

Dagnele
źródło
-1

Próbowałem już Haxe i nie mogę go polecić do tworzenia stron internetowych.

Podobało mi się jednak to podejście, dlatego wdrożyłem własny minimalistyczny język, który również kompiluje się do PHP, ale w znacznie bardziej bezpośredni sposób niż Haxe, dzięki czemu łatwo jest debugować wygenerowany kod i wchodzić w interakcje z istniejącym kodem PHP .

Ecstatic Coder
źródło
Czy możesz wyjaśnić, dlaczego nie polecasz Haxe?
Jay Elston,