История изменений
Исправление KivApple, (текущая версия) :
зачем вы, гады, всё это на**вертили?!
Вот, интересное наблюдение, я плохо въезжаю в большие объёма кода на Python сгенерированные нейронкой (в закрытом цикле, где нейронка пишет код, ревьит его и т. д., а человек только даёт ТЗ). А вот в большие объёмы кода на Rust сгенерированные нейронкой въезжаю нормально. Это, конечно, субъективно, но то ли Rust понятнее за счёт мощной типизации, то ли нейронки на нём чище пишут.
А в ваших языках с исключениями нету перезапусков. Сильно вы страдаете от их отсутствия? Вот, так же и с исключениями в Go. Просто нужно принять, что у Go есть определённый подход и не пытаться гладить его против шерсти.
Надо смотреть на языки, которые были популярны на момент появления Go. Там везде были исключения. Go забрал исключения, но не предложил удобный синтаксис для обработки ошибок в Go-style. Этот подход потом до ума довёл Rust (который тоже решил, что исключения не нужны) введя оператор вопроса.
Да и на С можно писать. Но зачем? Т.е. какие выгоды я получаю от использоания Rust для микросервисов?
Для Rust есть веб-фреймворки (самый популярный Axum, с 26к звёзд, 1.4к форков и 400+ контрибьюторов на GitHub) с батарейками. На C популярных веб фреймворков нет, будешь либо изобретать велосипед, либо использовать чей-то велосипед с сообществом из 3.5 анонимусов. Сам факт, что под Rust есть популярные веб-фреймворки показатель, что микросервисы на нём таки пишут. Меньше, чем на некоторых других языках (но Rust и моложе многих из них), но пишут и это уже не является чем-то маргинальным.
Ещё на Rust можно более-менее безопасно перекладывать JSON'ы. unsafe нужен в биндингах к нативным либам, каким-то сверхоптимизациям и т. п. В сервисе ты можешь обмазаться Arc и готовыми либами типа axum и sqlx. И в целом без особого напряга твой сервис не будет содержать фатальных ошибок типа переполнений буфера и т. п. На C накосячить гораздо проще и как-то не так сравнить строку, забыть освободить память и т. п.
На самом деле Rust в некотором смысле даже безопаснее Go, потому что в Go есть NPE (и его очень легко вызвать даже в идеоматическом коде), а в Rust нет (есть паникующий unwrap, но это явный opt-in в падению в случае отсутствия значения). При этом тот же Axum умеет ловить панику и ронять один обработчик вместо всего приложения (в отличии от NPE Go, который по сути SegFault убивающий весь процесс).
Исправление KivApple, :
зачем вы, гады, всё это на**вертили?!
Вот, интересное наблюдение, я плохо въезжаю в большие объёма кода на Python сгенерированные нейронкой (в закрытом цикле, где нейронка пишет код, ревьит его и т. д., а человек только даёт ТЗ). А вот в большие объёмы кода на Rust сгенерированные нейронкой въезжаю нормально. Это, конечно, субъективно, но то ли Rust понятнее за счёт мощной типизации, то ли нейронки на нём чище пишут.
А в ваших языках с исключениями нету перезапусков. Сильно вы страдаете от их отсутствия? Вот, так же и с исключениями в Go. Просто нужно принять, что у Go есть определённый подход и не пытаться гладить его против шерсти.
Надо смотреть на языки, которые были популярны на момент появления Go. Там везде были исключения. Go забрал исключения, но не предложил удобный синтаксис для обработки ошибок в Go-style. Этот подход потом до ума довёл Rust (который тоже решил, что исключения не нужны) введя оператор вопроса.
Да и на С можно писать. Но зачем? Т.е. какие выгоды я получаю от использоания Rust для микросервисов?
Для Rust есть веб-фреймворки (самый популярный Axum, с 26к звёзд, 1.4к форков и 400+ контрибьюторов на GitHub) с батарейками. На C популярных веб фреймворков нет, будешь либо изобретать велосипед, либо использовать чей-то велосипед с сообществом из 3.5 анонимусов. Сам факт, что под Rust есть популярные веб-фреймворки показатель, что микросервисы на нём таки пишут. Меньше, чем на некоторых других языках, но пишут и это уже не является чем-то маргинальным.
Ещё на Rust можно более-менее безопасно перекладывать JSON'ы. unsafe нужен в биндингах к нативным либам, каким-то сверхоптимизациям и т. п. В сервисе ты можешь обмазаться Arc и готовыми либами типа axum и sqlx. И в целом без особого напряга твой сервис не будет содержать фатальных ошибок типа переполнений буфера и т. п. На C накосячить гораздо проще и как-то не так сравнить строку, забыть освободить память и т. п.
На самом деле Rust в некотором смысле даже безопаснее Go, потому что в Go есть NPE (и его очень легко вызвать даже в идеоматическом коде), а в Rust нет (есть паникующий unwrap, но это явный opt-in в падению в случае отсутствия значения). При этом тот же Axum умеет ловить панику и ронять один обработчик вместо всего приложения (в отличии от NPE Go, который по сути SegFault убивающий весь процесс).
Исправление KivApple, :
зачем вы, гады, всё это на**вертили?!
Вот, интересное наблюдение, я плохо въезжаю в большие объёма кода на Python сгенерированные нейронкой (в закрытом цикле, где нейронка пишет код, ревьит его и т. д., а человек только даёт ТЗ). А вот в большие объёмы кода на Rust сгенерированные нейронкой въезжаю нормально. Это, конечно, субъективно, но то ли Rust понятнее за счёт мощной типизации, то ли нейронки на нём чище пишут.
А в ваших языках с исключениями нету перезапусков. Сильно вы страдаете от их отсутствия? Вот, так же и с исключениями в Go. Просто нужно принять, что у Go есть определённый подход и не пытаться гладить его против шерсти.
Надо смотреть на языки, которые были популярны на момент появления Go. Там везде были исключения. Go забрал исключения, но не предложил удобный синтаксис для обработки ошибок в Go-style. Этот подход потом до ума довёл Rust (который тоже решил, что исключения не нужны) введя оператор вопроса.
Да и на С можно писать. Но зачем? Т.е. какие выгоды я получаю от использоания Rust для микросервисов?
Для Rust есть веб-фреймворки (самый популярный Axum, с 26к звёзд, 1.4к форков и 400+ контрибьюторов на GitHub) с батарейками. На C популярных веб фреймворков нет, будешь либо изобретать велосипед, либо использовать чей-то велосипед с сообществом из 3.5 анонимусов. Сам факт, что под Rust есть популярные веб-фреймворки показатель, что микросервисы на нём таки пишут.
Ещё на Rust можно более-менее безопасно перекладывать JSON'ы. unsafe нужен в биндингах к нативным либам, каким-то сверхоптимизациям и т. п. В сервисе ты можешь обмазаться Arc и готовыми либами типа axum и sqlx. И в целом без особого напряга твой сервис не будет содержать фатальных ошибок типа переполнений буфера и т. п. На C накосячить гораздо проще и как-то не так сравнить строку, забыть освободить память и т. п.
На самом деле Rust в некотором смысле даже безопаснее Go, потому что в Go есть NPE (и его очень легко вызвать даже в идеоматическом коде), а в Rust нет (есть паникующий unwrap, но это явный opt-in в падению в случае отсутствия значения). При этом тот же Axum умеет ловить панику и ронять один обработчик вместо всего приложения (в отличии от NPE Go, который по сути SegFault убивающий весь процесс).
Исправление KivApple, :
зачем вы, гады, всё это на**вертили?!
Вот, интересное наблюдение, я плохо въезжаю в большие объёма кода на Python сгенерированные нейронкой (в закрытом цикле, где нейронка пишет код, ревьит его и т. д., а человек только даёт ТЗ). А вот в большие объёмы кода на Rust сгенерированные нейронкой въезжаю нормально. Это, конечно, субъективно, но то ли Rust понятнее за счёт мощной типизации, то ли нейронки на нём чище пишут.
А в ваших языках с исключениями нету перезапусков. Сильно вы страдаете от их отсутствия? Вот, так же и с исключениями в Go. Просто нужно принять, что у Go есть определённый подход и не пытаться гладить его против шерсти.
Надо смотреть на языки, которые были популярны на момент появления Go. Там везде были исключения. Go забрал исключения, но не предложил удобный синтаксис для обработки ошибок в Go-style. Этот подход потом до ума довёл Rust (который тоже решил, что исключения не нужны) введя оператор вопроса.
Да и на С можно писать. Но зачем? Т.е. какие выгоды я получаю от использоания Rust для микросервисов?
Для Rust есть веб-фреймворки (самый популярный Axum, с 26к звёзд, 1.4к форков и 400+ контрибьюторов на GitHub) с батарейками. На C популярных веб фреймворков нет, будешь либо изобретать велосипед, либо использовать чей-то велосипед с сообществом из 3.5 анонимусов. Сам факт, что под Rust есть популярные веб-фреймворки показатель, что микросервисы на нём таки пишут.
Ещё на Rust можно более-менее безопасно перекладывать JSON'ы. unsafe нужен в биндингах к нативным либам, каким-то сверхоптимизациям и т. п. В сервисе ты можешь обмазаться Arc и готовыми либами типа axum и sqlx. И в целом без особого напряга твой сервис не будет содержать фатальных ошибок типа переполнений буфера и т. п. На C накосячить гораздо проще и как-то не так сравнить строку, забыть освободить память и т. п.
На самом деле Rust в некотором смысле даже безопаснее Go, потому что в Go есть NPE (и его очень легко вызвать даже в идеоматическом коде), а в Rust нет (есть паникующий unwrap, но это явный opt-in в падению в случае отсутствия значения).
Исправление KivApple, :
зачем вы, гады, всё это на**вертили?!
Вот, интересное наблюдение, я плохо въезжаю в большие объёма кода на Python сгенерированные нейронкой (в закрытом цикле, где нейронка пишет код, ревьит его и т. д., а человек только даёт ТЗ). А вот в большие объёмы кода на Rust сгенерированные нейронкой въезжаю нормально. Это, конечно, субъективно, но то ли Rust понятнее за счёт мощной типизации, то ли нейронки на нём чище пишут.
А в ваших языках с исключениями нету перезапусков. Сильно вы страдаете от их отсутствия? Вот, так же и с исключениями в Go. Просто нужно принять, что у Go есть определённый подход и не пытаться гладить его против шерсти.
Надо смотреть на языки, которые были популярны на момент появления Go. Там везде были исключения. Go забрал исключения, но не предложил удобный синтаксис для обработки ошибок в Go-style. Этот подход потом до ума довёл Rust (который тоже решил, что исключения не нужны) введя оператор вопроса.
Да и на С можно писать. Но зачем? Т.е. какие выгоды я получаю от использоания Rust для микросервисов?
Для Rust есть веб-фреймворки (самый популярный Axum, с 26к звёзд, 1.4к форков и 400+ контрибьюторов на GitHub) с батарейками. На C популярных веб фреймворков нет, будешь либо изобретать велосипед, либо использовать чей-то велосипед с сообществом из 3.5 анонимусов. Сам факт, что под Rust есть популярные веб-фреймворки показатель, что микросервисы на нём таки пишут.
Ещё на Rust можно более-менее безопасно перекладывать JSON'ы. unsafe нужен в биндингах к нативным либам, каким-то сверхоптимизациям и т. п. В сервисе ты можешь обмазаться Arc и готовыми либами типа axum и sqlx. И в целом без особого напряга твой сервис не будет содержать фатальных ошибок типа переполнений буфера и т. п. На C накосячить гораздо проще и как-то не так сравнить строку, забыть освободить память и т. п.
Исходная версия KivApple, :
зачем вы, гады, всё это на**вертили?!
Вот, интересное наблюдение, я плохо въезжаю в большие объёма кода на Python сгенерированные нейронкой (в закрытом цикле, где нейронка пишет код, ревьит его и т. д., а человек только даёт ТЗ). А вот в большие объёмы кода на Rust сгенерированные нейронкой въезжаю нормально.
А в ваших языках с исключениями нету перезапусков. Сильно вы страдаете от их отсутствия? Вот, так же и с исключениями в Go. Просто нужно принять, что у Go есть определённый подход и не пытаться гладить его против шерсти.
Надо смотреть на языки, которые были популярны на момент появления Go. Там везде были исключения. Go забрал исключения, но не предложил удобный синтаксис для обработки ошибок в Go-style. Этот подход потом до ума довёл Rust (который тоже решил, что исключения не нужны) введя оператор вопроса.
Да и на С можно писать. Но зачем? Т.е. какие выгоды я получаю от использоания Rust для микросервисов?
Для Rust есть веб-фреймворки (самый популярный Axum, с 26к звёзд, 1.4к форков и 400+ контрибьюторов на GitHub) с батарейками. На C популярных веб фреймворков нет, будешь либо изобретать велосипед, либо использовать чей-то велосипед с сообществом из 3.5 анонимусов. Сам факт, что под Rust есть популярные веб-фреймворки показатель, что микросервисы на нём таки пишут.
Ещё на Rust можно более-менее безопасно перекладывать JSON'ы. unsafe нужен в биндингах к нативным либам, каким-то сверхоптимизациям и т. п. В сервисе ты можешь обмазаться Arc и готовыми либами типа axum и sqlx. И в целом без особого напряга твой сервис не будет содержать фатальных ошибок типа переполнений буфера и т. п. На C накосячить гораздо проще и как-то не так сравнить строку, забыть освободить память и т. п.