Вики пишет что у Rust более безопасная работа с памятью ( т. е. наверно с утечкой памяти и обходится без сборки мусора), а также язык позволяет реализовать большинство понятий ООП при помощи других абстракций. Сочетает парадигмы
функционального и процедурного прог-ния.
Теперь про Go по большому счёту, Go является процедурным языком с поддержкой интерфейсов;
Реализация наследования обеспечиваются поддержкой вложения типов и свободно определяемыми интерфейсами. ( эти интерфейсы и есть абстракция наверно в Go)
Оба языка создавались как попытка создать замену языкам Си и C++.
Что можете сказать по поводу этих языков? Только пишете те кто имел опыт "общения" так сказать с этими языками.
Другие языки программирования и технологии
У Go и Rust много общего у них?
Языки совершенно разные:
Rust позиционируется как более безопасная замена C (и, потенциально, C++). Т. е. прежде всего, как язык системного программирования. Но при этом язык получился намного более сложным, чем C. И да, стабильности языку явно не хватает - множество изменений в каждом релизе.
Go - предельно простой язык прикладного уровня со сборкой мусора. Go можно использовать как процедурный язык, но, прежде всего, это язык, в котором ООП построено на композиции и фабриках - БЕЗ наследования и конструкторов. И нет, Go (как и любой другой язык с GC) никогда не рассматривался как замена С/C++. Скорее, как альтернатива Java, C#, Erlang/Elixir... Язык тоже развивается, но более плавно и так, чтобы как можно меньше ломать уже существующий код.
Rust имеет смысл использовать там, где требуется гарантированная предельная производительность, Go - в остальных случаях. Именно так, например, написан Docker: много Go и чуть-чуть Rust.
Rust позиционируется как более безопасная замена C (и, потенциально, C++). Т. е. прежде всего, как язык системного программирования. Но при этом язык получился намного более сложным, чем C. И да, стабильности языку явно не хватает - множество изменений в каждом релизе.
Go - предельно простой язык прикладного уровня со сборкой мусора. Go можно использовать как процедурный язык, но, прежде всего, это язык, в котором ООП построено на композиции и фабриках - БЕЗ наследования и конструкторов. И нет, Go (как и любой другой язык с GC) никогда не рассматривался как замена С/C++. Скорее, как альтернатива Java, C#, Erlang/Elixir... Язык тоже развивается, но более плавно и так, чтобы как можно меньше ломать уже существующий код.
Rust имеет смысл использовать там, где требуется гарантированная предельная производительность, Go - в остальных случаях. Именно так, например, написан Docker: много Go и чуть-чуть Rust.
имел опыт общения с растом
ооп в нём настолько конченый, что у меня не поворачивается язык сказать, что в расте он вообще есть, так что "при помощи других абстракций" - это слегка преуменьшение
как минимум наследование в расте отсутствует вообще, полиморфизм реализован... скажем так, слегка своеобразно, хотя в принципе можно сказать, что присутствует
в целом язык довольно сырой, многие вещи существуют на уровне rfc и только планируются к реализации, хотя то, что всякие классные штуки довольно активно появляются сначала в найтли, а потом и в стабильной версии языка, не может не радовать
в качестве замены сям подходит слабо в силу того, что часто попытки написать на нём что-то прикладное заканчивается тем, что приходится писать биндинги для существующих сишных библиотек, а это в свою очередь занимает кода чуть ли не больше, чем изначально задумывавшийся проект, причём большая часть - это unsafe-код
если бы всю экосистему изначально пилили на расте, было бы легче - собсна, поэтому многие вещи в последнее время и переписываются с нуля вместо биндингов
зато приятно удивил cargo
больше никаких сишных комбайнов типа мейкфайлов и кучи генераторов для них, т. к. в расте уже есть встроенная экосистема с пакетным менеджером и системой сборки
в общем, ознакомиться стоит хотя бы для общего развития
ооп в нём настолько конченый, что у меня не поворачивается язык сказать, что в расте он вообще есть, так что "при помощи других абстракций" - это слегка преуменьшение
как минимум наследование в расте отсутствует вообще, полиморфизм реализован... скажем так, слегка своеобразно, хотя в принципе можно сказать, что присутствует
в целом язык довольно сырой, многие вещи существуют на уровне rfc и только планируются к реализации, хотя то, что всякие классные штуки довольно активно появляются сначала в найтли, а потом и в стабильной версии языка, не может не радовать
в качестве замены сям подходит слабо в силу того, что часто попытки написать на нём что-то прикладное заканчивается тем, что приходится писать биндинги для существующих сишных библиотек, а это в свою очередь занимает кода чуть ли не больше, чем изначально задумывавшийся проект, причём большая часть - это unsafe-код
если бы всю экосистему изначально пилили на расте, было бы легче - собсна, поэтому многие вещи в последнее время и переписываются с нуля вместо биндингов
зато приятно удивил cargo
больше никаких сишных комбайнов типа мейкфайлов и кучи генераторов для них, т. к. в расте уже есть встроенная экосистема с пакетным менеджером и системой сборки
в общем, ознакомиться стоит хотя бы для общего развития
Дмитрий Шаститко
В 2016—2019 гг. в ежегодных опросах Stack Overflow Rust каждый раз занимает первое место в списке любимых языков. Источник Вики.
Чем это он всё таки им так понравился интересно? Как думаете ?
Чем это он всё таки им так понравился интересно? Как думаете ?
You're My Heart You're My Soul
Наследование НЕ является обязательным свойством ООП. Та же композиция обеспечивает точно такие же возможности без наследования.
Мантра "инкапсуляция, наследование, полиморфизм" - это только самый модный вариант ООП.
Мантра "инкапсуляция, наследование, полиморфизм" - это только самый модный вариант ООП.
f
Похожие вопросы
- Rust, C# или С++? Для каких целей эти языки? Плюсы, минусы..
- Можно ли использовать GO для программирования серверной части веб-приложений взамен PHP?
- в будущем заменит ли rust си/плюсы
- Какое у вас мнение по поводу языка Go?
- Решите срочно не с инета на Go
- Общая загруженность процессора при запущенном процессе с один потоком, выполняющим "while(true){}", не превышает 33%.
- Вопрос ТОЛЬКО программистам: Кто согласен, что за go to надо руки отрубать?
- чем опасен оператор Go To?
- Что делать если постоянно вылетает cs go.
- Хочу создать группу в вк на тему бесплатные скины CS:GO. Кто можит помочь?
Про Go "как попытка создать замену языкам Си и C++" это не мои слова, ист. Вики.
Моё мнение Google это же крупная компания, соответственно у них проекты крупные, на C/C++ компиляция и сборка программ происходит медленно, занимает много времени, чем больше строк или объём кода тем дольше идёт компиляция программ наверно.
И как результат, начинают разрабатывать новый язык для решения проблем возникающих в крупных проектах Гугла.
И у Go как пишет вики код программы транслируется в объектный код и исполняется не требуя виртуальной машины, т. е. происходит быстрее сборка программ, особенно в крупных проектах.
В веб-разработке там вроде без виртуальной машины не обходятся насколько я знаю. Если что я не силён в вебе.