Back-End

9 dez, 2014

O debate sem fim do PHP 6 versus PHP 7

Publicidade

Há algumas grandes e importantes conversas que acontecem na lista de discussão do PHP, na qual temos falado sobre:

Há também uma outra conversa:

  • PHP 6 ou PHP 7?

Espere … o quê?

Um pouco de história

O PHP 6 foi uma tentativa de atualizar a versão da linguagem e foi lançada em meados de 2010, mas acabou ficando presa na lama. Uma das maiores mudanças que causaram os problemas na adoção dessa versão foi o suporte para Unicode no núcleo da linguagem, então – assim como me lembro – a versão foi abandonada devido à incapacidade de utilizar o recurso de forma exatamente correta.

O resultado final foi que cada recurso utilizável previsto para o PHP 6 foi portado para a ramificação 5.x, e é por isso que nós vimos um salto tão grande nos recursos úteis disponíveis para o PHP 5.3.

O argumento atual

A pergunta “Devemos usar PHP 6 como nome para a próxima versão?” foi feita muitas vezes, mas desta vez ela está realmente decolando porque a próxima grande versão do PHP está cada vez mais perto. O prazo naturalmente é outro assunto a ser discutido também, e as apostas atualmente variam de 12 meses a 3 anos, mas ele está chegando e a versão provavelmente deverá ter um nome diferente de “PHP.número”.

Para tentar responder de uma vez por todas se o nome da versão deve ser 6 ou não, foi feita uma uma simples chamada para sugestões da comunidade, do tipo “Podemos chamá-lo de PHP 6?”, mas ela foi encerrada por não consegue fazer uma votação definitiva entre “Será PHP 6 ou PHP 7”.  Depois de algumas idas e vindas, e algumas brigas, temos uma nova votação sobre PHP 6 vS PHP 7.

Argumentos para PHP 7

Infelizmente, toda essa conversa foi baseada em torno da mentalidade de: “Se você não pode provar porque PHP 6 é melhor do que PHP 7, então devemos usar o PHP 7”.

Eu sou totalmente contra a deixar o lado que acumula o maior número de argumentos lógicos ganhar, uma vez que é muito bonito ver como uma discussão funciona. Infelizmente, o debate se parece um pouco menos como uma discussão e mais como uma estrada de ferro de argumentos irrelevantes. Um lado tem uma série de razões, o outro só tem uma: 5 + 1 = 6.

Essa é a razão mais forte. Fazer a coisa lógica não deve ser algo que precisa ser provado com 20 argumentos de 20 ângulos diferentes. Mas, qualquer que seja, vamos olhar para os argumentos positivos a favor do PHP 7 na RFC:

Em primeiro lugar, o PHP 6 já existia e era algo completamente diferente. O sistema decimal (ou mais precisamente o fornecimento infinito de números que temos) faz com que seja fácil para nós pular uma versão, com muito mais casas à esquerda para futuras versões que virão.

A ideia de o PHP 6 já existir é um pouco estranha. Eu trabalhei em todos os tipos de projetos open source, e muitas vezes um determinado código vai ser agendado para inclusão em uma determinada versão, então acaba sendo feito de forma diferente.

Fiz um ramo 3.0 antes, então decidi que não justificaria um grande lançamento neste momento.

Fiz um ramo 3.2 antes, então decidi que seria realmente necessário mudar o nome depois que mais alguns acréscimos de código entraram.

As coisas mudam.

As únicas versões que existem são aquelas que estão realmente liberadas.

Embora seja verdade que o PHP 6 nunca tenha chegado à disponibilidade geral do público, ainda era um projeto amplamente divulgado e conhecido conduzido pelo php.net, que não compartilha absolutamente nada dos recursos atuais com a versão que está em discussão agora. Qualquer pessoa que sabia da existência do PHP 6 (e são muitas pessoas) terá uma forte razão em sua mente para apoiar o conteúdo e as características dessa próxima versão nova (no essencial, quase tudo mudou sobre o Unicode).

Então, voltando ao meu ponto anterior, o “PHP 6 nunca chegou à disponibilidade geral do público”. Isso significa, principalmente, que apenas “aqueles que conhecem a linguagem” realmente têm alguma ideia do que é o PHP 6, e “aqueles que conhecem a linguagem” sabem o suficiente para ficar bem com essa mudança no sentido de dar o PHP 6 como concluído.

O PHP 6 (o PHP 6 original) foi discutido em detalhes em muitas conferências PHP. Foi ensinado aos usuários como um negócio feito, incluindo explicações detalhadas sobre características e comportamentos (e isso foi feito por desenvolvedores do php.net, e não por autores de livros).

Ah, o argumento dos autores de livros. Me mate!

Alguns autores usaram isso como arma durante um tempo, e algumas editoras os obrigaram a criar livros com o título PHP 6, porque queriam ser relevantes por um longo tempo. O argumento do livro durante anos foi o mais forte argumento “pro-PHP 7”, mas não é algo que eu acho que ainda deva ser ligeiramente válido. A maioria desses livros são de baixa qualidade, possuem muitos anos e são todos irrelevantes. Livros ruins existem agora e sempre vão existir, mas o que realmente funciona para conhecermos um livro é ler os comentários de leitores.

Um comentário dizendo “Este livro está desatualizado e não tem nada a ver com o PHP 6” já mostra que o livro é ruim.

O argumento da conferência também não é particularmente relevante, já que “aqueles que conhecem a linguagem” a conhecem melhor.

O PHP 6 era muito conhecido não só no seio da comunidade Internals, mas em torno da comunidade PHP em geral. Foi um projeto de alto perfil que muitos – senão a maioria – dos membros da comunidade PHP conhecia.

Eu adoraria ver um estudo sobre isso. Minha experiência é que a maioria dos desenvolvedores não tem a menor ideia de que o PHP 6 foi sequer a metade de alguma coisa, mas ficam de queixo caído quando o PHP 7 é mencionado.

php-1

Há muita informação sobre o PHP 6 e sobre o PHP 6 original na web. Os livros são a menor parte do problema. Informações ultrapassadas e inúteis.

  1. As pessoas sabem para onde ir para obter informação de qualidade, caso contrário, nós todos ainda estaríamos usando a função mysql_connect() em nossos arquivos de conexão.
  2. Tutoriais responsáveis não são apenas escritos, possuem um pouco de errata pois sempre surgem informações novas.
  3. No mundo da tecnologia, um artigo que foi publicado há alguns poucos anos dificilmente ainda será relevante.

Ao contrário da questão trivial sobre por que nós devemos pular para a versão 7, reutilizar o nome da versão versão 6 provavelmente criará uma verdadeira confusão na mente das pessoas, com ampla informação sobre duas versões completamente diferentes, com conjuntos de recursos completamente diferentes que têm o mesmo nome.

Ampla informação é uma alegação enganosa. Algumas visitas ao Google procurando por informações sobre o PHP 6 basicamente explicam o que aconteceu com a versão 6.

Assim que liberado o PHP 6, haverá um monte de pessoas escrevendo em blogs, livros e dando palestras sobre o PHP 6. Eu vou tornar minha missão pessoal dominar a homepage da linguagem, mas eu tenho certeza de que outros irão me ajudar. NetTuts, Reddit, SitePoint, YouTube e similares, todos eles terão novos conteúdos dizendo “O PHP 6 está fora! Eles tentaram um tempo atrás, mas nós temos isso agora”.

Supor que um conteúdo de quatro anos de idade nunca vai de alguma forma compensar a força de um lançamento real é um verdadeiro absurdo.

Versões de salto não são algo inédito ou incomum, seja em projetos de código aberto ou em produtos comerciais. O MariaDB saltou por todo o caminho até a versão 10.0, para evitar confusão com o MySQL. O Netscape Communicator pulou da versão 5.0 diretamente para a 6.0, e a Symantec pulou para a versão 13. Cada um deles teve diferentes razões para o salto, mas o denominador comum é que as versões de salto não são um grande negócio.

Sim e o software Salt saltou de 0.10.0 para versão 10, ou algo assim, e todos chamaram isso de marketing besteira. Pular números de versão geralmente é uma jogada burra de marketing. Isso é menos que uma jogada de marketing, o marketing de uma escolha pobre.

“Oh, o PHP foi da versão 5 para a versão 7, porque eles destruíram a versão 6 e não conseguiram arrumá-lo?”

e

“Os desenvolvedores do PHP não podem contar até 6”

Em vez de apenas:

“Uma segunda tentativa de lançar o PHP 6 está fora de questão”

A versão 6 geralmente é associada a uma falha no mundo das linguagens dinâmicas. O PHP 6 foi um fracasso; o Perl 6 foi um fracasso. Na verdade, é associada a uma falha também fora do mundo da linguagem dinâmica – o MySQL 6 também existia, mas nunca foi lançado. A percepção da versão 6 como um fracasso – não como uma superstição, mas como um fato no mundo real (similar à associação da palavra “Vista”, com falha) – vai refletir seriamente sobre essa versão do PHP.

Ninguém se importa com isso!

O caso para a versão 6 é principalmente uma refutação de alguns dos pontos acima, mas sem fornecer um argumento forte para isso no sentido de não ignorar a versão 6. Se formos mudar para o PHP 7, o pior cenário é que pulamos desnecessariamente uma versão. Nós ainda teríamos um suprimento infinito de versões principais à nossa disposição para uso futuro. Se, no entanto, nós escolhemos 6 em vez de 7 – o pior cenário é a confusão generalizada em nossa comunidade e a potencial percepção negativa sobre essa versão.

Claro, ninguém está discutindo sobre proteger o meio ambiente a partir de números inteiros perdidos, estamos apenas dizendo que o número que vem depois de 5 é o 6.

Eu realmente não me importo

Eu, como muitos espectadores conhecedores da verdade, penso que não importa o que é captado. Sou totalmente a favor de uma votação e uma série de argumentos, mas sinto que todo argumento nessa lista pró-7 é completamente inválido, e a atitude é “bem, 7 têm mais argumentos do que 6 por isso … 7!”.

Estive assistindo a este vídeo e pensando sobre o Ministério das caminhadas bobas:

Não tenho argumentos que são válidos para dizer a John ou a seus amigos para não andarem assim. Outros irão dizer que parece bobagem para todos fora do ministério, e isso simplesmente não é necessário.

Faça o que você quiser internamente, apenas não cancele a votação [novamente]. Escolha uma resposta e todos do lado perdedor terão de morder a língua, e esperamos que o lado vencedor morda também.

Alternativas

Aqui estão algumas das minhas sugestões favoritas de nomes alternativos:

php-2php-3

Vou usar qualquer nome que for escolhido internamente, mas pelo amor de Deus, por favor, escolham algum e deixem esse voto realmente ser finalizado.

***

Artigo traduzido pela Redação iMasters com autorização do autor. Publicado originalmente em https://philsturgeon.uk/php/2014/07/23/neverending-muppet-debate-of-php-6-v-php-7/