에서 팟 캐스트 73 , Spolsky 조엘과 제프 앳 우드, 다른 과목들, "모든 사람들이 자신이 좋아하는 프로그래밍 언어에 대해 싫어합니다 다섯 가지를"토론
현재 툴 체인에 만족한다면 전환 할 이유가 없습니다. 그러나 좋아하는 프로그래밍 언어에 대해 싫어하는 5 가지를 나열 할 수 없다면 아직 판단 할만큼 잘 모른다고 주장합니다. 대안을 알고 사용하는 것이 무엇이든지 건강하게 비판하는 것이 좋습니다.
궁금해서 인터뷰 한 후보자에게이 질문을했습니다. 그들 중 누구도 C # ¹에 대해 싫어하는 것을 하나도 인용 할 수 없었습니다.
왜? 이 질문에서 너무 어려운 점은 무엇입니까? 인터뷰의 스트레스가 많은 상황으로 인해 인터뷰 대상자가이 질문에 대답하기가 불가능합니까?
이 질문에 대해 인터뷰하기에 나쁜 점이 있습니까?
분명히 C #이 완벽하다는 의미는 아닙니다. 나는 C #에 대해 내가 싫어하는 다섯 가지 목록을 가지고 있습니다.
제네릭의 변수 유형이 부족합니다 (
params
인수 와 유사 ).
Action<T>
,
Action<T1, T2>
,
Action<T1, T2, T3>
,
⁞ 심각 하 게!
Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>
F #에서와 같이 측정 단위에 대한 지원 부족
읽기 전용 속성이 없습니다.
private readonly
읽기 전용 속성을 원할 때마다 백업 필드를 작성하는 것은 지루합니다.기본값이있는 속성이 없습니다. 그리고 네, 매개 변수가없는 생성자에서 초기화하고 다른 모든 생성자에서 호출 할 수 있다는 것을 알고 있습니다. 그러나 나는 원하지 않습니다.
다중 상속. 그렇습니다. 혼란을 야기하며 대부분의 경우 필요하지 않습니다. 매우 드물지만 일부 경우에 여전히 유용하며 혼동이 동일한 이름의 메소드를 포함하는 여러 인터페이스를 상속하는 클래스에도 적용됩니다 (C #에서 해결됨).
나는이 목록이 완전하지 않다는 것을 확신한다. 그리고 강조 할 점이 훨씬 많으며, 특히 나보다 더 좋은 점이있다.
¹ 일부 사람들이 .NET Framework의 일부 어셈블리 나 프레임 워크의 일부 라이브러리가 없다는 것을 비판하거나 CLR을 비판했습니다. 질문 자체 는 언어 자체 에 관한 것이기 때문에 중요하지 않으며 .NET Framework의 핵심에 부정적인 영향을 줄 수 있습니다 (예 :에 대한 공통 인터페이스가 없다는 사실과 같은 TryParse
경우). 문자열을 여러 유형으로 구문 분석하려면 모든 유형에 대해 반복해야합니다.) JSON 또는 WCF에 대한 답변은 주제가 완전히 다릅니다.
Why the question “give five things you hate about C#” is so difficult to answer
목록 질문이기 때문에 악의적 인 모드는 대답 할 기회를 얻기 전에 "건설적이지 않은"것으로 닫습니다 ...; P