La tua esperienza con haxe e altre lingue compilate in PHP? [chiuso]


23

Mi piacerebbe sentire le opinioni di persone che hanno usato un linguaggio che si compila in php. Una di queste lingue che conosco è Haxe . Altri di cui ho letto sono Kira e Pharen .

In che misura queste lingue si integrano con PHP? È relativamente facile scrivere un plug-in per un CMS PHP in essi?

Quanto sono maturi le loro implementazioni e strumenti?

Li consiglieresti a qualcuno che deve usare un php cms ma odia il php?


1
HaXe è buono. Almeno provatelo. L'ho appena installato e caricato e testato la mia prima pagina PHP in 9 minuti (incluso il tempo per scaricare haxe), è facile e c'è una grande comunità dietro con molti documenti
JTS

Ho creato pratphall.org che è un linguaggio tipizzato che viene compilato in PHP.
Chad Retz,

Risposte:


9

Sono il creatore di Pharen, che compila un dialetto Lisp in PHP. Per rispondere alle tue domande, si integra abbastanza bene con PHP. È facile includere librerie esistenti che chiamano funzioni / usano i loro oggetti.

Per quanto riguarda la maturità, non vi è stato ancora alcun uso di produzione del codice Pharen. Mentre in termini di lingua tutto ciò che desideri è lì e funziona, cose come la distribuzione richiedono ancora un piccolo sforzo in più.

Detto questo, se scegli Pharen, sarei felice di aiutarti, comunque posso. Per favore fatemi sapere se avete altre domande!


"È facile includere le funzioni di chiamata delle librerie esistenti / utilizzare i loro oggetti." Che dovrebbe essere sufficiente per lavorare con la maggior parte delle librerie esterne, comprese le API dei plugin per un CMS. Il post originale non era troppo specifico sul significato di integrazione. Ho anche spiegato lo stato della sua (mancanza di) maturità.
Scriptor

Grazie per la tua risposta e per la tua offerta di aiutarmi. Pharen è comptabile con qualche altro lisp? Ha i suoi operatori o usa solo quelli in php? Ad esempio, il == in pharen si comporta allo stesso modo di in php?
Kim,

È il suo dialetto proprio ora, con qualche ispirazione da Clojure. La ragione principale è che altri standard hanno molti bagagli, come le loro librerie standard, che non sarebbero necessari. Utilizza gli stessi operatori di PHP, quindi puoi usare (== "pippo" "pippo")
Scriptor

3

Josh K ha ragione su alcuni aspetti, è meglio conoscere php per indirizzare meglio il runtime php. Tuttavia, la ragione principale di ciò non è che haxe sia un cattivo compilatore, ma che php sia un linguaggio così "idiosincratico".

Php ha un'incredibile quantità di funzioni nel suo spazio dei nomi di base. Quindi, ci sono molte parole chiave riservate e funzioni speciali che devi conoscere per prevenire conflitti di denominazione. Alcune persone stanno bene con questo, penso che sia orribile design del linguaggio. HaXe aggira questo problema creando il proprio spazio dei nomi in php.

Php trasforma automaticamente un numero intero in un float in overflow. Questo ovviamente interrompe la tipizzazione rigorosa su cui lingue come HaXe si affidano per la sicurezza dei tipi (e per abilitare cose semplici come gli algoritmi di hashing veloce). Penso che questa sia un'altra terribile caratteristica del linguaggio. Inoltre, haXe non può essere d'aiuto, perché questo comportamento php non può essere modificato.

Quindi, eccoti. Penso che haXe renda php migliore perché elimina alcuni difetti del linguaggio (percepiti) per php. Tuttavia, ci sono così tante cose strane su php, che alla fine hai bisogno di impararlo bene per correggere alcune delle sue idiosincrasie.

Detto questo, il linguaggio haXe è piuttosto sorprendente. Ti consente di organizzare il tuo codice php in spazi dei nomi migliori, ha un sistema di tipi abbastanza sofisticato, ha alcune opzioni di compilazione condizionale per gestire problemi specifici di php e ha alcune belle operazioni di documentazione. Solo per questi motivi, non è una cattiva scelta progettare una libreria sofisticata ... anche per qualcosa come php.

Link rilevanti:

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

(cerca anche "stranezze di piattaforma" nella sezione community del sito principale di haxe.org)


Grazie per la tua risposta. Hai avuto problemi a chiamare php da haxe o viceversa?
Kim,

Quindi PHP (linguaggio dinamico) ha problemi con haXe (dipende dalla tipizzazione statica)? Stupefacente! PHP è un linguaggio leggermente strano, ma date le sue radici in Perl è comprensibile. Ciò che ritieni sia "caratteristiche orribili del linguaggio" e ciò che è "dinamismo standard" sembrano essere abbastanza simili.
Josh K,

1
È possibile disporre di funzionalità di linguaggio statico insieme a funzionalità di runtime dinamico. Non si escludono a vicenda. A tale scopo, HaXe utilizza l'indicatore di tipo "Dinamico". Namespace e operazioni matematiche non hanno davvero nulla a che fare con il dinamismo del linguaggio. Queste sono solo stranezze di php.
jdonaldson,

2

Immondizia orribile

Ho usato haXe su consiglio di qualcuno e non lo consiglierei mai a nessuno per nessun motivo .

La compilazione incrociata tra le lingue porta a confusione, errori ed errori. Inoltre rende il debug un compito monumentale.

Li consiglieresti a qualcuno che deve usare un php cms ma odia il php?

No! Ti consiglierei di imparare correttamente PHP o di usare un CMS diverso. Dal momento che sembra che tu non abbia scelta nella parte CMS, l'altra opzione è imparare la lingua e affrontarla.

Quanto sono maturi le loro implementazioni e strumenti?

Nel migliore dei casi giovane, nel peggiore dei casi instabile. Non troverai molto supporto per loro.


Sembra che tu abbia il compito di scrivere qualcosa per un'applicazione PHP. Oltre agli ovvi problemi che il tuo codice dovrebbe importare per funzionare funzioni / oggetti PHP esistenti e la spazzatura sopra menzionata, chiunque altro sta lavorando su questo dovrà ora imparare la tua lingua per compilare la lingua. Altrimenti stanno andando a fare casino con il fragile codice "PHP" che è il risultato. Ciò significa anche che se ci lavorano, dovrai reimplementare quelle modifiche nel tuo codice o rischiare di perdere le modifiche apportate da altri.

Se odi lavorare con PHP, attendi fino a quando non dovrai lavorare con alcuni dei codici di quelle lingue.


"" Compilazione incrociata tra lingue "

Porta a confusione, errori ed errori. Quando scrivi il codice che viene tradotto in un'altra lingua, ti stai rimuovendo dalla fonte iniziale. Ciò che scrivi e ciò che viene generato dipende completamente dal compilatore. Scrivere codice per generare codice diventa confuso, commetterai errori e troverai errori che non ti aspetti. Non consiglierei di usarli.


5
Per favore, cerca di non essere troppo emotivo e cerca di non fare troppe ipotesi. Cosa ti fa pensare che non ho imparato il php "correttamente"? In quale altro modo avrei potuto odiarlo? Il codice generato non è un problema per me, in quanto non voglio toccarlo. Il debug non è un problema, poiché uso molto raramente un debugger. Anche altri sviluppatori non sono un problema, poiché la maggior parte dei plug-in CMS non sono comunque grandi progetti. Fai affermazioni molto ampie su haxe. Potete per favore eseguirne il backup con esempi? Sarebbe molto apprezzato Inoltre, da quanto tempo lo hai usato?
Kim,

5
Quindi stai dicendo che il compilatore crea un codice PHP buggy? Questa è una di quelle affermazioni generali su cui vorrei che tu facessi un esempio. Un'altra affermazione ampia è "La compilazione incrociata tra le lingue porta a confusione, errori ed errori". Si prega di fornire esempi per questo. Se vuoi discutere se PHP è una lingua che vale la pena usare, sono sicuro che troverai migliaia di persone su Internet che lo faranno con te. Non sono uno di loro.
Kim,

10
"Compilazione incrociata tra le lingue - Porta a confusione, errori ed errori". Strano, ed eccomi qui, pensando che qualsiasi compilatore facesse proprio questo - traducendo una lingua in un'altra (come in assembly, C, codice JVM ...).
pippo

1
In realtà, essendo un programmatore professionista e avendo molte lingue / framework / API al mio attivo (java, c ++, python, php, ruby, javascript, ecc.), HaXe era un faro di luce per me. Per la prima volta in assoluto ho incontrato una lingua che ho scoperto che aveva fatto bene le cose e che era "ok" da tutte le parti. Non riesco a capire come a qualcuno non possa piacere. Per PHP, tuttavia, è limitato.
Dagnelies,

1
Completamente concordato con la maggior parte dei termini (specialmente su haxe). Ma lavorare con php usando la sintassi lisp è davvero divertente! Quindi voglio essere in una parte così strana del codice solo per divertimento.
CND

1

Ho usato numerosi traduttori di lingue, e alla fine devi sempre cercare di evitare ... Quindi se odi PHP, aspetta solo di avere un problema davvero oscuro che ti richiede per penetrare fino al collo nelle sue viscere. Tuttavia, devo essere un ghiottone, perché penso che prendere di mira Neko con haXe sarebbe piuttosto bello.


Tutti i compilatori sono "traduttori di lingua". Stai dicendo che non dovremmo usare compilatori? ;) Il fatto che tu debba "entrare nel profondo del suo intestino" dipende interamente dal fatto che il compilatore stia facendo bene il suo lavoro, che è esattamente quello che sto cercando di scoprire. A giudicare dalle risposte qui, immagino che dovrò fare le mie indagini.
Kim,

Vorrei indirizzare Neko con haXe, ma non voglio dipendere dal httpd di Apache. Mi piace poter scegliere sui server web.
martedì

1

Se si tratta di creare un plug-in per un CMS PHP, rimanere con PHP.

Anche se utilizzo HaXe e lo trovo davvero eccezionale, in questo caso non lo consiglio. Sono semplicemente troppe indirette e i costi sarebbero superiori ai guadagni solo per un piccolo plugin.


-1

Ho già provato Haxe e non posso raccomandarlo per lo sviluppo web.

Tuttavia mi è piaciuto l'approccio, motivo per cui ho implementato il mio linguaggio minimalista che si compila anche in PHP, ma in un modo molto più diretto di Haxe, in modo che rimanga facile eseguire il debug del codice generato e interagire con il codice PHP esistente .


Puoi approfondire il motivo per cui non consigli Haxe?
Jay Elston,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.