Rust ve Ada
(reddit.com)Reddit'teki r/ada içinde bulunan, Rust ile Ada'yı karşılaştıran bir yorum.
-
Her iki dil de C olmamaktan gelen avantajlara sahip. C'nin sözdizimsel foot gun'ları, tanımsız davranışlar vb.
-
Her iki dil de bellek güvenliğini destekliyor. Dizi sınırları çalışma anında denetleniyor; geçerli işaretçileri doğrulamaya yönelik kurallar var. Ada'daki denetimler biraz daha basit ve her şeyi baypas eden
Unchecked_Accessbulunuyor. Rust'ın borrow checker'ı daha gelişmiş, ancak baypas gerektiren durumlarda bunu yapmak da daha zor. -
Rust dinamik tahsisi benimsedi. Ada'da da mümkün ama daha hantal ve rahatsız edici. Ada dilinin bunu pek istemediği açık. Ada; heap tahsisinin güvenlik sorunu sayıldığı, bellek parçalanmasının dert edildiği ve bellek tükenmesinin olmayacağının kanıtlanmasının beklendiği bir dönemden geliyor. Rust ise heap'i serbestçe kullanmayı teşvik ediyor; dinamik tahsis gerekiyorsa Rust kesinlikle daha güvenli. Ada'da tahsis serbest bırakma, dangling pointer bırakabildiği için güvenli olmayan bir işlem.
-
Rust, thread safety konusunda üstün. Borrow checker, race condition'ları en baştan önlüyor.
-
Ada, value safety konusunda üstün. Constrained subtype, doğru kod yazmak için iyi bir araç ve dizi denetimleri gibi Ada'nın diğer özellikleri için temel oluşturuyor.
-
Ada, SPARK sayesinde formal proof alanında üstün. Rust tarafında buna benzer bir şey bulunamadı. Yüksek düzeyde güvenlik zorunluysa SPARK en uygun araç.
2 yorum
Telefondan yazdığım için bazı yazım hataları varmış hıçkırık
memory sadety -> memory safety olmalı.
burrow checker -> borrow checker
thread safery -> thread safety
:D