11 puan yazan regentag 2024-10-20 | 2 yorum | WhatsApp'ta paylaş

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_Access bulunuyor. 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

 
regentag 2024-10-20

Telefondan yazdığım için bazı yazım hataları varmış hıçkırık

memory sadety -> memory safety olmalı.

 
jwh926 2024-10-22

burrow checker -> borrow checker
thread safery -> thread safety
:D