Ваш досвід роботи з haxe та іншими мовами, які збираються на PHP? [зачинено]


23

Мені хотілося б почути думки людей, які використовували мову, яка складається на php. Я знаю одну з таких мов - Хакс . Інші, про які я читав, - це Кіра та Фарен .

Наскільки добре ці мови інтегруються з PHP? Чи відносно легко написати в них плагін для PHP CMS?

Наскільки зрілі їх реалізація та інструменти?

Чи рекомендуєте ви їх тому, хто має використовувати php cms, але ненавидить php?


1
HaXe - це добре. По крайней мере, дайте йому піти. Я щойно встановив його, і завантажив та протестував свою першу сторінку PHP за 9 хвилин (включаючи час для завантаження файлів Haxe), це легко, а за нею є велика спільнота з великою кількістю документів
JTS

Я створив pratphall.org, який є набраною мовою, яка компілюється в PHP.
Чад Ретц

Відповіді:


9

Я творець Pharen, який складає діалект Lisp для PHP. Щоб відповісти на ваші запитання, він досить добре інтегрується з PHP. Включити існуючі бібліотеки функції виклику / використовувати їх об'єкти легко.

Що стосується зрілості, то ще не використовувалося виробництво коду Pharen. Хоча з точки зору мови все, що ви хочете, є там і працює, такі речі, як розгортання, ще потребують трохи додаткових зусиль.

Але це означає, що якщо ви виберете Фарена, я б радий допомогти, але можу. Будь ласка, повідомте мене, якщо у вас є інші питання!


"Включити існуючі бібліотеки функції виклику / використовувати їх об'єкти легко." Що має бути достатньо для роботи з більшістю зовнішніх бібліотек, включаючи API плагінів для CMS. Оригінальний пост не був надто конкретним щодо того, що означає інтеграція. Я також пояснив стан її (недостатньої) зрілості.
Сценарій

Дякую за вашу відповідь та за вашу пропозицію допомогти мені. Чи фарен сумісний з будь-яким іншим лісом? У нього є власні оператори чи він просто використовує ті, які є в php? Наприклад, чи поводиться == у фарені так само, як у php?
Кім

Зараз це власний діалект, з деяким натхненням від Clojure. Основна причина цього полягає в тому, що в інших стандартах є багато багажу, як і їх власні стандартні бібліотеки, що було б непотрібним. Він використовує ті самі оператори, що і PHP, тож ви можете використовувати (== "foo" "foo")
Сценарій

3

Джош К має рацію в деяких аспектах, краще знати php, щоб краще орієнтуватися на час виконання php. Однак головною причиною цього є не те, що HEXE - це поганий компілятор, а те, що php - це така "ідіосинкратична" мова.

Php має неймовірний обсяг функцій у своєму базовому просторі імен. Отже, існує маса зарезервованих ключових слів і спеціальних функцій, про які ви повинні знати, щоб не допустити конфліктів імен. Деякі люди в порядку з цим, я думаю, це жахливий дизайн мови. HaXe обходить цю проблему, створюючи власний простір імен у php.

Php автоматично перетворює ціле число на поплавок на переповнення. Це, звичайно, порушує чітке введення тексту, згідно з якою такі мови, як HaXe, покладаються на безпеку типу (а також для спрощення таких речей, як алгоритми швидкого хешування). Я думаю, це ще одна жахлива мовна особливість. Також haXe тут не може допомогти, оскільки цю поведінку php не можна змінити.

Отже, там ви йдете. Я думаю, що haXe робить php кращим, оскільки він очищує кілька (сприйнятих) мовних недоліків для php. Однак про php існує так багато дивних речей, що вам потрібно з часом навчитися добре, щоб виправити деякі свої ідіосинкразії.

Все, що говориться, мова haXe є досить дивовижною. Він дозволяє організувати ваш PHP-код у кращі простори імен, має досить складну систему типів, має деякі умовні варіанти компіляції для обробки конкретних проблем, а також кілька приємних операцій з документацією. Тільки з цих причин - це не поганий вибір розробити складну бібліотеку ... навіть для чогось типу php.

Відповідні посилання:

php магія: http://haxe.org/doc/advanced/magic

(також шукайте "вигадки платформи" у розділі спільноти головного сайту haxe.org)


Дякую за вашу відповідь. У вас виникли проблеми з викликом php від haxe чи навпаки?
Кім

Отже, PHP (динамічна мова) має проблеми з haXe (залежить від статичного набору тексту)? Дивовижний! PHP - це дещо дивна мова, але, враховуючи, що це коріння в Perl, це зрозуміло. Те, що ви вважаєте "жахливими мовними особливостями" і що таке "стандартний динамізм", схоже, досить схоже.
Джош К

1
Ви можете мати функції статичної мови поряд з функціями динамічного виконання. Вони не є взаємовиключними. Для цього компанія HaXe використовує індикатор типу "Динамічний". Простір імен та математичні операції насправді не мають нічого спільного з мовним динамізмом. Це лише химерність php.
jdonaldson

2

Жахливий сміття

Я використовував haXe за рекомендацією когось і ніколи не рекомендував би комусь із будь-яких причин .

Перехресне компілювання між мовами призводить до плутанини, помилок та помилок. Це також робить налагодження монументальним завданням.

Чи рекомендуєте ви їх тому, хто має використовувати php cms, але ненавидить php?

Ні! Я рекомендую вам або вивчити PHP належним чином, або використовувати інший CMS. Оскільки, здається, у вас немає вибору в частині CMS, інший варіант - це вивчити мову та розібратися з нею.

Наскільки зрілі їх реалізація та інструменти?

Молоді в кращому випадку, нестійкі в гіршому. Ви не знайдете для них великої підтримки.


Здається, у вас є робота написати щось для програми PHP. Крім очевидних проблем, через які ваш код повинен був би імпортувати існуючі функції / об'єкти PHP для роботи, і вищезгадані непотрібні, будь-хто інший, хто працює над цим, тепер повинен буде вивчити вашу мову до компілятора мови. Інакше вони будуть псуватися з надуманим кодом "PHP", який є результатом. Це також означає, що якщо вони працюватимуть над цим, вам доведеться повторно внести ці зміни у ваш код або ризикувати втратою змін, які вносить будь-хто інший.

Якщо ви ненавидите працювати з PHP, зачекайте, поки вам доведеться працювати з деяким кодом, який ці мови виводять.


"" Перехресне компілювання між мовами "

Це призводить до плутанини, помилок та помилок. Коли ви пишете код, який перекладається на іншу мову, ви видаляєте себе з початкового джерела. Те, що ви пишете, і що генерується, повністю залежить від компілятора. Введення коду для створення коду стає заплутаним, ви будете робити помилки, і ви знайдете помилки, яких ви не очікуєте. Я б не рекомендував вам їх використовувати.


5
Будь ласка, намагайтеся не надто емоційно ставитися до цього і намагайтеся не робити занадто багато припущень. Чому ви думаєте, що я не навчився php "належним чином"? Як інакше я прийшов би його ненавидіти? Створений код не є проблемою для мене, тому що я не хочу його торкатися. Налагодження не є проблемою, оскільки я дуже рідко використовую налагоджувач. Інші розробники також не є проблемою, оскільки більшість плагінів CMS так і не є великими проектами. Ви робите дуже широкі претензії щодо HEXE. Чи можете ви підкріпити їх прикладами? Це було б дуже вдячно. Також, як давно ви ним користувалися?
Кім

5
Отже, ви говорите, що компілятор створює баггі-php-код? Це одне із тих широких тверджень, які я хотів би, щоб ви підкріпили їх прикладом. Ще одна широка претензія - «Перехресне компілювання між мовами призводить до плутанини, помилок та помилок». Наведіть приклади для цього. Якщо ви хочете обговорити, чи PHP - це мова, яку варто використовувати, я впевнений, що в Інтернеті ви знайдете тисячі людей, які зроблять це з вами. Я не з них.
Кім

10
"Перехресне компілювання між мовами - це призводить до плутанини, помилок та помилок". Дивно, і тут я був, думаючи, що будь-який компілятор робив саме це - перекладаючи одну мову на іншу (наприклад, у збірку, C, JVM-код ...).
foo

1
Насправді, будучи професійним програмістом і маючи багато мов / фреймворків / API під моїм поясом (java, c ++, python, php, ruby, javascript тощо), HaXe був для мене маяком світла. Вперше я зіткнувся з мовою, яку я виявив, що робив все правильно, і який був "добре" з усіх боків. Я не можу зрозуміти, як хтось може це не любити. Для PHP це обмежено.
dagnelies

1
Повністю погоджений з більшістю термінів (особливо про хекс). Але працювати з php за допомогою синтаксису lisp - це дійсно цікаво! Тому я хочу бути в такій дивній частині коду просто заради розваги.
CND

1

Я використовував численні мовні перекладачі, і врешті-решт, вам завжди доводиться багато чого в тому, чого ви намагаєтеся уникати ... Тож якщо ви ненавидите PHP, просто зачекайте, поки у вас з’явиться справді неясна проблема, яка вимагає від вас заглибитись в шию. Хоча я повинен бути обжерливим, тому що я думаю, що орієнтування на когось із haXe було б досить круто.


Усі компілятори є "перекладачами мови". Ви кажете, що ми не повинні використовувати компілятори? ;) Від того, чи доведеться вам "заглиблюватися в її нутрощі", повністю залежить від того, чи добре виконує компілятор свою роботу, саме це я і намагаюся з’ясувати. Судячи з відповідей тут, я думаю, що мені доведеться провести власне розслідування.
Кім

Я хотів би націлити на Neko за допомогою haXe, але я не хочу залежати від httpd Apache. Мені подобається мати можливість вибору на веб-серверах.
stesch

1

Якщо це зробити плагін для PHP CMS, залишайтеся з PHP.

Хоча я використовую HaXe і вважаю це дійсно чудовим, я не рекомендую його в цьому випадку. Це просто занадто багато непрямих, і витрати були б вищими за виграші лише за невеликий плагін.


-1

Я вже спробував Haxe, і не можу рекомендувати його для веб-розробки.

Однак мені сподобався підхід, тому я реалізував свою власну мінімалістичну мову, яка також збирається до PHP, але набагато більш прямим способом, ніж Haxe, так що залишається легко налагоджувати згенерований код та взаємодіяти з існуючим кодом PHP .


Чи можете ви детальніше зупинитися на тому, чому ви не рекомендуєте Haxe?
Джей Елстон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.