История изменений
Исправление KivApple, (текущая версия) :
Который совершенно неадекватен для микросервисов.
Да вполне можно на нём писать микросервисы.
кровавых разборок с borrow checking
Если писать на Rust как на Go - то есть всё долгоживущее класть в Arc (в языках со сборкой мусора объект был бы ссылкой) и не заморачиваться (а если это долгоживущее надо менять, то класть в Arc Mutex или угореть по иммутабельности и класть Arc в ArcSwap), то борьба с борроу чекером сведена к минимуму. Плюс создавать каналы и гонять объекты между тредами/фичами через каналы. Плюс сейчас можно нейронку попросить «исправь все ошибки компиляции» и уйти пить кофе, пока с борроу чекером борется она (frontier модели уже весьма хорошо умеют исправлять ошибки заимствования).
А вообще проблемы с борроу чекером возникают в первую очередь при попытках писать на Rust как на C++.
Хватит тащить в язык программирования очередную порцию новомодного сахара и прочей фигни.
В Go нет банальных enum (в смысле типизированных, а не просто констант), которые существовали задолго до появления Go. Иронично, что newtype (более новая концепция для массовых языков, чем enum) при этом в Go есть. Плюс надо постоянно писать if err != nil (проблема, возникшая из-за отказа от исключений, поэтому не имеющая аналогов в языках с исключениями), когда в том же Rust (который тоже пошёл по пути отказа от исключений) есть элегантный оператор вопроса. Это достаточно базовые вещи.
По сути хорошие идеи Go как раз докрутили в языках после него. Go популяризовал корутины и ошибки вместо исключений.
Исправление KivApple, :
Который совершенно неадекватен для микросервисов.
Да вполне можно на нём писать микросервисы.
кровавых разборок с borrow checking
Если писать на Rust как на Go - то есть всё долгоживущее класть в Arc (в языках со сборкой мусора объект был бы ссылкой) и не заморачиваться (а если это долгоживущее надо менять, то класть в Arc Mutex или угореть по иммутабельности и класть Arc в ArcSwap), то борьба с борроу чекером сведена к минимуму. Плюс создавать каналы и гонять объекты между тредами/фичами через каналы. Плюс сейчас можно нейронку попросить «исправь все ошибки компиляции» и уйти пить кофе, пока с борроу чекером борется она (frontier модели уже весьма хорошо умеют исправлять ошибки заимствования).
А вообще проблемы с борроу чекером возникают в первую очередь при попытках писать на Rust как на C++.
Хватит тащить в язык программирования очередную порцию новомодного сахара и прочей фигни.
В Go нет банальных enum (в смысле типизированных, а не просто констант), которые существовали задолго до появления Go. Плюс надо постоянно писать if err != nil (проблема, возникшая из-за отказа от исключений, поэтому не имеющая аналогов в языках с исключениями), когда в том же Rust (который тоже пошёл по пути отказа от исключений) есть элегантный оператор вопроса. Это достаточно базовые вещи.
По сути хорошие идеи Go как раз докрутили в языках после него. Go популяризовал корутины и ошибки вместо исключений.
Исправление KivApple, :
Который совершенно неадекватен для микросервисов.
Да вполне можно на нём писать микросервисы.
кровавых разборок с borrow checking
Если писать на Rust как на Go - то есть всё долгоживущее класть в Arc (в языках со сборкой мусора объект был бы ссылкой) и не заморачиваться (а если это долгоживущее надо менять, то класть в Arc Mutex или угореть по иммутабельности и класть Arc в ArcSwap), то борьба с борроу чекером сведена к минимуму. Плюс создавать каналы и гонять объекты между тредами/фичами через каналы. Плюс сейчас можно нейронку попросить «исправь все ошибки компиляции» и уйти пить кофе, пока с борроу чекером борется она (frontier модели уже весьма хорошо умеют исправлять ошибки заимствования).
А вообще проблемы с борроу чекером возникают в первую очередь при попытках писать на Rust как на C++.
Хватит тащить в язык программирования очередную порцию новомодного сахара и прочей фигни.
В Go нет банальных enum (в смысле типизированных, а не просто констант), которые существовали задолго до появления Go. Плюс надо постоянно писать if err != nil, когда в том же Rust есть элегантный оператор вопроса.
По сути хорошие идеи Go как раз докрутили в языках после него. Go популяризовал корутины и ошибки вместо исключений.
Исходная версия KivApple, :
Который совершенно неадекватен для микросервисов.
Да вполне можно на нём писать микросервисы.
кровавых разборок с borrow checking
Если писать на Rust как на Go - то есть всё долгоживущее класть в Arc (в языках со сборкой мусора объект был бы ссылкой) и не заморачиваться (а если это долгоживущее надо менять, то класть в Arc Mutex или угореть по иммутабельности и класть Arc в ArcSwap), то борьба с борроу чекером сведена к минимуму. Плюс создавать каналы и гонять объекты между тредами/фичами через каналы. Плюс сейчас можно нейронку попросить «исправь все ошибки компиляции» и уйти пить кофе, пока с борроу чекером борется она (frontier модели уже весьма хорошо умеют исправлять ошибки заимствования).
Хватит тащить в язык программирования очередную порцию новомодного сахара и прочей фигни.
В Go нет банальных enum (в смысле типизированных, а не просто констант), которые существовали задолго до появления Go. Плюс надо постоянно писать if err != nil, когда в том же Rust есть элегантный оператор вопроса.
По сути хорошие идеи Go как раз докрутили в языках после него. Go популяризовал корутины и ошибки вместо исключений.