Seções iMasters
Linguagens + PHP

O verdadeiro problema com PHP

Tem havido uma grande quantidade de notícias ultimamente sobre o que há de errado com o PHP e mensagens do contra a respeito de como ele é bom. Eu mesmo caí na briga tentando defender a linguagem. O problema com quase todos esses artigos é que eles se concentram na própria linguagem e o que há de errado (ou certo) com ela. Esse não é um desses artigos.

O verdadeiro problema

O verdadeiro problema com o PHP está na comunidade. Não é a maioria da comunidade, mas as cercanias. O núcleo da comunidade PHP é preenchido com um monte de desenvolvedores realmente talentosos e inteligentes fazendo algumas coisas realmente incríveis. Mas existe nas periferias um grande número de pessoas que estão escrevendo artigos destinados a ajudar os iniciantes a aprender a linguagem (e, geralmente, como programar). O problema disso é que a maioria desses autores, francamente, não tem a menor ideia do que está falando.

O simples fato de um site como o w3schools ainda existir e aparecer no topo dos resultados de busca no Google é prova suficiente disso. Mas se você observar, você vai perceber que conselhos ruins estão em todos os lugares. Eu mesmo já respondi a alguns deles. Esses dias, vi outro surgir e decidi que responder não valeria a pena. As pessoas continuaram a escrevê-los e a lê-los. E isso é um problema que não podemos ignorar.

Por que isso é um problema?

Isso é algo com o qual tenho lutado. Por um lado, eles têm o direito de publicar o que quiserem. Quem sou eu para dizer que eles estão errados? Mas, por outro lado, a ignorância tende a se disseminar. Alguém justifica a sua posição dizendo “Eu li isso em algum lugar”. Em seguida, eles ensinam aquilo para outras pessoas. Em pouco tempo, a desinformação se espalha tanto que é quase impossível para quem está começando agora diferenciar um bom de mau conselho.

Mesmo que a gente esteja apenas dando uma olhada em artigos que falam sobre como acessar dados de um banco de dados, temos muita informação ruim. Varia de um artigo estranho (estruturação de código realmente pobre e más práticas) para artigos com informações erradas (código que, literalmente, não será executado) e passa pelos artigos ruins (recomendando funcionalidade obsoleta como mysql_ *), até chegar nos muito perigosos (código com vulnerabilidades de segurança).

O que podemos fazer a respeito?

Parte do problema não é que não exista um bom artigo de repositório autorizado para PHP. Há muitos sites ou recursos bons por aí, mas eles estão enterrados no meio das ervas daninhas; entre os maus. E mesmo os melhores autores e sites erram de vez em quando.

Eu não sou um grande fã da ideia de que a documentação php.NET deve conter artigos e conteúdo relacionado não linguístico. Acho que o docs PHP são muito bons, mas não são realmente propícios ao estilo de artigo que penso que pode realmente ajudar. No entanto, existe um formato que a comunidade PHP poderia adotar que resolveria muitos destes problemas. É o mesmo formato que WikiHow adotou: a Wiki.

O que estou mostrando aqui é uma ideia simples: para iniciar um site de artigos de núcleo como um wiki (talvez tutorials.php.net). Alavancar a comunidade para fornecer conteúdo. Incentivar as pessoas a publicarem os artigos para esse site. Dar boas vindas a qualquer conteúdo PHP relacionado. Deixar a comunidade examinar as mensagens, fazendo correções ou podando o conteúdo. Ao longo do tempo, e com o apoio suficiente da comunidade, isso pode se tornar uma base de conhecimento de informação valiosa.

O que você acha?

Essa ideia é perfeita? Claro que não. Será que vai resolver o problema? Definitivamente não. Pode ajudar? Talvez, eu não sei. O ponto é que o primeiro passo para resolver o problema é admitir que ele existe. Penso que isso seja um problema grande o suficiente para justificar a união da comunidade com o intuito de resolvê-lo.

***

Artigo original disponível em: http://blog.ircmaxell.com/2012/07/true-problem-with-php.html

Mensagem do anunciante:

Em apoio à evangelização do WordPress, os cursos da Apiki são gratuitos para que você possa se especializar na plataforma que mais cresce no mundo. Vagas limitadas, Inscreva-se agora.

Comente também

61 Comentários

cleiton

É isso mesmo, perfeita colocação.

anderson

Ótimo artigo!
Já tinha nnotado que a W3School tinha algumas coisas divergentes, mas pelo site W3Fools da pra ver a quantidade de informações conflitantes!

Danilo Agostinho

Obrigado pela materia, Sou muito prejudicado como iniciante, Pois fico perdido com tantas explicações e colocações diferentes, Acredito que o php é muito mais do que eu sei, estou tentando descobrir esse lado. Abraço

Pablo

Cara na boa, me parece que o autor esta desconsiderando o fato de que nem todo mundo é expert em PHP, artigos simples ajudam e muito quem esta começando, e tem outra: muitas vezes as pessoas precisam apenas de soluções simples como conectar no banco usando mysql_conect e listar resultados com fetch_array, ou seja, não teria motivo pra ensinar usar uma camada de dados quando só se precisa listar os usuários do sistema por ex.

Pelo meu conhecimento o PHP surgiu com o proposito de criar scripts para paginas ficarem dinâmicas, e oque parece é que queremos usar PHP para criar grandes soluções para instituições financeiras e ou soluções de risco. o fato é que PHP não serve pra isso!

W3School até onde eu sei é um importante repositório de informações sobre desenvolvimento web, o fato de ter respostas objetivas não o desmerece em nada.

Para mim oque esta acontecendo é que assim como a maioria dos assuntos o PHP já esta quase saturado de informações na internet, e esse e o nosso trabalho do dia a dia googlear e filtrar aquilo que nos interessa.

    alexsandro Souza

    Concordo plenamente com o autor E descordo de você Pablo. Não estamos querendo retirar da web trechos de códigos que resolvem problemas. Programadores PHP Serios estão querendo que, evolua não apenas a Linguagem, mais também a comunidade, quem trabalha com PHP sabe o quanto a linguagem é boa e ficamos incomodados quando vemos pessoas que não conhece a linguagem, falar mal do PHP justamente por esses códigos pobres e antigos que um dia fez parte da linguagem e que hoje só são usados por pessoas como você, que não sabe nada de PHP mas que pela facilidade da linguagem em resolver problemas, acaba buscando soluções prontas na web pra ela, e o que vem? Códigos antigos e mal estruturados.

    Jose

    Pablo, se engana quando diz que não se deve utilizar um ótimo código, com camadas e atualizado, quando se desenvolve algo simples. Não sou programador, mas trabalho do lado do servidor, cuidando da saúde dele e posso lhe afirmar com 100% de certeza. Os grandes problemas enfrentados com sobrecarga de servidor, são causados por desenvolvedores preguiçosos, que utilizam código antigo e mal implementado. Utilizar código atual, permite que se faça mais com menos recursos e isso, é vital. Mude seu conceito, isso apenas tende a lhe ajudar.

      Pablo

      Então José por ai já da pra ver que vc não sabe nada mesmo, pois até um leigo sabe que uma camada a mais certamente é mais lenta que um código nativo, o fato do cara usar as funções especificas apenas deixa o código menos portável porem não significa que será um código ruim.

      Não confunda códigos antigos com programadores ruins.

Paulo

Ótimo artigo, seria interessante haver algo do tipo para educar e reeducar possíveis programadores em PHP. Com as inúmeras informações poluídas que existem por aí, elas distorcem o poder da linguagem e sua utilização de maneira bagunçada e fora de um padrão adequado.

Acho válido a iniciativa de normalizar e ensinar boas práticas com os fundamentos da linguagem PHP para todos os interessados.

    Fabio Sousa

    Pablo, mas o autor do artigo comenta isso que você falou no final. Quem já tem um pouco de conhecimento poderá (ou não), conseguir filtrar o que esta recebendo em suas pequisas. Mas o fato de não saberem se realmente aquilo é o correto para a sua necessidade que gera o problema. Porque se ele resolver mesmo parcialmente o seu problema e pra ele já for suficiente, essa mesma pessoa ao repassar a informação, já irá passar como sendo uma solução para aquela necessidade. E ai está disseminação do errado ou do “meio-correto”.

    Fabio Sousa

    foi mal, acabei fazendo reply na mensagem errada.

Anderson

cade os fãs boy do JAVA falando que o php é um lixo???

    awayct@ymail.com

    php é uma linguagem estranha q tem mtoooooos ‘programadores’ ruins. ta pegando a mesma fama do perl haha

    Hortemar Lins

    Não fale besteira, em um artigo tão bom.

Adriano

Bom! Na verdade esse não é problema só do PHP. Estou na área de sistemas web há 13 anos e com C#.NET há 7 anos, isso acontece com todas as linguagem e relacionados. Mas sua ideia é muito boa mesmo! Acredito que poderia dar muito certo! Parabéns! As vezes como nós programadores vivemos lendo e falando… Pq vamos reinventar a roda não ?!? Um núcleo como um wiki seria algo simples e existente. Valeu!

awayct@ymail.com

a maioria dos programadores php são porcos….. pq? como o autor falou artigos, o pessoal n tem interesse em estudar 100% do q aquele codigo esta fazendo e o mais importente…… tem livro ‘ruim’ de php q ensina php e mysql. php e mysql basicamente se resume em ‘mysql_query, mysql_fetch_array()’ etc…. sei q tem alguns livros melhores estruturados ou de padrões de projetos em php. livros de php como linguagem avançada n vendem muito mas livro de php e mysql…… vende a rodo é o q mais tem.

    David Ramires

    a maioria dos programadores php são porcos, como você sabe, você é um deles? Você diz com tanta firmeza, você trabalha com o que, estatísticas? Toda linguagem tem sempre alguém fazendo um merda, seja php, c#, java, C++, etc… Sempre tem um que faz algo porco, não importa a linguagem. Se você não gosta de PHP, assim que você está demonstrando, cara nem comenta. e outra um cara com nome de awayct, com uma foto zuada quer vir aqui falar mal do portal, affff! cara você é bem infantil, muuito infantil no minimo deve ver novela e gosta dessas coisas de intrigas!

conrrado

PHP é linguagem pra gambiarrero preguicoso q nao gosta de ler criar sitezinho!!

    Jarbas

    conrrado, WordPress, Joomla, Magento e tantos outros grandes sistemas e websites, são gambiarras?
    Não fala besteira, nem o que você não sabe

Carlos Moura

PHP não é porco, porcos são os desenvolvedores.

O problema que eu vejo é que pra desenvolver alguma aplicação, site ou o que for, a pessoa não precisa ter conhecimento nenhum da área, nem ter estudado nada na vida.

Alguém conhece algum dentista que buscou tutoriais na net e sai tratando dente? E engenheiro que calculou a estrutura de uma casa usando wikis?

É disso que estou falando!

Acredito piamente na necessidade de se ter uma boa base de conhecimento universitário, ou no mínimo técnico, para se desenvolver alguma coisa. Senão sempre teremos códigos ruins e vulneráveis. Senão a luta contra os sobrinhos desenvolvedores será eterna. Assim como a luta que vcs querem iniciar para combater o artigos ruins, mal desenvolvedores e etc.

Eduação é a palavra-chave!! Estudem!

Anderson

Quem é programador experiente sabe onde encontrar informações, que quer usar o PHP só para passar tempo ou ganhar uma graninha rápida fazendo macarronada que sofra tentando entender as entrelinhas dos artigos de baixa qualidade. Eu por exemplo nunca postei nada, pois não acreditava que poderia contribuir significativamente com alguma informação. Contudo, agradeço por todos os artigos de má qualidade que encontrei, pois me ensinaram uma grande lição, O QUE NÃO FAZER COM PHP.

Estou fazendo alguns teste para implantação do meu blog, e o primeiro artigo que publiquei está no link, gostaria que me falassem se é de boa ou má qualidade, para que eu possa melhorá-los.

http://wp-atech.rhcloud.com/fluent-interface/

Lucas Moraes

A verdade que a linguagem esta evoluído e os desenvolvedores não. Talvez agora alguns desenvolvedores estão vendo a burrada que fizeram no passado, deveis de ensinar os iniciantes a pescar, deram o peixe para o eles. Hoje em dia vem um cara que não sabe muito, mas sabe o suficiente para tomar o serviço de um profissional, porque tem script pronto que ele vai alterar em 10 minutos e vai vender 100 reais. É o caso dos designers, no dia de hoje os designers estariam perdido se não existisse PHP. Acredito que devemos educar os iniciantes a estudarem mais, é raro ver programadores iniciantes querendo usar Postgresql ou Regex, se pá nem sabem o que é isso. iniciantes que no sabem o que é chave estrangeira, que não sabem o que é join. Mas eles não são culpados, nos somos culpados por não ensinar o correto. Julgar é fácil, ajudar é difícil :/

awayct@ymail.com

acho q php é a unica linguagem orientada a array kkk

    Rafael

    O maior problema de discutir com um ignorante e que ele te rebaixa ao nivel dele… nao discutam com esse kara ai nao que ele nao sabe de nada… so ta querendo irritar…
    se soubesse alguma coisa ou tivesse o que fazer, nao estava aqui falando asneiras.

      awayct@ymail.com

      quem mexe com php sabe diferenciar o bom conteudo do ruim? acho q n….. desde q funcine ta otmoooo kkk

awayct@ymail.com

olha q erro bizarro, so php te exibe esse tipo de mensagem de erro….
‘Fatal error: Exception thrown without a stack frame in Unknown on line 0′

awayct@ymail.com

engraçado q imaster nunca traduz os artigos q criticam o php….

David Ramires

a maioria dos programadores php são porcos, como você sabe, você é um deles? Você diz com tanta firmeza, você trabalha com o que, estatísticas? Toda linguagem tem sempre alguém fazendo um merda, seja php, c#, java, C++, etc… Sempre tem um que faz algo porco, não importa a linguagem. Se você não gosta de PHP, assim que você está demonstrando, cara nem comenta. e outra um cara com nome de awayct, com uma foto zuada quer vir aqui falar mal do portal, affff! cara você é bem infantil, muuito infantil no minimo deve ver novela e gosta dessas coisas de intrigas!

    awayct@ymail.com

    nem tenho tv em casa… php é ruim n é atoa q tem um nicho tão pequeno de mercado.

    awayct@ymail.com

    eles devem mostrar os 2 lados…. o q critica e o q valoriza o php….. mas agora so tem artigo… falando q é bom e n sei o q…. se continuar assim logo as pessoas vão acreditar, 62.400 mil repetições fazem uma verdade?

awayct@ymail.com

artigo de php é igual o programa do ratinhoo td mundo fala mal, da a maior briga e eles so ganham audiencia…. essas coisas n existem atoa…

awayct@ymail.com

PHP == POG

awayct@ymail.com

PHP = perfeita horrorosa porcaria haha

    Jarbas

    O PHP é uma linguagem poderosa que usada da maneira certa, é uma ferramenta impecável. Infelizmente existem pessoas como você, que fazem merda com Ele.
    Uma dica: Critica menos, saia desse seu “mundinho”.

      awayct@ymail.com

      impecavel…. sai dessa conversa seu fanboy, o php é todo bugado….

    Marcelo Rodrigues

    Cara, na moral, se você acha que o PHP é tão ruim assim, então esqueça-a, simples assim. Todo artigo sobre o PHP você fica com essa trollagem idiota e sem noção, com a mesma ladainha de sempre. É muita falta do que fazer.

Marlene

Quais Livros sobre PHP são considerados de boa qualidade? Alguém pode postar aqui algumas indicações?

    awayct@ymail.com

    qualquer um q n tenha no titulo php e mysql…

    alguns q abordam outros assuntos.
    – objetos, php, padrões e pratica.
    – pro php e jquery.
    – grandes aplicações web.

Marlene

Então o livro: PHP e MySql Desenvolvimento Web ( não é uma boa? )

    awayct@ymail.com

    se procurar vai encontra o mesmo conteudo na net….
    mysql_connect….
    query….
    fetch_array….

    por ai vai.

    David Ramires

    o Fórum do imasters está cheio de conteúdo para PHP, artigos e neste mês hangout sobre PHP!

Godofredo

Isso é um problema em qualquer linguagem.
Em todas existem artigos e tutoriais escritos por gente sem noção.
Infelizmente tais artigos acabam por ser o norte para iniciantes.

Carlos Clay

Não me importa o que dizem do php.
O mais importante é que ganho dinheiro com ela!

Udimar Oaks Júnior

Eu acho que uma boa maneira de resolver isto é muito simples.
quase todos profissional tem um registro.
Engenheiro Civil -> CREA
Medico -> CRM
Odontólogo -> CRO
Advogado -> OAB
T.I -> ?

não seria simples? eu acho que resolveria muito além (salario, reconhecimento prof. etc…)
o que vocês acha fundar o CTI -> CERTIFICADO TECNOLOGICO INFORMAÇÃO com as especialização em cada categoria
ex: CTIP -> CERTIFICADO TECNOLOGICO INFORMAÇÃO PROGRAMADOR
CTIA -> CERTIFICADO TECNOLOGICO INFORMAÇÃO ANALISTA

assim por diante.

    Alê Borba

    Não acho que um registro resolve o problema, se é que ele existe. O próprio mercado faz a regulamentação do profissional. Se ele é bom, vai ser dar bem, ser reconhecido e ganhar por isso, seja qual linguagem for. Se ele for ruim, vai morrer na praia ou, se não morrer, ficar nadando em circulos. A lei da selva é clara, só sobrevivem os mais fortes, que neste caso, os mais bem preparados.

      Udimar Oaks Júnior

      Alê Borba
      concordo com sua opinião em 100% o registro seria mais como reconhecimento que o profissional passou em provas especificas, ou seja iria acontecer menos código ruim, o camarada não ia bobear em ficar fazendo porcaria colocando o “CERTIFICADO” dele em jogo.

    ursolouco

    Udimar,

    As certificações estão no mercado (php, microsoft, oracle, sap, etc…) e conquista-la demonstra que você está preparado. Atualmente estou buscando meu MCTS 2010 pois há uma grande demanda no mercado por estes profissionais.

    Abraços

      Udimar Oaks Júnior

      Concordo com seu ponto de vista, tem muitos certificados muito bons no mercado
      mas eu estou falando de um registro ÚNICO onde o profissional é identificado com seus projetos. Assim como um advogado pega o registro dele vai na OAB e verifica os casos que ele já defendeu.

Ronaldo de Alcântara

Cada dia que passa consolido uma idéia: programar é uma arte pra poucos, não importando qual seja a linguagem. Se BEM utilizada, serve pra fazer coisas BOAS e de QUALIDADE. Se mal utilizada, PORCARIAS saem aos montes e PHP pode ser uma opção pra programação de repente até mesmo de grandes aplicações. Claro que todas as linguagens se observar bem tem suas peculiaridades que nos tornam fãs ou não, mas vendo o PHP e sua evolução pode ser que numa versão a frente teremos recursos mais avançados (até porque se fose ruim teria desaparecido). Ainda aposto no PHP para algumas soluções, Java pra outras, Python para algumas… O que importa é a lógica bem feita e a documentação de qualidade e, claro, as tecnologias adequadas para cada propósito.

Jonas Ribeiro

Concordo com o autor e com a maioria dos comentários. Mas ninguém postou boas referências na web e livros, para um bom e correto aprendizado por parte dos novatos. Enquanto a ideia proposta do autor é pensada, discutida e dificilmente será implementada, os reles mortais continuarão buscando soluções prontas no google se ninguém apontar uma direção, porque acho que é isso que qualquer novato necessita, um norte para seguir.

    Ronaldo de Alcântara

    Bom, para iniciantes creio que esses livros podem ajudar:

    – PHP Programando com Orientação a Objetos – Ed. Novatec;
    – Desenvolvendo Websites com PHP – 2ª Edição;
    – Pro PHP com JQuery – Ed. Ciência Moderna;

    – Existe um curso na 4Linux muito bom de PHP que também vale a pena fazê-lo.

    Deixo bem claro: os livros, cursos e sites ajudam a conhecer o PHP e o que ele tem a oferecer, mas não são soluções para desenvolver sua lógica e metodologia de desenvolvimento, coisa que cada um tem os seus. O próprio PHP.net seria um site mais indicado pra buscar conhecimento.

Guilherme Pereira

Para iniciantes e não iniciantes: http://www.phptherightway.com/

Marcos Leandro

Totalmente de acordo com o autor.

Jordan Pinheiro

QUANDO VEJO UM PHP ESTRUTURADO ME DAR UMA VONTADE LOUCA DE MATAR ALGUÉM RSRS QUE EU NUNCA VI RSRS

Caio Oliveira

Concordo e discordo. O problema está na linguagem também, que tem abertura pra deixar muita bobeira rodar como se nada tivesse acontecido. Enquanto isso tem um log de erros pesando 80gb que ninguém sabia que existia, porque um espertão foi lá e desligou os warnings do PHP pra funcionar tudo “beleza” (história verídica). Por mais ridículo que isso pareça, muito programador por aí não sabe ler um log de erros, não sabe o básico de comandos no linux (que seja no Windows), pra saber o que está acontecendo de errado. O simples fato de todo mundo usar o LAMPP ou XAMPP até hoje já é prova suficiente pra mim. O Apache, se bem utilizado, pode até ser bom, mas todo mundo tem horror quando vê um arquivo .htaccess… E é aí que o PHP deixa a desejar: pra tudo que se quiser fazer, existe um “workaround” (gambiarra, na minha opinião), que vai deixar tudo rodando liso, quando na verdade tá tudo cagado e pendurado por uma linha.
Não me entenda mal, eu amo o PHP, e acho que anda melhorando muito, mas eu acho que ainda tem muito chão pra andar. A comunidade anda evoluindo (um exemplo é um projeto que eu achei muito massa, mas não é nem um pouco conhecido: Photon). O problema é que eu acho que nunca vai mudar o que é, simplesmente por causa da mentalidade de quem começa a usar pra fazer site. Todo mundo quer um jeito fácil de aprender rápido a fazer um site, achando que é fácil fazer um site. Ninguém quer ter que aprender a mexer com linux ou configurar um servidor http, só quer saber de “fazer um site”. Eu aposto que 90% dos “web developers” não sabem o que é uma requisição HTTP, e não to falando de saber as regras do protocolo não, to falando de saber como que o PHP recebe uma requisição e como devolve a resposta! Eu sei disso porque há 1 ano atrás, durante um emprego, alguém veio me perguntar se eu usava fast CGI e eu só sabia que eu estava usando PHP…

Mateus

Acho realmente que questionar PHP e interrogar se é bom ou ruim é horrivel. Falta muito mais que um simples cadastro ou uma hierarquia. Nós já somos subordinados a este conteúdo. Falta qualidade de material para quem já aprendeu php de if e else agora temos que falar de PHP orientado a objeto, falta materiais bons relacionando o melhor que o PHP tem a oferecer de melhor.

Qual a sua opinião?