Algumas das falácias e más impressões sobre o PHP 07/fev/2018 "O PHP só serve para sites pessoais." O PHP, desde sua gênese, nasceu para Web e desde então, nunca a mudou. Ele se reinventou algumas vezes durante as décadas (sim, é uma linguagem nascida nos anos 90) e se estabeleceu com uma completa "plataforma web". É utilizado pelas principais empresas de tecnologia do mercado e em grandes projetos. Algumas das grandes empresas que usam o PHP: Facebook, Google, Baidu, Wikipedia, Spotify, Uber etc. Sim, o PHP foi criado despretensiosamente com o nome de "Personal Home Page Tools". Rasmus Lerdorf, o seu criador, o desenvolveu para cuidar da sua página pessoal. A plataforma foi ficando interessante, recebendo incrementos, até que, depois de algumas versões, Zeev e Andi Gutmans (co-fundadores da Zend Technologies) reescreveram todo o core e lançaram a versão PHP 4. Nessa época que começou uma grande adoção da linguagem. Nos anos seguintes o PHP teve uma completa (nos seus termos e características) adição do paradigma de orientação a objetos, entre outras melhorias estruturais, até chegarmos no ponto em que estamos hoje, na versão PHP 7 e não muito distantes da versão 8. Veja esse relato, o Uber arrecadou as suas primeiras "moedas" utilizando PHP e a versão de um Framework que hoje é legada (a versão): E vale lembrar que a escalabilidade ( indica sua capacidade de manipular uma porção crescente de trabalho de forma uniforme, ou estar preparado para crescer) de uma aplicação vai muito além da linguagem que ela utiliza.
"PHP é inseguro." Nenhuma linguagem é estritamente segura. A segurança da informação não se restringe a apenas algumas linhas de código. Ela envolve redes e seus protocolos, sistema operacional, serviços externos que são utilizados e, claro, a parte que nos "toca" (como desenvolvedores), que é a "programação segura" e, na maioria dos casos, a insegurança de uma codificação se dá pela limitação de conhecimento técnico do desenvolvedor e não necessariamente por causa da tecnologia que ele está utilizando. Alguns dos macro tópicos que deveriam ser de domínio de todo desenvolvedor web (não importando a linguagem utilizada): Conhecer o básico do protocolo HTTP; Validar e sanitizar inputs (nunca confiar no que receber do cliente), isso já previne futuros ataques e também escapar os dados ao imprimir na tela para o cliente; Sempre utilizar queries parametrizadas nas operações com o banco de dados. Isso elimina a possibilidade de SQL Injection; Utilizar um moderno algoritmo de hashing para passwords (como o bcrypt ou, melhor ainda, Argon2 que tem ganhado adeptos na comunidade de segurança); Utilizar https em todos os domínios; Criar cookies seguros, que só funcionem via HTTPS e que não sejam acessados por JavaScript; É importante buscar por esse tipo de conhecimento. Como desenvolvedores web não precisamos criar soluções para segurança, devemos apenas entender e utilizar as existentes. Não cabe a nós criarmos, por exemplo, uma library para criptografia, não é da nossa alçada, tem gente muito mais preparada para isso. Agora, é muito importante que conheçamos as opções disponíveis e como elas podem nos ajudar em nossos projetos. Pelo fato de o PHP ser o motor de alguns dos maiores CMS's do mercado como: WordPress, Drupal, Joomla, Magento etc, é comum ler e notar vulnerabilidades que são encontradas nessas plataformas. E isso não é problema, desde que você se preocupe em sempre a utilizar as últimas versões e desde que elas se mantenham atualizadas (que é o caso). Algumas vulnerabilidades não são especificamente do PHP e sim de algum módulo externo como OpenSSL ou algo relacionado ao sistema operacional. Sim, o PHP, como qualquer outra plataforma, possui vulnerabilidades, sempre teve, sempre vai ter, por isso é sempre importante utilizar as últimas versões estáveis das tecnologias que você trabalha (e isso vale para tudo, desde a linguagem, uma simples library ou até mesmo o seu sistema operacional). É razoavelmente comum sistemas legados rodando em versões antigas do PHP. Não dá pra cravar que tais sistemas precisam ser reescritos e migrados, tudo depende da criticidade das informações que eles trabalham e como é feita a auditoria de segurança neles.
Vale o destaque: A próxima minor version do PHP, a 7.2, fará dele a primeira linguagem a adicionar criptografia moderna.
"PHP é uma linguagem defasada." Por muitos anos o PHP trabalhou com a idéia de "estabilidade" em detrimento à novas features, no entanto, a partir da versão 5.3 tivemos significativas alterações na linguagem, inclusão de novos recursos e estruturas. É plausível não gostar do PHP, da sintaxe dele etc, cada qual com seus conhecimentos tácitos, preferências etc. Linguagens são como círculos sociais, elas possuem uma cultura, uma essência, algo que não se "quebra", intangível. Ou seja, se eu adoro a forma com que Ruby faz alguma coisa, não devo achar que o PHP é defasado por conta disso, ou que ele deveria fazer da mesma forma. São culturas diferentes, formas de aplicar e pensar diferentes. E toda pluralidade é positiva.
"Mas o PHP não é uma linguagem orientada a objetos..." Realmente, o PHP não é uma linguagem orientada a objetos, ele implementa o paradigma de orientação a objetos. O PHP é multiparadigma. Não existe demérito algum nisso. Não é o fato de uma linguagem ser (em essência) orientada a objetos que a faz ser a solução para todos os problemas. Por exemplo, atualmente é notório um movimento e uma grande adoção por linguagens funcionais. A implementação de orientação a objetos no PHP é robusta e esse paradigma é o mais utilizado em todos os principais frameworks dele provindos.
Por que aprender PHP é um grande negócio? 1). É a linguagem mais utilizada para web, cerca de ~82% de todos os sites a utilizam:
2). Ela foi desenvolvida para a Web (isso é um fator de vantagem e competitividade para se manter no topo entre mais utilizadas);
3). O suporte à linguagem é constante. Todo ano teremos uma nova minor version até a chegada de alguma nova major version. Pode ser que demore um pouco menos ou um pouco mais de um ano, tudo vai depender da estabilidade das alterações. Mas essa é a ideia principal. E para cada nova minor version, têm-se dois anos de suporte (bugs e segurança). O panorama atual das versões do PHP e o suporte concedido a elas:
4). O PHP é amplamente documentado na Web Há documentação, artigos, dicas, discussões, fóruns, recursos etc. O PHP não nasceu "hoje". Muitos problemas com suas soluções estão disponíveis na Web, muitos deles no Github.
5). O PHP possui excelentes e estabelecidos frameworks. Alguns dos maiores expoentes do mercado e que estão andando junto com a evolução da linguagem: Laravel 5 Symfony 3 (Em breve Symfony 4) Zend Framework 3 Zend Expresive 2 CakePHP 3 Silex 2 Slim 3 CodeIgniter 3 O Symfony, Laravel e Zend Framework elevaram o nível do desenvolvimento com PHP. Há cases de aplicações com milhares de requisições por segundo e que utilizam algum desses frameworks.
Qual o real objetivo aqui? A ideia de "melhor linguagem" cai muito no terreno da "relatividade". A melhor é que resolve o problema do seu projeto e que a sua equipe consegue trabalhar bem com ela. Algo muito importante que devemos ter em mente é: Uma linguagem de programação deve ser tratada como o "meio"para resolver um problema, não o "fim". Isso quer dizer que, não importa que linguagem você venha a escolher, desde que ela consiga entregar o valor final do seu produto. A escolha de uma linguagem / plataforma, principalmente em um ambiente corporativo, em um grande projeto, se passa por muitas decisões que vão além da nossa opinião e gosto pessoal.