PHP

25 jun, 2018

A evolução do PHP

Publicidade

O PHP é uma linguagem utilizada por diversos desenvolvedores para resolver problemas que envolvem a web. Grandes portais e ferramentas como Facebook, WordPress, Wikipedia utilizam a linguagem em seus projetos, e estima-se que ela seja utilizada por mais de 80% de toda a internet, segundo a W3CTechs.

Criado em 1994, por Rasmus Lerdof, com o nome de PHP Tools (Personal Home Pages Tools), a linguagem surgiu como um simples conjunto de binários Common Gateway Interface (CGI) escritos em C, que tinha como objetivo o acompanhamento do número de visitas do currículo do Rasmus. Com o passar do tempo, os scripts ganharam mais funcionalidades, como conexão com banco de dados e outras pequenas estruturas que podiam ser utilizadas para criação de sistemas web simples, como, por exemplo, livros de visitas. Em julho de 1995, o Rasmus liberou o código fonte da ferramenta, dando assim, um significante passo para o open source, já que a partir de então, os usuários poderiam realizar modificações no código e correção de bugs, e esse foi o “gatilho” para a grande evolução que viria pela frente.

No ano de 1997, Andi Gutmans e Zeev Suraski começaram uma reescrita do interpretador da linguagem, eles estavam desenvolvendo um projeto de e-commerce para um trabalho da universidade onde estudavam e a versão que existia da linguagem na época não possuía as funcionalidades necessárias para tal projeto.  Eles fizeram algumas reuniões online com o Rasmus e decidiram o desenvolvimento de uma nova linguagem, independente da versão anterior. Mudaram o nome então para PHP: Hypertext PreProcessor.

Em 1998, foi anunciado a versão 3.0, a primeira versão da linguagem parecida com a que temos hoje. No mesmo ano, foi iniciado o desenvolvimento da versão 4.0, que foi lançada em 2000 e trouxe grandes recursos para a linguagem, como suporte a maioria dos servidores web, sessões HTTP, saídas de buffering, maneiras seguras para manipular dados de entrada de usuários e diversas novas construções de linguagem.

Nessa época, o PHP se popularizou ainda mais e, como era uma linguagem muito simples de ser utilizada e aprendida, alguns problemas começaram a surgir. As pessoas estavam cada vez mais presentes na internet, o desenvolvimento web começava a ser mais importante do que o desktop, porém, a estrutura da linguagem era falha, já que o PHP não possuía padrões de escrita de código e a implementação de orientação a objetos era ruim, o que permitiu muitas más práticas por parte dos desenvolvedores que o utilizavam.

A implementação de um melhor suporte a orientação a objetos surgiu com a chegada do PHP 5.0, no ano 2004, com a implantação do PDO (PHP Database Object), onde foi possível transformar as conexões de banco de dados, bem como todo processo de inserções e seleções em objetos, facilitando a criação de projetos que não dependiam de um banco de dados em específico.

Mesmo com os avanços que o PDO trouxe, a orientação a objetos ainda era falha. O PHP possuía muitos problemas de compatibilidade entre bibliotecas e o próprio core da linguagem, o que se manteve até o lançamento do PHP 5.3, em 2009. E isso trouxe a implementação de namespaces e fez com que fosse possível o surgimento de uma padronização no gerenciamento de pacotes, nascendo, então, o composer (que até hoje é o gerenciador de dependências padrão do PHP), que facilitou a produção de bibliotecas e frameworks, reaproveitando códigos entre projetos.

Outro problema comum de quem desenvolvia PHP era a dificuldade em rodar a linguagem na web, pois necessitava da instalação de um servidor HTTP até mesmo para realizar um simples código de teste. Isso foi solucionado na versão 5.4 (2012) com a criação do servidor HTTP embutido, onde, executando, por exemplo, o comando “php -S localhost:80” no diretório do seu projeto PHP, poderá testá-lo direto em seu navegador.

A comunidade PHP foi amadurecendo ano após ano, surgindo grandes projetos com a linguagem. Houve uma grande preocupação com a qualidade do código escrito, já que cada projeto seguia um padrão. Buscando resolver esse problema, surgiu o PHP-FIG, um grupo de líderes dos frameworks e grandes projetos PHP, os quais criaram uma série de padrões (PSRs) que seriam utilizados por esses projetos para uma melhor qualidade de código, facilidade nas alterações necessárias nos projetos e interoperabilidade entre os mesmos. A PSR-1 e PSR-2, por exemplo, tratam de padrões de escrita de código, já a PSR-4, padrões de autoload, a PSR-7,  padrões de middlewares, entre muitas outras.

Juntamente com a melhoria dos padrões, houve a necessidade de melhoria da performance geral da linguagem. O Facebook não estava muito satisfeito com o desempenho do PHP e criou o projeto HHVM (uma máquina virtual que rodava PHP mais rápido que o próprio PHP), além de uma linguagem própria, fork do PHP, chamada Hack, para poderem utilizar funcionalidades que o PHP não possuía, como tipagem de variáveis.

Percebendo que o PHP poderia melhorar muito como linguagem, iniciou-se um projeto de reescrita da mesma, denominado PHP NG (Next Generation). Grande parte do código foi refatorado, principalmente partes que tratam do gerenciamento de memória no armazenamento de variáveis, o que rendeu um ganho de performance gigantesco. Essas melhorias foram introduzidas na versão 7.0 (2015) da linguagem, um grande divisor de águas para ela.

Outras melhorias foram acrescentadas na linguagem nesses últimos tempos, como a definição de periodicidade no lançamento de novas versões, o período de suporte a versões anteriores, novos operadores de comparação de variáveis e melhoria no suporte ao paradigma funcional.Um reflexo da maturidade da comunidade.

Recentemente, mais precisamente na última versão 7.2 (2018), foi adicionado suporte a “libsodium”, uma biblioteca de criptografia moderna e segura.

Uma linguagem em constante evolução, que passou por uma grande transformação e que possui uma comunidade ativa e que pensa em trazer melhorias de outras linguagens, adaptando-as ao cenário atual da web, esse é o PHP, uma ótima opção para o desenvolvimento back-end de sua aplicação web.