terça-feira, 25 de novembro de 2008

Por que Não PHP?

2

Estive conversando com um amigo fã de PHP e resolvi postar aqui o porquê não curto muito PHP, apesar de gostar da linguagem e de saber programar, prefiro outras linguagens como Java e RoR.

Meu problema com PHP é a salada de frutas que ele faz no código, o uso abusivo de tags no meio de paginas HTML tornando o código muito estranho e de difícil manutenção. Alguém ai já olhou algum projeto Open Source em PHP estilo o PHPMyAdmin ou o oCommon? Chega de assustar a lambança que é feita no código, é muita mistura. Existem frameworks que auxiliam isso como é o caso do Zend Framework e do Symfony, mas normalmente quem usa PHP procura um local de hospedagem gratuita aonde hospedar seus códigos, e dificilmente essas hospedagens suportam esses frameworks.

Eu procurei um pouco de tudo para tornar meus códigos em PHP melhores, ate tentei utilizar conceitos de OO do Java, porém não obtive sucesso. Foi melhor utilizar o estilo de OO do PHP, agradeço até hoje pela PHP 5, pois ele trouxe muitos conceitos de OO para dentro do PHP. Algumas functions que facilitam o desenvolvimento, como é o caso de métodos __construct utilizado por construtores e os métodos (the Best of), __set e __get , que são usados para criar getters e setters genéricos. Mesmo com essas funções experimente aplicar os padrões Singleton e MVC no php, o singleton e suportado com ajuda de algumas outras ferramentas, mas mesmo assim não é tão simples. Já o MVC é uma luta, realmente dura.

PHP X MVC

Uma classe que me facilita um monte o trabalho é a classe do Rael Cunha disponível em http://www.raelcunha.com/template.php, sei que muita gente gosta do Smarty, mas o Smarty e meio pesado para projetos pequenos. E eu gosto de coisas simples. Mas mesmo assim o código continua horrível, então eu pra simplificar criei uma classe que faz a consulta no banco e me retorna arrays e arrays de arrays, mas mesmo assim o código continua feio. Por mais que você lute parece que cada vez fica pior. Veja por exemplo minha classe de conexão chamada banco:


$con = new Banco();
$con->conectar();
$array = $con->find("SELECT * FROM tabela");
foreach($array as $a){
...
}
$con->fechar();

    Bem simples o exemplo acima ele só mostra o simples funcionamento da classe, até pensei em criar um esquema de Models e DAOs que acessam a base direto por SQL, porém não obtive muito sucesso. Pois os códigos estavam se tornando grandes e praticamente inutilizáveis, e achei essa solução ate mais legível inicialmente, porém tenho um pequeno projeto, um jogo web based (www.championti.web44.net), que está ficando muito grande e como fiquei um bom tempo sem mexer, até em função do meu TCC, e quando fui olhar os códigos já nem sabia mais pra que tanta coisa. Se fosse rever esse código até para utilizar DRY, teria que reescrever tudo de novo, sim eu já reescrevi o código para adicionar os templates, e digo, não foi fácil. Agora com um problema desses vou modificar um sistema inteiro, o de corridas do jogo, porém estou tendo muitas dificuldades em utilizar o código, portanto antes de reescrever tudo novamente em PHP, estou pensando seriamente em reescrever o jogo com RoR, ainda vou fazer alguns testes, mas qualquer coisa eu comunico-os sobre o desenvolvimento do jogo.

2 comentários:

André Espeiorin disse...

Eu não acredito que alguem que está cursando a 9ª fase de um curso como Ciência da Computação pode ter uma visão tão míope sobre tecnologia. Java é linguagem, RoR não é linguagem de programação, é framework, o PHP não é culpado pelo código mal feito, a culpa é de quem desenvolve, mas lembre-se que isso existe em qualquer linguagem. Veja só, você elogiando métodos mágicos do PHP, que só reduzem sua performance, realmente acho que você deveria se atualizar quanto a programação PHP antes de escrever uma crítica sem fundamento. "normalmente quem usa PHP procura um local de hospedagem gratuita aonde hospedar seus códigos", talvez você tenha procurado em vão uma hospedagem gratuita com PHP5 e agora ta tacando o pau na linguagem, o PHP pode muito mais do que você pensa, e se seu código se tornou insustentável e de dificil manutenção, a culpa é exclusivamente sua, assuma a culpa e vá aprender a programar.

Rafael Felix disse...

Calma lá em nenhum momento eu disse que a culpa é do PHP, a diferença se resume em como é ensinado, por exemplo em java, vc sempre aprende, desde o começo a separar em packages as classes, em php pelos menos quando começei todo mundo largava tudo numa pasta, e ninguem questionava essa organização. Em nenhum moemento eu falei no que era certo ou no que é errado, é somente minha opnião. Minha intenção não é excluir ninguem da programação em PHP. Eu curto a linguagem, mas não vejo ela como uma linguagem para desenvolvimento de aplicações web, esse é somente meu ponto de vista, e eu falar mal da linguagem que vc gosta, não significa não saber a programar.

 
Design by ThemeShift | Bloggerized by Lasantha - Free Blogger Templates | Best Web Hosting