LINUX.ORG.RU

История изменений

Исправление aist1, (текущая версия) :

Так вот и получается, что отказались от GC, наделали костылей

Ну так это известная тема: или GC и безопасность памяти в рамках пермиссивной системы типов, но проблемы с большими кучами, или вечная борьба с линейными типами и тонкая (эффективная) работа с памятью, но не для любых структур. Выбирай, что тебе надо.

Я за Rust следил где-то с 2014-го, но для моих случаев он был слишком слаб как язык. У Rust и сейчас слабое метапрограммирование уровня типов, где-то на уровне С++98 или даже слабее (еще большая трясина Тьюринга, чем C++ TMP было на то время). На сколько я знаю, HKT до сих пор нет. В обсуждениях говорят про какие-то сложности в реализации, а это намекает на то, что язык изначально мыслился «слабым» и/или дизайнеры не понимали, для чего они вносят в такой язык мономорфные дженерики (в плане того, как и для чего эти дженерики будут потом использоваться в этом языке). Останавливало так же отсутствие хоть какой-то совместимости с С++. А переписывать всё на Rust – хватит, пробовали это с Java.

В пользу Rust по сравнению с С++ сейчас говорит более строгая в отношении памяти система типов, а так же значительно лучший тулинг. Последнее во многих случаях решает. Однако я для себя не вижу смысла переезжать на Rust и терять огромную унаследованную кодовую базу на С++. Гораздо проще подянуть тулинг в С++, чем всё переписывать на Rust.

UPD: Пока Rust пытался порешать искусственно созданные дизайнерами проблемы (отсутствие совместимости с С++, слабое метапрограммирование уровня типов и т.д.), С++ не стоял на месте и тоже развивался. И С++14 уже очень даже ничего. А С++20 так и вообще няшечка. К сожалению, С++ продолжает развиваться не в том направлении, в котором реально нужно. Тулинг останется на уровне 80-х годов прошлого века, о метапрограммировании уровня AST только разговоры и т.д. Так что у Rust в плане developer friendliness буде еще большой задел долгое время.

Исходная версия aist1, :

Так вот и получается, что отказались от GC, наделали костылей

Ну так это известная тема: или GC и безопасность памяти в рамках пермиссивной системы типов, но проблемы с большими кучами, или вечная борьба с линейными типами и тонкая (эффективная) работа с памятью, но не для любых структур. Выбирай, что тебе надо.

Я за Rust следил где-то с 2014-го, но для моих случаев он был слишком слаб как язык. У Rust и сейчас слабое метапрограммирование уровня типов, где-то на уровне С++98 или даже слабее (еще большая трясина Тьбринга, чем C++ TMP было на то время). На сколько я знаю, HKT до сих пор нет. В обсуждениях говорят про какие-то сложности в реализации, а это намекает на то, что язык изначально мыслился «слабым» и/или дизайнеры не понимали, для чего они вносят в такой язык мономорфные дженерики (в плане того, как и для чего эти дженерики будут потом использоваться в этом языке). Останавливало так же отсутствие хоть какой-то совместимости с С++. А переписывать всё на Rust – хватит, пробовали это с Java.

В пользу Rust по сравнению с С++ сейчас говорит более строгая в отношении памяти система типов, а так же значительно лучший тулинг. Последнее во многих случаях решает. Однако я для себя не вижу смысла переезжать на Rust и терять огромную унаследованную кодовую базу на С++. Гораздо проще подянуть тулинг в С++, чем всё переписывать на Rust.