Bence insanların halkla “programlama dilleri” olarak düşündükleri aslında üç ayrı şeydir:
- Dil türü ve sözdizimi
- Dil IDE
- Bir dil için mevcut kütüphaneler
Örneğin, bir kişi bir tartışmada C # yaptığında, dil sözdizimi hakkında konuştuğunu düşünebilirsiniz (1), ancak tartışmanın .net framework'ü (3) içereceği% 95 kesindir. Yeni bir dil tasarlamıyorsanız, yalıtmak (1) ve yok saymak (2) ve (3) zor ve genellikle anlamsızdır. Bunun sebebi IDE ve standart kütüphane “rahatlık faktörleri”, belli bir aracı kullanma deneyimini doğrudan etkileyen şeyler.
Son birkaç yıldır ben de Google Code Jam'e katıldım. İlk kez C ++ 'ı seçtim çünkü girişi okumak için iyi bir desteğe sahip. Örneğin, C ++ 'da standart bir girişten üç tam sayı okumak aşağıdaki gibidir:
int n, h, w;
cin >> n >> h >> w;
C # iken aynı şuna benzer:
int n, h, w;
string[] tokens = Console.ReadLine().Split(' ');
n = int.Parse(tokens[0]);
h = int.Parse(tokens[1]);
w = int.Parse(tokens[2]);
Bu basit bir işlevsellik için çok daha zihinsel bir yük. Çok satırlı girişle C # 'da işler daha da karmaşıklaşıyor. Belki de o zamanlar daha iyi bir yol bulamadım. Her neyse, ilk turu geçemedim çünkü turun bitiminden önce düzeltemediğim bir böcek vardı. İronik olarak giriş okuma yöntemi hatayı şaşırttı. Sorun basitti, girdi 32 bit tamsayı için çok büyük bir sayı içeriyordu. C # ' int.Parse(string)
bir istisna ama C ++ dosya giriş akışı belirli bir hata bayrağını ayarlamak ve bir sorun olması masum geliştirici habersiz hale sessizce başarısız olur.
Her iki örnek de, kütüphanenin dil sözdizimi yerine nasıl kullanıldığını göstermektedir. Birincisi ayrıntı düzeyini ve diğeri güvenilirliğini gösterir. Birçok kitaplık birden fazla dile taşınır ve bazı diller kendileri için özel olarak oluşturulmamış kitaplıkları kullanabilir (bkz. @ Vartec'in C kitaplıkları ile Python hakkındaki cevabı).
Bunu sarmak için, doğru algoritmayı bilmek yardımcı olur. Kodlama yarışmalarında, özellikle uygulama zamanı ve hafıza gibi kaynaklar bilerek sınırlı olduğunda çok önemlidir. Uygulama geliştirmede memnuniyetle karşılanır, ancak genellikle çok önemli değildir. Bakım kolaylığı burada daha önemlidir. Doğru tasarım desenleri uygulayarak, iyi mimariye, okunabilir kodlara ve ilgili dokümantasyona sahip olarak elde edilebilir ve bu yöntemlerin tümü büyük ölçüde kurum içi ve üçüncü şahıs kütüphanelerine dayanır. Bu yüzden, ne tür tekerleklerin icat edildiğini ve kendiminkine göre nasıl uyduklarını bilmek daha önemli buluyorum.