Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tesla

PHP com que linguagem?

Recommended Posts

Estive pensando esses dias. Eu faço meus sites no clássico sistema PHP OO + MySQL. Mas de vez em quando encontro alguns obstáculos no PHP, como por exemplo, verificar mime type sem a classe finfo e sem a função mime_contents_type. Pesquisando um pouco achei este site: http://hentenaar.com/serendipity/index.php?/archives/27-Benchmark-PHP-vs.-Python-vs.-Perl-vs.-Ruby.html

 

Bom, pelo que vi PERL é muito rápido. Porém não quero abandonar o PHP, quero apenas uma linguagem "complementar" a ele. Seria o PERL uma boa alternativa? Vamos supor os seguintes pontos:

 

Interação com banco de dados

Trabalho com arquivos (pegar mime type, mover, renomear)

Trabalho com dados (processamendo de formulários, uploads)

 

Porque aí, eu passaria a desenvolver meus sistemas baseando em PHP OO + PERL + MySQL. O PHP combinaria com o PERL? Vocês me sugerem outra linguagem?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ruby é uma alternativa interessante, assim como Python também, se você estiver pensando em substituir o PHP. Pessoalmente eu acho Python melhor, principalmente por conta do framework Django.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ouvi dizer, aqui no fórum mesmo, que Python faz umas coisas cabulosas que PHP não faz.

 

Mas são coisas muito específicas, para casos particulares. Porém, ainda defendo que tudo que pode fazer via Wb, o PHP faz, mas algumas coisas são bem difíceis.

 

A exemplo de pegar o MIME de um arquivo, o João Batista desenvolveu um em PHP, disponível no GitHub.

 

Aqui no fórum tem um exemplo de uso, mas no momento não estou encontrando, já que está no meio de outro tópico (sobre esse assunto, claro).

 

Uma vez eu vi uma classe no PHPClasses que descobria se uma imagem era ---ô ou não, batalhando em cima da GD gerando um "score" para a imagem passada.

 

Outra vez vi uma que fazia a leitura do EXIF de uma imagem SEM a bibioteca EXIF, isto é, analisando os bits e os bytes da imagem passada.

 

Outra ainda, escrevia MP3 Tags num dado arquivo, sem as funções da(s) biblioteca(s) PECL para tanto.

 

Enfim, é possível fazer de u tudo, mas as coisas "tretas" você vai ter de estudar MUITO.

 

A mais difícil que eu já fiz até hoje foi ler arquivos MO (tradução, tipo WordPress)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelas dicas.

 

@mangakah

Você diz Python sendo superior ao PHP? O problema é que sou meio conservador quanto à frameworks, gosto sempre de desenvolver do 0.

 

@Bruno Augusto

Entendo, porém pelo teste, PERL faria tudo isso com maior desempenho não concorda? E em relação à pegar o mime type de um arquivo, você sabe de algum suporte do PERL para isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você diz Python sendo superior ao PHP? O problema é que sou meio conservador quanto à frameworks, gosto sempre de desenvolver do 0.

 

Olha, dizer que uma linguagem é melhor que a outra não é possível, pois isso é relativo. No que diz respeito a performance, é sim. Mas com Python é mais díficil trabalhar com HTML, já que para ele a identação é relevante, você tem que prestar mais atenção à organização do código. Isso tem seu lado positivo, ao menos ninguém vai ficar fazendo spaghetti-code com Python (Pelo menos eu espero que não...).

 

Perl

Tem muita influência de Perl no PHP, a mais visivel são as funções de processamento de texto (preg_match, preg_replace, etc).

 

Mas Perl, assim como C++, não são linguagens tão fáceis de aprender como por exemplo PHP, Python ou Ruby. E por falar em C++, usar essa linguagem, ainda mais com otimização, para processar páginas web, garante a resposta mais rápida entre todas as outras. No entanto, C++ é ainda mais dificil de aprender que Perl.

 

Conclusão

A opção Perl é dificil de ser adotada. Portanto as melhores opções viáveis para substituir o PHP são Ruby e Python. PESSOALMENTE, eu considero Python melhor que Ruby, apesar do framework Rails. E eu não tenho muita paciência em ter que ficar convertendo tipos de variáveis a todo momento (em Ruby cada variável é um objeto e sempre que for usá-la você precisa converter o valor para o tipo que você deseja). Então eu recomendo que você deixe Perl de lado e tente Python e se não gostar, fique com Ruby.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendo, porém na questão de dificuldade eu considero PERL fácil pelo que tenho visto, já que tenho alguma experiência com C/C++. Gostei da sua ideia do C++ para processar páginas web porém só teríamos um problema: só daria para fazer algo parecido em um servidor dedicado, e acho que posso afirmar com certeza que quase nenhuma hospedagem tem suporte para isso.

 

Quando disse superior foi em relação à performance mesmo ^_^

 

Porém como lhe disse, não quero substituir o PHP, quero apenas complementá-lo. Então acho que vou estudar ambos Python e PERL. A que atender mais aos meus requisitos será a que irei utilizar.

 

Porque o que eu queria era o seguinte, por exemplo:

PERL/Python Acessa o Banco de Dados -> Passa os Dados para o PHP -> PHP Processa e Exibe os dados.

Ou então assim:

PHP Recebe Requisição -> Passa Requisição para PERL/Python -> PERL/Python Processam Requisição -> Passa a resposta para o PHP -> PHP Exibe a Resposta

 

Eu queria uma interação mais ou menos assim entende? Seria possível? Aumentaria o desempenho? Porque pelo que vi, trabalhar com CGI em PERL ou Python, até compensa, mas se comparado ao PHP, se torna algo meio "estranho", pois o PHP parece ser uma linguagem mais "amigável".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Independentemente do que o pessoal disse acima, se você quer uma aplicação eficiente, robusta e rápida, planeje-a para isso.

 

Grande parte das aplicações lentas que vemos por ai são, com certeza, consequência de falta de planejamento e falha de arquitetura, resumindo, falha do desenvolvedor.

 

Perl, assim como PHP, é uma linguagem interpretada, a estrutura léxica de ambas é semelhante e o desempenho de uma aplicação escrita em Perl será tão grande, se bem planejada, quanto uma aplicação escrita em PHP nos mesmos moldes.

 

A não ser que você parta para HipHop, trabalhar com uma linguagem interpretada terá, em termos de desempenho, um rendimento semelhante quando comparado com qualquer outra linguagem interpretada e, nesse ponto, estou me referindo à Python, Perl, PHP, Ruby e qualquer outra.

 

De fato, se você planejou bem sua aplicação, não cometeu falhas grosseiras com arquitetura ou engenharia e ainda tem problemas com desempenho, você pode pensar em uma linguagem pseudo-compilada como Java.

 

Agora, se você realmente quiser trabalhar com mais de uma linguagem interpretada, você pode pensar em Perl de fato, penso que Perl seria a melhor opção. Mas volto a afirmar que, em termos de desempenho, tanto faz Python, Ruby, Perl ou PHP.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendo. Ficou bem clara sua explicação, obrigado. O único problema agora que enfrento mesmo, é o problema de portabilidade entre hospedagens. Porque tem alguns clientes que insistem em querer uma hospedagem x, mesmo a gente mostrando que a y tem milhares e milhares de vantagens. A maioria delas oferece o PERL por padrão, mas já o Python não tenho tanta certeza.

 

Bom, até agora não venho sofrendo problema com desempenho no PHP, porém em algumas aplicações ele deixa a desejar, como por exemplo no trabalho com imagens. Não é culpa do PHP em si, é que em alguns casos o gerenciamento de memória ou metodologia de execução de uma tarefa, deixa um pouco à desejar. Por isso queria encontrar algo complementar ao PHP. A primeira alternativa que escolhi foi o PERL porque vejo que ele é rápido, pelo menos na maioria dos testes que vi, e que a maioria das hospedagens tem suporte à ele.

 

Porém posso estar enganado quanto à essa "melhora" na performance, ser significativa ao unir o PHP com Python ou PHP com PERL ou outra combinação. Não é que o PHP está me deixando na mão, é que eu queria melhorar o desempenho dos meus sistemas baseados em PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendo. Ficou bem clara sua explicação, obrigado. O único problema agora que enfrento mesmo, é o problema de portabilidade entre hospedagens. Porque tem alguns clientes que insistem em querer uma hospedagem x, mesmo a gente mostrando que a y tem milhares e milhares de vantagens. A maioria delas oferece o PERL por padrão, mas já o Python não tenho tanta certeza.

 

Amigo,

 

Como engenheiros de softwares, a responsabilidade da aplicação recai sobre nós da mesma forma que a responsabilidade de um prédio permanecer em pé é responsabilidade de um engenheiro civil.

 

A hospedagem, no custo do software, é a parte menos relevante e acredite, se você se impor como engenheiro responsável pelo projeto, seu cliente vai concordar contigo.

 

Uma coisa é você dizer para o seu cliente:

 

"ahhhh, mmmmmiiinha aplicação ppppprecisa disso...."

 

Sinceramente, seu cliente vai escolher a outra hospedagem.

 

Agora, diga a seu cliente:

 

"X, Y e Z são requisitos para o funcionamento da aplicação"

 

Seu cliente vai simplesmente dizer:

 

"Qual hospedagem você acha melhor"

 

É simples assim, você é o responsável pela aplicação e seu cliente não quer saber da hospedagem X ou Y, ele quer a aplicação funcionando e resolvendo o problema dele.

 

Bom, até agora não venho sofrendo problema com desempenho no PHP, porém em algumas aplicações ele deixa a desejar, como por exemplo no trabalho com imagens. Não é culpa do PHP em si, é que em alguns casos o gerenciamento de memória ou metodologia de execução de uma tarefa, deixa um pouco à desejar. Por isso queria encontrar algo complementar ao PHP. A primeira alternativa que escolhi foi o PERL porque vejo que ele é rápido, pelo menos na maioria dos testes que vi, e que a maioria das hospedagens tem suporte à ele.

 

Como eu já afirmei anteriormente, tanto faz Perl, PHP, Python ou Ruby e posso lhe garantir: Escrevo em PHP uma aplicação tão rápida quanto uma aplicação semelhante escrita em outra linguagem semelhante (entenda interpretada).

 

Porém posso estar enganado quanto à essa "melhora" na performance, ser significativa ao unir o PHP com Python ou PHP com PERL ou outra combinação. Não é que o PHP está me deixando na mão, é que eu queria melhorar o desempenho dos meus sistemas baseados em PHP.

 

Eu acredito, veementemente, que você está enganado quanto à "melhora" na performance, de fato, acredito que tudo o que você ganhará é uma dificuldade na manutenção e perda de escalabilidade do projeto.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendo. Desculpa qualquer ignorância minha, é que tenho apenas 16 anos, e ainda sou novo no ramo de negócios, apesar de ser um "bode velho" em algumas coisas, como PHP, Assembly, C e etc. Porém sou um devorador de conhecimento, e acho que mesmo que a linguagem não entre nos meus sistemas, ainda sim seria válido aprender PERL, Python, Ruby não acha? Não como prioridade, mas apenas por "conhecimento".

 

Agora creio que me convenceste à continuar basicamente no PHP mesmo, focando na melhoria da forma que programo, e não na quantidade de formas que programo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendo. Desculpa qualquer ignorância minha, é que tenho apenas 16 anos, e ainda sou novo no ramo de negócios, apesar de ser um "bode velho" em algumas coisas, como PHP, Assembly, C e etc.

 

Jamais se desculpe por estar aprendendo amigo, ainda mais em um fórum cheio de pessoas que passam o dia aprendendo.

 

ainda sim seria válido aprender PERL, Python, Ruby não acha? Não como prioridade, mas apenas por "conhecimento".

 

Agora mudamos a conversa,

 

Conhecimento amigo, é poder.

 

Com exceção das linguagem dependentes de plataforma, domino tantas quanto você consiga enumerar.

 

Sim, é claro que é válido aprender Perl, Python, Ruby, assim como é válido aprender qualquer coisa relevante para a área de engenharia de software, seja relacionado a arquitetura, infraestrutura, protocolos, enfim....

 

Agora creio que me convenceste à continuar basicamente no PHP mesmo, focando na melhoria da forma que programo, e não na quantidade de formas que programo.

 

Pense que, independentemente da linguagem, o desenvolvimento de uma aplicação tem um ciclo como o abaixo:

 

1. análise

2. desenvolvimento

3. teste

4. refatoração

5. teste

6. refatoração

7. teste

....

N. refatoração

 

Não espere ter a aplicação mais rápida do mundo, após a primeira codificação. Faça testes unitários e baseie-se nos resultados desses testes para refatorá-la, a melhora é progressiva e seu cliente só tem a ganhar.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.