Executando verificação de segurança...
5

Quando comentei que utilizo PHP nós meus projetos WEB

Eu recebi alguns comentários/perguntas como:

  • Não é melhor usar Java
  • Php é interpretada ou compilada
    etc, etc ...

Ao pensar sobre os comentários eu comecei lembrar que:

Os clientes que atendo, seja em corporações ou projetos pessoais só teve 1 (um) que perguntou qual linguagem
estávamos utilizando, e ao saber que era PHP ficou admirado, e olha que na época ainda era o PHP 5.6
A grande maioria não pergunta sobre a linguagem. Estão sempre atentos a desing e experiencia UX.

Lembrei também que meu contato inicial com linguagens de programação foi com C++, e aprendi diversos conceitos e POO pesado com Java.
E quando eu decidir trabalhar com WEB eu conheci o PHP e desempenhou a tarefa muito bem.
De verdade, para utilizar PHP eu aprendi apenas a sintaxe da linguagem pois tudo que aplico com PHP eu aprendi com professores e cursos de Java.

Penso também que PHP é apenas parte do processo, até o software é apenas parte do processo.
O maior projeto que atuo apenas 20% do código é PHP. E na boa Javascript é meu maior parceiro.
Me importa solucionar a questão. Oferecer o que realmente é útil para o cliente (conversar com o cliente, entender)
Oferecer experiencia, redução de custo, e por ultimo eu penso na linguagem. A grande maioria dos projetos a linguagem não chega a ser preocupação.

Sinceramente é muito bom o fato de termos varias linguagens, mas te encorajo a aprender outras ciências.

Carregando publicação patrocinada...
2

Gostaria de dar meus 2 centavos de contribuição nesta conversa, como desenvolvedor PHP de longa data e certa experiência em Java Spring Boot.

A maior questão não está na linguagem. Ela, se não tiver requisitos bem específicos que seja imperativo que faça X, tanto faz a escolha no final das contas... desde que o projeto seja embasado em METODOLOGIAS CAMPEÃS, que evitem usar estratégias dinâmicas para resolver problemas estáticos (um dos maiores gargalos dentro do servidor é o acesso ao DB, o que deve ser atrasado até o último instante e só para dados que devem vir do DB para diminuir o cu$to da requisição... deve-se pensar em usar dados normalizados para as transações e denormalizados e segregados noutro DB para relatórios sobre dados que não serão mais alterados). Até aqui não entrou nenhuma linguagem! Mas a lista não para nos exemplos listados.

O que se tem de ter em mente: OWASP Top-10, respostas em X ms. Aqui também não entra linguagem.

Já na "esteira do desenvolvimento", o que mais conta são as metodologias mais eficientes para resolver as mesmas coisas de sempre: o tal do CRUD: Inserts, Selects e Update (sendo o delete mais incomum).

Entre o recebimento de uma requisição/post e a execução da SQL, tem um processamento. É neste intervalo que entram as diversas abordagen METODOLÓGICAS que farão a diferença! É aqui de se deve por a atenção e tentar descobrir o máximo possível de formas como empresas resolvem e aprimoram a sua atividade.

Se querem realmente aprender algo, aqui é que está a coisa... por isso, blog posts e cursos não são recomendados para "aumentar a bagagem", pois são rasos nesse aspecto por focarem no básico.

Por isso, a melhor estratégia para aprender METODOLOGIAS em repositórios de códigos que estejam em produção. Por exemplo, vejam o repositório do ótimo sistema https://rallly.co/pt-BR (uma alternativa ao Dooble para encontrar o melhor dia/horário de reunião para várias pessoas). Quem tiver mais dicas de sistemas em produção, cujo cógigo esteja disponibilizado, compartilha o repositório com a gente! ;o)

Mais dois pontos para finalizar: normalmente, muitas vezes nós não escolhemos a linguagem. Elas já vem no "pacote de vaga". Ser especialista só em uma linguagem é restringir em muito as possibilidades, seja de empregos, seja na prestação de serviços a clientes... a menos que isso seja uma escolha consciente, como quem se especializa em iOS.

Deixo aqui o vídeo o Fábio Akita para destroçar nossas paixões: Sua Linguagem NÃO É Especial! (Parte 1).

Ampliando: neste outro link, o Fábio Akita tem 2 vídeos afirmando que a linguagem de programação NÃO é especial... e outros 2 perguntando se ela é especial: https://www.youtube.com/results?search_query=Sua+Linguagem+N%C3%83O+%C3%89+Especial!

2

Dentro da avaliação técnica eu concordo com tudo que foi dito, mas no escopo de negócio eu acredito que linguagem é não apenas importante, como a escolha correta (baseado em fatores mercadológicos), pode significar a vida de um negócio.

Pensando com a cabeça de um CTO ou até mesmo CEO de uma startup, se eu decidir iniciar um projeto com Javascript sei que em cada esquina vou encontrar mão de obra, e portanto, será mais "barato" escalar no longo prazo.

Se eu iniciar o mesmo projeto em Ruby, por exemplo, se minha empresa estiver longe dos grandes centros já posso esquecer a contratação presencial, e certamente o custo de manutenção será maior, chegando até o ponto da refatoração total para outra linguagem mais popular por falta de orçamento técnico.
Já vi acontecer, é caro, causa demissões e às vezes invibializa um projeto inteiro.

2

Você está correto, Heigler... e obrigado por ampliar o que eu resumi em uma oração (segunda oração de meu segundo parágrafo).

Basei-me mais pela proposição inicial, cujos requisitos são para atender a um projeto pessoal e não a uma requisito comercial e de considerável monta.

A linguagem deve ser adequada ao tamanho e requisitos do projeto.

Como foi citado o caso de uma starup, além da linguagem adequada, o que é uma pequena fração a ser considerada, temos também que abordar coisas como: Tornando sua App Web Mais Rápida! | 4 Técnicas de Otimização.

Agora, pensando em fazer o que o consultor/administrador de empresas Carlos Júlio fala: começar pequeno e crescer rápido, que em nossa área nos referimos em fazer algo que deve escalar, temos que ampliar o assunto indo mais na linha do vídeo A Forma Ideal de Projetos Web | Os 12 Fatores um compilado de The Twelve-Factor App.

Isso também pode ser conferido no artigo Engenharia de Software na Web: os 12 fatores, que descreve cada ponto.:

  1. Base de código
    • Uma base de código com rastreamento utilizando controle de versões, muitos deploys
  2. Dependências
    • Declare e isole as dependências explicitamente
  3. Configurações
    • Armazene as configurações no ambiente
  4. Serviços de Apoio
    • Trate os serviços de apoio como recursos anexados
  5. Construa, lance, execute
    • Separe estritamente os builds e execute em estágios
  6. Processos
    • Execute a aplicação como um ou mais processos que não armazenam estado
  7. Vínculo de Porta
    • Exporte serviços via vínculo de portas
  8. Concorrência
    • Escale através do modelo de processos
  9. Descartabilidade
    • Maximize robustez com inicialização rápida e desligamento gracioso
  10. Paridade entre desenvolvimento e produção
    • Mantenha o desenvolvimento, homologação e produção o mais similares possível
  11. Logs
    • Trate logs como fluxos de eventos
  12. Processos administrativos
    • Rode tarefas de administração/gestão em processos pontuais

Mais uma vez, vemos que a linguagem é só um item, dentre outras 12 estratégias.

Para entender mais, veja este "estudo de caso" Como fazer o Ingresso.com escalar? | Conceitos Intermediários de Web.

2

Muitos programadores, caem nessa armadilhas de querer acompanhar o modinha de tudo que aparece.

Pra mim o principal o principal é o produto final, se atender a necessidade e cliente tá feliz pouco importa a linguagem.

Obviamente ao iniciar algum projeto do zero, é preciso analisar para escolher a melhor linguagem.

Eu mesmo tenho um software escrito em VB6, é um utilitário tão simples que nunca tive a necessidade de migrar.

Mas no fim das contas quem se importa, para a maioria dos casos, a melhor linguagem é aquela que você domina

1

Sim, você está coberto de razão.

Em geral, fanboys estão preocupados com o que você usa. Seus clientes não, eles só querem a solução.

Mas nem sempre.

Pode ter gente querendo legitimamente quererendo te ajudar a definir uma opção melhor. Só estou citando a hipótese, não é tão comum e não estou dizendo que é o caso que nem conheço.

Muitas vezes a sua decisão pode não ser a melhor, mas quase sempre é só você que terá prejuízo com isso, por essa razão você deve escolher o que usar. Sempre falo que não importa a opinião dos outros, o que você for fazer terá consequências positivas ou negativas... para você, não para elas, então elas não tem compromisso com você. Claro, elas também podem ser mais experientes que você.

Por outro lado, eu já vi um cliente quebrar a cara por não se importar com isso. Eu já vi uma empresa que não perguntou que tecnologia iriam usar. A tecnologia foi abandonada e eles sofreram muito por isso. Até que um dia resolveram que tinha que fazer do zero porquenão tinha mais a menor condição, e o tamanho e outros fatores justificava. Contrataram alguém e não perguntaram e não perguntaram que tecnologia ele iria usar. Não aprendem. Usaram uma tecnologia meio fora do padrão. Tá tudo bem até agora, mas não sei até quando. Outra questão é que o sistema antigo tinha 1MB, o novo tem 1GB fazendo a mesma coisa, mas isso é outra questão e não vou entrar aqui, é triste o estado que estamos.

Mas claro, o cliente está satisfeito, mesmo tendo problemas. Eu poderia contar outras anedotas, tenho várias . O problema raramente é a tecnologia é quem fez uso dela.

Concordo que UX é muito mais importante, depois de entregar todos resultados corretos, sempre. Muita gente ignora a UX, muito mais do que pode parecer. Vejo o tempo todo, até de quem discursa sobre isso. Está cada vez mais comum o programador olhar para o umbigo e não para a necessidade do usuário. Vejo em todo canto, todo dia em quase tudo o que uso.

Eu uso PHP. E uso C # também, de maneiras absurdamente diferentes. Se fosse para usar PHP como uso em C#, eu faria em C#. Escolho PHP quando ela me entrega algo que C# não entrega, que é a simplicidade. Eu não me vejo usando PHP usando OOP.

Quase todo mundo faz coisas muito básicas. Se fosse fazer algo grandioso seria diferente. A Wikipedia roda em cima de PHP sem problemas. É a linguagem mais adequada? Não sei. Ela roda com centenas de servidores, torrando uma grana mensal com isso. O Stack Overflow é feito em C# e poderia rodar com apenas 1 servidor se quisesse (já fizeram teste e foi bem). Claro, a WP é um dos 5 sites mais acessados do mundo e o SO é só um dos 50 (aproximadamente, esses rankings variam e não são precisos). Mas o SO tem mais interação do que a WP. E claro que não é só a linguagem que faz isso, é a maneira de fazer também. O SO foi pensado para ser muito eficiente, inclusive para melhorar a UX já que performance também é UX. E melhora o SEO também, um dos segredos porque eles são achados mais que outros lugares.

Eu tenho uma palestra que mostra tudo isso. Tem muita coisa que é ignorada e é importante, mais do que a linguagem escolhida. Por exemplo, eles tiveram ganhos quando tiraram certos caches. A maioria vai na intuição que cache é sempre bom, mas isso não é verdade.

Acho que está no caminho certo. A linguagem é só uma ferramenta e todas elas são muito parecidas, mesmo se escolher errado não terá muito problema. E as pessoas escolhem errado o tempo todo, eu mesmo escolho mesmo depois de 40 anos fazendo isso, muitas vezes porque é mais cômodo, mas é um erro calculado porque sei que não fará muita diferença, quando faz, eu escolho outra.

Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).

1

Quer ouvir verdades? A linguagem não importa. Até hoje existem grandes empresas, grandes mesmo, operando com sistemas em Clipper portados para linux, em terminal, sem interface grafica. Empresas milionárias, lucrativas.

A linguagem não importa para a empresa.

1

PHP é boa o suficiente para carregar a web nas costas ao lado do JS!
Até hoje grandes projetos são feitos em PHP!

Abraços