Comparação: uma resposta à altura
Recentemente realizei uma postagem Me faça mudar de ideia sobre o PHP ... buscando motivações externas para aprender o PHP, visto que eu teria que me adaptar ao cenário de meu trabalho atual que não é uma fábrica de softwares mas tem um software on-premise criado(em PHP) pelo dono da empresa.
~ me questiono fortemente do porque não uma aplicação desktop com java ou C# por exemplo
Nesta postagem fui bombardeado com muitos comentários de pessoas que talvez pela minha falta de assertividade ou pelo título provocativo, não entenderam o real intuito do post. Gostaria de deixar claro que não tenho absolutamente NADA contra a linguagem PHP.
Apesar dos apesares encarei a necessidade e fui rever o PHP e de cara me deparei com o framework Laravel que é bastante interessante.
~ digo rever porque esta foi minha linguagem materna, tive um contato muito breve com o mesmo no início dos meus estudos no curso técnico que era integrado ao ensino médio, onde não tinha tanto interesse em programação.
Gostaria de comparar a criação de login entre o PHP Puro X PHP c/ Framework Laravel + Breeze
Para criação do login com php puro fica sobre sua responsabilidade:
- Manipular a sessão
- Escrever as queries para criação/adição/remoção/alteração do banco
- Criar todos os middlewares referente a autenticação e limpeza das queries
- Criar as rotas da aplicação Esse cara fez um vídeo muito bom no youtube mostrando um login com php puro básico
login com framework Laravel Breeze:
- Com alguns comandos você sobe uma aplicação com login/cadastro/perfil simples, com todas verificações necessárias e com os middlewares definidos para aplicar em suas rotas.
A opção que utilizei foi a de integração com o Inertia que na documentação diz: "Thankfully, Laravel offers the best of both worlds. [...] With this approach, you can enjoy the full power of both Laravel and Vue / React [...]. After installing Inertia into your Laravel application, you will write routes and controllers like normal. However, instead of returning a Blade template from your controller, you will return an Inertia page"
Ou seja provê uma abordagem onde você pode utilizar sua aplicação Laravel com o React ou outro framework de desenvolvimento frontend(JS).
~traz o node pro backend buildando os componentes de forma estática até que seja implementado um frontend com React ou Vue, e aqui vem novamente o questionamento, porque não somente utilizar o JS ??
Conclusão: O PHP é uma linguagem excepcional PARA O BACKEND, possuí o framework Laravel que auxilia no desenvolvimento de aplicações na arquitetura MVC provendo um ORM(Eloquent), mas deixa a desejar no frontend com as suas blades quando o intuito é desenvolver aplicações dinâmicas.
Eu, um mero iniciante no desenvolvimento web, vejo que há vantagens em se utilizar uma linguagem exclusiva para o backend da aplicação como por exemplo métodos bem definidos que agilizam o desenvolvimento, mas que logo são ofuscadas com a necessidade de integração de outras ferramentas e na maioria das situações outras linguagens(JS por exemplo).
Meus pêsames :D Você tava indo tão bem...
PHP é ótima. PHP pode ser usada para algumas coisas que ela não foi feita e de fato todos os esfoços são para isso. PHP foi criada para fazer sites simples e eu não troco ela por nada quando preciso disso. QUando é para fazer coisas complexas ela dá conta, mas tem ferramentas melhores, especialmente melhores que Laravel. Mas eu entendo que seja gostoso ver certas coisas serem entregues tão facilmente.
Eu sempre falo: para fazewr "qualquer coisa" (projetinhos sem importância) qualquer ferramenta serve, até as piores. Para projetos high profile, que tem bem poucos, aí é onde precisa saber fazer escolha.
Eu não quero entrar em debate com isso, eu ainda farei algo mais consistente, eu só queria te falar para fazer análises mais profundas. Ou se for fazer "qualquer coisa", aí tudo bem.
PHP é excepcional para certos projetos de backend. Razoável para outros, funciona para mais alguns.
Ajudei? Era o meu desejo.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).
A opção que utilizei foi a de integração com o Inertia
Inertia é basicamente uma gambiarra, já usei em projetos e reforço sempre que não é trivial usar uma stack tão acoplada
mas deixa a desejar no frontend com as suas blades quando o intuito é desenvolver aplicações dinâmicas.
Se o intuito é desenvolver aplicações dinâmicas porque não usar o Laravel de backend, retornar json e usar React/Vue no front-end da mesma forma que é feito hoje em Java / Node?
Uma outra alternativa é o Livewire que provê um meio termo entre as duas opções
Eu, um mero iniciante no desenvolvimento web, vejo que há vantagens em se utilizar uma linguagem exclusiva para o backend da aplicação como por exemplo métodos bem definidos que agilizam o desenvolvimento, mas que logo são ofuscadas com a necessidade de integração de outras ferramentas e na maioria das situações outras linguagens(JS por exemplo).
Houve uma tendência em usar linguagens como canivete suíço muito visto no javascript: Usar no front, back, desktop, até em sistemas opercionais
Cada linguagem tem seu ponto forte, sua proposta, porque uma funcionalidade que não está presente nessa linguagem "ofuscaria" tudo que ela tem de bom?