No podcast 73 , Joel Spolsky e Jeff Atwood discutem, entre outros assuntos, "cinco coisas que todos deveriam odiar em sua linguagem de programação favorita":
Se você está satisfeito com sua cadeia de ferramentas atual, não há motivo para mudar. No entanto, se você não pode listar cinco coisas que você odeia na sua linguagem de programação favorita, então eu argumento que você ainda não a conhece o suficiente para julgar. É bom estar ciente das alternativas e ter um olhar crítico saudável para o que você estiver usando.
Sendo curioso, fiz essa pergunta a qualquer candidato que entrevistei. Nenhum deles foi capaz de citar pelo menos uma coisa que odeia no C # ¹.
Por quê? O que é tão difícil nesta questão? É por causa do contexto estressante da entrevista que essa pergunta é impossível de ser respondida pelos entrevistados?
Existe algo nessa pergunta que a torna ruim para uma entrevista?
Obviamente, isso não significa que o C # seja perfeito. Eu tenho uma lista de cinco coisas que odeio no C #:
A falta de número variável de tipos em genéricos (semelhante a
params
argumentos).
Action<T>
,
Action<T1, T2>
,
Action<T1, T2, T3>
,
⁞ Sério ?!
Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>
A falta de suporte para unidades de medida, como em F #.
A falta de propriedades somente leitura. Escrever um
private readonly
campo de apoio toda vez que eu quero uma propriedade somente leitura é chato.A falta de propriedades com valores padrão. E sim, eu sei que posso inicializá-los no construtor sem parâmetros e chamá-lo de todos os outros construtores. Mas eu não quero.
Herança múltipla. Sim, causa confusão e você não precisa disso na maioria dos casos. Ainda é útil em alguns casos (muito raros), e a confusão se aplica também (e foi resolvida em C #) à classe que herda várias interfaces que contêm métodos com o mesmo nome.
Tenho certeza de que esta lista está longe de estar completa, e há muito mais pontos a serem destacados, e especialmente muito melhores do que os meus.
People Algumas pessoas criticaram alguns assemblies no .NET Framework ou a falta de algumas bibliotecas no framework ou criticaram o CLR. Isso não conta, já que a pergunta era sobre a própria linguagem e, embora eu pudesse aceitar uma resposta sobre algo negativo no núcleo do .NET Framework (por exemplo, algo como o fato de não haver interface comum para TryParse
isso, se você deseja analisar uma string para vários tipos, precisa repetir-se para cada tipo), uma resposta sobre JSON ou WCF é completamente fora de tópico.
Why the question “give five things you hate about C#” is so difficult to answer
Porque é uma pergunta lista, e um mod mal fechava-a como "não construtiva" antes de ter a chance de respondê-la ...; P