The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Релиз языка программирования Rust 1.24

16.02.2018 12:22

Состоялся релиз языка программирования Rust 1.24, развиваемого проектом Mozilla. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime.

По структуре язык Rust напоминает C++, но существенно отличается в некоторых деталях реализации синтаксиса и семантики. Автоматическое управление памятью избавляет разработчика от манипулирования указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки в один клик. Для размещения библиотек поддерживается репозиторий crates.io.

В подготовке нового выпуска приняли участие 152 разработчика. Основные новшества:

  • Реализована утилита rustfmt для автоматического формирования исходных текстов в соответствии с рекомендациями по оформлению кода на языке Rust. Для установки утилиты следует использовать команду "rustup component add rustfmt-preview";
  • Включена по умолчанию инкрементальная компиляция, позволяющая пересобирать только изменившиеся части кода. Данный режим позволяет значительно сократить время сборки проекта при повторной компиляции после внесения мелких правок. Кроме того, в новом выпуске параметр codegen-units по умолчанию увеличен до 16, что позволило существенно ускорить процесс сборки за счёт распараллеливания операций, ценой незначительного снижения производительности результирующего исполняемого файла (для обеспечения максимальной производительности можно указать codegen-units=1);
  • Устранено неопределённое поведение обработчиков краха в контексте функций FFI (Foreign Function Interface), работа которых могла отличаться в зависимости от ABI. Например, до сих пор оставался непредсказуемым код на базе "C" ABI:
    
       extern "C" fn panic_in_ffi() {
           panic!("Test");
       }
    
    В Rust 1.24 такой код теперь всегда приводит к прерыванию выполнения, вместо неопределённого поведения;
  • До 10 раз ускорено выполнение операции поиска символов внутри строки при помощи функции str::find, которая переписана с использованием memchr. На memchr также переведена реализация [u8]::contains, но ускорение её работы не столь внушительно (ускорение примерно в 3 раза). С использованием ассемблерных инструкций проведена оптимизация f32::min и f32::max;
  • В разряд стабильных переведена новая порция API, в том числе RefCell::replace, RefCell::swap и std::sync::atomic::spin_loop_hint;
  • Обеспечена возможность использования внутри неизменных выражений (constant, static) функций Cell, RefCell, UnsafeCell, {integer}::min_value, max_value, mem’s size_of, align_of, ptr::null, null_mut, а также функции работы с различными целыми типами Atomic (AtomicBool::new, AtomicPtr::new, AtomicIsize::new и т.п.). Например, теперь можно указать "static COUNTER: AtomicUsize = AtomicUsize::new(1);"
  • Добавлена поддержка новых целевых платформ armv4t-unknown-linux-gnueabi и aarch64-unknown-openbsd.


  1. Главная ссылка к новости (https://blog.rust-lang.org/201...)
  2. OpenNews: Релиз языка программирования Rust 1.23
  3. OpenNews: Facebook работает над реализацией сервера Mercurial на языке Rust
  4. OpenNews: Эксперимент по разработке частей ядра Linux на языке Rust
  5. OpenNews: Третий выпуск операционной системы Redox OS, написанной на языке Rust
  6. OpenNews: В Firefox добавлен CSS-движок Stylo, написанный на языке Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/48087-rust
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (183) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 12:46, 16/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как оно по сравнению с Vala ?
     
     
  • 2.2, Аноним (-), 12:59, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Что такое Vala? Вы откуда к нам приехали? У нас только го, раст, питон, си, ява и тп.
     
     
  • 3.3, Хипстер и смузихлеб (?), 13:08, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В Solus Linux используют Vala, Go, C.
     
  • 3.8, Аноним (-), 13:22, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ясно откуда, из GNOME, конечно же
     
  • 3.9, Nexmean (?), 13:22, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Гибкий, быстрый, строгий. Пожалуй самый строгий из императивных языков программирования. При это присутствует возможность построения абстракций (~нулевой стоимости) практически любой сложности, но ради справедливости стоит отметить, что не любой. Например HKT ещё не завезли и не факт что вообще завезут.
     
     
  • 4.56, angra (ok), 16:31, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Пожалуй самый строгий из императивных языков программирования

    Ты забыл добавить самое важное ", которые я знаю".
    Например go более строгий.

     
     
  • 5.70, Nexmean (?), 17:52, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ага, строгость уровня interface{} и передачи в горутины не thread-safety типов.
     
     
  • 6.74, Аноним (-), 18:05, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Гагага, есть наблюдательные. У нас строго типизированный язык, но мы тут сделаем хак... оп, и у нас interface{} по функциям гуляет
     
     
  • 7.78, angra (ok), 18:24, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Смысл строгой типизации не в том, чтобы не дать программисту возможности сделать желаемое, а в том, чтобы не дать ему случайно сделать то, чего он не хотел. Использование interface{} это явный выбор программиста, а вот преобразования типов компилятором в выражениях без соответсвующего прямого указания это неявное действие.
    Ну и отдельно отмечу, что interface{} это совсем не синоним произвольного типа. Без _явного_ преобразования в конкретный тип единственное, что можно с таким объектом сделать, это сохранить и передать куда-либо еще. К примеру такой код работать не будет:
    func add ( a,b interface{} ) interface{} {
    return a+b
    }
     
     
  • 8.84, Аноним (-), 19:31, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    всё так Да Да вот func some a interface b a MyType при некотор... текст свёрнут, показать
     
     
  • 9.116, angra (ok), 22:27, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно Потому оно и называется type assertion, а не type cast У него есть вто... текст свёрнут, показать
     
     
  • 10.181, Аноним (-), 13:17, 19/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да вот беда, вот вам пример http mobile opennet ru opennews art shtml num 480... текст свёрнут, показать
     
  • 8.85, Аноним (-), 19:33, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А вот вопрос interface можно ли считать более безопасным аналогом указателя н... текст свёрнут, показать
     
     
  • 9.117, angra (ok), 22:39, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В общем-то да Интерфейсная переменная в go являет собой структуру из двух полей... текст свёрнут, показать
     
  • 3.18, Аноним (-), 13:43, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    У вас это у кого? Леммингов?
     
  • 3.19, AKR (ok), 13:49, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Elementary OS - https://ru.wikipedia.org/wiki/Elementary_OS (7-ой в списке https://distrowatch.com)
    Большая часть окружения написана на языке Vala, что позволяет достигнуть производительности, сравнимой с языком C.
     
     
  • 4.53, Аноним (-), 16:10, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Большая часть окружения написана на языке Vala, что позволяет достигнуть производительности,
    > сравнимой с языком C.

    А гнум написман прямо на С, что не мешает ему безбожно тормозить. Что сказать то хотел?

     
     
  • 5.79, AKR (ok), 18:24, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Большая часть окружения написана на языке Vala, что позволяет достигнуть производительности,
    >> сравнимой с языком C.
    > А гнум написман прямо на С, что не мешает ему безбожно тормозить.
    > Что сказать то хотел?

    Только то, что это не такой уж и неизвестный язык программирования, раз целая DE и разный софт под неё на Vala написаны, причём на дистрибутиве не из редких.

     
  • 5.89, Аноним (-), 20:11, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А гнум написман прямо на С, что не мешает ему безбожно тормозить.

    Когда он был написан на C и Vala, он не тормозил. Тормозить стал, когда хипстота напихала туда JS.

     
  • 4.66, Аноним (-), 17:22, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Elementary OS - https://ru.wikipedia.org/wiki/Elementary_OS (7-ой в списке https://distrowatch.com)
    > Большая часть окружения написана на языке Vala, что позволяет достигнуть производительности, сравнимой с языком C.

    Транслирование в сишку не дает автоматически сишной скорости. Да и завязка на GTK и glib слишком сильна. Нишевой ЯП, в общем.

     
  • 3.55, Онаним (?), 16:30, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Валя - это транспайлер урезанной старой версии C# в C. В целом достаточно приятная и полезная штука.
     
     
  • 4.135, neAnonim (?), 01:20, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    только коммерческие проекты на ней писать нельзя так как она гном библиотеки линкует by design.
     
     
  • 5.177, Нет ты (?), 14:21, 18/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Под desktop легко, там LGPL как в Qt. Но если конечно же, кто-то сделал независимую реализацию GLib/GObject под zLib/MIT/Boost/BSD тогда внимания Vala приобрела намного больше. Чудесный язык, но перешел на сторону D с C++, доволен, особенно после того как добрали interop с C++ (что не мало важно, есть много хороших вещей на нем, а изобретать велосипед не охота).
     
     
  • 6.178, Нет ты (?), 15:45, 18/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И да, GNOME & GTK там не обязательны, только GLib/GObject.
     
  • 3.179, Аноним (-), 17:08, 18/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Что такое Vala? Вы откуда к нам приехали? У нас только го,
    > раст, питон, си, ява и тп.

    Си у вас нету, не пользуются хипстеры сями.

     
  • 2.4, TormoZilla (?), 13:15, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Это стиральный порошок?
     
     
  • 3.5, Аноним (-), 13:18, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Подобно Objective-C но для GTK

    https://en.wikipedia.org/wiki/Vala_%28programming_language%29

     
  • 2.7, evkogan (?), 13:22, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Vala это обертка над Си да еще и заточенная исключительно на GTK.
    Гораздо интереснее сравнение с Go. При том что тут нет сборщиков мусора и т.п, но есть защита по работе с памятью. К сожалению ощущение что кроме как внутри Мозилы его никто серьезно не пользует. То ли есть объективные недостатки, то ли просто не пробовали не ясно.
     
     
  • 3.13, Nexmean (?), 13:27, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Объективный недостаток - Rust слишком не похож на мейнстримные языки. Соответственно подавляющая масса программистов чтобы вкатиться должна потратить много времени и усилий, многие просто бросят это дело в самом начале, скажут, мол язык фекалия с инопланетными синтаксисом и/или семантикой и пойдут дальше кодить на Java/C/C++/C#/Go/JavaScript/Python.
     
     
  • 4.33, Аноним (-), 15:09, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вот только не надо. У го тоже вполне инопланетный синтаксис как бы его не называли C-подобным, а многое вообще схоже с растом.
     
     
  • 5.42, Аноним (-), 15:38, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    У Go вполне читабельный и понятный синтаксис. А главное, - он примитивный. Есть, конечно, бредовые моменты, как например, методы с большой буквы, или массивы с квадратными скобками впереди. Но в целом, идеи интересные.
     
     
  • 6.57, angra (ok), 16:37, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Есть, конечно, бредовые моменты, как например, методы с большой буквы

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


     
     
  • 7.67, Аноним (-), 17:28, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Любой язык, который навязывает оформление кода (в т.ч. и выбор имен) - broken by design.
     
     
  • 8.71, Аноним (-), 17:52, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    В смысле, заставляет расставлять везде скобочки и , не разрешает начинать имена... текст свёрнут, показать
     
     
  • 9.86, Аноним (-), 20:05, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет Любое утверждение можно довести до абсурда Но когда программа ломается и м... текст свёрнут, показать
     
     
  • 10.104, Аноним (-), 21:13, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    this Ведь если заменить пробелы на скобочки довольно частая категория ошибо... большой текст свёрнут, показать
     
     
  • 11.105, Аноним (-), 21:27, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да, тот же В C, к примеру, как код ни оформляй, на какой строке и сколькими про... большой текст свёрнут, показать
     
     
  • 12.108, Аноним (-), 21:51, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ох уж это выборочное восприятие А если недоставить пару скобок Или поставить н... большой текст свёрнут, показать
     
     
  • 13.115, Аноним (-), 22:18, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Изменится Но в отличие от эта ошибка будет видна вполне себе невооруженным глаз... большой текст свёрнут, показать
     
     
  • 14.118, Аноним (-), 22:48, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В отличие от чего Вы продолжайте, не стесяйтесь А то, как оно отлично видно ... большой текст свёрнут, показать
     
     
  • 15.126, Аноним (-), 23:15, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В отличие от пробелов, имеющих семантику отличную от тупо разделитель , напри... большой текст свёрнут, показать
     
  • 15.159, anomymous (?), 13:55, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Пойнт в том, что считать табулированный блок одним куском кода в этом примере бу... текст свёрнут, показать
     
     
  • 16.162, Аноним (-), 14:47, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сам придумал что-то, сам же опроверг Пойнт в том, что передерг и спрыг с темы, ... текст свёрнут, показать
     
  • 13.158, anomymous (?), 13:53, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ключевое слово тут - пару Скобки парные, и это несколько страхует от ошибок ... текст свёрнут, показать
     
     
  • 14.164, angra (ok), 15:16, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Если тебе выделить небольшой фрагмент кода и сказать, что в нем есть ошибка, то ... текст свёрнут, показать
     
  • 10.120, angra (ok), 22:56, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Сейчас я тебе скажу страшное, приготовься В любом ЯП, например С, в котором иде... большой текст свёрнут, показать
     
     
  • 11.127, Аноним (-), 23:26, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Раз уж мы срываем покровы, то я тебе шепну по секрету, что я говорил об именах, ... большой текст свёрнут, показать
     
     
  • 12.132, angra (ok), 00:21, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    До тех пор, пока ты не создаешь отдельный пакет, ты можешь начинать идентификато... текст свёрнут, показать
     
     
  • 13.134, Аноним (-), 01:03, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    У нас с вами разные представления о том, какое из этих ограничений более существ... текст свёрнут, показать
     
     
  • 14.139, angra (ok), 01:42, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Это не просто разные представления, это синдром утенка во всей красе Интересно... текст свёрнут, показать
     
     
  • 15.140, Аноним (-), 02:49, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Про синдром утёнка - это мимо Во всяком случае, в том, что касается выбора имён... большой текст свёрнут, показать
     
     
  • 16.161, Аноним (-), 14:42, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Казалось бы, причем тут ржавчина ... текст свёрнут, показать
     
     
  • 17.168, Другой Аноним (?), 16:50, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    ну, как-бы тема называется Релиз языка программирования Rust 1 24 , так-что ржа... текст свёрнут, показать
     
     
  • 18.170, Аноним (-), 17:05, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А, ну да Обсуждали синтактическую особенность гошных экспортов В теме о ржавчи... текст свёрнут, показать
     
  • 16.172, angra (ok), 17:54, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно, никакого синдрома утенка Ведь всем понятно, что смена регистра одной б... текст свёрнут, показать
     
  • 16.175, анон (?), 05:20, 18/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    уж лучше один раз переименовать, чем при использовании держать в уме, стиль иден... текст свёрнут, показать
     
  • 13.183, adolfus (ok), 14:31, 19/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А пацаны, которые писали стандарты C С и те, кто их реализовывал на практике, ... текст свёрнут, показать
     
  • 8.92, Аноним (-), 20:15, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ПРАВИЛЬНО, КакХочуТакПишу, не_надо_мне_ничего_навязывать ... текст свёрнут, показать
     
     
  • 9.160, anomymous (?), 13:57, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Именно так Code style выбирается в рамках проекта и под проект Попытка зачесат... текст свёрнут, показать
     
     
  • 10.165, Аноним (-), 15:23, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    rustfmt может настраиваться под ваш стиль ... текст свёрнут, показать
     
  • 4.102, Ordu (ok), 20:43, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Объективный недостаток - Rust слишком не похож на мейнстримные языки. Соответственно подавляющая масса программистов чтобы вкатиться должна потратить много времени и усилий

    Ой, да ладно.

    https://www.rust-lang.org/pdfs/Rust-Tilde-Whitepaper.pdf

    Стартап, и в нём веб-программеры на ходу переучиваются с ruby на rust, переписывая код с ruby на rust. Достигая при этом 100% успеха, ссутся кипятком от сокращения расхода памяти на 92%, и не могут нарадоваться на то, что баги теперь проявляются не во время выполнения, а на этапе компиляции.

    Веб-программисты, Карл!

     
     
  • 5.143, Аноним (-), 06:24, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Пусть играются, рубистов не жалко.
     
     
  • 6.151, Ordu (ok), 07:59, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Пусть играются, рубистов не жалко.

    Это я "играюсь" с rust'ом. Они зарабатывают денег на нём.

     
  • 3.17, Аноним (-), 13:40, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >  Vala это обертка над Си да еще и заточенная исключительно на GTK.

    Не вводите людей в заблуждение, это не так: vala - это не обертка над Си, его компилятор транслирует код написанный на vala с си-сорцы. Заточена она не под GTK, а использует GObject - объектную систему построенную на glib и libc (больше зависимостей нет). Про нужность той же glib если даже писать на си рассказывать думаю не нужно. Связь между glib и GTK для самых маленьких в картинках: https://en.wikipedia.org/wiki/GLib
    Vala - штука довольно мощная, гибкая и точно должна понравится сишникам. А что rust? Я сишник, мне должен понравиться rust?

     
     
  • 4.20, yet another anonymous (?), 13:50, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > .. Про нужность
    > той же glib если даже писать на си рассказывать думаю не
    > нужно.

    По мне, "нужность" glib --- очень спорный момент.

     
  • 4.21, Аноним (-), 13:58, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Про нужность той же glib если даже писать на си рассказывать думаю не нужно.

    Вот и предлагается не писать на си, а писать на Rust.

     
     
  • 5.24, Анончик (?), 14:32, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Тот самый случай, когда даже си лучше чем это.
     
     
  • 6.25, Аноним (-), 14:43, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Тот самый случай, когда даже си лучше чем это.

    Чем лучше?

     
     
  • 7.27, Анончик (?), 14:59, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Чем это.
     
  • 4.26, Хряк (?), 14:53, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Заточена она не под GTK

    А на чем кроме gtk можно писать гуи-приложения?

     
     
  • 5.31, Аноним (-), 15:08, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Я пишу на MFC. Рекомендую.
     
     
  • 6.35, Хряк (?), 15:18, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Можно подробнее? Есть биндинг?
     
     
  • 7.145, Аноним (-), 06:48, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А для Erlang нет биндинга к MFC?
    Ну так чисто поржать.
     
  • 4.76, Аноним (-), 18:16, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >>  Vala это обертка над Си да еще и заточенная исключительно на GTK.
    > Не вводите людей в заблуждение, это не так: vala - это не обертка над Си, его компилятор транслирует код написанный на vala с

    Это и есть "обертка над си". Не пойму, чего в этом особенного.

     
     
  • 5.169, Другой Аноним (?), 16:52, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда и rust можно назвать обёртка над llvm, ведь по факту это так.
     
     
  • 6.171, Аноним (-), 17:13, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Тогда и rust можно назвать обёртка над llvm, ведь по факту это так.

    Можно. Разрешаю. Такая же обертка, как и шланг.
    А если уж не различать "по факту" между компилятором высокоуровневого ЯП и низкоуровневым бэкэндом-инфраструктурой для компилирования, то тогда и питоны с жабаскриптами тоже считай почти нативщина,  ведь там же есть JIT, которые суть обертка ...

     
  • 4.94, Аноним (-), 20:17, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Vala - штука довольно мощная, гибкая и точно должна понравится сишникам. А
    > что rust? Я сишник, мне должен понравиться rust?

    Rust должен нравиться плюсовикам, но никак не сишникам.

     
  • 4.103, Ordu (ok), 20:51, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Нет Мне Vala совершенно не нравится ООП -- sucks Все эти вызовы через виртуал... большой текст свёрнут, показать
     
  • 2.39, Крутой аноним (?), 15:31, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Как оно по сравнению с Vala ?

    Вроде разработчикам Gnome очень нравиться Rust и они работают над его интеграцией,
    пока что наравне с Vala, а потом кто знает, много было постов на https://www.reddit.com/r/rust/ об этом.

     
     
  • 3.46, Хряк (?), 16:01, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В gnome-builder в меню выбора языка есть: С, С++, С#, Vala, Python, JavaScript и все.
    Rust отсутствует. Считаю, это показатель.
     
     
  • 4.152, Крутой аноним (?), 11:41, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > В gnome-builder в меню выбора языка есть: С, С++, С#, Vala, Python, JavaScript и все.

    Rust отсутствует. Считаю, это показатель.

    https://medium.com/@alex285/rust-rls-on-gnome-builder-gnome-3-26-ee2b9fe2

     
  • 3.88, smuzihleb (?), 20:09, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    это тем патлатым придуркам на скутерах, что испоганили гном? не мудрено - их патлатые друзья уже испоганили файрфокс
     

     ....большая нить свёрнута, показать (81)

  • 1.6, Аноним (-), 13:20, 16/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Годно, нужно. Надеюсь, скоро заменит богомерзкие unmanaged языки.
     
     
  • 2.10, Аноним (-), 13:25, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нет, в "богомерзком" C++ ОО сделано и то элегантней.
     
     
  • 3.15, Nexmean (?), 13:32, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В Rust'е нет Java-like ООП-а. Rust немного о другом. В Rust'е балом правит статический полиморфизм взамен полиморфизму подтипов. Хотя в случае чего, можно конечно и полиморфизмом подтипов воспользоваться, но статический полиморфизм покрывает большинство ситуаций и к тому же дешевле, нежели полиморфизм подтипов(прямой вызов функции обращением по адресу функции, вместо того, чтобы для начала найти этот адрес в таблице виртуальных методов.
     
     
  • 4.146, Аноним (-), 06:50, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > В Rust'е нет Java-like ООП-а. Rust немного о другом. В Rust'е балом
    > правит статический полиморфизм взамен полиморфизму подтипов. Хотя в случае чего, можно
    > конечно и полиморфизмом подтипов воспользоваться, но статический полиморфизм покрывает
    > большинство ситуаций и к тому же дешевле, нежели полиморфизм подтипов(прямой вызов
    > функции обращением по адресу функции, вместо того, чтобы для начала найти
    > этот адрес в таблице виртуальных методов.

    Елки моталки скинте ссылку на все термины то что вы тут понаписали, а то нефига вообще непонятно .

     
     
  • 5.163, Аноним (-), 14:52, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Елки моталки скинте ссылку на все термины то что вы тут понаписали,
    > а то нефига вообще непонятно .

    Тут одно из двух:
    1. С ООП вы всерьез не сталкивались, и скорее всего оно и не сильно нужно.
    2. Уроки сами себя не сделают!

     
  • 3.29, Аноним (-), 15:04, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Нет, в "богомерзком" C++ ОО сделано и то элегантней.

    В С++ ОО нет и никогда не было(и никогда не будет).
    Попробуйте создать производный класc от std::vector ололо.

     
     
  • 4.51, Анончик (?), 16:08, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    И что же помешает создать производный класс от std::vector, а? Он вроде как не final, бери да создавай.
     
  • 4.73, freehck (ok), 18:00, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > В С++ ОО нет и никогда не было(и никогда не будет).

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

     
     
  • 5.155, Аноним (-), 13:27, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Не спорю, в С++ он реализован xерово, но в Rust ещё ужасней.
     
     
  • 6.184, freehck (ok), 09:02, 20/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Не спорю, в С++ он реализован xерово,

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

    > но в Rust ещё ужасней.

    В Rust вообще говоря не ООП, а полиморфизм типов, почти один-в-один классы в Haskell. Это не ужасно, это просто другой подход.

    Притом более гибкий подход, по сравнению с традиционными ООП в C++/Java. Как пример: в OCaml есть тоже есть ООП, но в большинстве случаев удобнее использовать полиморфизм типов и модули.

     
  • 2.11, Аноним (-), 13:26, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –4 +/
    managed языки не нужныне надо оберегать программиста от возможных ошибок, надо учить так чтобы программисты их не делали.
     
     
  • 3.14, NoName (?), 13:30, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    C++ это легаси язык для старперов которые помнят все друрости реализованные там.
     
     
  • 4.34, Аноним (-), 15:11, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Действительно теперь подход проще: хренакс хренакс и в продакшен.
     
     
  • 5.147, Аноним (-), 07:00, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Действительно теперь подход проще: хренакс хренакс и в продакшен.

    Клиент не будет ждать пока Вы разработаете спустя 30 лет свою программу когда Ваш коллега с меньшим ... опытом организует MVP за один вечер.

    К сожалению, многие MVP так и не доходят до уровня решения на C/C++ из-за неокупаемости.

    При всем моем уважении к C/C++ это фундаментальные языки для систем фундаментальных и отработанных и требующих соответствующего системного подхода: вроде Баз данных, систем под нагрузкой и т.д.

    Задачи вроде веба ну вы в курсе кто там Ruby и PHP педалируют во всю. И главное работодатели довольны наняв школьников и студентов за десятую зарплаты нормального ынжынера.

    Все дело в деньгах карл а не в идеалах

     
     
  • 6.173, Аноним (-), 18:39, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Действительно теперь подход проще: хренакс хренакс и в продакшен.
    > Клиент не будет ждать пока Вы разработаете спустя 30 лет свою программу
    > когда Ваш коллега с меньшим ... опытом организует MVP за один
    > вечер.

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

    Клиенты разные бывают. Есть такие, которым важно качество, и они не прочь заплатить за него.

     
  • 3.28, Аноним (-), 14:59, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > надо учить так чтобы программисты их не делали.
    > сам не способ написать простое предложение без ошибок.
     
     
  • 4.32, Аноним (-), 15:09, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> сам не способ написать простое предложение без ошибок.
    >не способ

    ты тже

     
     
  • 5.148, Аноним (-), 07:02, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>> сам не способ написать простое предложение без ошибок.
    >>не способ
    > ты тже

    и я тоже. пожетому вот LFLAGS=-Wall -g3

     
  • 3.82, Аноним (-), 18:38, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >managed языки не нужныне надо оберегать программиста от возможных ошибок, надо учить так чтобы программисты их не делали.

    Ядро Линукс течёт. Я все сказал.

     
     
  • 4.98, Аноним (-), 20:24, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Школота_ничего_не знает,_но_всюду_лезет.jpg
     
  • 2.61, Аноним (-), 17:07, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы заменить самого себя нужно познать рекурсию.
     
     
  • 3.64, Аноним (-), 17:12, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Без TCO ничего не выйдет.
     
     
  • 4.149, Аноним (-), 07:04, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Без TCO ничего не выйдет.

    У Вас рекурсия с зади не оптимизирована

     

  • 1.16, yet another anonymous (?), 13:34, 16/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Определённое напряжение вызывает назойливое проталкивание инфраструктуры доставки бинарников ("пакетный менеджер, позволяющий получить нужные для программы библиотеки в один клик") и сборки ("Включена по умолчанию инкрементальная компиляция,"). Питоний подход к оформлению тоже не радует: "Реализована утилита rustfmt для автоматического формирования исходных текстов в соответствии с ...".

     
     
  • 2.23, noname.htm (ok), 14:26, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    rustfmt скорее как аналог go fmt было запилено.
     
  • 2.30, Аноним (-), 15:05, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Cargo вполне умеет тащить зависимости просто с git сервера, или брать их локально с фc, так что, нет.
     
     
  • 3.58, yet another anonymous (?), 16:57, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Cargo вполне умеет тащить зависимости просто с git сервера, или брать их
    > локально с фc, так что, нет.

    А "язык отдельно, управление кодом --- отдельно" --- это устаревшая концепция, о которой вспоминают только враги всего прогрессивного, да?

     
     
  • 4.133, Аноним (-), 00:51, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а в чем собственно проблема? Cargo - система сборки вроде cmake, все что она делает - это скачивает нужные файлы и вызывает конпелятор (rustc) с нужными опциями. Единственное не отдельное - это то, что она пилится самими разработчиками языка
     
  • 2.38, Крутой аноним (?), 15:29, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Определённое напряжение вызывает назойливое проталкивание инфраструктуры

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

    Причем не знаю как с пакетным менеджером питона, но здесь все сделано по уму.
    Можно с помощью cargo-vendor все зависимости упаковать, так что сборка не требует
    доступа к Интернету.

    > Питоний подход к оформлению тоже не радует:

    А как review кода проводить без автоматического форматирования?

     
     
  • 3.47, Аноним (-), 16:04, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >А как review кода проводить без автоматического форматирования?

    review нужно только 6ыдлокоду индусов. Код это искусство. Проводя review вы обижаете художника.

     
     
  • 4.60, yet another anonymous (?), 17:07, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>А как review кода проводить без автоматического форматирования?
    > review нужно только 6ыдлокоду индусов. Код это искусство. Проводя review вы обижаете
    > художника.

    Аналогично: review процессы отдельно, язык отдельно. Не?

     
     
  • 5.65, Илья (??), 17:15, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>>А как review кода проводить без автоматического форматирования?
    >> review нужно только 6ыдлокоду индусов. Код это искусство. Проводя review вы обижаете
    >> художника.
    > Аналогично: review процессы отдельно, язык отдельно. Не?

    Я бы ещё частично кодоанализ вынес из языка и соглашения об оформлении кода.

    Мне почти всё нравится в rust, но когда snake case проверяется прямо компилятором - этого я не пойму.

     
  • 5.90, Крутой аноним (?), 20:13, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>>А как review кода проводить без автоматического форматирования?
    >> review нужно только 6ыдлокоду индусов. Код это искусство. Проводя review вы обижаете
    >> художника.
    > Аналогично: review процессы отдельно, язык отдельно. Не?

    Так язык и reivew связаны только тем что аналог clang-format идет вместе с компилятором
    rust, впрочем clang-format вроде с clang тоже устанавливается.

     
     
  • 6.99, Аноним (-), 20:24, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Так язык и reivew связаны только тем что аналог clang-format идет вместе
    > с компилятором
    > rust, впрочем clang-format вроде с clang тоже устанавливается.

    Это аналог не clang-format, а gofmt. Разница в том, что первый можно настроить.

     
     
  • 7.119, Крутой аноним (?), 22:56, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Это аналог не clang-format, а gofmt. Разница в том, что первый можно настроить.

    Что-то ты гонишь чувак. А rustfmt.toml это типа не настройки?

     
  • 4.62, Илья (??), 17:09, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Зачем вы пишите в такой провокативной манере?
     
     
  • 5.75, другой аноним (?), 18:08, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Отличная манера. Аноним, продолжай. Нужно больше примеров с критицизмом и ненавистью.
     
  • 3.59, yet another anonymous (?), 17:06, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Определённое напряжение вызывает назойливое проталкивание инфраструктуры
    > ИМХО это одна из основных фич, вспомните боль подключения чего-то стороннего
    > в свой кросс-платформенный проект, здесь это можно сделать практически одной строчкой.

    Концептуально совпадает с современной Web-разработкой. Интересно, что эту концепцию тянут в разработку ядер и прочей встройки.

    > Причем не знаю как с пакетным менеджером питона, но здесь все сделано
    > по уму.
    > Можно с помощью cargo-vendor все зависимости упаковать, так что сборка не требует
    > доступа к Интернету.

    Это не существенно. Вам отгружают фактически BLOB, содержимое (состояние, история) которого вы никак не контролируете.


     
     
  • 4.91, Крутой аноним (?), 20:15, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/


    > Это не существенно. Вам отгружают фактически BLOB, содержимое (состояние, история) которого
    > вы никак не контролируете.

    В смысле blob? Сборка все время осуществляется из исходников, они распакованные лежат в ~/.cargo/что-то там, IDE вас перебросит туда если вы сделаете "goto" и именно из этих исходников соберется ваш проект.

     
     
  • 5.141, Вареник (?), 03:19, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    IDE? На хрусте? :)
     
  • 3.69, Аноним (-), 17:36, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А как review кода проводить без автоматического форматирования?

    Внезапно, глазами. Вообще не понимаю, как одно с другим связано.

     
     
  • 4.93, Крутой аноним (?), 20:16, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> А как review кода проводить без автоматического форматирования?
    > Внезапно, глазами. Вообще не понимаю, как одно с другим связано.

    Вот именно что глазами, просматривать сотни строк изменений глазами,
    из-за того что другая IDE по другому код отформатировала,
    вам свои глаза что ли не жалко и свое время?

     
     
  • 5.107, Аноним (-), 21:47, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >>> А как review кода проводить без автоматического форматирования?
    >> Внезапно, глазами. Вообще не понимаю, как одно с другим связано.
    > Вот именно что глазами, просматривать сотни строк изменений глазами,
    > из-за того что другая IDE по другому код отформатировала,
    > вам свои глаза что ли не жалко и свое время?

    Различные (распространенные) варианты форматирования кода меня лично не напрягают при рецензировании. Лишь бы суть происходящего была понятна. Если вас форматирование вводит в ступор, то возможно, вам рано рецензировать. Разумеется, если вам попался код, претендующий на первую десятку в IOCCC[1], то рецензирование можно завершить сразу с комментарием "переформатировать".

    [1]: https://www.ioccc.org/

     
     
  • 6.110, другой Аноним (?), 21:59, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >>>> А как review кода проводить без автоматического форматирования?
    >>> Внезапно, глазами. Вообще не понимаю, как одно с другим связано.
    >> Вот именно что глазами, просматривать сотни строк изменений глазами,
    >> из-за того что другая IDE по другому код отформатировала,
    >> вам свои глаза что ли не жалко и свое время?
    > Различные (распространенные) варианты форматирования кода меня лично не напрягают при
    > рецензировании. Лишь бы суть происходящего была понятна.

    Яснопо. Расходимся. "Рецензиант" даже не понял сути проблемы.

     
     
  • 7.113, Аноним (-), 22:03, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Яснопо. Расходимся. "Рецензиант" даже не понял сути проблемы.

    Видимо, потому что у меня она просто не возникает. Может, вы объясните?

     
     
  • 8.176, анон (?), 05:31, 18/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    три слова системы контроля версий... текст свёрнут, показать
     
  • 6.122, Крутой аноним (?), 23:04, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    При чем здесь вообще общие стили, и насколько они напрягают Мы говорим о различ... большой текст свёрнут, показать
     
     
  • 7.129, Аноним (-), 23:38, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > При чем здесь вообще общие стили, и насколько они напрягают?
    > Мы говорим о различии стилей, то есть приходит тебе на review патч,
    > там на самом деле изменений две строчки, а еще 300 строчек изменены,
    > потому что табы пробелами заменены, или перед фигурными скобочками
    > перевод строки поставлен, и т.д. и т.п.,

    Тулзовины не спасут от отсутствия культуры работы с кодом.

     
  • 7.138, Аноним (-), 01:34, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > то есть приходит тебе на review патч, там на самом деле изменений две строчки, а еще 300 строчек изменены,

    потому что

    кто-то чересчур вумный запустил для всего файла

    > такие тулзовины типа rustfmt

    А если не можешь настроить IDE, чтобы она не ломала существующее форматирование, то надо менять. Либо IDE, либо профессию.

     
  • 3.97, Аноним (-), 20:22, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Определённое напряжение вызывает назойливое проталкивание инфраструктуры
    > ИМХО это одна из основных фич, вспомните боль подключения чего-то стороннего
    > в свой кросс-платформенный проект

    …и npm leftpad.

     
     
  • 4.124, Крутой аноним (?), 23:07, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>> Определённое напряжение вызывает назойливое проталкивание инфраструктуры
    >> ИМХО это одна из основных фич, вспомните боль подключения чего-то стороннего
    >> в свой кросс-платформенный проект
    > …и npm leftpad.

    Не знаю насчет javascript, но это же

    а)Компилируемый язык
    б)Все зависимости версионированы

    Поэтому у "npm leftpad" маленькая вероятность случиться.

     
  • 2.77, Аноним84701 (ok), 18:24, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Питоний подход к оформлению тоже не радует: "Реализована утилита rustfmt для автоматического формирования исходных  текстов в соответствии с ...".

    Ээ-э, а как же clang-format? Или тот же indent - там автор видимо вообще угнал машину времени, чтобы иметь возможность подсмотреть "питоний подход к оформлению" :)

     
     
  • 3.83, yet another anonymous (?), 18:53, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    indent --- не часть компиляторного проекта. А вот clang-format, кажется, вместе с libformat --- в репозитории clang. Что говорит о тяге CLang/LLVM команды к построению летающих комбайнов.
     
     
  • 4.95, Крутой аноним (?), 20:17, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > indent --- не часть компиляторного проекта. А вот clang-format, кажется, вместе с
    > libformat --- в репозитории clang. Что говорит о тяге CLang/LLVM команды
    > к построению летающих комбайнов.

    Скорее их лучшее пониманию проблем разработчиков C++ работающих в больших командах.

     
  • 4.106, Аноним84701 (ok), 21:30, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > indent --- не часть компиляторного проекта.

    Пока не прибивают гвоздями к компилятору, не вижу разницы.
    Тем более, прикрутить автоформат к готовому парсеру проще, чем клепать свой (недо)парсер (или его эрзац на регекспах, в которых потом и сам черт ногу сломит), а "нужность" на практике показана хотя бы тут:
    https://github.com/torvalds/linux/blob/master/Documentation/process/coding-sty
    > But even if you fail in getting emacs to do sane formatting, not everything is lost: [B]use indent[/B]

     

     ....большая нить свёрнута, показать (31)

  • 1.22, Аноним (-), 14:14, 16/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > panic!("Test");

    Этой строчкой можно охарактеризовать весь язык.
    В любой непонятной ситуации паниковать:))

     
     
  • 2.40, RazrFalcon (ok), 15:31, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    abort() выбор мастеров?
     
  • 2.81, Аноним (-), 18:32, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> panic!("Test");
    > Этой строчкой можно охарактеризовать весь язык.
    > В любой непонятной ситуации паниковать:))

    А что, лучше продолжать работу в UB, портить файлы и данные?


     
     
  • 3.123, Аноним (-), 23:05, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше сразу продумывать работу функции до конца и не приделывать ей пятое колесо и делать субъективные выводы о том, что если она вдруг не сделает "panic" (или abort), то данные обязательно испортятся. Мне уже тошно читать иногда исходники firefox'а мозиловцев на русте. Что не строчка, то перечисление, завернутое в класс(точнее наоборот), то какой нибудь panic.
    Ситуации разные бывают, и иногда все же важнее не упасть в обморок, а успеть сохранить не сохраненные данные.
     
     
  • 4.125, Крутой аноним (?), 23:10, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Лучше сразу продумывать работу функции до конца и не приделывать ей пятое
    > колесо и делать субъективные выводы о том, что если она вдруг
    > не сделает "panic" (или abort), то данные обязательно испортятся. Мне уже
    > тошно читать иногда исходники firefox'а мозиловцев на русте. Что не строчка,
    > то перечисление, завернутое в класс(точнее наоборот), то какой нибудь panic.
    > Ситуации разные бывают, и иногда все же важнее не упасть в обморок,
    > а успеть сохранить не сохраненные данные.

    А можно пример? Во-первых классов в rust вообще нет.
    Во-вторых ошибки и обязательность их обработки это то в чем Rust силен.
    Всякие "?", .map_err и т.д. и т.п. в C++ об этом можно было только мечтать,
    или пилить свой framework вместо работы.

     
  • 4.150, Ordu (ok), 07:51, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Rust has a tiered error-handling scheme If something might reasonably be ab... большой текст свёрнут, показать
     

  • 1.41, Аноним (-), 15:33, 16/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Может кто знает прямые урлы на скачивание архивов? Без rustup?
     
     
  • 2.48, Аноним (-), 16:05, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Может кто знает прямые урлы на скачивание архивов? Без rustup?
    > скочал-запустил

    И эти люди смеются над вендузятниками.

     
     
  • 3.63, Илья (??), 17:10, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Для федоры из dnf вытянуть можно
     
  • 3.80, Аноним (-), 18:25, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > И эти люди смеются над вендузятниками.

    Грешно смеяться над убогими.

     

  • 1.44, Dmitry77 (ok), 15:55, 16/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Судя по тому что на нём пишут операционные системы - это скорее всего замена С
     
     
  • 2.49, Аноним (-), 16:06, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Судя по тому что на нём пишут операционные системы -

    то у когото слишком много свободного времени.

     

  • 1.54, adolfus (ok), 16:19, 16/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Исошного стандарта нет -- значит, нет и языка. Фтoпкy.
     
     
  • 2.87, Аноним (-), 20:07, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Исошные стандарты устаревающие каждые три года - вот это сильно лучше.
     
     
  • 3.109, Аноним (-), 21:54, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Исошные стандарты устаревающие каждые три года - вот это сильно лучше.

    Лучше. Уже хотя бы тем, что стандарт есть, и ему следуют все, включая компиляторописателей.

     
  • 3.136, neAnonim (?), 01:31, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    c99 ISO/IEC 9899:1999, a past version of the C programming language standard.
    Источник wikipedia
     
     
  • 4.144, Аноним (-), 06:30, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Так и запишем: использует википедию вместо мозга.

    https://www.iso.org/standard/57853.html

     
  • 2.100, Аноним (-), 20:28, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Исошного стандарта нет -- значит, нет и языка. Фтoпкy.

    Сюрприз: исошные стандарты языков появляются существенно позднее самих языков.

     
     
  • 3.112, Аноним (-), 22:01, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Исошного стандарта нет -- значит, нет и языка. Фтoпкy.
    > Сюрприз: исошные стандарты языков появляются существенно позднее самих языков.

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

     
     
  • 4.114, другой Аноним (?), 22:05, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Так что cишка пребывала 20 лет в небытие и положении местячковой игрушки

    пофиксил.

     

  • 1.68, Аноним (-), 17:33, 16/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Этот чудесный проект использует в качестве бэкенда LLVM, из-за чего не может собраться на некоторых архитектурах: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=881845

    В результате под эти архитектуры нельзя собрать новые версии Firefox и librsvg, которую хипстота решила перевести на rust.

     
     
  • 2.72, НяшМяш (ok), 17:54, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Так вроде бы правильные пацаны, помимо архитектуры не как у всех, сидят на ESR версиях?
     
     
  • 3.131, Аноним (-), 00:11, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    ESR-версии рано или поздно закончатся, а для librsvg такого понятия вообще нет. А Мозилле до кроссплатформенности, судя по всему дела нет, они больше на винду ориентируются.
     
  • 2.101, Аноним (-), 20:32, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Этот чудесный проект использует в качестве бэкенда LLVM, из-за чего не может
    > собраться на некоторых архитектурах: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=881845
    > В результате под эти архитектуры нельзя собрать новые версии Firefox и librsvg,
    > которую хипстота решила перевести на rust.

    А что он должен использовать? Если бы они сами писали бекенд с нуля, с поддержкой архитектур было бы ещё хуже. Не ссы, починят.

     
     
  • 3.130, Аноним (-), 00:08, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    gcc же, ну
     
     
  • 4.137, Аноним (-), 01:32, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > gcc же, ну

    И были бы комментарии в духе «Игрушечный ЯП, транслируется в си! Неосилили свой бэкэнд/можно сразу на си писать! Однозначно ненужно!»
    Опеннетчикам не угодишь.

     

  • 1.111, None (??), 21:59, 16/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > До 10 раз ускорено выполнение операции

    То есть теперь скорость выполнения равна 10 разам?

     
  • 1.121, нешколота (?), 22:58, 16/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А чего это никто пхп не ругает? Непорядок на опеннетике.
     
     
  • 2.142, Агроном (?), 03:53, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А чего это никто пхп не ругает? Непорядок на опеннетике.

    Си ругают, а она скопирована с пхп, фигурные скобки и все такое.

     

  • 1.128, Аноним (-), 23:28, 16/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > приняли участие 152 разработчика

    Как обмельчали программисты. Для Теха было достаточно одного Кнута.

     
  • 1.153, Аноним (153), 12:35, 17/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    sysvinit реально переписать на rust?
    будет от этого польза, если переписать на rust с максимально возможной параллелизацией?
     
     
  • 2.186, Аноним (-), 22:54, 20/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Руки прочь от SysVinit! Негоже кошерному SysVinit от LLVM не зависеть.
     
     
  • 3.187, Аноним (-), 22:55, 20/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Поправил. Руки прочь от SysVinit! Негоже кошерному SysVinit от LLVM зависеть.
     

  • 1.166, Аноним (-), 15:23, 17/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >>> До 10 раз ускорено выполнение операции поиска символов внутри строки при помощи функции str::find, которая переписана с использованием memchr. На memchr также переведена реализация [u8]::contains, но ускорение её работы не столь внушительно (ускорение примерно в 3 раза). С использованием ассемблерных инструкций проведена оптимизация f32::min и f32::max;

    С такими оптимизациями скоро питон догонят!

     
  • 1.180, Аноним (-), 23:03, 18/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Раст внутри мозиллы и сдохнет. Пока экосистема нарастёт, он станет ненужен
     
  • 1.185, iZEN (ok), 21:53, 20/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот уже битый час компилится rust-1.24 на замену rust-1.23, который требуется только firefox-58.0.2. Чего же он такой трудный?!
     
     
  • 2.189, anonymous yet another (?), 09:00, 21/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну это ж мозилла! Один LLVM весит столько же, сколько вся оcтальная операционка. А сборка Firefox'а...
     
     
  • 3.190, iZEN (ok), 12:32, 21/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну это ж мозилла! Один LLVM весит столько же, сколько вся оcтальная
    > операционка. А сборка Firefox'а...

    rust-1.24.0 - 1ч14м.
    firefox-58.0.2 - 1ч37м.

    Для сравнения:
    gcc8-devel-8.0.1.s20180211 - 14м.

     
     
  • 4.191, Andrey Mitrofanov (?), 12:43, 21/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > rust-1.24.0 - 1ч14м.
    > firefox-58.0.2 - 1ч37м.
    > Для сравнения:
    > gcc8-devel-8.0.1.s20180211 - 14м.

    Ну, видимо новые-модные языки позаковыристеее простого Си (или простого Си++, вроде, в gcc?..). Тем более, что оба "конкурсанта" таскают с собой всё-всё-всё  -  библиотеки бандлят патченые, рантаймы-гуи-батарейки в комплекте и пр.

    Сложный язык и рантайм.... ну, со сборкой LO/AOO посравнивай. Или boost-а какого. Тоже много, наверное, получтся.

     
  • 4.192, yet another anonymous (?), 15:12, 21/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > rust-1.24.0 - 1ч14м.
    > firefox-58.0.2 - 1ч37м.

    А LLVM в это время вошло, или оно ещё в плюс?

     
     
  • 5.193, Andrey Mitrofanov (?), 15:55, 21/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> rust-1.24.0 - 1ч14м.
    >> firefox-58.0.2 - 1ч37м.
    > А LLVM в это время вошло, или оно ещё в плюс?

    Он теперь "за" gcc.
    https://www.opennet.ru/openforum/vsluhforumID3/113384.html#2
    https://www.opennet.ru/openforum/vsluhforumID3/113145.html#34
    https://www.opennet.ru/openforum/vsluhforumID3/113145.html#41

    Чегеварит супротив "партнёров", требует
    https://www.opennet.ru/openforum/vsluhforumID3/113145.html#277
    удовлетворения насущных хотелок аж дым стоит!

     
     
  • 6.194, yet another anonymous (?), 18:53, 21/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    По поводу ситуации во FreeBSD у меня мнения нет.

    А вот с мнением про LLVM в упомянутых ссылках я вполне согласен.

     
  • 5.195, iZEN (ok), 20:02, 21/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> rust-1.24.0 - 1ч14м.
    >> firefox-58.0.2 - 1ч37м.
    > А LLVM в это время вошло, или оно ещё в плюс?

    Нет. Это время на сборку соответствующих пакетов. Rust чего-то там делает с LLVM, какие-то шашни мутит, судя по выхлопу процесса сборки. В общем, один монстр использует другого в каких-то позах.


     
  • 4.196, Аноним (-), 20:56, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > gcc8-devel-8.0.1.s20180211 - 14м.

    Не верю. Это разве что без тестов. С тестами у меня несколько часов на SSD.

     
     
  • 5.197, iZEN (ok), 21:46, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> gcc8-devel-8.0.1.s20180211 - 14м.
    > Не верю. Это разве что без тестов. С тестами у меня несколько часов на SSD.

    % pkg info gcc8-devel
    gcc8-devel-8.0.1.s20180211
    Name           : gcc8-devel
    Version        : 8.0.1.s20180211
    Installed on   : Sat Feb 17 10:53:12 2018 MSK
    Origin         : lang/gcc8-devel
    Architecture   : FreeBSD:11:amd64
    Prefix         : /usr/local
    Categories     : lang
    Licenses       : GPLv3, GPLv3RLE
    Maintainer     : gerald@FreeBSD.org
    WWW            : https://gcc.gnu.org
    Comment        : GNU Compiler Collection 8
    Options        :
    BOOTSTRAP      : off
    GRAPHITE       : off
    Shared Libs required:
    libgmp.so.10
    libmpfr.so.4
    libmpc.so.3
    libisl.so.15
    Shared Libs provided:
    libitm.so.1
    libssp.so.0
    libatomic.so.1
    libcc1plugin.so.0
    libcc1.so.0
    libgcc_s.so.1
    libquadmath.so.0
    libcp1plugin.so.0
    liblto_plugin.so.0
    libstdc++.so.6
    libgomp.so.1
    libgfortran.so.5
    Annotations    :
    FreeBSD_version: 1101509
    cpe            : cpe:2.3:a:gnu:gcc:8.0.1:::::freebsd11:x64
    Flat size      : 193MiB
    Description    :
    GCC, the GNU Compiler Collection, supports a number of languages.  This
    port installs the C, C++, and Fortran front ends as gcc8, g++8, gfortran8,
    respectively.

    WWW: https://gcc.gnu.org

    Gerald Pfeifer <gerald@FreeBSD.org>


     
  • 4.198, iZEN (ok), 12:44, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    chromium-63.0.3239.132 - 4ч25м.

    Процессор AMD Phenom II X6 1055T, ОЗУ 11,5 ГБ.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру