In podcast 73 Joel Spolsky ve Jeff Atwood, diğer konular arasında, "Herkesin kendi favori programlama dili hakkında nefret etmelidir beş şeyi" tartışmak:
Mevcut takım zincirinizden memnunsanız, geçiş yapmanız gerekmiyor. Ancak, en sevdiğiniz programlama dili hakkında nefret ettiğiniz beş şeyi listeleyemiyorsanız, o zaman henüz yargılamak için yeterince iyi bilmediğinizi savunuyorum. Alternatiflerin farkında olmak ve ne kullanıyorsanız kullanın sağlıklı ve eleştirel bir göze sahip olmak iyidir.
Meraklı olmakla, bu soruyu röportaj yaptığım adaylara sordum. Hiçbiri C # about hakkında nefret ettikleri en az bir şeyden alıntı yapamadı.
Niye ya? Bu soruda bu kadar zor olan ne? Görüşmenin stresli bağlamı nedeniyle, bu sorunun görüşülen kişiler tarafından cevaplandırılması imkansız mı?
Bu soru hakkında görüşmeyi kötüleştiren bir şey var mı?
Açıkçası, bu C # mükemmel olduğu anlamına gelmez. Kendime C # hakkında nefret ettiğim beş şeyin bir listesini yaptım:
Jeneriklerde değişken sayı türlerinin eksikliği (
params
argümanlara benzer ).
Action<T>
,
Action<T1, T2>
,
Action<T1, T2, T3>
,
⁞ Ciddi ?!
Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>
F # 'daki gibi ölçü birimleri için destek eksikliği.
Salt okunur özelliklerin eksikliği.
private readonly
Her zaman salt okunur bir özellik istemek için bir destek alanı yazmak çok sıkıcı.Varsayılan değerlere sahip özelliklerin olmaması. Ve evet, onları parametresiz kurucuda başlatabileceğimi ve diğer tüm kuruculardan arayabileceğimi biliyorum. Ama istemiyorum.
Çoklu kalıtım Evet, karışıklığa neden olur ve çoğu durumda buna ihtiyaç duymazsınız. Bazı (çok nadir) durumlarda hala yararlıdır ve karışıklık aynı adı taşıyan yöntemleri içeren çeşitli arayüzleri miras alan sınıfa da uygulanır (ve C # 'da çözülmüştür).
Bu listenin tamamlanmaktan çok uzak olduğundan eminim ve vurgulamak için daha çok nokta var, özellikle de benimkinden çok daha iyi olanlar var.
People Birkaç kişi, .NET Framework'teki bazı meclisleri veya çerçeve içindeki bazı kütüphanelerin bulunmamasını eleştirdi veya CLR'yi eleştirdi. Bu soru hakkında olduğu için, sayılmaz dilin Potansiyel olarak hiçbir ortak arayüz olmadığı gerçeğini gibi örnek bir şey için .NET Framework (özünde bir şey negatif ilgili bir cevap kabul edebileceğini ederken kendisi ve TryParse
eğer öyleyse, Bir dize birkaç tür ayrıştırmak istiyorsanız, her tür için kendinizi tekrarlamanız gerekir), JSON veya WCF hakkında bir cevap tamamen konu dışı.
Why the question “give five things you hate about C#” is so difficult to answer
Çünkü bu bir liste sorusudur ve kötü bir mod, cevap verme şansını elde etmeden önce "yapıcı değil" olarak kapatır ...; P