2017/02/08

À conversa com Frederico Tavares


A FCA deu-nos a oportunidade de conversar um pouco com alguns dos seus autores, e estreamos esta rubrica à conversa com Frederico Tavares, o autor do livro PHP com Programação Orientada a Objectos que estamos a oferecer esta semana.

O que significa PHP?

PHP é a sigla que significa "PHP Hypertext Processor", tendo originalmente significado Personal Home Page. Foi criada em 1995 por Rasmus Lerdorf e trata-se de uma linguagem de programação orientada sobretudo para páginas Web, processada do lado do servidor.

O que trouxe a linguagem PHP de diferente ao mundo da programação?

A principal vantagem desta linguagem é ser livre, gratuito e de código aberto (segundo a PHP License), o que permitiu a sua expansão e utilização por uma vasta comunidade. Desta forma, a linguagem PHP trouxe consigo o facto de todos poderem participar no seu desenvolvimento e, simultaneamente, na sua utilização, ao contrário de outras linguagens proprietárias, que ficam "dependentes" dos lançamentos efetuados pelas próprias empresas detentoras da licença. Por exemplo, se for encontrado um bug, este pode ser corrigido rapidamente pela comunidade, ao contrário do que acontece com outras linguagens. Outra vantagem que a linguagem PHP trouxe foi o facto de ter associado um sistema de gestão de bases de dados (SGBD) que é o MySQL que, inicialmente, também era gratuito e desenvolvido pela comunidade web, o que alavancou a utilização do PHP.

Considera que a linguagem PHP é a melhor para desenvolvimento Web?

Dizer que a linguagem PHP é a melhor para o desenvolvimento Web é um risco, tal como dizer que outras linguagens o são. Contudo, o facto de ser uma linguagem utilizada em milhões de páginas Web, mostra o seu potencial, mas a linguagem PHP, tal como outras linguagens (web ou não) deve ser utilizada conforme as necessidades, tendo em conta os custos e as vantagens a nível do desenvolvimento, da manutenção do servidor, do tipo de aplicação pretendida, entre outras variáveis. No entanto, é uma linguagem de fácil aprendizagem, robusta e madura, pelo que é uma das melhores para desenvolvimento Web.

Um dos temas mais controversos é a numeração das versões da linguagem PHP. Por que motivo se passou da versão 5 para a versão 7?

Na versão PHP 5 inicial, não havia suporte Unicode, situação que levou a que fosse pensada uma versão PHP 6 que incorporasse tal padrão e que seria a grande marca desta versão. No entanto, ao longo do lançamento das várias versões do PHP 5, com especial relevo para a versão PHP 5.5, foram sendo introduzidas várias novidades que estavam previstas para o PHP 6, o que fez com que se fosse esvaziando o sentido desta versão. Deste modo, e durante vários anos, foram sendo aprimoradas e trabalhadas as funcionalidades que deveriam pertencer ao PHP 6, mas que foram sendo inseridas ao longo das várias versões do PHP 5, nomeadamente da versão 5.1 à 5.6, razão pela qual já não fazia sentido a versão PHP 6. Deste modo, no final do ano passado, foi então lançada a versão PHP 7, que se distancia da versão PHP 5 e da versão PHP 6, embora seja o PHP 7 seja a 6ª "grande versão" a ser lançada.

Que novidades/vantagens trouxe a versão 7 de PHP?

A versão do PHP 7 traz, sobretudo, a novidade de ser completamente orientada para a programação orientada a objectos (POO), deixando de vez praticamente todas as funcionalidades que não utilizem este modelo como é o caso, por exemplo, da ligação às base de dados existentes em MySQL. Traz também um novo motor de processamento que se prevê seja até duas vezes mais rápido, um novo modo de tratamento de erros e excepções, suporte a 64 bits para sistema operativo Windows, entre outras funcionalidades que, por certo, muito agradarão aos programadores.

Para aqueles que se iniciam no PHP, recomendaria instalar o PHP5 ou PHP7?

Se o objectivo é aprender a linguagem PHP, o ideal será começar com o PHP 5, uma vez que a maioria dos servidores ainda estará a utilizar esta versão durante bastante tempo. Além disso, como a actual versão do PHP 5 (5.6) também suporta a programação orientada a objectos usada no PHP 7, quem aprender o PHP 5 facilmente transitará para o PHP 7, desde que siga o modelo POO. Caso a pessoa já tenha conhecimentos de programação orientada a objectos mesmo com outras linguagens, poderá aplicá-los em ambas as versões. No entanto, é sempre possível instalar na mesma máquina as duas versões e ir testando (e transitando) o código criado.

Considera necessária a aprendizagem de outra(s) linguagens de programação, para além do PHP, para aqueles que se pretendem iniciar na programação, assim como o HTML5?

Sim, sem dúvida! Pese embora não seja obrigatório o conhecimento de HTML5 para quem programa em PHP, é óbvio que o conhecimento de várias linguagens é importante, até por causa de se ter uma noção quanto ao produto final. Eu recomendaria, a par do HTML5, bons conhecimentos de Javascript mas também de bases de dados, uma vez que estas três tecnologias estão praticamente presentes em todas as páginas Web actuais.

Como funciona a arquitectura cliente-servidor, no que à linguagem PHP diz respeito?

No caso da linguagem PHP, todo o processamento é feito do lado do servidor, ao contrário do que acontece com outras linguagens de programação. Daí a importância de se saber Javascript, uma vez que permite transferir tarefas para o lado do cliente como, por exemplo, a validação de formulários, retirando carga ao servidor onde se encontra o PHP. Contudo, no que à arquitetura cliente-servidor diz respeito em termos de PHP, os pedidos são feitos através de páginas PHP (que podem conter ou não HTML), os quais são enviados ao servidor que os processa; existindo a necessidade de acesso à base de dados, tal é feito e, no final, é devolvido apenas código HTML para o cliente.

Podemos falar em IoT e PHP no futuro?

Sim, penso que já podemos até falar em IoT e PHP atualmente, pois já existem vários projetos nesse sentido. É o caso do exemplo que encontramos em http://www.instructables.com/id/Control-an-Arduino-with-PHP/ que explica como fazer o controle de um sistema Arduino usando a linguagem PHP ou então o http://www.ibm.com/developerworks/br/library/iot-php-app-iot-foundation-bluemix/index.html, onde podemos ver como é possível criar aplicações em PHP que utilizam dados GPS a partir de dispositivos móveis que podem enviar dados de localização em tempo real. Como se pode ver, o futuro é já hoje e já é possível a integração da IoT com o PHP!

Para os leigos na matéria, o que é a Programação Orientada a Objectos (POO)?

Trata-se de uma forma de programação disponível em praticamente todas as linguagens actuais, sejam ou não vocacionadas para a Web, que permite a utilização sistemática de vários "objectos" criados, mas sem que o seja necessário programar várias vezes. De forma muito simplificada, imaginemos que criamos um botão que, ao clicar, fecha a janela que está aberta: utilizando este paradigma, basta "criar" o botão uma vez e, sempre que pretendermos usar um botão para fechar uma janela, não é necessário voltar a programar tudo de novo, uma vez que o podemos ir buscar à nossa "biblioteca" vezes sem conta.


Porquê utilizar POO em PHP?

A vantagem principal tem a ver sobretudo com a reutilização e manutenção do código utilizado, além da estrutura, uma vez que POO implica a utilização de determinadas regras aquando da criação do programa. Além disso, permite tirar maior partido da linguagem PHP, tornando-a mais "universal", sobretudo quando é necessário realizar uma tarefa repetitiva ao longo de várias páginas. Note-se também que é possível utilizar o mesmo paradigma quando se utilizam diferentes sistemas de bases de dados, naquilo que é conhecido por PDO (PHP Data Objects), o que permite aumentar o suporte às principais bases de dados.


No seu livro “ PHP – Programação Orientada a Objectos” aborda o tema da interligação entre o PHP e as bases de dados, usando o paradigma POO através de mysqli e PHP data objects (PDO). Quais são as principais vantagens de utilização do PDO face ao mysqli?

A principal vantagem do PDO face ao mysqli é a possibilidade de utilização de diferentes SGBD, uma vez que o mysqli só permite o uso do MySQL, enquanto o PDO permite o uso de bases de dados que também são usadas por outras linguagens de programação, como é o caso de SQLITE, PostgreSQL, Informix, Firebird, entre outras. Deste modo, e para quem não quiser estar confinado ao MySQL, abre-se a possibilidade de trabalho com outros SGBD, algo difícil até então, uma vez que o PHP e o MySQL sempre estiveram muito integrados no desenvolvimento de páginas Web.


E é tudo, o nosso obrigado ao Frederico pelo tempo dispensado. :)


Frederico Tavares
Licenciado em Física pela Universidade de Coimbra e Mestre em Informática – Ramo de Sistemas Distribuídos, Comunicações por Computador e Arquitetura de Computadores (Pré-Bolonha) pela Universidade do Minho. Desenvolve funções de docente no Ensino Superior, é formador e consultor em Informática, com interesse nas áreas de investigação e desenvolvimento de soluções web based, segurança informática e bases de dados e novas tecnologias da informação. É ainda formador acreditado pelo Conselho Científico-Pedagógico da Formação Contínua (CCPFC) na área C15-Tecnologias Educativas/Informática/Aplicação da informática, tendo já desenvolvido várias formações a ela relacionadas.

1 comentário: