Sua experiência com haxe e outras linguagens que compilam em PHP? [fechadas]


23

Gostaria de ouvir opiniões de pessoas que usaram uma linguagem que compila para php. Um desses idiomas que conheço é o Haxe . Outros que eu já li são Kira e Pharen .

Quão bem essas linguagens se integram ao PHP? É relativamente fácil escrever um plug-in para um PHP CMS neles?

Quão maduras são suas implementações e ferramentas?

Você os recomendaria a alguém que precisa usar um php cms, mas odeia php?


1
HaXe é bom. Pelo menos tente. Acabei de instalar-lo, e carregado e testado a minha primeira página PHP em 9 minutos (incluindo tempo para baixar haxe), é fácil e há uma grande comunidade por trás dele com muita docs
JTS

Eu criei o pratphall.org, que é uma linguagem digitada que é compilada no PHP.
Chad Retz #

Respostas:


9

Eu sou o criador da Pharen, que compila um dialeto Lisp para PHP. Para responder às suas perguntas, ele se integra muito bem ao PHP. É fácil incluir funções de chamada de bibliotecas existentes / usar seus objetos.

Quanto à maturidade, ainda não houve nenhum uso de produção do código Pharen. Embora em termos do idioma tudo o que você queira esteja lá e funcionando, coisas como implantação ainda precisam de um pouco de esforço extra.

Dito isto, se você escolher a Pharen, ficarei feliz em ajudar da maneira que puder. Entre em contato se tiver outras dúvidas!


"É fácil incluir funções de chamada de bibliotecas existentes / usar seus objetos." O que deve ser suficiente para trabalhar com a maioria das bibliotecas externas, incluindo APIs de plug-ins para um CMS. A postagem original não era muito específica sobre o que significa integração. Eu também expliquei o estado de sua (falta de) maturidade.
Scriptor

Obrigado por sua resposta e por sua oferta para me ajudar. O pharen é compatível com qualquer outro cisco? Ele tem seus próprios operadores ou apenas usa aqueles em php? Por exemplo, o == no pharen se comporta da mesma maneira que no php?
Kim

É seu próprio dialeto agora, com alguma inspiração de Clojure. A principal razão para isso é que outros padrões têm muita bagagem, como suas próprias bibliotecas padrão, que seriam desnecessários. Ele usa os mesmos operadores do PHP, então você pode usar (== "foo" "foo") #
Scriptor

3

Josh K está certo em alguns aspectos, é melhor conhecer o php para direcionar melhor o tempo de execução do php. No entanto, a principal razão para isso não é que o haxe é um compilador ruim, mas o php é uma linguagem "idiossincrática".

Php tem uma quantidade incrível de funções em seu espaço de nomes base. Portanto, há muitas palavras-chave reservadas e funções especiais que você precisa conhecer para evitar conflitos de nomenclatura. Algumas pessoas estão bem com isso, acho que é um design de linguagem horrível. O HaXe contorna esse problema criando seu próprio espaço para nome em php.

O php transforma automaticamente um número inteiro em um flutuador no estouro. É claro que isso quebra a digitação estrita na qual idiomas como o HaXe dependem para segurança de tipos (e para permitir coisas simples como algoritmos de hash rápido). Eu acho que esse é outro recurso terrível da linguagem. Além disso, o haXe não pode ajudar aqui, porque esse comportamento php não pode ser alterado.

Então, lá vai você. Eu acho que o haXe melhora o php porque elimina algumas falhas (percebidas) da linguagem do php. No entanto, existem tantas coisas estranhas sobre php, que você acaba precisando aprender bem para corrigir algumas de suas idiossincrasias.

Tudo o que foi dito, a linguagem haXe é incrível. Ele permite que você organize seu código php em melhores namespaces, possui um sistema de tipos bastante sofisticado, possui algumas opções de compilação condicional para lidar com problemas específicos de php e possui algumas boas operações de documentação. Por esses motivos, não é uma má escolha projetar uma biblioteca sofisticada ... mesmo para algo como php.

Links relevantes:

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

(também procure por "peculiaridades da plataforma" na seção da comunidade do site principal do haxe.org)


Obrigado pela sua resposta. Você teve algum problema ao chamar php do haxe ou vice-versa?
Kim

Então, o PHP (linguagem dinâmica) tem problemas com o haXe (depende da digitação estática)? Surpreendente! O PHP é uma linguagem um pouco estranha, mas, considerando suas raízes no Perl, é compreensível. O que você acredita ser "características horríveis da linguagem" e o que é "dinamismo padrão" parecem ser bastante semelhantes.
18711 Josh K

1
Você pode ter recursos de linguagem estática juntamente com os recursos de tempo de execução dinâmico. Eles não são mutuamente exclusivos. O HaXe usa o indicador de tipo "Dinâmico" para essa finalidade. Operações de namespace e matemática realmente não têm nada a ver com dinamismo da linguagem. Estas são apenas peculiaridades do php.
jdonaldson

2

Horrible Garbage

Eu usei o haXe por recomendação de alguém e nunca recomendaria isso a ninguém por qualquer motivo .

A compilação cruzada entre idiomas leva a confusão, erros e erros. Também torna a depuração uma tarefa monumental.

Você os recomendaria a alguém que precisa usar um php cms, mas odeia php?

Não! Eu recomendo que você aprenda PHP corretamente ou use um CMS diferente. Como parece que você não tem uma opção na parte do CMS, a outra opção é aprender o idioma e lidar com ele.

Quão maduras são suas implementações e ferramentas?

Jovem na melhor das hipóteses, instável na pior. Você não encontrará muito suporte para eles.


Parece que você tem o trabalho de escrever algo para um aplicativo PHP. Além dos problemas óbvios de que seu código teria que importar funções / objetos PHP existentes para funcionar, e o lixo acima mencionado, qualquer pessoa que trabalhe com isso agora precisará aprender seu idioma para o compilador de idiomas. Caso contrário, eles vão mexer com o código "PHP" frágil que é o resultado. Isso também significa que, se eles funcionarem, você precisará reimplementar essas alterações no seu código ou correr o risco de perder as alterações que qualquer outra pessoa fizer.

Se você odeia trabalhar com PHP, espere até ter que trabalhar com parte do código que essas linguagens geram.


"" Compilação cruzada entre idiomas "

Isso leva a confusão, erros e erros. Quando você escreve um código que está sendo traduzido para outro idioma, está se removendo da fonte inicial. O que você escreve e o que é gerado são completamente dependentes do compilador. Escrever código para gerar código é confuso, você cometerá erros e encontrará erros que não espera. Eu não recomendaria que você os usasse.


5
Por favor, tente não ficar muito emocionado com isso e tente não fazer muitas suposições. O que faz você pensar que eu não aprendi php "corretamente"? De que outra forma eu teria chegado a odiá-lo? O código gerado não é um problema para mim, pois não quero tocá-lo. Depurar não é um problema, pois raramente uso um depurador. Outros desenvolvedores também não são um problema, pois a maioria dos plugins do CMS não são grandes projetos de qualquer maneira. Você faz afirmações muito amplas sobre o haxe. Você pode apoiá-los com exemplos? Seria muito apreciado. Além disso, há quanto tempo você o usou?
Kim

5
Então você está dizendo que o compilador cria código php com bugs? Essa é uma daquelas reivindicações gerais das quais gostaria que você apoiasse com um exemplo. Outra afirmação ampla é "A compilação cruzada entre idiomas leva a confusão, erros e erros". Por favor, dê exemplos para isso. Se você quiser discutir se o PHP é uma linguagem que vale a pena usar, tenho certeza que você encontrará milhares de pessoas na internet que farão isso com você. Eu não sou um deles.
Kim

10
"Compilação cruzada entre idiomas - leva a confusão, erros e erros". Estranho, e aqui estava eu, pensando que qualquer compilador fez exatamente isso - traduzindo um idioma para outro (como assembly, código C, JVM ...).
foo

1
Na verdade, como programador profissional e com muitas linguagens / frameworks / APIs (java, c ++, python, php, ruby, javascript, etc.), o HaXe foi um farol de luz para mim. Pela primeira vez, encontrei uma linguagem que achei que tinha feito as coisas certas e que estava "ok" por todos os lados. Não consigo entender como alguém pode não gostar. Para PHP, é limitado.
Dagnelies 16/03/12

1
Totalmente de acordo com a maioria dos termos (especialmente sobre haxe). Mas trabalhar com php usando a sintaxe lisp é realmente divertido! Então, eu quero estar nessa parte estranha do código apenas por diversão.
CND

1

Eu usei vários tradutores de idiomas e, no final, você sempre tem muita coisa que está tentando evitar ... Então, se você odeia o PHP, espere até ter um problema realmente obscuro que exige que você aprofundar o pescoço nas entranhas. No entanto, devo ser um glutão, porque acho que alvejar neko com haXe seria bem legal.


Todos os compiladores são "tradutores de idiomas". Você está dizendo que não devemos usar compiladores? ;) Se você precisa "mergulhar profundamente no pescoço", depende inteiramente de o compilador estar fazendo seu trabalho bem, que é exatamente o que estou tentando descobrir. A julgar pelas respostas aqui, acho que terei que fazer minha própria investigação.
Kim

Gostaria de segmentar Neko com haXe, mas não quero depender do httpd do Apache. Eu gosto de poder ter uma escolha em servidores web.
Stesch

1

Se for para fazer um plugin para um PHP CMS, fique com o PHP.

Embora eu use o HaXe e o considere realmente ótimo, não o recomendo neste caso. São simplesmente muitos indenizações e os custos seriam maiores que os ganhos de apenas um pequeno plugin.


-1

Eu já experimentei o Haxe e não posso recomendá-lo para desenvolvimento web.

No entanto, gostei da abordagem, e é por isso que implementei minha própria linguagem minimalista , que também é compilada no PHP, mas de uma maneira muito mais direta que a Haxe, para que seja fácil depurar o código gerado e interagir com o código PHP existente. .


Você pode explicar por que você não recomenda o Haxe?
Jay Elston
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.