LINUX.ORG.RU

Rust и что оно такое?!

 , ,


0

5

Полез смотреть Rust - пропал.
Сильный ЯП.
Я правильно понимаю? Чтобы нормально писать надо:

  • в плюсы
  • в LISP
  • в Haskell
  • в OOP
  • в желание читать и смотреть хотя-бы это

У кого какой опыт перехода? На что стоит больше обратить внимание и уделить время?

Зоцепила @zurg - поклон (Стараться не тащить и имитировать привычки из других языков)



Последнее исправление: Eulenspiegel (всего исправлений: 2)
Ответ на: комментарий от alysnix

Сначала сформулируйте уж до конца свой «новый язык» и обсосите стандарт со всех сторон, выкиньте ненужное, занесите нужное. Выслушайте критиков, сделайте язык, хотя бы на бумаге, чтобы все возрадовались. Как только такой язык на бумаге будет, его реализуют и без вас.

Ты понимаешь, что только что описал C++?

anonymous
()
Ответ на: комментарий от anonymous

Для C++ вообще нет нормально работающих IDE если хоть что-то с шаблонами есть в проекте.

Ты просто рядовой балабол. В цпп любая иде сделана поверх шланга и она не может не работать. Ну кроме тех что совсем мусор, но это не проблема цпп.

Для раста тоже кстати все проблемы из-за макросов

Что значит «тоже»? Ты очередная жертва нейронки, которой сообщили что шаблоны это макросы? Проспись. Макросы не могут работать в принципе потому что это не макросы. Это просто самая тупая в мире текстовая подстановка. В тысячи раз хуже любого сишного макросы. А те макросы что обычные макросы это вообще позор аналогично спащенный из сишных макропроцессоров 80 годов. При том если в сишке додумались от них отказаться, но инновации сами себя не придумают.

без них все отлично работает.

Это полнейшее враньё. Тот же ra в принципе не умеет язык. Это тупой парсер с прикрученным поверх набором минорных костылей. Несмотря на то что раст сам по себе максимально убогой - они не смогли его реализовать. И поэтому там ничего не работает.

В последний раз когда я смотрел в ra ничего не работало вообще. У жб работало хоть что-то, но на самом деле ничего. Никаких ошибок и прочего он не генерировал.

И сейчас ничего не изменилось и не изменится. Причина проста - компилятор раста это мусор. Это не компилятор. Если максимально просто объяснить - это пару мусорных стадий. Сначала колхозные преобразования с рассахариванием, а потом перегонка в жсон. Поверх которого запускается примитивная лапша на ифах, которую они называют тайпчекром. Хотя там нет ни типов ни чекера. Потом этот жсон нелепо обходится и через сишный/крестовый код создаётся представление функция/глобальных объектов/прочего.

Он адски тормозит. Он ничего не может. Он падает при попытке разбора чего угодно. Он не умеет восстанавливаться. У него нет какого-то нормального диагностического движка. У него нет никаких модулей оно всё работает через сишный компилятор.

Всё что тебе может дать какие-то ошибки - это либо попытка запилить новый нормальный компилятор, либо запускать это убожество фоном. Но оно тормозит и не работает нормально. В принципе жб могли похакать свою реализацию + зная нелепость раст-адептов они максимум что в твоей жизни писали это какую-то лабу. И то в лучшем случае. Обычно они даже что такое яп не знают.

А зная как жб пилили свою обрезанную реализацию тс и как она в 10раз тормознее оригнальной. При том что не умеет даже в типы нормально. Оно то на старой реализации лагало, а на какой-то попытки допилить ещё это сразу похороны.

anonymous
()
Ответ на: комментарий от Zhbert

ну первое по желанию на самом деле, достаточно просто везде орать

Все наоборот. Орать необязательно, там и так хватает евангелистов. А вот если не захочишь ходить на парад в колготках, то в сообществе тебя быстро отменят и на работу нигде не возьмут.

anonymous
()
Ответ на: комментарий от panter_dsd

И сделаешь ты ее через жопу, кстати, но она будет работать.. Да, я так и делал. Лютейшая дичь получилась, но работала пару лет. А за эти пару лет я понял, что делал не так, как нужно и начал делать правильно, поняв это на практике.

Не уверен, что понял бы все это, изучая теорию.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)

в плюсы

Ну конечно если знаешь плюсы, в rust вкатываться проще потому что rust это c++ done right. Но необходимости изучить плюсы чтобы изучить rust конечно же никакой нет.

в LISP
в Haskell

Для изучения rust вообще не нужно.

в OOP

Понятие ООП сильно размыто, поэтому конкретизируй. Говорят что в rust нет ООП, но в rust есть ООП, в нём нет плюсового ООП. Поэтому плюсовый ООП с наследованием, ромбиками и прочим дерьмом не нужен, базовое понимание зачем связывать данные и код, RAII, static/dynamic dispatch не помешает, но мне кажется это не обязательно. Уже будешь писать код, и потом внезапно обнаружишь что это, оказывается, ООП.

в желание читать и смотреть хотя-бы это

Желание читать нужно обязательно, всегда и везде. Тратить время на некомпетентное (в массе) балабольство с ютуба - по желанию.

У кого какой опыт перехода? На что стоит больше обратить внимание и уделить время?

С плюсовым бэкграундом мне было достаточно прочитать растбук и начать писать код, потом ещё раз прочитать растбук и продолжить писать код. Внимание нужно уделить чтению документации и писанию кода, as easy as that. Я думаю что при наличии опыта в программировании это универсальный подход. При отсутствии опыта - сначала азы computer science и программирование на тупом языке типа C.

anonymous
()
Ответ на: комментарий от Eulenspiegel

я люблю макросы

Чувак, это не те макросы, что в лиспе. Если кратко, то это дерьмо собачье, и лучше бы вообще их не было. Единственная причина их сушествования в расте это неполноценность языка, который по выразительности дно уровня крестов. Без макросов была бы совсем тоска, но они применяются не для построения DSL, а для залатывания вопиющих лакун в самом язычке.

anonymous
()

по лямбда-исчислению надо ещё книжку страниц на 300 хотя бы осилить, с доказательствами и проч. формализмом. Без этого даже за хелловорлд не стоит садиться, быдлокодерский уровень.

seiken ★★★★★
()
Ответ на: комментарий от zurg

Уже нет, теперь же есть раст. Плюсы на списание, трата сил и времени на осиливание никогда уже себя не окупит.

Если такой код требует какого-то осиливания, то ты вообще профнепригоден:


#include <iostream>

int main() {

  auto lst = {1, 4, 6, 7, 8, 9};
  for (auto x : lst) {
    std::cout << "number " << x << "\n";
  }

  return 0;
}

Ну или:

#include <iostream>

int main() {

  std::string all;
  for (auto x : {"hello", "world", "ska", "don"}) {
    all += x;
    std::cout << "number " << x << "\n";
  }
  std::cout << "all = '" << all << "'\n";

  return 0;
}

Всё что новичку надо - строки поконкатенировать, циклом по массивам побегать. То есть, современные плюсы осиляемы любым чертилой за пять наносек, куда уж проще.

lesopilorama
()
Последнее исправление: lesopilorama (всего исправлений: 2)
Ответ на: комментарий от seiken

с доказательствами и проч. формализмом.

Доказательства нужны только если «и так не понятно». Бывают люди, кому лямбда-опердени довольно просты и очевидны, хотя доказать они их не могут. Это тоже годно, потому что работодателю надо не доказывать, а ехать.

lesopilorama
()
Ответ на: комментарий от thunar

Впрочем, может и не люди вовсе а рептилии?

с языка снял. я тоже думал, что сначала раст делали рептилоиды, а потом ксеноморфы. и на следующем этапе они объединятся. вот тогда и возникнет раст++, как сумма технологий.

alysnix ★★★
()
Ответ на: комментарий от anonymous

Американская военщина голосует сапогом и кольтом за повсеместное внедрение ржавого. Делаем выводы.

Так она раньше за C++ голосовала, а он оказался говном. Так что нет веры военщине США, очередное говно вполне могла притащить. А раз на этом основании Раст - говно, то значит C++ лучше.

lesopilorama
()

Я правильно понимаю? Чтобы нормально писать надо:

Взять интересную вам задачу и попробовать реализовать её на Rust. Это практичный способ освоить язык на реальных примерах.

в желание читать и смотреть хотя-бы это

Как минимум, понимать документацию на https://docs.rs

На что стоит больше обратить внимание и уделить время?

Для начала хотя бы на систему владения и заимствования, это ключевая особенность Rust.

Просто изучать Rust (как и любой другой язык) ни к чему. Нужно начать что-то делать.

eurozyeniz
()
Ответ на: комментарий от zurg

Haskell

Это в любом случае надо смотреть, он как матан, только программерский - «ум в порядок приводит».

Никакой это не матан, а уродство. Программерский матан - это лямбда исчисление, просто типизированное лямбда исчисление, System F и т.д. по лямбда кубу, и соответствие карри ховарда. Это база.

fulmar_lor
()
Ответ на: комментарий от alysnix

возникнет раст++

Вот только этого нам не хватало!

Сейчас он некоторого кода на плюсах голова кругом идет, про ржавчину отдельная история, в которой черт ногу сломал, руку оторвал, мозг опух…

Страшно представить что будет с людьми после объедения плюсов со ржавчиной. В дурку после раст++ отвозить что ли?

anonymous
()
Ответ на: комментарий от alysnix

Уважаемый alysnix, а ты так и не разобрался в том, как работает семантика перемещения в C++, хотя пишешь на C++ уже много лет? Почему вот у тебя тормозит код на C++, когда ты пытаешься использовать перемещение?

Просто, на расте не нужно об этом думать, чтобы получить быстрый и эффективный код (в отличие от C++). Многие растоманы даже и не подозревают, как там это все работает под капотом. Разве одного этого не достаточно для того, чтобы раст существовал?

anonymous
()
Ответ на: комментарий от anonymous

какую проблему решает rust, которую до него не решили ada/spark?

А вот представляешь себе, никакую. Скорость уже решена в C, мемори сейфти в аде, наличие библиотек - в питоне. Только вот какое дело: все вместе они не решены нигде. На древнем и дырявом C никто в здравом уме не пишет, ада вообще никому нихрен не нужна без коммьюнити и библиотек, а питон языкам программирования проигрывает по скорости в 30-70 раз. И только rust на данный момент умеет всё вместе - быть современным, фичастым языком на котором приятно и быстро писать, с офигительным тулингом, компилироваться в эффективный код, быть безопасным, иметь огромное коммьюнити и нативные библиотеки на все случаи жизни.

anonymous
()
Ответ на: комментарий от anonymous

Почему вот у тебя тормозит код на C++, когда ты пытаешься использовать перемещение?

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

Просто, на расте не нужно об этом думать, чтобы получить быстрый и эффективный код (в отличие от C++).

похоже в расте думать вообще не надо. про «семантику перемещения» в расте я не знаю и не могу разделить ваш оптимизм.

Разве одного этого не достаточно для того, чтобы раст существовал?

недостаточно. потому что язык нужен написания разного рода абстракций и описания сущностей предметной области, а не чтоб в нем эффективно «перемещать». это вон на складе ящики перемещают. а тут этого мало.

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)

Язык как язык. Корявый и неудобный, но не самый плохой в своей нише.

C++ и прочие окамли знать не обязательно, чтобы растом пользоваться, но в целом полезно, чтобы лучше понимать контекст в котором он возник.

PolarFox ★★★★★
()
Ответ на: комментарий от anonymous

все вместе они не решены нигде.

Решены в цпп.

На древнем и дырявом C никто в здравом уме не пишет

Пишут и в этом проблема. Как раз таки твои братья шизы это продвигают. Им сложно даже конкурировать с сишкой времён 90 поэтому приходится сводиться её к виду из 70.

ада вообще никому нихрен не нужна без коммьюнити

А какое комьюнити есть у краста? Ну кроме бесполезных вкатунов/прочих клоунов? Ах да, как я мог забыть. Ему всего лишь 15лет. А когда сишка начала побеждать - ей на это понадобилось сколько лет? Ах да. Ноль. А цпп? Наверное ему потребовалось 15лет? А нет. Ноль. Ну бывает.

а питон языкам программирования проигрывает по скорости в 30-70 раз.

Это типичное враньё. Что делают раст-шизы? Они прибегают к питонистам/ещё кому-то и рассказывают как они в 30раз всех побеждают. Правда оказывается что их поделка ничего не умеет, но табуны хомячья орут «мы победили». Потом люди начинают немного разбираться и спрашивать - а почему ничего не работает? Но шиза уже распространилась и этой людей затыкают.

Нет ни одного примера чтобы раст-шизы сделали нормальную копию даже уже существующего проекта не говоря о том чтобы сделать лучше.

И только rust на данный момент умеет всё вместе - быть современным, фичастым языком на котором приятно и быстро писать, с офигительным тулингом, компилироваться в эффективный код, быть безопасным, иметь огромное коммьюнити и нативные библиотеки на все случаи жизни.

Это какие? Тормозное позорище? Да. Фичей нет? Да. Потому что сделать поверх си с классами компилятора, а там фичей не так чтобы и много. Поэтому фичей в расте ровно ноль за исключением какого-то минорного сахарка.

Никакого эффективного кода нет. Есть просто ворованный компилятор и днище-код. Такое же днище с ллвм и без раста побеждает во всяких иных реализациях питона. Правда почему-то ими никто не пользуется. Потому как «делать быстро мусор» и делать быстро «удобно/применимо» - это две большие разницы. Да и быстро там нет.

Туллинг это какой? Лефтпад-помойка? Безопасный это что? Текущее вечно падающие дерьмо? Они не смогли за тысячи лет даже ide запилить, как и даже огрызок ворованного компилятор. Он тормозит/терчёт/выдаёт мусор вместо ошибок.

нативные библиотеки на все случаи жизни.

Это какие? Перечисли.

anonymous
()