frontendbr / forum

:beer: Portando discussões feitas em grupos (Facebook, Google Groups, Slack, Disqus) para o GitHub Discussions
MIT License
4.25k stars 234 forks source link

Por que PHP é tão requisitado nas vagas de Front End ? #1686

Closed Alexsandra127 closed 4 years ago

Alexsandra127 commented 4 years ago

Boa noite! Estava num grupo no face e fiz uma pergunta pra um membro, se o mercado pra Front End PHP estava bom. Então ele disse isso:

"php ta caindo... empresas modernas em sua grande maioria estão utilizando node ou python pra backend, react para front...kkkkkk cara... usam em sistemas e empresas legadas... que claro, ainda é maioria no mercado. sobre front em php, talvez esteja se referindo à renderização via server-side com php, e isto está pelo menos 10 anos atrasado também, devido à necessidade de separar o dev backend do frontend. Mesmo para um desenvolvedor full stack, vc não vai querer o backend renderizando o front.. a moda já é há um bom tempo SPA e JWT para autenticação... quase ninguém mais persiste sessões de usuários, por exemplo... (em aplicações modernas)".

Eu fiz a pergunta pois vejo muitas vagas de front end que solicitam conhecimentos em php. Sou nova na área e comecei aprender agora. Gostaria de saber se o que ele disse realmente procede ? Pelo menos em Curitiba há muitas vagas front end que pedem php.

wilsonneto-dev commented 4 years ago

@Alexsandra127 , o amigo que te respondeu no grupo, em minha opinião, está se deixando levar por hypes e pela mídia... JS e Python com certeza são as linguagens mais hypadas da atualidade, a mídia está em cima delas, mas isso não quer dizer que são as melhores ou as mais modernas... Node e Python são extraordinários e eu não estou dizendo que são ruins, estão hypadas por que são ótimas, mas no mundo enterprise vejo muito .Net e Java, e as vejo até mais do que Python e Node... PHP é outra tecnologia excelente que sofre preconceito no Brasil, mas fora é uma linguagem extremamente forte, grandes empresas usam e usam muito.

Eu acredito que em qualquer uma destas linguagens para Backend você estaria bem servido: PHP, .Net Core, NodeJS, Python, Java, e até as linguagens que aparecem menos na mídia como Ruby, Golang, Scala... Todas são ótimas e quem disser que alguma está defasada... eu me informaria com alguém que esteja usando.

Quanto ao PHP com front acredito que realmente seja por a empresa utilizar a renderização direto pelo backend, sem separar a aplicação em backend/serviços e frontend/SPA, eu acredito que SPA é o mlehor cenário, mas há bastante apps com o front acoplado no backend atualmente, e não sei se falar que este tipo de app é defasada estaria certo... Eu prefiro SPA, mas há cenários que vejo a utilização de um template engine acoplado ao back uma forma de agilizar o serviço em sites pequenos, e isso pode ter um custo benefício bem legal (Mas na maior parte de meus projetos utilizo SPAs e serviços, pois julgo um padrão bem mais coeso, manutenível e organizado).

As vagas de front com PHP deve envolver esse tipo de app com front acoplado, assim vc precisrára saber um pouco de php para utilizar a template engine junto as questões do layout com HTML, CSS e JS. Mas concordo com o amigo do grupo na parte de que a preferencia atualmente no front é por ReactJS ou VueJS e SPAs.

Uma ótima seria você entrar nesta empresa, fazer algumas POCs e mostrar que uma SPA com ReactJS por exemplo poderia melhorar a produtividade e diminuir os custos de servidores...

Isto é minha opinião, espero ter ajudado, abraços!

eliseumds commented 4 years ago

para autenticação... quase ninguém mais persiste sessões de usuários, por exemplo... (em aplicações modernas)

Sem comentários.


Eu posso dar meu input depois de trabalhar em duas grandes aplicações escritas em PHP. A primeira foi um sistema de gerenciamento de imobiliárias feito com Zend Framework, e hoje no www.ProductReview.com.au feito com Symfony, ambas com milhões de usuários. A verdade é que PHP não tem muitos competidores diretos quando você considera fatores como:

Standard library gigante

Inconsistências entre functional e OOP style à parte, a imensidão e qualidade das classes e funções oferecidas por padrão é algo difícil de se encontrar em outras linguagens. Classes para trabalhar com iterators, arquivos, encoding, streaming, mailing, caching, full POSIX regex, internacionalização (Collator, NumberFormatter, TimeZone, BreakIterator...), DateTime, DateInterval e várias outras. É no mínimo impressionante. Pode ser que você discorde dessa prática de deixar a std lib gordona, mas o resultado disso é facilidade pra começar a desenvolver e mais padronização entre diferentes projetos, o que nos torna mais produtivos, mesmo que haja algum performance penalty.

Performance

É extremamente difícil fazer benchmarks de coisas tão high-level como os use-cases do PHP (aplicações mais robustas). Se você não estiver criando uma biblioteca de manipulação de imagem/vídeo ou de trading na Bolsa, PHP vai suprir suas necessidades tranquilamente, desde que você tome cuidados básicos como NGINX caching, índices apropriados no banco de dados, não leia arquivos de 100MB, e outras coisas que seriam relevantes pra qualquer aplicação, escrita em qualquer linguagem.

Linguagem

Podem falar o que for, mas o set de features do PHP é excelente e a faz ser uma boa linguagem pra escrever business logic e, por ser interpretada, o feedback loop é muito rápido o que nos economiza tempo. Fora isso, interfaces e traits são uma delícia. Poucas linguagens vão lhe permitir escrever algo como:

class SlackNotifier implements Notifier {
  use LoggerTrait;

  private SlackClient $slackClient;

  public function __construct(SlackClient $slackClient) {
      $this->slackClient = $slackClient;
  }

  public function notify(string $message) {
      $this->slackClient->send($message);
      $this->log("Slack notification was sent. Body: $message");
  }
}

PS: qualquer semelhança com React hooks é mera coincidência ;)

E PHP continua evoluindo. A versão 7.4, por exemplo, trouxe coisas interessantes: https://stitcher.io/blog/new-in-php-74.

Comunidade/ferramentas

Dá uma olhada na popularidade e engajamento de projetos como Symfony, Doctrine, Guzzle, phpredis, FriendsOfSymfony, composer e outros. Projetos bem documentados, testados, ativos.

Fora isso, há uma tonelada de cursos e workshops acontecendo, tem muita gente que manja muito usando PHP.

Onde trabalho hoje, nós usamos Symfony e não poderíamos ter feito uma escolha mais sensata. Há uma grande oferta de desenvolvedores PHP no mercado e o framework é absurdamente bem escrito, conta com trocentos plugins e ferramentas interessantes como o Symfony Profiler que é difícil encontrar em outros (Django é o mais próximo, mas Python é deprimente).

Existe coisa melhor?

Obviamente, e vai depender da necessidade. Exemplos de outras coisas que temos em outras linguagens:

Eu gostaria que PHP oferecesse um typing system mais maduro como Kotlin e fosse tão rápido quanto Rust? Claro, mas temos que colocar as coisas na balança.

ninetails commented 4 years ago

Pessoalmente acho que deveria relevar sua carreira.

O que você quer? Quer ir direto pra front, as alternativas ficam:

É algo que é bem arriscado. Se é o teu perfil, junte uma grana e tente uns acima, mas eu digo que seria meio difícil achar algo do tipo para quem tá começando (vagas para Junior).

A outra opção seria: continue procurando alguma empresa mas ressalte que como vc é Junior, está disposta a aprender. Ou aprenda mesmo antes de conseguir alguma colocação profissional, afinal aprendizado é algo que ninguém poderá roubar de ti. E se ainda quiser trabalhar com coisa mais voltada a front ou algo novo, depois vc acha de acordo que for participando de eventos e fazendo seu networking. E talvez já com experiência e diferencial para tentar uma vaga para outra cidade e uma graninha para se estabelecer e podendo escolher no que vc quer trabalhar de acordo com suas descobertas e preferências pessoais.

Não se assuste com comentários assim. Não considero essa pessoa que fez tal comentario hypero, mas sim aquela pessoa que vive numa "bolha" que é o desenvolvimento nos polos de tecnologia e capitais.

Linguagens são apenas ferramentas, não tem uma melhor que a outra e código não é nada sem ter produto pronto. E PHP é uma linguagem que tomou uma grande aderência por parte da comunidade brazuca por n fatores sócio-históri-tec-econômicos, é um tanto inevitável se deparar por ela.

Alexsandra127 commented 4 years ago

Obrigada, pessoal!