История изменений
Исправление freecoder, (текущая версия) :
*const type
и *mut type
нужны практически только в unsafe
, в Питоне в таком случае вообще будет реализация на Си, что ни разу не проще.
«Два вида строк» - на самом деле удобная фича, помимо владеющей строки иметь еще и строковый срез. Единообразно с произвольными массивами и хорошо вписывается в концепцию владения/заимствования.
Что же касается прочих «умных указателей», то в Rust они имеют более прикладное значение, так как там понятие владения абстрактно и возведено в ранг идиомы программирования. Владеть можно вообще любыми ресурсами. Даже ссылки там называются не «ссылки», а «заимствования», так как это тоже более высокоуровневая идиома, чем просто ограниченный указатель на память (хотя с точки зрения реализации она этим является).
Поэтому если понять и принять концепцию владения и заимствования, вокруг которой построен Rust, именно как идиому программирования, то язык начинает играть совершенно другими, более высокоуровневыми красками, чем кажется изначально.
Исходная версия freecoder, :
*const type
и *mut type
нужны практически только в unsafe
, в Питоне в таком случае вообще будет реализация на Си, что ни разу не проще.
«Два вида строк» - на самом деле удобная фича, помимо владеющей строки иметь еще и строковый срез. Единообразно с произвольными массивами.
Что же касается прочих «умных указателей», то в Rust они имеют более прикладное значение, так как там понятие владения абстрактно и возведено в ранг идиомы программирования. Владеть можно вообще любыми ресурсами. Даже ссылки там называются не «ссылки», а «заимствования», так как это тоже более высокоуровневая идиома, чем просто ограниченный указатель на память (хотя с точки зрения реализации она этим является).
Поэтому если понять и принять концепцию владения и заимствования, вокруг которой построен Rust, именно как идиому программирования, то язык начинает играть совершенно другими, более высокоуровневыми красками, чем кажется изначально.