Eu sei que isso soa como uma pergunta de merda, mas deixe-me explicar de onde venho.
Fora da faculdade, consegui um emprego em uma loja de PHP. Eu trabalhei lá por um ano e meio e pensei que tinha aprendido tudo o que havia para aprender sobre programação.
Então, consegui um emprego como uma loja de desenvolvimento interno individual em uma empresa considerável, onde todo o trabalho era em C #. No meu compromisso com a posição, comecei a ler uma tonelada de blogs e livros e rapidamente percebi o quanto eu estava errada ao pensar que sabia tudo. Aprendi sobre testes de unidade, injeção de dependência e padrões de decorador, o princípio de design de acoplamentos soltos, a composição sobre o debate sobre herança e assim por diante - e continuo absorvendo tudo isso. Escusado será dizer que meu estilo de programação mudou completamente no ano passado.
Agora eu me pego pegando um projeto php fazendo alguma codificação para a inicialização de um amigo e me sinto completamente constrangido em oposição à programação em C #. Realmente me incomoda que todas as variáveis em um escopo de classe devam ser referidas anexando '$ this->'. Me incomoda que nenhum dos IDEs que eu tentei tenha muito bom senso e que meus métodos de teste de unidade SimpleTest tenham que começar com a palavra 'test'. Isso me deixa louco porque a digitação dinâmica me impede de especificar implicitamente qual tipo de parâmetro um método espera, e que você precisa escrever uma instrução switch para sobrecarregar o método. Não suporto que você não possa ter namespaces aninhados e precise usar o operador :: para chamar o construtor da classe base.
Agora, não tenho intenção de iniciar um debate entre PHP e C #, mas o que quero dizer é que tenho certeza de que existem alguns recursos do PHP que eu não conheço ou que ainda não consigo usar corretamente. Estou no meu universo C # e estou tendo problemas para enxergar fora da tigela de vidro.
Então, eu estou perguntando, quais são seus recursos favoritos do PHP? Quais são as coisas que você pode fazer e não pode ou é mais difícil nos idiomas .Net?