En el podcast 73 , Joel Spolsky y Jeff Atwood discuten, entre otros temas, "cinco cosas que todos deberían odiar sobre su lenguaje de programación favorito":
Si está satisfecho con su cadena de herramientas actual, entonces no hay razón para cambiar. Sin embargo, si no puede enumerar cinco cosas que odia de su lenguaje de programación favorito, entonces sostengo que aún no lo sabe lo suficientemente bien como para juzgarlo. Es bueno estar al tanto de las alternativas y tener un ojo crítico saludable para lo que sea que esté usando.
Siendo curioso, hice esta pregunta a cualquier candidato que entrevisté. Ninguno de ellos pudo citar al menos una cosa que odian de C # ¹.
¿Por qué? ¿Qué es tan difícil en esta pregunta? ¿Es debido al contexto estresante de la entrevista que los entrevistados no pueden responder esta pregunta?
¿Hay algo en esta pregunta que lo hace malo para una entrevista?
Obviamente, no significa que C # sea perfecto. Tengo una lista de cinco cosas que odio de C #:
La falta de un número variable de tipos en genéricos (similar a
paramspara argumentos).
Action<T>,
Action<T1, T2>,
Action<T1, T2, T3>,
⁞ En serio ?!
Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>La falta de soporte para unidades de medida, como en F #.
La falta de propiedades de solo lectura. Escribir un
private readonlycampo de respaldo cada vez que quiero una propiedad de solo lectura es aburrido.La falta de propiedades con valores predeterminados. Y sí, sé que puedo inicializarlos en el constructor sin parámetros y llamarlo desde todos los demás constructores. Pero no quiero hacerlo.
Herencia múltiple. Sí, causa confusión y no la necesita en la mayoría de los casos. Todavía es útil en algunos casos (muy raros), y la confusión también se aplica (y se resolvió en C #) a la clase que hereda varias interfaces que contienen métodos con el mismo nombre.
Estoy bastante seguro de que esta lista está lejos de estar completa, y hay muchos más puntos para resaltar, y especialmente mejores que los míos.
¹ Algunas personas criticaron algunos ensamblados en .NET Framework o la falta de algunas bibliotecas en el marco o criticaron el CLR. Esto no cuenta, ya que la pregunta era sobre el lenguaje en sí, y si bien podría aceptar una respuesta sobre algo negativo en el núcleo de .NET Framework (por ejemplo, algo así como el hecho de que no hay una interfaz común para TryParse, por lo tanto, si desea analizar una cadena a varios tipos, debe repetirla para cada tipo), una respuesta sobre JSON o WCF está completamente fuera de tema.
Why the question “give five things you hate about C#” is so difficult to answerDebido a que es una pregunta de lista, y un mod maligno lo cerraría como "no constructivo" antes de que tenga la oportunidad de responderlo ...; P