Yazılımda dil bir araç mı?

Peki hocam şunu da sorayım, dillere fazla anlam yüklemek gereksiz bir şey mi? Mesela kriptografi alanında çalışmalar yapmak istiyoruz. Çeşitli kütüphanelere mi önem vermek gerekir yoksa algoritma, kriptografi alanının temellerini mantığını öğrenmek mi daha yararlı olur?

Tamamen yapacağın iş ile ilgili bu durum. Donanım seviyesine ne kadar ineceksen o kadar çok şey bilmen gerekiyor. Çok basit bir örnek vereyim sana: Diyelim ki bir paket verin var ve bunu şifrelemek istiyorsun.
  • Kullandığın cihazın encryption donanımı var ve onu kullanmak istiyorsan (işlemin daha hızlı gerçekleşmesi için) low-level bir dil tercih etmen ve o donanımla konuşmak için gereken teknik detaylara hakim olman lazım.
  • Şifreleme donanımını kullanmak istemiyorsun (latency ve timing senin için çok kritik değil) ama farklı donanımlar ile işin olacak. Yine low-level bir dil tercih etmen gerek. Şifreleme kısmını da ya kendin yazacaksın (şifreleme metoduna hakim olman gerek) ya da hazır kütüphane kullanman lazım.
  • Donanımla hiç işin yok ve hızlıca paketin şifrelenip gönderilmesini istiyorsun. Bu durumda seçim senin; low-level bir dil ve hazır kütüphane de kullanabilirsin high-level bir dil ve hazır kütüphane de.
Dersen ki low-level dillerde hazır kütüphane yok mu? Var elbette. Kütüphaneye hakim olman her durumda gerekli olmaz, detaylarla uğraşmak istemiyorsan sadece API'nı biraz öğrenmen yeterli olur. Genelde hashing ve encrption kütüphanelerinin detaylarıyla high-level kullanan kimse ilgilenmez. Veriyi verir ve çıktıyı alır.

Tamamen uygulamaya bağlı yani tercih edeceğin diller/kütüphaneler.
 
Kullandığın cihazın encryption donanımı var ve onu kullanmak istiyorsan (işlemin daha hızlı gerçekleşmesi için) low-level bir dil tercih etmen ve o donanımla konuşmak için gereken teknik detaylara hakim olman lazım.
C#'ın low-level bir dil olmadığına eminim, ama C#'ın AES kütüphanesi işlemcideki AES instruction setinden yararlanabiliyor. Her zaman şart değil. Bu yüzden bir projeye başlamadan araştırma yapıyoruz.
 
C#'ın low-level bir dil olmadığına eminim, ama C#'ın AES kütüphanesi işlemcideki AES instruction setinden yararlanabiliyor. Her zaman şart değil. Bu yüzden bir projeye başlamadan araştırma yapıyoruz.
C# özelinde bir şey yazmadım ama dedikleriniz doğru olabilir elbette. Dediğiniz gibi, araştırmadan başlanırsa sonra geri dönük düzeltemeler için daha çok uğraşılabilir.
 
Son düzenleme:

Technopat Haberler

Geri
Yukarı