Articles

Posts recentes

Vamos tirá-lo do caminho mais cedo: O PHP é uma linguagem estranha e feia. Não é excepcionalmente rápido. Não é linda sintaticamente. Não está formulado em torno de uma opinião clara sobre boas práticas de desenvolvimento de software. E ainda é o que eu escrevo em muito software. A questão óbvia é: porquê? Por que usar PHP hoje?

Existem muitas boas razões para isso, acima e além das preferências idiossincráticas pessoais. Aqui está o espaço para cobrir exatamente isso. Porque é que o PHP é a minha linguagem de escolha para desenvolvimento web?

O que é o PHP?

>

>

“O que é um PHP? Ou, mais comumente, “o que é o PHP?” Em resumo, PHP é uma linguagem de programação feita para a web, construída a partir da linguagem de programação C, e que usa tags (ou siglas) idiossincráticas do tipo HTML para conter seu código. A linguagem de programação PHP é usada principalmente no lado do servidor, o que significa que ela roda no seu software de servidor web, que normalmente vai servir HTML aos seus visitantes.

PHP inicialmente significava “Personal Home Page”. Como isso limitou bastante o significado e a conveniência de usar a linguagem para uso geral, a linguagem agora significa “PHP”: Pré-processador de Hipertexto”. Isto é o que se chama uma sigla recursiva (um nome que contém o nome). Os cromos adoram-nos.

O que pode o PHP fazer?

Para que é usado o PHP? Basicamente, qualquer coisa que você queira fazer em um servidor web, você pode fazer com o PHP. Fazer um blog? Sim. Criar um software completo como um aplicativo de software? Absolutamente. Escrever um pequeno script para processar alguns dados em poucos segundos? O PHP é ótimo para isso. Escrever um conjunto complicado de scripts que acidentalmente se torna um negócio de software de sucesso? PHP é muito usado assim.

Se você não confia em mim, o site PHP lista os seguintes usos:

  • Scripting do lado do servidor
  • Scripting da linha de comando
  • Escrever aplicações desktop

Não tenho tanta certeza se eu encorajaria o último ponto, mas é possível. Mas as duas primeiras são comuns e boas razões para usar o PHP em 2019.

Isso leva a um fato importante e inevitável…

PHP é TUDO O QUE a web faz…

Existem muitas razões para conhecer e amar o PHP, provavelmente a mais potente e válida das quais é esta: ele é usado e roda TUDO O QUE a web faz. A sua conta de alojamento barato de 3 dólares por mês pode permitir-lhe correr uma aplicação web em Python ou Ruby, se fizer compras com cuidado. Mas com certeza vai rodar PHP. Isto significa que você pode contar com ele onde quer que esteja.

Symony is one of the reasons that people choose PHP

E porque ele roda em qualquer lugar, e é fácil de começar, um monte de software muito popular é escrito em PHP. WordPress é o exemplo que me é maior e mais familiar, mas ferramentas como Joomla, Drupal, Magento, ExpressionEngine, vBulletin (sim, isso ainda está por aí), MediaWiki, e mais estão todos rodando PHP no servidor.

E há mais frameworks de aplicações PHP do que você pode sacudir um pau também: Symfony, Zend, Laravel, Aura, CakePHP, Yii, e até o venerável CodeIgnitor. Certamente você pode fazer uma lista de frameworks web de algum comprimento para quase qualquer outra linguagem. E para as linguagens web comumente usadas como Python, Ruby, ou Node/JavaScript você pode até ser capaz de acumular uma lista numericamente competitiva. Mas o enorme volume de sites rodando PHP é imenso.

WordPress orgulhosamente se orgulha de poder alimentar mais de 30% da internet. Você não precisa nem mesmo confiar nesse fato para perceber que muito da internet deve estar usando PHP se esse fato for mesmo concebivelmente verdadeiro.

PHP tem algumas qualidades muito boas

Easy Dynamism is Baked into PHP

PHP logo

PHP faz renderização HTML e programação mais fácil do que quase qualquer outra linguagem. Por isso é muito simples mudar o HTML para PHP. Basta alterar o seu file.html para file.php, adicionar um pouco de dinamismo dentro de algumas <?php e ?> tags. A maioria dos servidores web já terão sido configurados para cuidar do resto para você. É tão simples que quase qualquer um pode começar sem a necessidade de muito mais do que isso para entender de programação. Porque PHP é tão amigável para cortar seus dentes, muito código ruim é escrito nele.

Após você perceber que o PHP mais ruim é escrito por programadores novatos, a maior parte do medo e ódio do PHP que você encontra no mundo vem de um outro problema essencial: PHP nunca teve um grande design com uma idéia visionária sobre porque ele era a linguagem perfeita para o seu servidor web. Ao invés disso, é o resultado de uma ampla colaboração através de um processo aberto que serve como um cadinho através do qual qualquer boa ideia – e algumas más – deve passar.

Object-Orientation with (Great) Package Management is now the Norm in PHP

Composer PHP language
Composer é uma grande razão para usar PHP

E as más ideias podem passar através desse cadinho. O exemplo mais popular é que o PHP 5.3 – separadamente amplamente considerado como a primeira versão moderna do PHP – introduziu a declaração goto, que é geralmente zombada ou pensada como uma fonte fácil para erros.

Similiarmente ruim no PHP que resultou do processo através do qual a linguagem cresceu: a orientação a objetos foi primeiramente implementada como um conceito defeituoso e limitado, a biblioteca padrão está cheia de nomes inconsistentes e ordenação de parâmetros, e (em um exemplo que recentemente recebeu bastante atenção) o símbolo :: é chamado pelo intérprete pelos falantes inescrutáveis de inglês: T_PAAMAYIM_NEKDOTAYIM.

Mas hoje, o OOP é totalmente realizado em PHP. Poucas linguagens têm tanta prática de OOP semelhante ao Java quanto o PHP. Além disso, ao contrário do Java, o PHP tem um único e amplo gerenciador de pacotes de amor, chamado Composer. Ele era muito bom, e então a facilidade de se puxar outras bibliotecas bem escritas e bem mantidas em PHP não é nada para se brincar com.

PHP tem um monte de coisas mais rápidas

Mas essas coisas ditas, o PHP está evoluindo de maneiras interessantes. Está crescendo no sentido de ser uma linguagem Java bastante completa (para melhor ou pior) orientada a objetos. E muito parecido com Java, ele está ganhando abstrações fáceis para a programação funcional – sem dúvida, a atual tendência. Também está crescendo um conjunto incrível de ferramentas – o PHP ama o Composer, e por uma boa razão – e um esforço louvável para fazer todos esses grandes projetos open source em PHP trabalharem um pouco melhor juntos.

Oh, e não nos devemos esquecer da brasa atual: ganhos de velocidade que o PHP tem feito na série de lançamentos do PHP 7. Isso é amplamente considerado como tendo sido iniciado pelo HHVM saindo do Facebook. Por pouco tempo, houve o risco de que a velocidade do HHVM fracturasse a comunidade PHP. Mas não o fez. Ao invés disso, o PHP acabou ficando tão mais rápido que as pessoas esqueceram que o HHVM existe.

PHP tem uma Comunidade ENORME; é Learning-Friendly

Se você está decidindo que nova tecnologia legal usar, uma coisa que eu acho que muitas vezes chama pouco a atenção é o que é a linguagem. Como é aprender PHP? Os tutoriais de PHP são comuns e muitas vezes bastante bons.

Uma desvantagem da popularidade do PHP é que você pode encontrar algum treinamento não tão bom de pessoas que não sabem o suficiente sobre como é realmente usar a ferramenta. Ou que por último estavam seguindo as “melhores práticas” que eram atuais há uma década atrás. Mas no geral, isso é raro – o suficiente para eu não achar que isso deva desencorajar você. Encontrar uma prática que você tenha usado por alguns meses não é ótimo é raro, e não é um grande problema.

Common Comparações com PHP

Muitas pessoas novas em programação estão procurando por linguagens muito gerais. Então, aí vêm eles. Todas as linguagens que vou escrever aqui têm os seguintes traços em comum com PHP:

  • Elas são de código aberto. O que isto significa é que você pode usar a linguagem subjacente de graça (sem custo), e você é capaz de ver e entender o programa subjacente se você desejar.
  • Eles são frequentemente usados para desenvolvimento web. Bastante simples, estas são linguagens muito utilizadas para o desenvolvimento web. Algumas também são amplamente utilizadas fora desse local, mas não todas.
  • São de alto nível, soltas e dinamicamente digitadas. Isto significa que uma variável pode mudar de tipo, e que você não tem que definir quando você define uma variável que tipo de coisas (números vs strings vs objetos, etc) ela vai armazenar. Isto é geralmente favorecido para programação web, mas não universalmente.
  • Suas comunidades são de bom tamanho ou melhor. Existem muitas linguagens interessantes que têm as qualidades listadas acima, mas que não têm uma grande comunidade de prática. Vou deixá-las de lado aqui.

Porquê usar PHP? Porque não JavaScript?

Talvez a linguagem mais importante para comparar o PHP seja o JavaScript. O desenvolvimento moderno requer que cada projeto use pelo menos um pouco de JavaScript para o desenvolvimento e interatividade do lado do cliente. Com Node, tornou-se relativamente fácil usar o JS no servidor também. A ideia de usar a mesma linguagem “isomorficamente” no cliente e no servidor é muito apelativa.

Como o PHP, o JavaScript é uma linguagem eclética e por vezes feia, com muitas verrugas e “gotchas”. Mas o JavaScript tornou-se extremamente rápido na última década, por isso o caso é real. Porquê escolher o PHP em vez do JavaScript? Você tem experiência ou precisa usar bibliotecas em PHP. Caso contrário, acho que o JavaScript pode ser uma escolha melhor.

PHP vs Active Server Pages ((.Net) Core)

Active Server Pages começou a vida como uma linguagem Microsoft de código fechado para programação web. Era bastante comparável ao PHP, mas era executado em ambientes Windows Server. Isso foi substituído pelo ASP.net. Que agora foi substituído pelo ASP.NET Core. As duas últimas agora são linguagens open-source, como o PHP. E eu pessoalmente nunca escrevi uma lambida de ASP, em nenhuma variação.

Eu favoreceria ASP se eu usasse e amasse servidores Microsoft. Caso contrário, dê-me o PHP, por favor. O tamanho e escala das comunidades não são realmente comparáveis.

Devo usar Ruby ou PHP?

Ruby, especificamente Ruby on Rails, era muito popular há uma década atrás. Ruby ainda é uma linguagem muito amada, que é muito mais elegante do que o PHP aos meus olhos. Dito isto, sua comunidade é menor. E eu sinto que o Ruby deixou de ser a “linguagem quente” (sendo suplantado nesse papel pelo JavaScript). O Ruby é lindo, e há pessoas boas o suficiente que eu não evitaria por essa razão. Mas contratar pessoas já familiares continuará a ser mais difícil do que fazê-lo em PHP. (Embora eu pense que a habilidade de um desenvolvedor Ruby médio é provavelmente maior do que a mesma para PHP.)

Python vs PHP: O que é melhor?

A última linguagem que faz sentido numa comparação um-a-um com o PHP é o Python. Python é usado em muito mais contextos que o desenvolvimento web (é também muito popular para estatísticas e análise de dados). É também uma das linguagens mais estáveis e bem desenhadas, em consenso popular.

Python (como Ruby, e JavaScript) é um pouco mais difícil de ser executado em um servidor web do que o PHP. Mas é uma linguagem mais bonita, e mais diversamente utilizada do que o PHP. É uma das linguagens que eu pensaria muito em favorecer em relação ao PHP, sendo todas as outras coisas (acesso a biblioteca externa, acesso a experiência de contratação, etc) iguais.

PHP vs Go? Scala? Java? etc?

Comencionei no topo que havia muitas semelhanças com todas as comparações de linguagem direta anteriores que fiz. Mas se deixarmos cair essas restrições, há toneladas de outras linguagens que poderíamos comparar. Então, para tocar brevemente em algumas:

  • Java é extremamente popular, e muito rápido. Ele é usado para construir aplicativos Android, aplicativos desktop e aplicativos web. Mas não é digitado dinamicamente, o que tem melhores garantias de desempenho, mas pior facilidade de programação web.
  • Go é uma linguagem mais nova e crescente apoiada pelo Google. É focada em servidores web, mas ligeiramente de nível inferior (mais parecido com C) do que PHP. É rápida, mas a comunidade de prática é menor.
  • Scala é uma popular linguagem JVM-running (compatível com Java) que ainda parece estar crescendo em popularidade. É mais elegante do que o PHP, mas não posso dizer muito mais sobre ela com confiança.

Again, é tudo o que sinto que tenho contexto suficiente para tocar. Mas há ainda mais opções que você pode considerar. Mas é o fim das alternativas específicas que vou considerar para o PHP.

A Escolha da Linguagem de Programação é Sobre Contexto

Dadas essas comparações, porquê usar PHP? Eu enumerei algumas das coisas que são ruins no PHP, e eu sinto algumas delas regularmente. A inconsistência de agulhas e palheiros em funções de busca me morde pelo menos uma vez por mês quando estou rapidamente fazendo algo sem autocompletar.

Para um projeto greenfield verdadeiro e completo, sem necessidade de interoperar com qualquer outro sistema, ou necessidade de rodar em qualquer ambiente arbitrário, sem nenhuma experiência existente na equipe, eu pensaria muito bem antes de recomendar o PHP. Python realmente me atrai nesse cenário. Mas essas são muitas advertências. Há grandes razões até mesmo para um novo projeto greenfield ser escrito em PHP.

Any moderna linguagem web pode ajudá-lo a fazer bons sites e aplicativos. E cada um deles tem características que não são ideais. PHP, como qualquer um deles, requer que você realmente entenda suas contrapartidas para você em seu projeto para determinar se faz ou não sentido para você. Mas para mim, pessoalmente, continuo a achar que é possível ser – como Keith Adams colocou em uma grande conversa – “chocantemente produtivo em PHP”

Se você tem uma equipe de programadores Python, escreva sua aplicação em Python. Se você tem um co-fundador que conhece Java, escreva o seu SaaS nisso. As considerações pessoais do software devem sempre superar as linguagens.