{"id":206,"date":"2013-08-16T10:30:26","date_gmt":"2013-08-16T13:30:26","guid":{"rendered":"http:\/\/gianfratti.com\/?p=206"},"modified":"2013-08-16T10:31:10","modified_gmt":"2013-08-16T13:31:10","slug":"7-razoes-por-que-o-wordpress-tornou-o-php-popular-e-nao-os-frameworks-php","status":"publish","type":"post","link":"https:\/\/gianfratti.com\/index.php\/7-razoes-por-que-o-wordpress-tornou-o-php-popular-e-nao-os-frameworks-php\/","title":{"rendered":"7 raz\u00f5es por que o WordPress tornou o PHP popular, e n\u00e3o os frameworks PHP"},"content":{"rendered":"<p>Recentemente, o \u00cdndice Tiobe publicou uma atualiza\u00e7\u00e3o de seu \u00edndice de linguagens de programa\u00e7\u00e3o, justificando que o PHP tem subido de popularidade devido ao Zend Framework 2, mas ele n\u00e3o justifica o porqu\u00ea.<\/p>\n<p>Leia este artigo para entender uma opini\u00e3o que acha que essa justificativa \u00e9 indevida e que a popularidade do PHP se deve mais ao WordPress do que aos frameworks da linguagem.<!--more--><\/p>\n<h2>O que \u00e9 o \u00cdndice Tiobe de linguagens de programa\u00e7\u00e3o?<\/h2>\n<p>O <a href=\"http:\/\/www.tiobe.com\/index.php\/content\/paperinfo\/tpci\/index.html\" target=\"_blank\">\u00cdndice Tiobe<\/a> \u00e9 um ranking organizado pela empresa <a href=\"http:\/\/www.tiobe.com\/index.php\/content\/company\/Home.html\" target=\"_blank\">Tiobe<\/a> que tenta demonstrar qual a popularidade das linguagens de programa\u00e7\u00e3o quando comparadas umas com as outras. Ele foi iniciado em 2001 e \u00e9 atualizado todo m\u00eas.<\/p>\n<p>Ele leva em conta o n\u00famero de resultados de buscas de nomes de linguagens ou equivalentes em diversos sites, como Google, Blogger, Wikipedia, YouTube, Baidu, Yahoo!, Bing e Amazon.<\/p>\n<h2>A subida do PHP no \u00edndice Tiobe<\/h2>\n<p>O PHP sempre foi muito popular de acordo com o ranking Tiobe, mas, recentemente, sua popularidade aumentou um pouco mais do que costumava. De acordo com o pessoal da Tiobe, isso pode ser devido ao lan\u00e7amento do Zend Framework 2 no ano passado. Entretanto, eles n\u00e3o explicam como chegaram a essa conclus\u00e3o.<\/p>\n<h3>\u00cdndice Tiobe para julho de 2013<\/h3>\n<table id=\"Table2\" rules=\"all\" align=\"center\">\n<tbody>\n<tr>\n<th align=\"center\">Position<br \/>\nJul 2013<\/th>\n<th align=\"center\">Position<br \/>\nJul 2012<\/th>\n<th align=\"center\">Delta in Position<\/th>\n<th align=\"center\">Programming Language<\/th>\n<th align=\"center\">Ratings<br \/>\nJul 2013<\/th>\n<th align=\"center\">Delta<br \/>\nJul 2012<\/th>\n<th align=\"center\">Status<\/th>\n<\/tr>\n<tr>\n<td align=\"center\">1<\/td>\n<td align=\"center\">1<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Same.gif\" border=\"0\" \/><\/td>\n<td>C<\/td>\n<td align=\"center\">17.628%<\/td>\n<td align=\"center\">-0.70%<\/td>\n<td align=\"left\">\u00a0\u00a0A<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">2<\/td>\n<td align=\"center\">2<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Same.gif\" border=\"0\" \/><\/td>\n<td>Java<\/td>\n<td align=\"center\">15.906%<\/td>\n<td align=\"center\">-0.18%<\/td>\n<td align=\"left\">\u00a0\u00a0A<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">3<\/td>\n<td align=\"center\">3<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Same.gif\" border=\"0\" \/><\/td>\n<td>Objective-C<\/td>\n<td align=\"center\">10.248%<\/td>\n<td align=\"center\">+0.91%<\/td>\n<td align=\"left\">\u00a0\u00a0A<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">4<\/td>\n<td align=\"center\">4<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Same.gif\" border=\"0\" \/><\/td>\n<td>C++<\/td>\n<td align=\"center\">8.749%<\/td>\n<td align=\"center\">-0.37%<\/td>\n<td align=\"left\">\u00a0\u00a0A<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">5<\/td>\n<td align=\"center\">7<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><\/td>\n<td>PHP<\/td>\n<td align=\"center\">7.186%<\/td>\n<td align=\"center\">+2.17%<\/td>\n<td align=\"left\">\u00a0\u00a0A<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">6<\/td>\n<td align=\"center\">5<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Down.gif\" border=\"0\" \/><\/td>\n<td>C#<\/td>\n<td align=\"center\">6.212%<\/td>\n<td align=\"center\">-0.46%<\/td>\n<td align=\"left\">\u00a0\u00a0A<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">7<\/td>\n<td align=\"center\">6<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Down.gif\" border=\"0\" \/><\/td>\n<td>(Visual) Basic<\/td>\n<td align=\"center\">4.336%<\/td>\n<td align=\"center\">-1.36%<\/td>\n<td align=\"left\">\u00a0\u00a0A<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">8<\/td>\n<td align=\"center\">8<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Same.gif\" border=\"0\" \/><\/td>\n<td>Python<\/td>\n<td align=\"center\">4.035%<\/td>\n<td align=\"center\">+0.03%<\/td>\n<td align=\"left\">\u00a0\u00a0A<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">9<\/td>\n<td align=\"center\">9<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Same.gif\" border=\"0\" \/><\/td>\n<td>Perl<\/td>\n<td align=\"center\">2.148%<\/td>\n<td align=\"center\">+0.10%<\/td>\n<td align=\"left\">\u00a0\u00a0A<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">10<\/td>\n<td align=\"center\">11<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><\/td>\n<td>JavaScript<\/td>\n<td align=\"center\">1.844%<\/td>\n<td align=\"center\">+0.39%<\/td>\n<td align=\"left\">\u00a0\u00a0A<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">11<\/td>\n<td align=\"center\">10<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Down.gif\" border=\"0\" \/><\/td>\n<td>Ruby<\/td>\n<td align=\"center\">1.582%<\/td>\n<td align=\"center\">-0.19%<\/td>\n<td align=\"left\">\u00a0\u00a0A<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">12<\/td>\n<td align=\"center\">14<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><\/td>\n<td>Transact-SQL<\/td>\n<td align=\"center\">1.568%<\/td>\n<td align=\"center\">+0.61%<\/td>\n<td align=\"left\">\u00a0\u00a0A<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">13<\/td>\n<td align=\"center\">15<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><\/td>\n<td>Visual Basic .NET<\/td>\n<td align=\"center\">1.254%<\/td>\n<td align=\"center\">+0.34%<\/td>\n<td align=\"left\">\u00a0\u00a0A<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">14<\/td>\n<td align=\"center\">19<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><\/td>\n<td>PL\/SQL<\/td>\n<td align=\"center\">0.920%<\/td>\n<td align=\"center\">+0.28%<\/td>\n<td align=\"left\">\u00a0\u00a0A-<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">15<\/td>\n<td align=\"center\">13<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Down.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Down.gif\" border=\"0\" \/><\/td>\n<td>Lisp<\/td>\n<td align=\"center\">0.868%<\/td>\n<td align=\"center\">-0.13%<\/td>\n<td align=\"left\">\u00a0\u00a0A<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">16<\/td>\n<td align=\"center\">16<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Same.gif\" border=\"0\" \/><\/td>\n<td>Pascal<\/td>\n<td align=\"center\">0.792%<\/td>\n<td align=\"center\">-0.04%<\/td>\n<td align=\"left\">\u00a0\u00a0A<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">17<\/td>\n<td align=\"center\">12<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Down.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Down.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Down.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Down.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Down.gif\" border=\"0\" \/><\/td>\n<td>Delphi\/Object Pascal<\/td>\n<td align=\"center\">0.691%<\/td>\n<td align=\"center\">-0.47%<\/td>\n<td align=\"left\">\u00a0\u00a0B<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">18<\/td>\n<td align=\"center\">20<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><\/td>\n<td>MATLAB<\/td>\n<td align=\"center\">0.680%<\/td>\n<td align=\"center\">+0.04%<\/td>\n<td align=\"left\">\u00a0\u00a0B<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">19<\/td>\n<td align=\"center\">23<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><\/td>\n<td>Bash<\/td>\n<td align=\"center\">0.622%<\/td>\n<td align=\"center\">+0.04%<\/td>\n<td align=\"left\">\u00a0\u00a0A-<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">20<\/td>\n<td align=\"center\">25<\/td>\n<td align=\"center\"><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><img decoding=\"async\" alt=\"\" src=\"http:\/\/www.tiobe.com\/tiobe_index\/images\/Up.gif\" border=\"0\" \/><\/td>\n<td>Assembly<\/td>\n<td align=\"center\">0.581%<\/td>\n<td align=\"center\">+0.03%<\/td>\n<td align=\"left\">\u00a0\u00a0B<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Evolu\u00e7\u00e3o do \u00cdndice Tiobe at\u00e9 julho de 2013<\/h3>\n<p><a href=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2013\/08\/tiobe-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-203\" alt=\"tiobe-1\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2013\/08\/tiobe-1.png\" width=\"480\" height=\"360\" srcset=\"https:\/\/gianfratti.com\/wp-content\/uploads\/2013\/08\/tiobe-1.png 480w, https:\/\/gianfratti.com\/wp-content\/uploads\/2013\/08\/tiobe-1-300x225.png 300w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a><\/p>\n<h2>7 raz\u00f5es por que o WordPress tornou o PHP popular, e n\u00e3o os frameworks PHP<\/h2>\n<p><strong>1. WordPress \u00e9 o aplicativo PHP mais popular<\/strong><\/p>\n<p>Contar o n\u00famero de resultados de busca em v\u00e1rios sites talvez seja uma forma de medir a popularidade relativa de uma tecnologia, linguagem, aplicativo ou produto.<\/p>\n<p>Entretanto, esse m\u00e9todo n\u00e3o parece muito confi\u00e1vel. Quando um servi\u00e7o de busca muda seus algoritmos, voc\u00ea talvez veja mudan\u00e7as nos resultados que realmente n\u00e3o possuem rela\u00e7\u00e3o com a popularidade dessas tecnologias.<\/p>\n<p>Uma forma mais confi\u00e1vel de medir a popularidade relativa de uma tecnologia \u00e9 recorrer ao Google Trends. Trata-se de um servi\u00e7o que o Google fornece para demonstrar a evolu\u00e7\u00e3o de um n\u00famero de buscas relativas a uma dada palavra-chave com o passar do tempo.<\/p>\n<p>Como voc\u00ea pode ver no gr\u00e1fico do Google Trends, o WordPress \u00e9 muito mais popular do que qualquer outra aplica\u00e7\u00e3o PHP como Joomla, Drupal ou Magento (o qual \u00e9 baseado no Zend Framework).<\/p>\n<p><a href=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2013\/08\/tiobe-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-204\" alt=\"tiobe-2\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2013\/08\/tiobe-2.png\" width=\"480\" height=\"128\" srcset=\"https:\/\/gianfratti.com\/wp-content\/uploads\/2013\/08\/tiobe-2.png 480w, https:\/\/gianfratti.com\/wp-content\/uploads\/2013\/08\/tiobe-2-300x80.png 300w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a><\/p>\n<p><strong>2. O WordPress \u00e9 muito mais popular do que qualquer framework PHP<\/strong><\/p>\n<p>Utilizando o Google Trends, \u00e9 poss\u00edvel comparar a popularidade de diferentes frameworks PHP. Se voc\u00ea comparar a popularidade do WordPress com Zend Framework, Symfony PHP e CakePHP, conforme pode ver no gr\u00e1fico abaixo, o WordPress \u00e9 muito mais popular do que todos esses frameworks PHP juntos.<\/p>\n<p><a href=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2013\/08\/tiobe-3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-205\" alt=\"tiobe-3\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2013\/08\/tiobe-3.png\" width=\"480\" height=\"128\" srcset=\"https:\/\/gianfratti.com\/wp-content\/uploads\/2013\/08\/tiobe-3.png 480w, https:\/\/gianfratti.com\/wp-content\/uploads\/2013\/08\/tiobe-3-300x80.png 300w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a><\/p>\n<p><strong>3. WordPress n\u00e3o utiliza frameworks PHP<\/strong><\/p>\n<p>O WordPress tem utilizado alguns componentes de terceiros, mas eles n\u00e3o s\u00e3o frameworks do tipo full-stack. Isso implica no fato de que o WordPress nunca necessitou de um framework full-stack para ser criado. O uso de tais frameworks dificilmente faria alguma diferen\u00e7a em sua popularidade.<\/p>\n<p><strong>4. Aplicativos tornam uma tecnologia popular, n\u00e3o componentes<\/strong><\/p>\n<p>No gr\u00e1fico acima, voc\u00ea talvez note que o Magento \u00e9 muito mais popular do que o Zend Framework. O Magento \u00e9 constru\u00eddo com o Zend. Isso parece implicar em que o que torna um aplicativo popular \u00e9 o fato de ele resolver os problemas dos usu\u00e1rios, n\u00e3o os componentes com os quais ele \u00e9 criado.<\/p>\n<p>O WordPress \u00e9 popular tamb\u00e9m por causa de sua utilidade para muitos usu\u00e1rios. Quando usu\u00e1rios precisam hospedar uma instala\u00e7\u00e3o do WordPress, eles precisam buscar por um servi\u00e7o de host que suporte PHP. Portanto eles sabem, mesmo que superficialmente, o que \u00e9 PHP e que eles precisam de um hosting PHP.<\/p>\n<p>Isso significa que o WordPress ajudou a tornar o PHP ainda mais popular. Quanto mais instala\u00e7\u00f5es de WordPress houver, mais a linguagem se tornar\u00e1 popular.<\/p>\n<p><strong>5. O ecossistema extens\u00edvel de plugins WordPress<\/strong><\/p>\n<p>Uma das raz\u00f5es mais importantes que tornaram o WordPress popular \u00e9 a mir\u00edade de plugins que foi desenvolvida para fornecer recursos adicionais.<\/p>\n<p>H\u00e1 plugins WordPress para praticamente qualquer coisa, incluindo aquelas que podem transform\u00e1-lo em outra coisa al\u00e9m de um sistema de blog. H\u00e1 plugins para transform\u00e1-lo em f\u00f3runs, sites de e-commerce, sistemas de tickets de chamados etc. Enfim, qualquer coisa.<\/p>\n<p>Se o WordPress como aplicativo de blogs j\u00e1 era muito popular, ele se tornou ainda mais popular como uma plataforma que pode ser transformada em qualquer outro tipo de aplicativo.<\/p>\n<p><strong>6. N\u00e3o-programadores desenvolvem em PHP por causa do WordPress<\/strong><\/p>\n<p>Se voc\u00ea precisar de um site que necessita de um certo recurso que o WordPress n\u00e3o possui, voc\u00ea pode desenvolver um novo plugin para estender o WordPress e adapt\u00e1-lo \u00e0s suas necessidades.<\/p>\n<p>Muitos dos usu\u00e1rios de WordPress n\u00e3o s\u00e3o realmente programadores. Eles come\u00e7aram a programar porque precisavam ter recursos no WordPress que n\u00e3o eram fornecidos por nenhum outro plugin.<\/p>\n<p>Isso significa que n\u00e3o-programadores precisaram aprender PHP para serem capazes de desenvolver plugins para o WordPress. Isso colaborou para tornar o PHP ainda mais popular entre n\u00e3o-programadores.<\/p>\n<p><strong>7. Pragmatismo \u00e9 melhor do que purismo<\/strong><\/p>\n<p>Em resumo, eu poderia dizer que o WordPress e o PHP em geral se tornaram populares porque podem ser usados para resolver necessidades pr\u00e1ticas de muitos usu\u00e1rios.<\/p>\n<p>Nem o WordPress nem o PHP s\u00e3o exemplos de projetos de software tecnicamente admir\u00e1veis, consistentes ou que sempre seguem planos bem pensados ao adotar modelos de melhores pr\u00e1ticas e design patterns.<\/p>\n<p>Mas isso n\u00e3o importa. Eles foram criados por pessoas com um senso pragm\u00e1tico bastante grande e foram focados em resolver problemas do mundo real.<\/p>\n<p>Muitos frameworks PHP parecem ter sido desenvolvidos em planetas totalmente diferentes. Eles normalmente s\u00e3o desenvolvidos por puristas que parecem estar mais preocupados com o n\u00famero total de design patterns que implementam nos componentes do framework, do que em serem pragm\u00e1ticos e resolverem necessidades de aplicativos PHP reais.<\/p>\n<p>Para piorar as coisas, muitos frameworks PHP adotam sistematicamente pr\u00e1ticas de outros frameworks escritos em outras linguagens. Isso aumenta o total de dificuldades desnecess\u00e1rias para os desenvolvedores PHP que tentam utiliz\u00e1-los.<\/p>\n<p>Um exemplo desses problemas s\u00e3o os formatos de configura\u00e7\u00e3o. No mundo, Java ainda \u00e9 normal utilizar XML como formato para armazenar valores de configura\u00e7\u00e3o. XML \u00e9 um formato port\u00e1til que pode ser escrito por humanos. Certamente foi um progresso quando comparado com formatos bin\u00e1rios usados para serializar estruturas de dados em aplicativos C++ do passado.<\/p>\n<p>Essa foi uma \u00f3tima solu\u00e7\u00e3o em 2000, mas o fato \u00e9 que o XML \u00e9 um obst\u00e1culo. \u00c9 preciso abrir e fechar tags para cada valor. Algumas vezes os valores s\u00e3o armazenados como atributos de tags, outras vezes como valores de tags. S\u00e3o frequentemente dolorosos de usar.<\/p>\n<p>Ent\u00e3o, o Ruby on Rails veio com a promessa de se livrar de alguns dos dolorosos h\u00e1bitos do universo Java. Em vez de usar XML, eles decidiram usar YAML, que \u00e9 uma linguagem de markup simplificada. \u00c9 mais simples que XML, mas trata-se de um formato a mais para aprender.<\/p>\n<p>Muitos frameworks PHP foram criados copiando as pr\u00e1ticas do Ruby on Rails, incluindo o uso do YAML como formato de configura\u00e7\u00e3o. Muitos anos se passaram, e eles ainda usam YAML.<\/p>\n<p>Se voc\u00ea \u00e9 um desenvolvedor PHP, o formato com que voc\u00ea est\u00e1 mais acostumado \u00e9 PHP. Por que esses frameworks PHP n\u00e3o tornam a vida dos desenvolvedores PHP mais f\u00e1cil ao adotar scripts PHP como formato de configura\u00e7\u00e3o? Scripts PHP podem at\u00e9 mesmo ser armazenados em cache e carregados muito mais facilmente.<\/p>\n<p>No pior dos casos, se voc\u00ea precisa utilizar um formato mais port\u00e1til, por que n\u00e3o utilizar o formato JSON para armazenar valores de configura\u00e7\u00e3o? JSON \u00e9 JavaScript, e todo desenvolvedor PHP sabe JavaScript. \u00c9 muito natural adotar esse padr\u00e3o atualmente.<\/p>\n<p>Infelizmente, muitos frameworks PHP ainda est\u00e3o presos a formatos que n\u00e3o s\u00e3o a escolha natural para desenvolvedores PHP, como XML, YAML ou INI (um formato do mundo Windows).<\/p>\n<p>Eu sempre tenho a impress\u00e3o de que frameworks PHP n\u00e3o foram feitos para agradar desenvolvedores PHP. Eles parecem ser pensados para agradar desenvolvedores Java ou Ruby. Para piorar, muitos dos frameworks PHP mais novos continuam copiando os mesmos erros dos frameworks mais antigos.<\/p>\n<p>\u00c9 claro que h\u00e1 exce\u00e7\u00f5es. Realmente h\u00e1 frameworks PHP que foram desenvolvidos de uma maneira mais pragm\u00e1tica para desenvolvedores PHP. Voc\u00ea pode facilmente aprend\u00ea-los sem ter que adquirir conhecimentos em frameworks Java ou Ruby antes.<\/p>\n<p>Infelizmente, esses n\u00e3o parecem ser os frameworks PHP que ganham mais visibilidade. Talvez seja hora de os desenvolvedores de frameworks PHP repensarem suas op\u00e7\u00f5es e passarem a pensar mais nos desenvolvedores PHP do que nos desenvolvedores de outras linguagens.<\/p>\n<h2>Devo criar o meu site em WordPress ou com algum framework PHP?<\/h2>\n<p>Um dilema frequente que desenvolvedores PHP passam \u00e9 se devem desenvolver sites com base no WordPress ou desenvolver do zero com o aux\u00edlio de um framework existente?<\/p>\n<p>Essa \u00e9 uma pergunta dif\u00edcil. Se o site for um blog, talvez seja uma op\u00e7\u00e3o \u00f3bvia faz\u00ea-lo com WordPress e economizar muito tempo de desenvolvimento. Se o site for mais do que um blog, mas houver plugins para a funcionalidade que voc\u00ea precisa, esta ainda pode ser uma op\u00e7\u00e3o.<\/p>\n<p>Agora, se o seu site for muito diferente de um blog, a quantidade de c\u00f3digo que voc\u00ea reutilizaria do WordPress seria muito menor quando comparada com todo o tamanho do projeto. Nesse caso, talvez seja melhor come\u00e7ar o desenvolvimento do site do zero.<\/p>\n<p>Se voc\u00ea ainda precisar de um blog, pode utilizar o WordPress em um dom\u00ednio separado ou em um diret\u00f3rio separado no seu site.<\/p>\n<p>Para a grande quantidade de funcionalidades que voc\u00ea ter\u00e1 que desenvolver, ser\u00e1 poss\u00edvel utilizar um framework PHP existente para ganhar algum tempo de desenvolvimento, ou utilizar seu pr\u00f3prio framework, se tiver um bom framework capaz de atender \u00e0s suas necessidades.<\/p>\n<p>Pessoalmente, tendo a adotar a \u00faltima op\u00e7\u00e3o. Posso ter um maior controle do meu projeto, mas estou ciente de que esse caminho pode levar mais tempo para desenvolver e corrigir eventuais bugs no c\u00f3digo.<\/p>\n<h2>Frameworks s\u00e3o bons quando for\u00e7am um m\u00e9todo produtivo<\/h2>\n<p>Apesar dos problemas descritos acima, os quais muitos frameworks podem ter, para algumas pessoas, adotar um framework \u00e9 provavelmente a melhor solu\u00e7\u00e3o, especialmente se ele for o que chamam de \u201cframework dogm\u00e1tico\u201d.<\/p>\n<p>\u00c9 assim que s\u00e3o chamados os frameworks que imp\u00f5em uma certa metodologia de desenvolvimento. Isso significa que h\u00e1 apenas uma forma de desenvolver aplicativos com esses frameworks.<\/p>\n<p>A raz\u00e3o pela qual essa \u00e9 uma boa solu\u00e7\u00e3o para alguns desenvolvedores \u00e9 porque eles n\u00e3o possuem uma metodologia bem definida de desenvolvimento. Isso significa que se eles n\u00e3o saber\u00e3o como come\u00e7ar, como progredir e como efetuar o deploy da aplica\u00e7\u00e3o, a n\u00e3o ser que algu\u00e9m diga para eles.<\/p>\n<p>Uma vez que frameworks dogm\u00e1ticos imp\u00f5em uma certa metodologia de desenvolvimento, os desenvolvedores aprendem como desenvolver seus aplicativos seguindo a metodologia imposta pelo framework.<\/p>\n<p>Um exemplo de framework dogm\u00e1tico \u00e9 o Ruby on Rails. Frameworks PHP inspirados no Ruby on Rails tendem a ser tamb\u00e9m.<\/p>\n<h2>Opini\u00f5es n\u00e3o s\u00e3o fatos<\/h2>\n<p>Bem, este artigo \u00e9 apenas a minha opini\u00e3o e minha experi\u00eancia como um desenvolvedor que tem criado software por muitas d\u00e9cadas.<\/p>\n<p>Mas opini\u00f5es s\u00e3o exatamente isso, pontos de vista de pessoas espec\u00edficas. Expressar uma opini\u00e3o n\u00e3o significa que h\u00e1 apenas uma forma de interpretar os fatos.<\/p>\n<p>Da mesma forma que o pessoal do \u00edndice Tiobe expressou sua opini\u00e3o sobre o crescimento da popularidade do PHP ter sido motivada pelo lan\u00e7amento do Zend Framework 2 no ano passado, outras pessoas podem expressar diferentes interpreta\u00e7\u00f5es dos fatos.<\/p>\n<p>O que voc\u00ea pensa? Voc\u00ea tem uma opini\u00e3o diferente em rela\u00e7\u00e3o ao que foi expressado neste artigo? Poste um coment\u00e1rio e conte o que acha.<\/p>\n<p>***<\/p>\n<p><em>Artigo traduzido pela Reda\u00e7\u00e3o <a href=\"http:\/\/imasters.com.br\/linguagens\/php\/7-razoes-por-que-o-wordpress-tornou-o-php-popular-e-nao-os-frameworks-php\/\" target=\"_blank\">iMasters<\/a>, com autoriza\u00e7\u00e3o do autor. Publicado originalmente em<\/em> <em><a href=\"http:\/\/www.phpclasses.org\/blog\/post\/215-7-Reasons-Why-WordPress-Made-PHP-Popular-not-PHP-Frameworks.html\" target=\"_blank\">http:\/\/www.phpclasses.org\/blog\/post\/215-7-Reasons-Why-WordPress-Made-PHP-Popular-not-PHP-Frameworks.html<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recentemente, o \u00cdndice Tiobe publicou uma atualiza\u00e7\u00e3o de seu \u00edndice de linguagens de programa\u00e7\u00e3o, justificando que o PHP tem subido de popularidade devido ao Zend Framework 2, mas ele n\u00e3o justifica o porqu\u00ea.<\/p>\n<p>Leia este artigo para entender uma opini\u00e3o que acha que essa justificativa \u00e9 indevida e que a popularidade do PHP se deve mais ao WordPress do que aos frameworks da linguagem. <span class=\"ellipsis\">&hellip;<\/span> <span class=\"more-link-wrap\"><a href=\"https:\/\/gianfratti.com\/index.php\/7-razoes-por-que-o-wordpress-tornou-o-php-popular-e-nao-os-frameworks-php\/\" class=\"more-link\"><span>Read More &rarr;<\/span><\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[16],"tags":[],"class_list":["post-206","post","type-post","status-publish","format-standard","hentry","category-wordpress"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts\/206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/comments?post=206"}],"version-history":[{"count":3,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts\/206\/revisions"}],"predecessor-version":[{"id":209,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts\/206\/revisions\/209"}],"wp:attachment":[{"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/media?parent=206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/categories?post=206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/tags?post=206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}