The OpenNET Project / Index page

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



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

Оглавление

Выпуск языка программирования Rust 1.57, opennews (??), 02-Дек-21, (0) [смотреть все]

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


26. "Выпуск языка программирования Rust 1.57"  +1 +/
Сообщение от Аноним (27), 02-Дек-21, 23:42 
> По моему скромному мнению - кто не осили сишечку - раст не осилит уж точно

А откуда у вас были такие ожидания, что Rust легко освоить, тем более не зная C/C++? Наоборот, при знании C++ гораздо проще понять, почему придумали Rust и какие проблемы он решает. И да, Rust известен своим высоким порогом вхождения относительно остальных языков.

Хотя AFAIK я слышал, что в Rust люди идут и после скриптовых языков вроде Python и JS, но здесь пруфов не будет.

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

60. "Выпуск языка программирования Rust 1.57"  +1 +/
Сообщение от anonimous (?), 03-Дек-21, 01:45 
>Наоборот, при знании C++ гораздо проще понять,  почему придумали Rust и какие проблемы он решает.

При знании stl и умных указателей как раз как-то не очень понятно зачем раст придумали. Т.е. зачем придумали то понятно, а вот зачем он нужен не очень.

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

87. "Выпуск языка программирования Rust 1.57"  +1 +/
Сообщение от Аноним (86), 03-Дек-21, 07:07 
Имхо у C++ проблема - отсутствие бинарной совместимости. Это мешает его использовать для системных либ. Поменяли порядок виртуальных методов в классе, или добавили новый - всех клиентов надо пересобирать. Поэтому в Symbian, в свое время, даже заводили пустые методы, чтобы зарезервировать имя на будущее.
Ответить | Правка | Наверх | Cообщить модератору

91. "Выпуск языка программирования Rust 1.57"  –2 +/
Сообщение от fsb4000 (?), 03-Дек-21, 07:17 
Лол, в С++ отличная бинарная совместимость. с 1993 года, даже до первого стандарта С++ вышел COM, и до сих пор бинарно совместим. 28 лет бинарной совместимости. А так и в сишке в левых либах ломают бинарную совместимость каждый год...
Ответить | Правка | Наверх | Cообщить модератору

104. "Выпуск языка программирования Rust 1.57"  +/
Сообщение от ОйраОйра (?), 03-Дек-21, 08:08 
В приведенном сценарии у C++ будут проблемы, а вот бинарная совместимость от перемены порядка функций в C не зависит. И при чем здесь COM? Вы на VB писать собираетесь? С получением метода через IDispatch? В остальном - те же проблемы.
Ответить | Правка | Наверх | Cообщить модератору

115. "Выпуск языка программирования Rust 1.57"  +/
Сообщение от fsb4000 (?), 03-Дек-21, 08:30 
Ты в курсе что такое COM?

Это просто класс С++ только с виртуальными методами  особой конвецией вызова, который наследуется от IUnknown.

Ты в курсе что такое бинарная совместимость?

Это когда ты компильнул свой класс и можешь использовать с разными компиляторами. Вот собрав свой COM класс в 1993 году на каком-нибудь убогом Borland C++, ты можешь использовать его с Visual C++2022 и Mingw gcc 11 в 2021.

Та чушь которую ты выдумал не относится к бинарной совместимости никак.

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

119. "Выпуск языка программирования Rust 1.57"  +/
Сообщение от ОйраОйра (?), 03-Дек-21, 08:39 
Тебе больше нравится термин ABI? Пусть.
Ответить | Правка | Наверх | Cообщить модератору

125. "Выпуск языка программирования Rust 1.57"  +/
Сообщение от n00by (ok), 03-Дек-21, 09:38 
COM это Си-интерфейс. Стандарт Си++ не требует реализации таблицы виртуальных функций совместимым способом, просто MSVC это транслятор от производителя ОС, остальные под него подстроились.
Ответить | Правка | К родителю #115 | Наверх | Cообщить модератору

131. "Выпуск языка программирования Rust 1.57"  +/
Сообщение от fsb4000 (?), 03-Дек-21, 10:05 
>COM это Си-интерфейс.

```c++
struct IUnknown
{
public:
   virtual HRESULT QueryInterface(REFID riid, void** ppv)=0;
   virtual ULONG AddRef () = 0;
   virtual ULONG Release() = 0;

   template<class Q>
   HRESULT QueryInterface(_COM_Outptr_ Q** pp)
   {
       return QueryInterface(__uuidof(Q), (void **)pp);
   }
};
```

Ясно, понятно. "С интерфейс". Ага. "Причём тут С++?" Да-да. Всё ясно с вами...

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

168. "Выпуск языка программирования Rust 1.57"  +/
Сообщение от n00by (ok), 03-Дек-21, 11:05 

;  Microsoft Macro Assembler (MASM)

      IInterface_Function1Proto     typedef proto :DWORD
      IInterface_Function2Proto     typedef proto :DWORD, :DWORD

      IInterface_Function1          typedef ptr IInterface_Function1Proto
      IInterface_Function2          typedef ptr IInterface_Function2Proto

      IInterface struct DWORD
            QueryInterface          IUnknown_QueryInterface         ?
            AddRef                  IUnknown_AddRef                 ?
            Release                 IUnknown_Release                ?
            Function1               IInterface_Function1            ?
            Function2               Interface_Function2             ?
      IInterface ends


Ясно, понятно. "С интерфейс". Ага. "Причём тут С++?" Да-да. Всё ясно свами...
Ответить | Правка | Наверх | Cообщить модератору

126. "Выпуск языка программирования Rust 1.57"  +1 +/
Сообщение от Аноним (126), 03-Дек-21, 09:39 
>Ты в курсе что такое COM? Это просто класс С++ только с виртуальными методами  особой конвецией вызов... Вот собрав свой COM класс в 1993 году на каком-нибудь убогом Borland C++, ты можешь использовать его с Visual C++2022...

Повторю вопрос анонима выше - причем здесь COM?
И в чем здесь заслуга C++, если это больше межязыковой проприетарный стандарт для написания компонент к оффтопику? Понятно, саму прослойку/поддержку технологии ты можешь написать и на плюсах, вот только это не часть плюсов. Мне пять лет пришлось COM/DCOM на дельфях ковырять, в си++ влазить не пришлось, "классов С++ только с виртуальными методами" в самопальных компонентах там не было. Ты ведь сейчас не начнешь утверждать что в 1990-х годах твой COM, как неотъемлемая часть стандарта C++ ( :D ), широко и повсеместно использовался в юниксах?

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

211. "Выпуск языка программирования Rust 1.57"  +1 +/
Сообщение от anonymous (??), 03-Дек-21, 13:49 
Вы перепутали. Бинарная совместимость как раз у С++ постоянно ломается. Например, из-за этого виндузоиды имеют много копий стандартной библиотеки (просто разные версии). В свободных дистрибутивах попроще, ибо всё можно пересобрать, ибо совместимость программного уровня в С++ сохраняется.
Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

258. "Выпуск языка программирования Rust 1.57"  –1 +/
Сообщение от fsb4000 (?), 03-Дек-21, 16:51 
>Вы перепутали. Бинарная совместимость как раз у С++ постоянно ломается.

Я не перепутал. COM бинарная совместимость не ломалась никогда. Вы можете COM класс собранный Visual C++ 2.0 слинковать с новейшим gcc или Visual C++ или с чем угодно, хоть с паскалем или Rust.

COM - это подмножество С++ если важна бинарная совместимость между компиляторами и даже между разными языками программирования.

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

267. "Выпуск языка программирования Rust 1.57"  +/
Сообщение от fsb4000 (?), 03-Дек-21, 16:59 
Как пример, DirectX написан на С++. И вы можете использовать DirectX из любого языка, с любыми версиями компиляторов.

Надеюсь пример понятен.

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

336. "Выпуск языка программирования Rust 1.57"  +/
Сообщение от Зз (?), 03-Дек-21, 23:52 
COM - хорошая штука. Уважаю безгранично, мне кажется его даже недооценили в своё время.

Однако обрати внимание, уважаемый любитель плюсов. Где там в IUnknown хвалёные умные указатели, std::стринги, RAII и прочие гаранты безопасности?
Сплошные ненавистные бездарные сишные указатели и даже указатели на указатели.
Да, слово public добавили в структуру, это к счастью пока что не ломает ABI.

Все бы на таком подмножестве С++ свои либы писали.

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

94. "Выпуск языка программирования Rust 1.57"  +4 +/
Сообщение от Прохожий (??), 03-Дек-21, 07:36 
Затем, что освоить спецификацию C++, которая составляет примерно полторы тысячи страниц, как показывает практика, никому не под силу. Это в свою очередь чревато большим количеством ошибок в коде.

Кроме того, в C++ частая проблема - UB.

Кроме того, в C++ нет такой удобной стандартной инфраструктуры, как в Rust.

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

100. "Выпуск языка программирования Rust 1.57"  +/
Сообщение от ОйраОйра (?), 03-Дек-21, 07:59 
Спецификация C++ - это для разработчиков компиляторов. Для обычного прикладного программиста на C++  cppreference.com дает отличную выжимку из него. И его вполне возможно осилить.
Ответить | Правка | Наверх | Cообщить модератору

218. "Выпуск языка программирования Rust 1.57"  +/
Сообщение от Прохожий (??), 03-Дек-21, 14:16 
Да, конечно, можно. Вот только люди, очень даже грамотные и толковые, надо заметить, которые оптимизацией софта занимались в одной из крупных софтовых контор, типа Google, Netflix, Facebook выгорают от подобных "выжимок". Есть на Хабре статья одного такого. И при желании другие можно поискать.

И сегодня одна "выжимка". Завтра - другая. Послезавтра - третья. Каждый ходит в итоге со своим багажом знаний и своей стилистикой в голове, что в итоге вылазит боком на крупных проектах, когда один использует круглые скобочки для инициализации, второй - фигурные. И так далее в том же духе.

Я ещё не сказал о том, что не все компиляторы на разных платформах полностью поддерживают стандарты C++. И это ещё одна головная боль, на самом деле.

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

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

118. "Выпуск языка программирования Rust 1.57"  –3 +/
Сообщение от Аноним (-), 03-Дек-21, 08:39 
>Кроме того, в C++ нет такой удобной стандартной инфраструктуры, как в Rust.

С JS дяденька вылез и думает, что leftpad.io - это круто. И даже новости на опеннете об очередных майнерах в удобной стандартной инфраструктуре ноды или питона не смогли поколебать его разум, потому что раст априори безопасен, что значит, майнеров в карго конечно же не будет.

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

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

147. "Выпуск языка программирования Rust 1.57"  +/
Сообщение от Онаним (?), 03-Дек-21, 10:34 
Всё ещё хуже. Они учатся тянуть чужие высеры, и считают, что научились погромировать.
Ответить | Правка | Наверх | Cообщить модератору

190. "Выпуск языка программирования Rust 1.57"  +1 +/
Сообщение от Аноним (348), 03-Дек-21, 11:39 
Такая вот культура программирования, что поделать.

"Зачем мне с нуля писать криптографию или сжатие, лучше возьму готовую библиотеку"

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

217. "Выпуск языка программирования Rust 1.57"  +/
Сообщение от Онаним (?), 03-Дек-21, 14:13 
s/библиотеку/обёртку к openssl или xz/
Ответить | Правка | Наверх | Cообщить модератору

231. "Выпуск языка программирования Rust 1.57"  +1 +/
Сообщение от Прохожий (??), 03-Дек-21, 15:33 
> Про то, что программы дожны каждая делать своё дело и то, что системе сборки не требуется лезть в интернеты, я уже молчу.

Тебе действительно лучше молчать, если про Rust ничего не знаешь. Его система сборки настраиваема и вполне может обходиться без интернетов.

> С JS дяденька вылез и думает, что leftpad.io - это круто.

Какой у тебя занимательный бред. Только мне он не особо интересен. Обратись к специалисту лучше. Вдруг поможет.

> раст априори безопасен

Сам придумал глупость, и сам же её опровергаешь. Раст более безопасный, чем тот же C - вот это действительно априори.

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

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

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




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

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