текущие языки базируются на идеях прошлого тысячелетия
это основная проблема современного ПО
оно всё построено на протекающих абстракциях
вот тебе сигнатура классическая на сегодняшний день
int Foo(int a, int b)
и что по ней можно сказать?
да примерно нихуя, кроме того, что мы работает с числами
мы не знаем, что за числа, в каком рейндже они вернутся, в каком должны входить
выкинется там эксепшен или нет
есть ли сайдэффекты или это чистая логика
можно сказать "ну надо названия давать нормальные, делать кастомные валидаторы вместо голых интов"
только это всё хуйня, потому что компилятор все равно на ваши названия и валидаторы, он пропустит этот код
Раст хотя бы сделал шаг вперед и может гарантировать, что код будет работать, а не упадет
а языки будущего смогут доказать, что это программа еще и правильно будет работать