LINUX.ORG.RU

Как вы изучали Rust после Perl

 , ,


0

3

Коллеги в продолжение похожей темы с C++ . Делал некоторые уже изменения https://github.com/totoshko88/RustConn/pull/365 но в основном с помощью Имитаторы Интелекта . Имеется большой опыт с Perl/Bash/etc

P.S Про это знаю https://oylenshpeegul.gitlab.io/from-perl-to-rust/introduction.html

★★★★★

0_0. Где пёрл, а где раст. Пёрл, вроде как, помер вообще и переходил я с него на питон, давным-давно, и с большим облегчением. На раст, обычно, переходят с сишки и плюсов, с ещё большим облегчением и даже, иногда, лёгкой эйфорией. Хотя да, у пёрла есть общее с сишками: птичья синтаксическая всратость(особенно плюсовый шаблониум), отрицательная технологичность, и довольно вонючий сектанский хакирный культ.

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

в ржавчине знаков препинания почти как в перловке. так что проблем с изучением не возникнет..

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

Причём тут какой Perl?

Я его учил четверть века назад и где он БЫЛ хорошо понимаю.

Но ещё раз. Для старта в Rust есть Rust Book. И его и надо читать.

Проблема в другом. Rust - мультипарадигменный язык программирования. А к таким ЯП желательно подходить после прохождения основ python, Си, haskell, с++/java/c# (типовому набору нормального ВУЗа).

AlexVR ★★★★★
()

После изучения rust приобрёл привычку опускать ;, если опускаю return

annulen ★★★★★
()

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

Perl неплохой язык для своих задач ( парсинг и тд и тп)

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

anonymous
()

Как вы изучали Rust после Perl

Никак. А что, это обязательная последовательность? Так и perl не изучал.

slackwarrior ★★★★★
()

Каждый изучает Rust по-своему, как и любой другой язык безотносительно Perl или чего-то другого. Лучший способ, который я нашел для себя, - это книги и практика в свободном темпе по своим собственным задачам.

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

А так, по языку Rust есть превосходная книга «Программирование на языке Rust» за авторством Джима Блэнди и Джейсона Орендорфа. Первое издание книги - это, вообще, одна из моих любимых книг по программированию в целом, а не только по языку Rust. Книга продается на Озоне.

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

Perl неплохой язык для своих задач ( парсинг и тд и тп)

Я забыл как страшный сон. А pcre.so доступно изо всех нормальных языков.

Shadow ★★★★★
()

Лучше бы они оставались на С. Ну как это читать теперь.. И три unsafe в одном методе, три!

fn copy_read<T: FromBytes>(view: Self::View<'_, T>) -> T {
        // Project `self` to `[u8]`.
        let ptr = Self::as_ptr(view);
        // SAFETY: This is a identity projection.
        let slice_view = unsafe {
            Self::project_view(
                view,
                core::ptr::slice_from_raw_parts_mut::<u8>(ptr.cast(), size_of::<T>()),
            )
        };

        let mut buf = MaybeUninit::<T>::uninit();
        // SAFETY:
        // - `buf.as_mut_ptr()` is valid for write for `size_of::<T>()` bytes.
        // - `buf` is local so `buf.as_mut_ptr()` cannot overlap with `slice_view`.
        unsafe { Self::copy_from_io(slice_view, buf.as_mut_ptr().cast()) };
        // SAFETY: `T: FromBytes` guarantee that all bit patterns are valid.
        unsafe { buf.assume_init() }
    }

https://github.com/torvalds/linux/blob/master/rust/kernel/io.rs

dynamic_cast ★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария