Как стать автором
Обновить

Комментарии 16

ИХМО, язык перегружен возможностями. Использовать его как «высокоуровневый ассемблер» — тяжело (я пробовал) — при адаптации перетащишь половину стандартной библиотеки, отображение структур языка на память определно хуже, чем в C; в прикладном программировании управляемые динамические языки типа Python выигрывают по всем значимым параметрам: проще, быстрее, мощнее. Остается только один сегмент — высокопроизводительные вычисления. Хотя язык типа Rust я ждал очень давно, результат подозрительно похож на C++ по перегруженности и запутанности.
ИМХО, запутанность Rust при мереходе с C/C++ скорее в смене философии — непривычно делается, иногда сложнее, много явных преобразований и тп. А вот запутанность C++ — знаешь как сделать вроде и даже компилируется, но нужно самому аккуратно обходить все способы отстрелить себе ногу. После некоторого привыкания писать на Rust вроде бы проще, чем на C++ — меньше нужно держать в голове. Но, вероятно, всё это слишком субъективно.
Гарантии времени компиляции корректной работы с памятью и отсутствия гонок — это мечта. C++ и Rust похожи принципом нулевых накладных расходов на неиспользуемые возможности, что хорошо. Вот только лучше бы он транслировался в С++ (как MoonScript транслируется в Lua), потому что иначе он вряд ли выживет в нише, где очень сильны позиции C++. С другой стороны, языку C++ 30 лет и, возможно, подходит время начать с нуля, учитывая развитие IT и удачные идеи из других языков.

имхо про скриптовые языки
в прикладном программировании управляемые динамические языки типа Python выигрывают по всем значимым параметрам: проще, быстрее, мощнее

Не всегда этот выигрыш окупается, когда нужно сделать шаг влево или вправо. К тому же, «проще, быстрее, мощнее» будет то, с чем есть много опыта. Лично у меня написание простого кода на Qt и Python занимает примерно одинаковое время. Ещё замечаю печальную закономерность, что графические программы на Python (PyQt), пусть не падают, но периодически виснут и не хотят работать как следует (взять хотя бы последние версии Electrum). Скриптовые языки дают расслабиться и разработчики закрывают глаза на такие вещи и качество ПО снижается. Честно говоря, я пользуюсь ровно двумя пакетами, написанными на Python, к качеству кода которых у меня нет нареканий: mercurial и fail2ban.

Конечно, я не отрицаю пользу скриптовых языков как вспомогательных (хороший пример: использование Lua для программирования ИИ ботов в играх, написанных на C).

Возвращаюсь к Rust. Хочется верить, что там, где в Python будет периодическая ругань и глюки в GUI, а в С++ будет сегфолт (что лучше), в Rust будет ошибка компиляции (что ещё лучше).
в прикладном программировании управляемые динамические языки типа Python выигрывают по всем значимым параметрам: проще, быстрее, мощнее

то-то Apple для прикладной разработки вместо динамического Objective-C выкатила Swift со строгой статической типизацией и относительно сложной системой типов, некоторые идеи которого почерпнуты в том числе и из Rust.
У меня мощное дежавю… habrahabr.ru/post/237059/

Имхо, не стоит настолько похожие тексты постить с разницей меньше чем сутки.
Та статья — немного странная компиляция из этой и ещё откуда-то, а эта — перевод оригинала.
Да и качество перевода разное.
Оригинал:
Dynamically sized types

Там:
Динамически типы изменяемого размера

Тут:
Типы с динамическим размером
Rust — мощный, и как только он доживет до беты, ему будет необходимы такие крутые чуваки, как TJ Holowaychuk. Поддержка и продвижение Mozilla или нашего родного Яндекса — это конечно жирный плюс для языка, но Rust будет нужен простой популяризатор из народа, глядя на которого другие программисты будут понимать, что на Rust и правда можно писать, даже если ты не большая компания.
Думать своей головой Головайчуки (pun not intended) программистов отучили?
А при чем тут думать головой или не думать? Только вот не надо говорить, что в мире IT не играет роль авторитет конкретных личностей. В свое время когда Кармак впрягался за OpenGL многие программисты которые стояли перед выбором использовать DirectX или OpenGL склонялись к выбору последнего, и часто тут решающим фактором было то, что отцы тоже его используют.
Git стал популярен только из-за того, что его сделал Линус, а потом появился Github. Не будь хотя бы одного их этого — все бы юзали какой-нибудь Mercurial или чего доброго SVN.
Так и TJ заработав себе авторитет в node.js заставил других программистов со стороны взглянуть на ноду серьезнее. В последствии, как мы знаем, TJ ушел в Go, и тем самым тоже обратил взгляды многих на этот язык.
Можно сколько угодно думать своей головой, но популярность языка или платформы коррелирует между качеством исполнения и тем, кто этим вообще пользуется.
Мне одному кажется, что Rust — это, по сути, калька с Object Caml?
Rust — не функциональный и не объектно-ориентированный язык, без карринга, глобального вывода типов и сборки мусора. Хотя, конечно, Rust ближе к OCaml чем к Haskell. С другой стороны, система типов Rust не имеет аналогов — других языков, основанных на понятии владения и заимствования, фактически, нет (Cyclone близок, но он скорее исследовательский язык, чем практический). Да, Rust вдохновлялся OCaml, но это совершенно разные языки.
Не калька.
Rust ориентирован на разработку с минимальным использованием GC. OCaml ориентирован на использование GC.
В OCaml своя, похожая на классическую, объектная система (которой мало кто пользуется, за ненадобностью). Rust использует классы типов, которые в API активно применяются.
> библиотеки (которые мы называем «ящиками» — «crates»)

Сленг — это, конечно, прикольно для комьюнити, но как же напрягает, когда только начинаешь разбираться. Такую головную боль вызывают все эти весёлые названия. Назвали бы проще, «packages» — и люди были бы им благодарны.
Да, «crates» так называются ещё с очень старой версии языка, когда был ещё первый Cargo. Но это, наверное, единственный такой термин. Даже «borrowed pointers» теперь называются просто ссылками.
А термин «package» уже занят — так называются пакеты Cargo. В пакете может быть много ящиков :) — максимум одна библиотека и много выполняемых бинарников.
> Сленг — это, конечно, прикольно для комьюнити, но как же напрягает, когда только начинаешь разбираться.

Согласен. Может через 20 лет, когда Rust основательно «проржавеет» это и будет восприниматься нормально, а пока выглядит несерьезно и только отталкивает от языка.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории