PHP ou C#??

Atualmente estou procurando outra linguagem para aprender - já sei JS e alguns frameworks - estou na dúvida entre PHP ou C#, PHP me chama bastante atenção, mas tenho receio de não conseguir nada com a linguagem.

PS: Sou Full Stack, sem nenhuma experiencia profissional.

Vou tentar responder já que não tem uma pergunta clara, mas parece que quer que a gente decida por você que linguagem vai aprender agora entre essas duas. Já respondi em:

Em resumo: não conhecemos você, não sabemos nada dos seus objetivos, suas necessidades, suas dificuldades. Somos apenas pessoas aleatórias na internet que não vamos ganhar ou perder com sua decisão, portanto, nenhum compromisso com seu sucesso ou fracasso, e parte do processo de evolução é pesquisar e tomar uma decisão. Não tem melhor, ainda mais sem critérios definidos.

Se está com medo de PHP, então deve estar apavorado com C#. PHP tem uma característica parecida com JavaScript, meio que você faz qualquer código e funciona. C# é mais exigente. C# é uma linguagem robusta, ela até aceita um pouco uma programação mais desleixada, mas muito menos, ela exige mais comprometimento do programador para fazer bem feito. O resultado costuma ser de melhor qualidade em boa parte dos critérios que se pode avaliar. Não é só vantagem, mas para alguns objetivos é uma melhor escolha.

Eu sei que isso causa irritação em alguns, sei que em geral causa mais em pessoas com conhecimento limitado sobre programação, mas PHP é uma linguagem que nasceu para uma coisa, está tentando virar outra coisa, só que a necessidade de compatibilidade impede ela se tornar essa outra coisa bem. Ou seja, PHP virou um frankenstein e estão tentando ser C# quando ela sempre brilhou (destaque para essa parte porque a pessoa acha que que estou jogando pedras na linguagem e a raiva que ela sente por eu falar da tecnologia amada a deixa cega) onde C# não chega aos pés nem mesmo com as mais recentes mudanças. E ela não chega aos pés de C# para fazer as coisas complexas que C# permite com qualidade.

Note que PHP pode ser usada para qualquer coisa. Vai funcionar, e com esforço pode se tornar algo bem interessante. PHP pode ser usada sem maiores problemas, e em mãos habilidosas, é uma linguagem bem razoável, e não é inviável, só não é a melhor opção para alguns projetos. Então depende do projeto que deseja fazer.

Algumas pessoas dizem que você deve escolher PHP porque 70, 80 ou outra porcentagem da internet mundial usa PHP. Não importa qual é a porcentagem, se isso for um bom motivo então você deve escolher C, porque está em 100% de todos os computadores que as pessoas usam. E em vários softwares, ao contrário de PHP que estão falando majoritariamente do Wordpress. Note que se o critério for este, C deve ser umas 20x melhor que PHP. E aí você já sabe que a pessoa não tem um critério muito bom e você não deve escutar esse tipo de opinião.

Um motivo que dão para usar PHP é que ela "paga as contas". Já respondi outras vezes, que fazer faxina em casas chega pagar mais contas ainda. Então se o motivo é esse para escolher a linguagem, pode fazer outras coisas, a faxina é só um exemplo. A pessoa deve escolher porque aquilo é importante para ela, porque faz sentido na vida dela, porque ela se sente bem, porque atende suas necessidades. Não é um problema escolher PHP, eu escolho para alguns projetos. O problema é escolher por um motivo tão vil. Outras linguagens também pagam as contas, em muitos casos, mais contas, e de forma mais prazerosa.

Também ouço falar que PHP era uma linguagem ruim, mas agora melhorou. Como melhorar sem perder a compatibilidade? Ela não melhorou, ela deu novas opções. E eu vou na contramão, dizendo que agora está pior, porque, embora ela ainda possa ser usada como antes, e isso não é uma piora real, mas poucos estão usando como antes, você será incentivado a fazer do jeito "moderno". Hoje ela tenta ser o que ela não consegue pela compatibilidade. E se for para fazer como as pessoas fazem "modernamente", então Java ou C# é obviamente a escolha correta. Foram linguagens criadas desde o início para sistemas que agora PHP tenta entregar.

Note que todos têm o direito de fazer a escolha que achar melhor. E escolher porque gosta é menos problemático do que parece. Fazer escolhas por motivos políticos e não técnicos é razoável, não posso recriminar ninguém por isso. E dependendo do meu objetivo eu escolheria PHP. Mas prefiro C# quando faz mais sentido. Ela tem mais a minha cara é entrega mais performance, robustez, coerência, soluções mais organizadas para problemas diversos. Até tem alguma simplicidade se precisar, mas para websites PHP ainda pode entregar mais, se você não usar quase nada das últimas versões que não faz sentido em códigos simples só para gerar páginas HTML.

Por que não tenta as duas? Quem sabe desiste de uma delas. Se realmente o medo de PHP for racional, vai desistir de C#. É uma linguagem bem mais assustadora. É o preço que se paga para entregar tudo o que ela dá.

Por que acha que as pessoas têm mais dificuldade de justificar o uso de PHP e inventam essas maluquices que eu citei do que as pessoas que escolhem C#? Uma linguagem é mais indicada para um perfil de usuário do que a outra. Algumas pessoas não gostam da demanda de C#. Novamente, é um direito delas. Elas tomam a decisão e convivem com as consequências disso. E pode ser a melhor escolha para ela, mesmo que não seja para outras pessoas.

Como estão seus fundamentos da computação? Isso é o que costuma ser mais importante e o mais falho na formação das pessoas. E o que impede a pessoa tomar melhores decisões, e escolher a linguagem que mais importa para ela. Tem casos que é melhor focar nisso do que ir para outra linguagem. Mas eu vejo que as pessoas têm mais dificuldade de fazer essa escolha. E quem tem essa dificuldade se tiver que escolher uma linguagem ela tenderá ser JS ou PHP. Claro que tem gente que escolhe essas linguagens por outros motivos e muitas com o fundamento em ordem as escolhe, mas minha percepção é que não é tão comum assim. E isso é uma das vantagens dessas linguagens, é mais fácil entregar algo nessas linguagens quando não se tem forte os fundamentos, ainda que dê para entregar bem em Java ou C#.

C# pode rodar em todos os lugares, até navegadores, PHP só roda no backend web, e segundo o criador da linguagem me informou pessoalmente, ninguém deve usar PHP para outra coisa. Também falei pessoalmente com o criador (atualmente cuidando de TypeScript) e o mantenedor atual de C# e eles querem que a linguagem atenda todos os cenários, por isso a linguagem hoje é até mais palatável para quem só quer fazer scripts, ainda que não tanto.

Existe uma diferença brutal entre quem criou e mantém as duas linguagens. Isso pode ser um fato determinante para a escolha de alguns, e zero para outros. Por isso que precisa imergir nas duas culturas para tomar uma decisão. Mas sem os fundamentos bem estruturados, pode continuar uma decisão difícil e continua com mais chance de uma escolha equivocada.

Faz sentido para você?

Espero ter ajudado.

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).

Ótima argumentação! Parabéns. Eu costumo zoar com alguns colegas que ainda usam PHP (e eu deixei de usar faz um tempo, depois de muito penar com problemas que são causados pela flexibilidade da linguagem associada a falta de disciplina do dev), mas é tudo na amizade. *Tenho* duas posições nesse caso: 1. O projeto é novo, vai escalar e precisa de uma qualidade crítica? Vamos de C#, golang, rust, e até python ou java. 2. O projeto é simples, ou é um legado já em PHP que não compensa investir em refatoração ou por que o cliente não quer gastar com um host específico (já que host de PHP tem debaixo de qualquer pedregulho, e na minha opinião, isso foi um dos motivos da linguagem ter se popularizado tanto: ela é barata de se hospedar). Vai de PHP mesmo, entrega rápido e recebe a grana. E torce pra não precisar voltar mais ali (IMHO).
Importante notar que agora dá para rodar C# em qualquer lugar que não tenha alguma restrição artificial, ele pode funcionar sem dependência alguma, joga o executável e boa.
Mano, que aula o seu texto. Obrigado por levantar questões importantes não só sobre PHP ou C#, mas principalmente sobre linguagens de programação.
Karaka, o cara humildmente perguntou uma coisa que não sabia. Só isso. Não pediu para ninguém decidir nada. Uma resposta muito "carregada" no meu entender. Mas blz. Vc sem dúvida é melhor que todos nós juntos e parece que não gosta de responder coisas simples. Direito seu claro. grande abraço Williams

por experiência vai de PHP. onde comecei a trabalhar eles usam a stack da Microsoft e meu pai amado, é uma zona.

PHP não tem erro os passos são: PHP -> Laravel / Vue.

Se tu for pra C# e for se aprofundar tu vai ter que ver: C# -> dotnet (tem o framework e o core e tem que saber a diferença) -> asp.net ( tem o framework e o core) -> razor pages / blazor / blazor server. aaaaaaaahhh!.

Olá Vitor!

Trabalho há 5 anos com PHP e posso dar uma ajuda; essa é uma escolha importante pois quando escolhemos uma linguagem backend, muitas vezes mergulhamos no ecossistema dela. Eu por exemplo, conheço tudo e mais um pouco sobre PHP, porém, não conheço quase nada sobre C#.

Sobre o PHP, ainda é uma linguagem muito forte e com muitas vagas, ontem mesmo me enviaram uma vaga de FullStack PHP Developer na Irlânda! Nessa linguagem você vai acabar trabalhando com Web, seja criando sistemas web, API REST, RPAs e microsserviços.

Se você gosta de programar hardware, sistemas operacionais e aplicativos mobile, PHP não é a linguagem pra isso.

Em questão de curva de aprendizado, eu já ouvi falar que é uma das linguagens mais fáceis de aprender.

Na parte do salário, PHP realmente paga um pouco menos que C# e Java, como mostram algumas pesquisas, porém, essas mesmas pesquisas mostram que programadores PHP que trabalham com framework (Laravel, Symfony) têm a mesma faixa salarial das primeiras línguagens que citei. Aliás, taí outro ponto importante, seguindo o roadmap do PHP, mais cedo ou mais tarde você vai ter que aprender um framework também.

Bem, se tiver mais dúvidas relacionadas a essa linguagem, estou a disposição!

Opa, trabalho com C# há mais de 10 anos.

Creio que tu pode de primeira, seguir tutorials do básico em ambas linguagens e ao mesmo tempo pesquisar qual das duas o mercado de trabalho tem mais oportunidades.

Nessa nova onda do mercado, C# está disparado com mais vagas do que PHP.

Recomendo dar uma olhada no histórico de atualizações de cada uma das linguagens e procurar saber sobre fatia de mercado.

Eu trabalho com C# e vejo que a Microsoft tem acertado muito de um tempo pra cá..

Aprende Rust, é bom saber uma linguagem menos nichada e complexa para exercitar a mente.

Aconselho abandonar front-end e back-end essas áreas estão saturadas, com excessos de cursos gratuitos, excessos de mão-de-obra, com excessos de mudanças, onde a todo momento você sofre um reset, ou seja, da noite para o dia você vira um nada.

Sugiro tecnologias duradouras e consolidadas como:

  • SAP.
  • Protheus da TOTVS.
  • Oracle Database.
  • Oracle Exadata.
  • Amazon QuickSight. (B.I. - Business Intelligence)
  • Salesforce.
  • BMC Control-M
  • Power Center (ferramenta de ETL)
  • RPA - Robotic Process Automation
  • Cobol

A vantagem é que você só precisa saber uma delas. E claro somado a Machine Learning e Deep Learning que é o nosso presente e futuro, não tem como escapar disso. Mas se insiste nessas, vai de C#, o ambiente MS é bem homogêneo, ou seja não precisa aprender vários tipos de IDE, frameworks, infinitas combinações, ser chutado da entrevista porque não deu match na combinação que a empresa usa.

Ai tu entregou o ouro. SAP e Salesforce sei que tem bastante força. Foda que eu já ganho uma boa grana como Back-end. Se eu fosse começar de novo, escolheria uma SAP e Salesforce + Inglês e seria feliz também. Eu mesmo já pensei em ir pra Cloud/DevOps, mas é complicado pensar em regredir no salário kkkkk

Vou ser curto e grosso: Quer ter mais trabalhos para Freelancer? vai de PHP Quer algo mais robusto, flexível (Suporte a desenvolvimento de Aplicativos móveis até IA): Vai de C#

Victor eu sou dev C# a um tempo já, mas veja bem. Você precisa de praticidade? Se sim vai para php, é mais prático subir um servidor php web é mais barato já vai vir tudo configurado pra você.

Eu escolho C# quando preciso de algo que eu consiga ter controle sobre todos os aspectos do servidor ai vou subir uma cloud/vps por conta que dá trabalho...

Do contrário a outra possibilidade pra deploy em .net

Já trabalhei com PHP e comecei a atuar com C# a pouco tempo. O que vejo é que depende da sua necessidade, pra mim o PHP é algo mais prático, se não tiver usando framework você só cria um arquivo, joga em qualquer hospedagem e tá rodando. Já C#, eu acho que é melhor pra sistemas robustos, ele não é tão prático comparado, mas tem toda uma estrutura por trás e uma gigante que gerencia.

PHP é sensacional pra vc criar coisas muito rápido e colocar logo em produção. fácil, simples, rápido o suficiente. Mas... nem se compara com o C#. e porque? O peso da Microsoft faz toda a diferença. C# é uma linguagem que vc precisa ter no seu portfólio. Além de ser toda padronizada, ter uma orientação a objetos mais padronizada, é utilizada em vário domínios, como aplicações corporativas, jogos e por aí vai. É um salto em ordem de grandeza. Mas... vamos lá. A resposta nunca é a linguagem, mais o que vc sabe fazer com ela, o quento vc está disposto a investir em treinamento nela, e o quanto a sua equipe, colaboradores ou amigos estão envolvidos. PHP é bem usada pra coisas "simples" e pra web. Você consegue desenvolver coisas maiores sem problema algum. Mas não se com a produtividade e padronização do C#. mas se vc está confortável com ela,e mais importante, se precisa fazer um MVP pra ontem, vai de PHP. se for algo mais definido, consistente é uma boa considerar o C#, lembrando sempre que: depende!

Perguntaria primeiro qual é seu foco de uso no futuro próximo para com estes estudos. Procura trabalho para daqui uns poucos meses com estas stacks ?

Também, se já usou node, para entender a arquitetura MVC ?

E por último, porque PHP e C#, e não Java, python e Ruby também. O que fez cair nestas duas apenas ?

Isto pois, como o colega maniero disse bem, não conhecemos você. Precisamos de mais dados para melhor ajudar !

Atualmente estou procurando trabalho como full stack, me considero bom no front end. O que estou procurando é uma ferramenta para acrescentar no meu back-end - mais puxado para web - mas não quero gastar tempo com algo que não vou usar em meu propósito. Apos eu ler todos os comentários, estou tendendo mais para o c#, até prefiro, pois já tive experiência com c++ (nem sei se é parecido, mas talvez ajude). ps: meu back-end se baseia em node.js.
Entendo. Se programou com OOP com C++, sentirá leve semelhança com C# sim. A curva de aprendizado tende a reduzir um pouquinho. Visando o mercado, Java é quem dispara em vagas, todavia C# vem logo atrás, com bom número. O ambiente com C#, chamado .Net ou dotNet, atualmente é open source e está na versão estável .Net 6. Possui pela microsoft, o framework asp net core, onde permite montar o servidor web. Possui até outros frameowrks de menor popularidade, feito por outros projetos, mas são nichados dentro do ambiente dotNet. O geral aceita Asp. Outro ponto bom do C#, é que, caso goste de desenvolvimento de jogos, as engines Unity e Godot o aceitam, ampliando as possibilidades de uso do mesmo conhecimento. Como também claro, C# é usado para desenvolvimento de aplicativos windows/linux/mac e para smartphones, através de outros frameworks. É um ótimo ambiente de desenvolvimento.
Valeu, você me ajudou bastante.
Node é uma excelente stack. dá pra continuar nela de boas. Pra full stack te aconselho na verdade a se aprofundar em shell do linux, bom e velho BASH ou no power shell do windows. é o que mais usa e o que mais faz diferença pra criar script pra servidores. o backend resolve de boas no nodejs.