SirLouen
VIP
Eta
Verificado
Verificación en dos pasos activada
Verificado por Binance
Suscripción a IA
Há um assunto que vejo aparecer com muita frequência: muita gente se perguntando qual é a melhor opção para começar a programar hoje em dia.
Justamente comecei a escrever este tópico em relação a este outro:
forobeta.com
No qual o colega não tinha muito claros os princípios que giram em torno do mundo da programação hoje em dia.
Este artigo que escrevo a seguir só tenta simplificar para poder explicar melhor a diferença que existe entre uma linguagem de programação (PHP, Java ou Phyton) e um Framework (Laravel, Symfony, Spring, Struts ou Django)
Neste caso vou me concentrar no PHP, já que é o tema do tópico que tomei como referência. Mas é possível substituir onde digo PHP por Java ou Python, e onde digo Symfony, por Spring ou Django)
Em primeiro lugar é preciso deixar algo claro: uma coisa é a linguagem de programação e outra é a estrutura que gira em torno dessa linguagem
PHP é a linguagem de programação que dá sentido a tudo.
Mas, uma vez que você começa a conhecer como o PHP funciona em sua essência, dependendo do que você quiser fazer, acabará percebendo duas coisas:
Então, ao longo da história, foram propostas várias soluções:
Geralmente a solução NÚMERO 1 é a "documentação do código". Quanto mais documentação, mais fácil será retomar um projeto que você passou 1 ano sem tocar, e mais fácil será que outra pessoa colabore ou possa trabalhar com o seu código.
Mas também surgiram outras propostas para resolver esses dois problemas. Uma delas são os famosos Frameworks Modelo-Visão-Controlador ou MVC. Esses frameworks permitem criar todo um novo mundo de métodos e construções em torno de uma linguagem já existente e resolvem esses dois problemas mencionados anteriormente basicamente fazendo com que tudo o que você programar tenha uma ordem bastante estrita.
Existem muitos Frameworks, como todos os que mencionei em mensagens anteriores, mas Laravel e Symfony são os mais populares. Quando eu falo de aprender Laravel, não digo que o PHP deva ser abandonado. Porque, se não se tem amplos conhecimentos de PHP, basicamente NÃO SE PODE UTILIZAR o Laravel.
Laravel é um framework que se fundamenta na linguagem de programação PHP.
O problema é que programar em PHP do 0 é algo muito arcaico, é coisa de programador de nível muito baixo. Ou seja: pegar um arquivo em branco e começar a programar ali sem mais nem menos é, hoje em dia, um erro muito grande, salvo casos pontuais, como quando o objetivo é fazer um microsserviço muito simples
Seguindo na linha do PHP, há mais opções, mas uma muito popular é o Wordpress, e ao mesmo tempo muito desprezada. A maioria dos programadores novatos pensa que o Wordpress é um sisteminha simples para facilitar a vida de quem não sabe programar. Mas isso acontece porque a maioria das pessoas não dedicou tempo para se aprofundar na estrutura do Wordpress, a qual, com o tempo, acaba se parecendo até com a de um Framework como Laravel e Symfony.
Em primeiro lugar é necessário esquecer o backend e o típico de quando alguém instala um Wordpress.
Aqui eu vou me concentrar no Codex: https://codex.wordpress.org
Wordpress, como tudo nesta vida, tem várias vantagens e desvantagens
Wordpress é PHP 100%, isso está claro.
Portanto, se você sabe programar em PHP e entende o codex do Wordpress, começará a criar coisas novas em questão de dias.
Sua principal vantagem é, ao mesmo tempo, sua principal desvantagem: A comunidade. A comunidade oferece um milhão de soluções que simplificam qualquer trabalho. Mas muitas delas estão muito mal programadas, portanto, se você escolher mal, pode atrasar seu trabalho. Há centenas de soluções incrivelmente boas, e outras tantas milhares que são um lixo. Com experiência, a gente aprende a selecionar corretamente e ficar com o melhor.
E isso tem a ver com um dos principais problemas que existem no mundo da programação: voltar a programar o que já foi programado por outros.
Um exemplo
Imagine que você quer fazer um site que vai ser uma casa de apostas esportivas.
Para este exemplo vou tomar três alternativas:
1. Fazê-lo em PHP puro, do 0.
2. Utilizar um Framework como Symfony
3. Utilizar Wordpress
Vamos propor uma série de componentes fundamentais que a casa de apostas deve ter:
1. Um sistema de usuários
2. Um sistema de pagamentos
3. O sistema de apostas em si
4. Uma ligação com algum sistema que colete as partidas automaticamente de diferentes fontes via REST
5. Uma API para poder oferecer a informação a um App que construiremos no futuro para Android e para iOS
E com certeza haverá várias outras coisas que estou esquecendo, como o relativo ao frontend.
Mas, para simplificar ao máximo, vamos ficar com esses 5 componentes por enquanto.
Se você começar a programar em PHP puro, vai ter 5 problemas: ter que criar os 5 elementos praticamente do 0.
Em contrapartida, se decidir ir com Symfony ou com Wordpress, já tem metade do caminho feito:
1.O sistema de usuários: Ambas as plataformas oferecem um sistema de usuários bastante potente, totalmente testado e com risco muito baixo de ataque (injeções de SQL principalmente). Além disso, incluem opções para integração de login social em questão de minutos. Em contrapartida, se você tiver que programar isso em PHP puro do 0, vai demorar um tempão
2. O sistema de pagamentos: mais do mesmo: paypal, stripe, etc... todas já têm integrações para ambos os sistemas. Exemplo para Symfony: https://jmspaymentcorebundle.readthedocs.io/en/stable/
Embora existam bibliotecas para PHP que facilitariam um pouco esses dois elementos se você decidir ir pelo caminho do PHP puro, a manutenção dessas bibliotecas é totalmente odiosa. Talvez isso pudesse ser resolvido com o Composer, mas, mesmo assim, com um nível de integração muito baixo, as longas horas de programação estão garantidas, frente aos poucos minutos com os quais você consegue o mesmo resultado com Symfony ou Wordpress.
Pela minha experiência, mal consigo contar nos dedos de uma mão as vezes que vi um programador de PHP puro usar um gerenciador de repositórios tipo Composer. Por quê? Porque começar com PHP é um claro indício de novato. Aquele que já se dá ao trabalho de incorporar um repo automaticamente vai pensar em dar um salto para um Framework por motivos óbvios. O passo não é fácil, mas o esforço de aprender a utilizá-lo vale a pena.
3. O sistema de apostas: Não existe um sistema de apostas bom nem para Wordpress nem para Symfony, obviamente. Este é o elemento mais diferenciador da nossa página, portanto teremos que suar a camisa do zero em qualquer um dos casos. Então, nesse aspecto, os três métodos estariam em igualdade de condições.
4. A conexão com API de terceiros: Na questão das API, aqui o claro vencedor é o Symfony. Os MVC têm uma integração com API brutal, que simplifica sobremaneira todo o sistema.
No wordpress não está tão mal, porque tem bastantes Helper Functions: https://codex.wordpress.org/HTTP_API que também simplificam a história, embora não de forma tão potente quanto um Framework geralmente
Em contrapartida, em PHP Puro é preciso cozinhar tudo de novo do 0, quase 100%. Bastante incômodo e muitas horas de programação.
Em PHP Puro, talvez você tivesse que recorrer a alguma biblioteca, com os problemas que comentamos antes (se for com Composer, talvez se salve de dar manutenção nela)
5. API própria:
Wordpress tem uma API, mas só para sua estrutura interna, então você teria que desenvolver uma API do 0
Com PHP Puro você tem que desenvolver uma API do 0
Mas aqui o Symfony volta a ganhar: não só você tem a opção de montar um microsserviço com Sylex especificamente orientado a oferecer essa API, como o próprio Symfony também oferece uma plataforma para criar API num instante.
Como tudo isso se traduz em tempo de programação?
Imagine que você fosse um programador PHP sênior, que já conhece amplamente Wordpress, Symfony e, obviamente, sabe programar em PHP puro
Se você começar agora mesmo a programar este site e dedicar exatamente o mesmo tempo todos os dias, o tempo de execução poderia ser:
A) Se escolher Wordpress, poderia demorar entre 1 e 2 meses
B) Se escolher Symfony, poderia demorar entre 2 e 3 meses
C) Se escolher PHP Puro, demoraria entre 4 e 6 meses
Isso sem contar que, em Wordpress e em Symfony, todo o código ficará, em geral, dezenas de vezes mais limpo, organizado, e qualquer um poderá te ajudar no futuro. Em PHP puro, a menos que você dedique muitíssimo tempo a organizar e estruturar a informação e, sobretudo, uma enorme quantidade de tempo a documentá-la, o mais provável é que, com o passar do tempo, acabe se tornando mais um problema do que uma solução
Então, com isso você pode ter uma ideia de por que todo mundo que se dedica ao mundo empresarial foi abandonando paulatinamente a programação em PHP puro e optando por outras soluções de trabalho.
Como disse no início, tanto Wordpress, Symfony e Laravel, tudo se baseia em PHP.
Faça como fizer, em todos os casos você vai usar montes de funções iguais que poderiam ser reutilizadas perfeitamente de um sistema para outro.
Mas uma das grandes diferenças está na comunidade: em Wordpress e em Symfony há dezenas de sistemas que já funcionam, que já estão adaptados e cuja incorporação é imediata. Em contrapartida, em PHP Puro você tem que começar, a cada passo que der, praticamente do 0, o que acaba se tornando um autêntico calvário
Conclusão
Se você acabou de chegar ao mundo da programação e está aprendendo, então PHP é básico e fundamental para começar.
Mas, se já tem conhecimentos intermediários de PHP, então a recomendação, como pode ver, é que passe para um framework, como Symfony ou Laravel
Ou até considere ler a fundo o Codex do Wordpress. Para mim, Wordpress é o caminho fácil quando quero fazer um site eficiente, quando conto com poucos recursos (ou seja, não há uma equipe de vários programadores) e quanto menos se tenha que reinventar a roda, melhor. Eu simplesmente valorizo meu tempo e meu trabalho. E, se posso dedicar 2 horas em vez de 6, acredite que prefiro dedicar 2. Não me importa como, mas neste caso, o fim justifica os meios.
Obviamente, para fazer este artigo o mais curto possível, fui pelo caminho fácil, simplificando tudo ao máximo. Há centenas de considerações a levar em conta. Mas, hoje em dia, não existe um único cenário, do meu ponto de vista, em que valha a pena desenvolver um projeto em PHP puro do 0 (ou em nenhuma linguagem), salvo uma aplicação muito exclusiva, que só vai fazer uma única função e mal vai precisar de um único arquivo com apenas uma centena de linhas, e se exija a máxima eficiência possível. Mas, salvo isso, para o resto dos cenários, o ideal é começar com uma boa base de trabalho, seja um Microframework como Sylex, ou um framework mais avançado como Laravel ou até, como comentei, Wordpress.
Espero que o assunto tenha ficado claro, mas, se houver alguma dúvida sobre este tema, estarei aberto a respondê-la.
Justamente comecei a escrever este tópico em relação a este outro:
¿Lenguaje alternativo a PHP? (que sea mejor o igual)
Hola. Primero aclarar que quiero un lenguaje de programacion que me permita hacer programas o aplicaciones para la web (nada de escritorio ni movil). Por ejemplo hacer un chat, un cms desde cero, formularios, encuestas, etc. Tengo nivel medio en php pero alguien me metio la idea de probar con...
Este artigo que escrevo a seguir só tenta simplificar para poder explicar melhor a diferença que existe entre uma linguagem de programação (PHP, Java ou Phyton) e um Framework (Laravel, Symfony, Spring, Struts ou Django)
Neste caso vou me concentrar no PHP, já que é o tema do tópico que tomei como referência. Mas é possível substituir onde digo PHP por Java ou Python, e onde digo Symfony, por Spring ou Django)
Em primeiro lugar é preciso deixar algo claro: uma coisa é a linguagem de programação e outra é a estrutura que gira em torno dessa linguagem
PHP é a linguagem de programação que dá sentido a tudo.
Mas, uma vez que você começa a conhecer como o PHP funciona em sua essência, dependendo do que você quiser fazer, acabará percebendo duas coisas:
- É muito difícil manter o código (isso acontece em TODAS as linguagens, não é algo exclusivo do PHP)
- É muito difícil compartilhar o código (igualmente, isso acontece em todas as linguagens
Então, ao longo da história, foram propostas várias soluções:
Geralmente a solução NÚMERO 1 é a "documentação do código". Quanto mais documentação, mais fácil será retomar um projeto que você passou 1 ano sem tocar, e mais fácil será que outra pessoa colabore ou possa trabalhar com o seu código.
Mas também surgiram outras propostas para resolver esses dois problemas. Uma delas são os famosos Frameworks Modelo-Visão-Controlador ou MVC. Esses frameworks permitem criar todo um novo mundo de métodos e construções em torno de uma linguagem já existente e resolvem esses dois problemas mencionados anteriormente basicamente fazendo com que tudo o que você programar tenha uma ordem bastante estrita.
Existem muitos Frameworks, como todos os que mencionei em mensagens anteriores, mas Laravel e Symfony são os mais populares. Quando eu falo de aprender Laravel, não digo que o PHP deva ser abandonado. Porque, se não se tem amplos conhecimentos de PHP, basicamente NÃO SE PODE UTILIZAR o Laravel.
Laravel é um framework que se fundamenta na linguagem de programação PHP.
O problema é que programar em PHP do 0 é algo muito arcaico, é coisa de programador de nível muito baixo. Ou seja: pegar um arquivo em branco e começar a programar ali sem mais nem menos é, hoje em dia, um erro muito grande, salvo casos pontuais, como quando o objetivo é fazer um microsserviço muito simples
Seguindo na linha do PHP, há mais opções, mas uma muito popular é o Wordpress, e ao mesmo tempo muito desprezada. A maioria dos programadores novatos pensa que o Wordpress é um sisteminha simples para facilitar a vida de quem não sabe programar. Mas isso acontece porque a maioria das pessoas não dedicou tempo para se aprofundar na estrutura do Wordpress, a qual, com o tempo, acaba se parecendo até com a de um Framework como Laravel e Symfony.
Em primeiro lugar é necessário esquecer o backend e o típico de quando alguém instala um Wordpress.
Aqui eu vou me concentrar no Codex: https://codex.wordpress.org
Wordpress, como tudo nesta vida, tem várias vantagens e desvantagens
Wordpress é PHP 100%, isso está claro.
Portanto, se você sabe programar em PHP e entende o codex do Wordpress, começará a criar coisas novas em questão de dias.
Sua principal vantagem é, ao mesmo tempo, sua principal desvantagem: A comunidade. A comunidade oferece um milhão de soluções que simplificam qualquer trabalho. Mas muitas delas estão muito mal programadas, portanto, se você escolher mal, pode atrasar seu trabalho. Há centenas de soluções incrivelmente boas, e outras tantas milhares que são um lixo. Com experiência, a gente aprende a selecionar corretamente e ficar com o melhor.
E isso tem a ver com um dos principais problemas que existem no mundo da programação: voltar a programar o que já foi programado por outros.
Um exemplo
Imagine que você quer fazer um site que vai ser uma casa de apostas esportivas.
Para este exemplo vou tomar três alternativas:
1. Fazê-lo em PHP puro, do 0.
2. Utilizar um Framework como Symfony
3. Utilizar Wordpress
Vamos propor uma série de componentes fundamentais que a casa de apostas deve ter:
1. Um sistema de usuários
2. Um sistema de pagamentos
3. O sistema de apostas em si
4. Uma ligação com algum sistema que colete as partidas automaticamente de diferentes fontes via REST
5. Uma API para poder oferecer a informação a um App que construiremos no futuro para Android e para iOS
E com certeza haverá várias outras coisas que estou esquecendo, como o relativo ao frontend.
Mas, para simplificar ao máximo, vamos ficar com esses 5 componentes por enquanto.
Se você começar a programar em PHP puro, vai ter 5 problemas: ter que criar os 5 elementos praticamente do 0.
Em contrapartida, se decidir ir com Symfony ou com Wordpress, já tem metade do caminho feito:
1.O sistema de usuários: Ambas as plataformas oferecem um sistema de usuários bastante potente, totalmente testado e com risco muito baixo de ataque (injeções de SQL principalmente). Além disso, incluem opções para integração de login social em questão de minutos. Em contrapartida, se você tiver que programar isso em PHP puro do 0, vai demorar um tempão
2. O sistema de pagamentos: mais do mesmo: paypal, stripe, etc... todas já têm integrações para ambos os sistemas. Exemplo para Symfony: https://jmspaymentcorebundle.readthedocs.io/en/stable/
Embora existam bibliotecas para PHP que facilitariam um pouco esses dois elementos se você decidir ir pelo caminho do PHP puro, a manutenção dessas bibliotecas é totalmente odiosa. Talvez isso pudesse ser resolvido com o Composer, mas, mesmo assim, com um nível de integração muito baixo, as longas horas de programação estão garantidas, frente aos poucos minutos com os quais você consegue o mesmo resultado com Symfony ou Wordpress.
Pela minha experiência, mal consigo contar nos dedos de uma mão as vezes que vi um programador de PHP puro usar um gerenciador de repositórios tipo Composer. Por quê? Porque começar com PHP é um claro indício de novato. Aquele que já se dá ao trabalho de incorporar um repo automaticamente vai pensar em dar um salto para um Framework por motivos óbvios. O passo não é fácil, mas o esforço de aprender a utilizá-lo vale a pena.
3. O sistema de apostas: Não existe um sistema de apostas bom nem para Wordpress nem para Symfony, obviamente. Este é o elemento mais diferenciador da nossa página, portanto teremos que suar a camisa do zero em qualquer um dos casos. Então, nesse aspecto, os três métodos estariam em igualdade de condições.
- Mas, no caso do Wordpress, você poderia criar um plugin especificamente para isso.
- No Symfony, você criaria um Módulo, ou seja, uma visão, um modelo e um controlador específico para este elemento, com o que tudo ficaria perfeitamente estruturado
- E em PHP Puro, dependendo de quão organizado você for, com sorte poderá criar algo suficientemente estruturado para que você continue entendendo daqui a 1 ano, ou alguém que queira te ajudar no processo.
4. A conexão com API de terceiros: Na questão das API, aqui o claro vencedor é o Symfony. Os MVC têm uma integração com API brutal, que simplifica sobremaneira todo o sistema.
No wordpress não está tão mal, porque tem bastantes Helper Functions: https://codex.wordpress.org/HTTP_API que também simplificam a história, embora não de forma tão potente quanto um Framework geralmente
Em contrapartida, em PHP Puro é preciso cozinhar tudo de novo do 0, quase 100%. Bastante incômodo e muitas horas de programação.
Em PHP Puro, talvez você tivesse que recorrer a alguma biblioteca, com os problemas que comentamos antes (se for com Composer, talvez se salve de dar manutenção nela)
5. API própria:
Wordpress tem uma API, mas só para sua estrutura interna, então você teria que desenvolver uma API do 0
Com PHP Puro você tem que desenvolver uma API do 0
Mas aqui o Symfony volta a ganhar: não só você tem a opção de montar um microsserviço com Sylex especificamente orientado a oferecer essa API, como o próprio Symfony também oferece uma plataforma para criar API num instante.
Como tudo isso se traduz em tempo de programação?
Imagine que você fosse um programador PHP sênior, que já conhece amplamente Wordpress, Symfony e, obviamente, sabe programar em PHP puro
Se você começar agora mesmo a programar este site e dedicar exatamente o mesmo tempo todos os dias, o tempo de execução poderia ser:
A) Se escolher Wordpress, poderia demorar entre 1 e 2 meses
B) Se escolher Symfony, poderia demorar entre 2 e 3 meses
C) Se escolher PHP Puro, demoraria entre 4 e 6 meses
Isso sem contar que, em Wordpress e em Symfony, todo o código ficará, em geral, dezenas de vezes mais limpo, organizado, e qualquer um poderá te ajudar no futuro. Em PHP puro, a menos que você dedique muitíssimo tempo a organizar e estruturar a informação e, sobretudo, uma enorme quantidade de tempo a documentá-la, o mais provável é que, com o passar do tempo, acabe se tornando mais um problema do que uma solução
Então, com isso você pode ter uma ideia de por que todo mundo que se dedica ao mundo empresarial foi abandonando paulatinamente a programação em PHP puro e optando por outras soluções de trabalho.
Como disse no início, tanto Wordpress, Symfony e Laravel, tudo se baseia em PHP.
Faça como fizer, em todos os casos você vai usar montes de funções iguais que poderiam ser reutilizadas perfeitamente de um sistema para outro.
Mas uma das grandes diferenças está na comunidade: em Wordpress e em Symfony há dezenas de sistemas que já funcionam, que já estão adaptados e cuja incorporação é imediata. Em contrapartida, em PHP Puro você tem que começar, a cada passo que der, praticamente do 0, o que acaba se tornando um autêntico calvário
Conclusão
Se você acabou de chegar ao mundo da programação e está aprendendo, então PHP é básico e fundamental para começar.
Mas, se já tem conhecimentos intermediários de PHP, então a recomendação, como pode ver, é que passe para um framework, como Symfony ou Laravel
Ou até considere ler a fundo o Codex do Wordpress. Para mim, Wordpress é o caminho fácil quando quero fazer um site eficiente, quando conto com poucos recursos (ou seja, não há uma equipe de vários programadores) e quanto menos se tenha que reinventar a roda, melhor. Eu simplesmente valorizo meu tempo e meu trabalho. E, se posso dedicar 2 horas em vez de 6, acredite que prefiro dedicar 2. Não me importa como, mas neste caso, o fim justifica os meios.
Obviamente, para fazer este artigo o mais curto possível, fui pelo caminho fácil, simplificando tudo ao máximo. Há centenas de considerações a levar em conta. Mas, hoje em dia, não existe um único cenário, do meu ponto de vista, em que valha a pena desenvolver um projeto em PHP puro do 0 (ou em nenhuma linguagem), salvo uma aplicação muito exclusiva, que só vai fazer uma única função e mal vai precisar de um único arquivo com apenas uma centena de linhas, e se exija a máxima eficiência possível. Mas, salvo isso, para o resto dos cenários, o ideal é começar com uma boa base de trabalho, seja um Microframework como Sylex, ou um framework mais avançado como Laravel ou até, como comentei, Wordpress.
Espero que o assunto tenha ficado claro, mas, se houver alguma dúvida sobre este tema, estarei aberto a respondê-la.