The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск языка программирования Rust 1.54, opennews (??), 29-Июл-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


34. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Аноним (40), 29-Июл-21, 23:00 
Метаном пованивает, когда возвращаюсь C/C++
После Раста весьма прискорбное занятие.
Ответить | Правка | Наверх | Cообщить модератору

39. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Кир (?), 29-Июл-21, 23:05 
Это ты просто не переоделся после погружений в раст.
Ответить | Правка | Наверх | Cообщить модератору

41. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Аноним (40), 29-Июл-21, 23:09 
Ты же понимаешь, что после Раста это и правда совершенно ниочемные языки?
Особенно пустой C, в C++ хотя бы стандартная либа более-менее что-то из себя представляет (впрочем, нетворка всё равно до сих пор нет)
Ответить | Правка | Наверх | Cообщить модератору

47. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Кир (?), 29-Июл-21, 23:14 
А можно больше конкретики? Что именно позволяет сделать раст такого, чего нельзя (причем эффективнее) сделать на плюсах?
Ответить | Правка | Наверх | Cообщить модератору

56. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Кир (?), 29-Июл-21, 23:26 
Вот интересно, ярый фанат раста уже полчаса ничего не отвечает на этот простой вопрос... Отчего бы?
Ответить | Правка | Наверх | Cообщить модератору

61. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (59), 29-Июл-21, 23:31 
Спать пошёл, не?
Ответить | Правка | Наверх | Cообщить модератору

440. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (440), 30-Июл-21, 20:42 
Мамка запугала, что за компутером поздно сидит
Ответить | Правка | Наверх | Cообщить модератору

221. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 05:10 
Он ищет истину! Там где ее нет... заблудшие растоманы такие
Ответить | Правка | К родителю #56 | Наверх | Cообщить модератору

68. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Anonnnym (?), 29-Июл-21, 23:34 
> Что именно позволяет сделать раст такого, чего нельзя (причем эффективнее) сделать на плюсах?

Ну вот представь, понадобилось тебе выделить голой памяти через new. Не знаю зачем, просто понадобилось, и ты забыл потом вызвать delete - в плюсах ты получишь ворнинг, а в расте не получишь, потому что для выделения голых байтов, тебе придется нырнуть в unsafe.

Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

236. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (246), 30-Июл-21, 05:50 
Статический анализатор для unsafe кода написать не проблема.

Просто никому не надо, поскольку в расте это исключение, а в плюсах (особенно в старом коде) вокруг и рядом.

Ответить | Правка | Наверх | Cообщить модератору

275. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 08:51 
Если не знаете зачем понадобилась память, то и ошибки, вероятно, нет: это одна из стратегий работы с памятью. При завершении процесса она вернётся к системе. Ошибкой это будет в цикле, когда и сборщик мусора не всякий справится.
Ответить | Правка | К родителю #68 | Наверх | Cообщить модератору

87. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от ПомидорИзДолины (?), 30-Июл-21, 00:04 
Растовские маркросы - это просто песня. После них в сторону темплейты, даже с концептами, смотреть вообще не хочется.
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

94. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Кир (?), 30-Июл-21, 00:33 
Ну приведи же пример песни, что-нибудь такое, что заставит всех ахнуть от восхищения и навсегда забыть прочие богомерзкие ЯП! А то на поверку оказывается практически всегда, что растаманы просто не знают C++ и выдают теплое за мягкое )))))
Ответить | Правка | Наверх | Cообщить модератору

115. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от ПомидорИзДолины (?), 30-Июл-21, 01:28 
А ты такой наивный, крошка.
Если интересно - сам найдешь.
Ответить | Правка | Наверх | Cообщить модератору

118. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Кир (?), 30-Июл-21, 01:47 
То есть блеснуть киллер-фичей не могём, понятно. Ладно, не расстраивайся, продолжай надувать щёки...
Ответить | Правка | Наверх | Cообщить модератору

222. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (222), 30-Июл-21, 05:10 
Захочешь - сам найдешь. Не захочешь - тебе хоть двести фич под нос сунь, все равно плеваться будешь.
Ответить | Правка | Наверх | Cообщить модератору

324. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от Кир (?), 30-Июл-21, 13:23 
Да ладно, слив уже засчитан.
Ответить | Правка | Наверх | Cообщить модератору

549. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от . (?), 31-Июл-21, 23:41 
Ну как пример которым пользуются в любой кодовой базе на Rust (А фич у макросов намного больше) - derive макросы

Есть у тебя структура, поставил ей #[derive(Debug)] - и для неё реализован отладочный вывод в консоль (трейт Debug), то же самое с Clone, Copy, PartialEq, Eq, PartialOrd, Ord...

Такую же штуку могут реализовывать библиотеки (Это всё же макросы, а не чот встроенное и заточенное под стандартную библиотеку) - например serde имеет макросы Serialize/Deserialize, которые после добавления позволяют писать данную структуру как json/cbor/xml/bson/msgpack/... (в любой формат, для которого реализована библиотека с поддержкой serde, под protobuf правда такого нет, у него отдельный #[derive(Message)])

Ответить | Правка | К родителю #118 | Наверх | Cообщить модератору

454. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от freecoder (?), 30-Июл-21, 22:57 
Например вот:


let value = json!({
    "code": 200,
    "success": true,
    "payload": {
        "features": [
            "serde",
            "json"
        ]
    }
});

Ответить | Правка | К родителю #94 | Наверх | Cообщить модератору

483. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Кир (?), 31-Июл-21, 02:28 
Серьёзно? https://github.com/nlohmann/json

auto j2 = R"(
{
    "happy": true,
    "pi": 3.141
  }
)"_json;

Ответить | Правка | Наверх | Cообщить модератору

515. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от freecoder (?), 31-Июл-21, 12:40 
> Серьёзно? https://github.com/nlohmann/json
>
auto j2 = R"( 
> {
>     "happy": true,
>     "pi": 3.141
>   }
> )"_json;

Ваш вариант - это просто строка. В случае же макросов в Rust можно DSL-синтаксис смешивать с выражениями Rust:


let full_name = "John Doe";
let age_last_year = 42;

let john = json!({
    "name": full_name,
    "age": age_last_year + 1,
    "phones": [
        format!("+44 {}", random_phone())
    ]
});


Ответить | Правка | Наверх | Cообщить модератору

535. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Кир (?), 31-Июл-21, 17:16 
Ну тогда так, устроит?
 #include <iostream>
#include <nlohmann/json.hpp>
  
using json = nlohmann::json;
  
int main()
{
     // create JSON values
     json j_empty_init_list = json({});
     json j_object = { {"one", 1}, {"two", 2} };
     json j_array = {1, 2, 3, 4};
     json j_nested_object = { {"one", {1}}, {"two", {1, 2}} };
     json j_nested_array = { {{1}, "one"}, {{1, 2}, "two"} };
  
     // serialize the JSON value
     std::cout << j_empty_init_list << '\n';
     std::cout << j_object << '\n';
     std::cout << j_array << '\n';
     std::cout << j_nested_object << '\n';
     std::cout << j_nested_array << '\n';
}

Ответить | Правка | Наверх | Cообщить модератору

618. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от anonymous (??), 02-Авг-21, 11:43 
> json j_object = { {"one", 1}, {"two", 2} };

Это в JSON будет {"one":1, "two":2} ?

Ответить | Правка | Наверх | Cообщить модератору

619. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от freecoder (?), 02-Авг-21, 11:53 
> Ну тогда так, устроит?

Сравни теперь это с вариантом на Rust и поймешь, почему разработчикам больше нравятся его макросы.

Ответить | Правка | Наверх | Cообщить модератору

238. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (246), 30-Июл-21, 06:04 
Раст переносит гарантии смартпоинтеров в компайл тайм, убирая соответствующий рантайм-оверхед. Цена за это - когнитивная нагрузка, надо вникнуть в принципы, перестроить мышление, ну и временами уговаривать компилятор, чтобы он понял, что тут все окей (поскольку полный статический анализ сделать невозможно ввиду проблемы останова).

В остальном, конечно, разницы особо нет, больше вопрос предпочтений.

Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

241. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (246), 30-Июл-21, 06:15 
Кстати, в теории возможно реализовать аналог компайл-тайм модели Раста на плюсовых темплейтах, они, как-никак, Тьюринг-полные.

Это, конечном будет полный brainfuck, для компиляции которого понадобятся терабайт памяти и пара лет, но в теории :)

Ответить | Правка | Наверх | Cообщить модератору

276. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 08:55 
> Раст переносит гарантии смартпоинтеров в компайл тайм, убирая соответствующий рантайм-оверхед.

А какой у современных компиляторов оверхед в unique_ptr<>?

Ответить | Правка | К родителю #238 | Наверх | Cообщить модератору

404. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (547), 30-Июл-21, 18:46 
У unique_ptr никакого, а вот у shared_ptr есть.

В Расте же compile time refcount.

Ответить | Правка | Наверх | Cообщить модератору

245. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 30-Июл-21, 06:23 
serde.rs
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

303. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от red75prime (?), 30-Июл-21, 10:36 
> Что именно позволяет сделать раст такого, чего нельзя (причем эффективнее) сделать на плюсах?

Писать код без ошибок (инвалидация итераторов, exception unsafety, data races). А насчёт функциональности программ: что такого можно сделать в С++, чего нельзя (причём эффективнее) сделать на ассемблере?

Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

328. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Кир (?), 30-Июл-21, 13:37 
> Писать код без ошибок

Что-то, судя по постоянным растопроблемам, нифига не получается )))) Детка, ни один ЯП не позволяет писать код без ошибок, серебряных пуль не бывает, тебя обманули.

> что такого можно сделать в С++, чего нельзя (причём эффективнее) сделать на ассемблере?

Естественно, все что можно сделать на C++, можно сделать на ассемблере. И все что можно сделать на ржавом, можно сделать на ассемблере. Как это влияет на сравнение плюсов с ржавым?

Ответить | Правка | Наверх | Cообщить модератору

412. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от n00by (ok), 30-Июл-21, 19:12 
> что такого можно сделать в С++, чего нельзя (причём
> эффективнее) сделать на ассемблере?

Вычисления во время трансляции. Из ассемблеров только fasm на это способен (я не смотрел остальные, просто угадываю).

Ответить | Правка | К родителю #303 | Наверх | Cообщить модератору

480. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Кир (?), 31-Июл-21, 00:14 
Стоп, ты сейчас написал, что C++ не умеет в вычисления на этапе компиляции? Серьезно, я тебя правильно понял? То есть ты признался, что нифига не знаешь C++? Похоже, рассказы про тупость растаманов имеют под собой нехилую основу...
Ответить | Правка | Наверх | Cообщить модератору

481. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Кир (?), 31-Июл-21, 00:19 
Прошу прощения, неправильно понял мысль, дико извиняюсь.
Ответить | Правка | Наверх | Cообщить модератору

453. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от freecoder (?), 30-Июл-21, 22:41 
Дело не в том, что Rust _позволяет_ сделать такого, чего нельзя на плюсах, а в том, что Rust _не позволяет_ делать, в сравнении с плюсами.
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

179. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 03:38 
У C++ есть два плюса Boost и Qt, ну и сишные либы ему как родные
Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

475. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 31-Июл-21, 00:01 
Буст - весьма специфическая штука и нужна именно языку C++
В Расте заменяется стандартной либой и некоторыми крейтами
Интеграция с Qt есть
Ответить | Правка | Наверх | Cообщить модератору

43. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Кир (?), 29-Июл-21, 23:12 
А почему ты пишешь C/C++? Не видишь разницы? Еще один товарищ из криокамеры с томиком Ритчи 80-лохматого года издания?
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

309. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от anonymous (??), 30-Июл-21, 11:16 
Он как раз видит разницу и она не в пользу раст. Например, на раст невозможно реализовать даже вектор - придётся лезть в ансейф.
Ответить | Правка | Наверх | Cообщить модератору

476. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 31-Июл-21, 00:01 
На Расте можно что угодно реализовать, а unsafe - часть Раста
Ответить | Правка | Наверх | Cообщить модератору

477. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 31-Июл-21, 00:03 
Потому что у C++ все те же болячки C и уши из 80-90ых
Да, C++ лучше, особенно для прикладного применения, но все новинки не избавляют его от древних болячек, увы
Они даже побоялись аби нарушить ради увеличения производительности
Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

103. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (103), 30-Июл-21, 01:04 
Метан - он без вкуса и запаха.
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

193. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (193), 30-Июл-21, 04:08 
Это он природный без запаха, а тут после интенсивной газификации малых водоёмов.
Ответить | Правка | Наверх | Cообщить модератору

287. "Выпуск языка программирования Rust 1.54"  +3 +/
Сообщение от Аноним (287), 30-Июл-21, 09:37 
Путаете метан с сероводородом и аммиаком.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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