Опубликован релиз языка программирования общего назначения Rust 1.69, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки)...Подробнее: https://www.opennet.me/opennews/art.shtml?num=59008
Сеть в стандартной библиотеке. Найс.
Всегда была.
Была абстракция - сокеты, которые можно было привязать к любому протоколу передачи данных. А тут IP гвоздями прибит - что в целом подтверждает абсолютную тупость создателей языка.
> Была абстракция - сокеты
> А тут IP гвоздями прибитВот было мороженое из молока. А тут Москвич китайский.
Всё что нужно знать про экспертов опеннета.
Но, ведь, он и вправду китайский.
А получился не Москвич, а какой-то Москвичезаменитель, неидентичный натуральному
socket = boost::filesystem::file_type::socket_file,
> socket = boost::filesystem::file_type::socket_file,Очередные гвозди, теперь уже к файловой системе.
Надо было раньше писать в Boost, пока в стандарт не приняли.
> Надо было раньше писать в Boost, пока в стандарт не приняли.Так я об этом изначально и писал. Недоразработчикам ржи надо было использовать опыт 40+ летнего развития языков C/C++, но эти при*урки пердячим паром доходят через свое ан*льное отверстие. Причем еще и получается - так себе..
Как будто что-то плохое. Кроссплатформа как-никак. На сишке здесь бы пришлось завязаться на какой-нибудь нескучный glib.
А что тогда графики и звука в стандартной библиотеки нету?
Графика - это гуй? В разных операционках он слишком разный. Да что там - он разный даже внутри одной операционки (gtk/qt, x11/wayland). А концепт сети везде одинаковый: IP-адрес - он и в Африке IP-адрес. Башкой думай немного, хорошо?
> А концепт сети везде одинаковый: IP-адрес - он и в Африке IP-адрес.мамкин сетевик не подозревает что кроме IP сетей есть другие сети
https://www.5gtechnologyworld.com/internet-protocol-the-work.../
> мамкин сетевик не подозревает что кроме IP сетей есть другие сетиЭто легко исправляется: читай соответствующие книги по сетевой модели OSI, и тогда ты перестанешь быть "мамкиным сетевиком". Затем вернись сюда через годик или два и отпишись, каким образом наличие "других сетей" мешает расту добавить стандартные средства по работе с популярным протоколом IP.
> каким образом наличие "других сетей" мешает расту добавить стандартные средства по работе с популярным протоколом IPпочему бы не добавить стандартные средства к другим популярным протоколам Wayland например ?
Ну просто сейчас корпорациям-основателям расты нужны дешёвые мамкины сетевики.
>> каким образом наличие "других сетей" мешает расту добавить стандартные средства по работе с популярным протоколом IP
> почему бы не добавить стандартные средства к другим популярным протоколам Wayland например?Сравнил популярность вида "все ОС, от гайки и до венды" и "используется 30% от 2%"
> Ну просто сейчас корпорациям-основателям расты нужны дешёвые мамкины сетевики.
Они уже 20 лет назад были нужны, оналитег папкин ...
> Сравнил популярность вида "все ОС, от гайки и до венды" и "используется 30% от 2%"реальное соотношение С vs Rust
> Они уже 20 лет назад были нужны
20 лет назад не было андроидов и айфонов и раст бананоедам не впихивали
> почему бы не добавить стандартные средства к другим популярным протоколам Wayland например?
>> Сравнил популярность вида "все ОС, от гайки и до венды" и "используется 30% от 2%"
> реальное соотношение С vs RustРеальный спрыг с неудобной темы ...
>> каким образом наличие "других сетей" мешает расту добавить стандартные средства по работе с популярным протоколом IP
> почему бы не добавить стандартные средства к другим популярным протоколам Wayland например
> ?Потому что Аноним всё равно ничего не напишет с использованием этого протокола. И даже его описание не прочтёт.
Ок, но TCP/IP может не быть в ОС вообще, к примеру. Или быть, но API не является BSD sockets. Все равно будет работать? Сеть, как и графика, тоже бывает разная в разных ОС.> он разный даже внутри одной операционки (gtk/qt, x11/wayland)
тулкиты и протоколы то тут причем, клован? Почему нет нативной графики в обход всех тулкитов и протоколов в стандратной библиотеке?
> Сеть, как и графика, тоже бывает разная в разных ОС.Если включать в раст только те вещи, которые абсолютно совпадают всегда и везде, то из раста придется убрать даже поддержку по работе с файлами, ибо в разных файловых системах все немного по-разному. Думай немного прагматично, ок? IP-адрес -- это понятие из RFC, а не из имплементации.
> тулкиты и протоколы то тут причем, клован? Почему нет нативной графики в обход всех тулкитов и протоколов в стандратной библиотеке?
Потому что "графика" -- это понятие из имплементации, а не из RFC, клован.
> Ок, но TCP/IP может не быть в ОС вообще, к примеруну так в твою прогу при компиляции соотвественно данный кусок стандартной библиотеки и не вкомпилится, ибо не используется. В чем проблема? Это почти как:
"
- Мне положено мясо!
- Положено - ешь.
- Но оно не положено!
- Не положено - не ешь.
"> Сеть, как и графика, тоже бывает разная в разных ОС.
Модель TCP/IP и пучок соответствующих отраслевых стандартов одинаков для всех иначе разные ОС не могли бы устанавливать друг с другом соединения и гонять байтики. Как оно там внутри будет реализовано - дело десятое.
Так и сетевая подсистема в разных операционках слишком разная, даже в разных версиях линуха.
С таким же успехом можно сказать концепт гуя тоже везде одинаков - везде поверхности рисовать и реакции пользователя отслеживать, чем собственно qt, gtk успешно занимаются даже с кроссплатформой.
> сетевая подсистема в разных операционках слишком разнаяАга, как и файловые системы: одни case-sensitive, другие нет. Одни дают DAC, другие нет. Одни с xattrs, другие нет. Одни поддерживают subvolumes, другие нет. Вывод: срочно убираем файлы из стд библиотеки! Они слишком по-разному себя ведут!
>> сетевая подсистема в разных операционках слишком разная
> Ага, как и файловые системы: одни case-sensitive, другие нет. Одни дают DAC,
> другие нет. Одни с xattrs, другие нет. Одни поддерживают subvolumes, другие
> нет. Вывод: срочно убираем файлы из стд библиотеки! Они слишком по-разному
> себя ведут!Могу с этим только согласиться.
https://en.cppreference.com/w/cpp/filesystem ну все, давай убирай.
> https://en.cppreference.com/w/cpp/filesystem ну все, давай убирай.Справедливости ради его только недавно добавили. Лично я не вижу в нем большой необходимости, лучше бы стандартную либу держали в аскетизме.
А что в этом плохого? В Python, Java, Go тоже и отлично.
> Сеть в стандартной библиотеке. Найс.И что плохого?
во многих ЯП в стд есть модули для работы с сетью, ну кроме C и C++
Это удобно
В> ЯП
не нужно совать то, что является функцией фреймворка.
> ...является функцией фреймворкаПростите, какого фреймворка?
Тот, который еще нужно собрать на все платформы и молиться, чтобы вообще собрался?
А зачем вообще фреймворк тащить, если тебе нужна только сеть?Намного удобнее использовать модуль для работы с сетью из std, с гарантией при этом получив одинаковое поведение на всех платформах
А если не нужен - не подключай его, в чем проблемы?
Не надо иметь зоопарк фреймворков на типовые вещи, работа с сетью штука типовая. А то потом получается, что реально программа имеет две операции записи/чтения, а весит, как крыло Боинга и тащит кучу зависимостей.
> А то потом получается, что реально программа имеет две операции записи/чтения, а весит, как крыло Боинга и тащит кучу зависимостей.ты не туда воюешь, ты сейчас описал как программы на раст и выглядят.
Наивные. Одним нужна либа с максимально производительной реализацией, другим нужно чтобы 192.168.36095 считался валидным ip адресом, третьи предпочтут 0000000001.0000000002.0000000003.000000004, четвертые 0xc0.0xa8.0x8c.0xff. И это мы еще не добрались до IPv6, подсетей, мультикастов, а если у нас не ip сеть....
Понятно, что 192.168.140.255 хватит в 99% случаев и возможно остальные варианты стоит прикопать, но это только пример одного вопроса реализации. И что-то мне кажется что выбор должен делать пользователь, а не язык должен указывать пользователю как жить.
ты не попал в эти 99% ?
ты как одинокая картошечка фри ?ну, тогда ты всегда можешь написать свою библиотеку для "особенных" пользователей сети где будет разрешено 192.168.0000000003.0x8c
и пользоваться ею
> ты не попал в эти 99% ?
> ты как одинокая картошечка фри ?
> ну, тогда ты всегда можешь написать свою библиотеку для "особенных" пользователей сети
> где будет разрешено 192.168.0000000003.0x8c
> и пользоваться еюМожет мне еще свой одаренный язык для особенно одаренных написать? Постойте-ка, это же...
> другим нужно чтобы 192.168.36095 считался валидным ... И это мы еще не добрались до IPv6Что за бред. Есть стандартная отраслевая модель TCP/IP. Для IP4 и IP6. Там "все ходы расписаны". Для всех распространенных ОС, которые хотят взаимодействовать с другими ОС (особенно через Интернет), она одна и та же. Для 99.9% разработчиков, связанных с сетью хоть как-то, хоть косвенно (через чужие библиотеки), не нужно чтобы было нестандартно. Если ты хочешь такой бред, как написал - реализуешь свою собственную библиотеку. А стандартная библиотека языка реализует стандартную модель TCP/IP. Самую распространенную и востребованную.
> Одним нужна либа с максимально производительной реализацией
а вот тут ты и пишешь свои собственные костыли и подпорки, если стандартная не устраивает и у тебя есть силы и способности ее переплюнуть.
> а если у нас не ip сеть....
тем более только свои костыли, вроде очевидно. И эта очевидная необходимость совсем-совсем не является аргументом не реализовывать в стандартной библиотеке отраслевые стандарты, нужные "в 99% случаев"
>> другим нужно чтобы 192.168.36095 считался валидным ... И это мы еще не добрались до IPv6
> Что за бред. Есть стандартная отраслевая модель TCP/IP. Для IP4 и IP6.
> Там "все ходы расписаны".Не знаю что такое отраслевая модель TCP/IP (в отличии от просто модели TCP/IP). Но этот бред и есть ip адрес по RFP'шкам для IPv4, там указано 32 бита, а в каком представлении - не указано (то есть далеко не все ходы расписаны). Для IPv6 указано, но довольно замороченно, я бы не рискнул писать парсер по стандарту.
> тем более только свои костыли, вроде очевидно. И эта очевидная необходимость совсем-совсем
> не является аргументом не реализовывать в стандартной библиотеке отраслевые стандарты,
> нужные "в 99% случаев"Но тогда стандартная библиотека становится не стандартной, а скорее встроенной. И это грозит новыми проблемами с определением что считается стандартным случаем, а что нет. Так сделали например в python'е и в обрезанных версиях python'а для микроконтроллеров (справедливости ради python и не был спроектирован для микроконтроллеров) стандартная либа часто обрезанная и не всегда может запустить "стандартные" же скрипты. Для питона это скорее ССЗБ, но для плюсов например реализация стандартных регулярок вызвала массу (справедливого) негатива. Так может все же язык оставить языком, реализации реализациями, а либы либами и не смешивать их? Впрочем для раста и линтер с компилятором решили объединить, а я тут с какими-то философскими проповедями пришел.
Для такого у тебя есть nostd. Там нет практически ничего и все что нужно приходится тащить либами.
В std с++ есть Algorithms, которым по такой логике тоже там не место. Но они так есть.
А в сишной - есть math.h, который должны лежать в отдельной мат либе что ли?
> Для такого у тебя есть nostd. Там нет практически ничего и все
> что нужно приходится тащить либами.Норм
> В std с++ есть Algorithms, которым по такой логике тоже там не
> место. Но они так есть.
> А в сишной - есть math.h, который должны лежать в отдельной мат
> либе что ли?Да. Я и не защищаю си в этом контексте
Касательно math.h - так и есть, есть физически отдельная мат.либа libm.a.
Эти технически отдельная либа (файл), но фактически это часть стандартной либы языка си
C99 standard (ISO/IEC 9899:1999): 7.12 Mathematics <math.h>
Т.е. sin/cos/etc. зачем-то запихали в std.
Мало того - стандарт обязывает поддержку математики даже для freestanding implementation. А вот это как раз тот рантайм (как минимум, флаги FPU должны быть настроены), которого у Си якобы нет.
Стандарт описывает характеристики типов с плавающей запятой, там нет функций. Настройка флагов FPU идёт в fenv.h, который не обязателен для freestanding.
> Стандарт описывает характеристики типов с плавающей запятой, там нет функций.То есть имплементация поддерживает плавающий тип данных. Значит, может производить арифметические операции. Соответственно, при переключении контекста (потока исполнения) ОС вынуждена сохранять регистры FPU.
В ядре из соображений экономии времени и памяти FPU не используется (при необходимости принимаются дополнительные меры) и формально получается, что там не conforming.
> Настройка флагов FPU идёт в fenv.h, который не обязателен для freestanding.
fenv.h позволяет пользователю настроить по своему желанию.
FLT_ROUNDS из float.h implementation-defined, но при этом он одинаков при каждом запуске после трансляции, то есть имплементация должна дать гарантии.
в частности в glibc флаги настраиваются по цепочке __libc_init_first --> posixland_init --> __setfpucw
>> Стандарт описывает характеристики типов с плавающей запятой, там нет функций.
> То есть имплементация поддерживает плавающий тип данных. Значит, может производить арифметические
> операции. Соответственно, при переключении контекста (потока исполнения) ОС вынуждена
> сохранять регистры FPU.какие в freestanding потоки? и какая ОС?
> В ядре из соображений экономии времени и памяти FPU не используется (при
> необходимости принимаются дополнительные меры) и формально получается, что там не conforming.Вы про ядро, а при чём тут компилятор?
>> Настройка флагов FPU идёт в fenv.h, который не обязателен для freestanding.
> fenv.h позволяет пользователю настроить по своему желанию.
> FLT_ROUNDS из float.h implementation-defined, но при этом он одинаков при каждом запуске
> после трансляции, то есть имплементация должна дать гарантии.
> в частности в glibc флаги настраиваются по цепочке __libc_init_first --> posixland_init
> --> __setfpucwэто реализовано в libc. У нас есть своя программа, которую можно назвать прошивкой, там ничего этого нет, и ничего от gcc, который компилирует эту программу мы не требуем.
>>> Стандарт описывает характеристики типов с плавающей запятой, там нет функций.
>> То есть имплементация поддерживает плавающий тип данных. Значит, может производить арифметические
>> операции. Соответственно, при переключении контекста (потока исполнения) ОС вынуждена
>> сохранять регистры FPU.
> какие в freestanding потоки? и какая ОС?Если я делаю conforming implementation, приходится учитывать окружение, где будет запускаться собранная программа. Если мне надо обеспечить компиляцию хелловорда в пригодный для запуска в Linux образ ELF размером 1,5 Кб, и при этом сохранить поддержку библиотекой полезных программ, то возникает вопрос - а что делать с флагами FPU и соответствием стандарту. А Вы с какой целью интересуетесь?
>> В ядре из соображений экономии времени и памяти FPU не используется (при
>> необходимости принимаются дополнительные меры) и формально получается, что там не conforming.
> Вы про ядро, а при чём тут компилятор?Я про стандартную библиотеку, которая формально для ядра Linux отсутствует.
>>> Настройка флагов FPU идёт в fenv.h, который не обязателен для freestanding.
>> fenv.h позволяет пользователю настроить по своему желанию.
>> FLT_ROUNDS из float.h implementation-defined, но при этом он одинаков при каждом запуске
>> после трансляции, то есть имплементация должна дать гарантии.
>> в частности в glibc флаги настраиваются по цепочке __libc_init_first --> posixland_init
>> --> __setfpucw
> это реализовано в libc. У нас есть своя программа, которую можно назвать
> прошивкой, там ничего этого нет, и ничего от gcc, который компилирует
> эту программу мы не требуем.Вопрос не в том, можно ли назвать прошивкой. Можно ли назвать используемую там библиотеку соответствующей стандарту имплеменатцией.
Алгоритмы с++ в std попали из библиотеки Степанова и Ли (СТЛ). Были они созданы как раз для "решения проблем Си" -- безопасной работы с массивами, наряду с контейнерами и итераторами. Это слой абстракции, а не реализация математики или работы с файлами (в частном случае сокетами). В других языках подобное встроено в язык, а не библиотеку. Впрочем, сокеты в std:: тоже добавили.
> 0000000001.0000000002.0000000003.000000004, четвертые 0xc0.0xa8.0x8c.0xff.Верхний адрес не валидный, так как занимает 40 байт места. Нижний вполне нормальный адрес 192.168.140.255. В IPv4 четко прописаны использование 32 Битов или 4 байтов. То есть все адреса (комбинации нулей и единиц) от 0000 0000 0000 0000 до 1111 1111 1111 1111 (или от 0x00 0x00 0x00 0x00 до 0xFF 0xFF 0xFF 0xFF)
> В IPv4 четко прописаны использование 32 Битов или
> 4 байтов. То есть все адреса (комбинации нулей и единиц) от
> 0000 0000 0000 0000 до 1111 1111 1111 1111 (или от
> 0x00 0x00 0x00 0x00 до 0xFF 0xFF 0xFF 0xFF)Все верно. Это я и хотел сказать уважаемой публике.
>> 0000000001.0000000002.0000000003.000000004, четвертые 0xc0.0xa8.0x8c.0xff.
> Верхний адрес не валидный, так как занимает 40 байт места.Но 0000000001.0000000002.0000000003.000000004 тоже может занимать 32 бита, если не считать первые нули значащими (что конечно конечно наркомания, но в IPv6 так и сделали, ну почти). Т.е. он тоже может быть валидным адресом. Можно пойти дальше и сделать адресом ツ
$ echo -n 'ツ' | xxd -b
00000000: 11100011 10000011 10000100
Добиваем до 4 байт (или наоборот отрезаем, если больше)
00000000 11100011 10000011 10000100
И оп, у нас валидный ip-адрес. Т.е. по сути все может быть ip-адресом в зависимости от парсера (таков путь неограниченных бинарных данных).
А минусы есть?
А ядро с какой версией работает?
С той с которой скомпилируете модуль
Один выше попутал ЯП с фреймворком. Другой попутал ЯП с компилятором. Контингент, однако.
А третий просто демагог и нигде не работал и ни одной проги не написал.
Сходи поработай. И может прогу какую напиши в свободное время.
Начиная с ядра 6.1 рекомендуют 1.62, т.к. используются нестабильные фичи Раста. С ворнингами разрешают и более свежие версии использовать, но говорят, что не факт, что всё будет хорошо. Недавно сделали патч с обновлением до 1.68.2 (https://www.phoronix.com/news/Linux-Kernel-Rust-1.68).
Ну и вот зачем такой язык в ядре? Чтобы обмазываться новеньким постоянно?
>Добавлена возможность использования флагов true и false в аргументах компилятора.Теперь ещё проще скомпилировать не тру.
Что на этот раз сломали?
Ленивый или троллить пытаешься или просто позвиздеть зашел?Пройди в анонс, там зайди в "Others Changes"->"Rust". Там есть раздел "Compatibility Notes"
(ой, вдруг заблудишься):
https://github.com/rust-lang/rust/blob/stable/RELEASES.md#co...но тебе ведь всё этого не нужно, верно?
Всё же, помечУ бисер немного. Очень-очень поверхностно отчитаюсь. Полез проверить заброшенный 2 года назад микропроектик, пробу язычка ткскзть - дерганье сервиса криптобиржи, получение разных списков. Запустил на компиляцию. Ругнулось ошибкой. Обновил крейты (за два года что-то наверное могло поменяться, ведь правда?) - cargo update (да-да, я наивный лох, лезу в официальный репо, с троянами, пока не завел себе локальный сервак с репой с нужными мне и лично отобранными и проверенными построчно крейтами, хе-хе). Куча всего обновилось, что-то выкинулось (причем и тот крейт, где ошибка вылезла), что-то добавилось. Компиляция. Запуск. Всё отработало красиво, json-портянки вернулись. Если бы я с этим работал плотно, внимательно читал все варнинги, а не запускал на компиляцию/выполнение два раза в год для проверки "а не сломалось ли чё" - было бы вообще всё пучком.
Повторюсь: за точным списком сломанного - пройдите в анонс, пжалста. Кстати, всплывшая у меня ошибка как раз указана там - "Unaligned references to packed fields are now a hard error. This has been a warning since 1.53, and denied by default with a future-compatibility warning since 1.62.". Просто я забивал на варнинги, ведь не продакшн какой.
> Rust
> криптобиржи
> не продакшн"В человеке всё должно быть прекрасно" (ц) ДМБ
>> Rust
>> криптобиржи
>> не продакшн
>"В человеке всё должно быть прекрасно" (ц) ДМБвопрос конечно был про другое, про "что поломано в этой версии" и не очень хорошо скрытая издевка о том что "в новых версиях ломаются старые проекты" (_частично_ верно, а не абсолютно и не однозначно, как утверждают наСИльники), но...
По выборочно выдернутому из контекста (у Вас пунктик на эти слова? Сразу в стойку?) - а почему не выдернуто туда же - "заброшенный 2 года назад микропроектик, пробу язычка ткскзть"? Этого недостаточно понять, почему "не продакшн"? Слово "заброшенный" Вам неизвестно?
Поставить его без рута - та еще загадка.
На это и рассчет.
Rustup ставит в домашнюю директорию, дополнительных прав не требуется.
rustup - сразу нахрен. sudo apt-get install.
Человек попросил без рута, я ему ответил. К чему тут твоё экспертное мнение - непонятно.
Попробуй команды ЗАПУСКАТЬ.
Просто смотреть в терминал помогает редко.
Шутку упустили "happy to announce a nice version of Rust".Версия 69 вышла 4.20. 69 - отсылка к сексу. 420 - к конопле. "nice" мемная реакция на эти числа. Вот такие вот приколы для даунов.
Что такое секс?
Компиляция Rust.
> Вот такие вот приколы для даунов.DIDO
Релиз не языка программирования, а его реализации
В Расте реализация и язык, одно и то же. Разратотчики, проектировщики и дизайнеры тусуются в одной организации - Rust foundation. Это не ISO язык, как сишка. Хотя комитет по стандартизации языка Си, тоже своего рода тусовка, где все хорошо знакомы.
> В Расте реализация и язык, одно и то же. Разратотчики, проектировщики и
> дизайнеры тусуются в одной организации - Rust foundation. Это не ISO
> язык, как сишка. Хотя комитет по стандартизации языка Си, тоже своего
> рода тусовка, где все хорошо знакомы.Язык-реализация-библиотека-компилятор-линтер-пакетный-менеджер-все-едино-в-этом-адском-мире-трансгендерных-негро-феминисток-каждый-сможет-стать-кем-захочет-хоть-интерпретатором.
Согласно требованиям Rust Foundation в этом яп тип Gender - это не bool а signed int? :)
Нет. Придумай свой специализированный тип.
double
complex
> complexreal + imagine? два чая этому господину! :_D
Лучше реализовать Gender через енум какой-нибудь.
Есть только два гендера: True и Not True.
Rust это современный Lisp. Про него все говорят но никто не пишет.
Как никто не пишет? (картинка с коалой)
Эх Вас перекорёжило... лисп полезен хотя бы для расширения кругозора, а не "сознания". Ну и пишут, да -- в альте вон альтератор на scheme.
И привели пример еще более бесполезной штуки
Ну ладно, Lisp полезней чем Rust.
> Эх Вас перекорёжило... лисп полезен хотя бы для расширения кругозора, а не
> "сознания". Ну и пишут, да -- в альте вон альтератор
> на scheme.
Ага, я заметил, когда наткнулся на абсолютно всратые баги типа такого:; IMPORTANT! For some reason this must be the last entry. I don't know why but
; installer does not parse anything past ("/grub" ...).; Install GRUB in /boot/efi
("/grub" action "write" device "efi")
На List под AutoCAD уже более 30 лет скрипты пишутся.
Его выбросили не так давно. Внедрили Python, или что-то такое.
> Его выбросили не так давно. Внедрили Python, или что-то такое.Это для меня новость, спасибо!
Да если бы. Живой сволочь
https://www.rust-lang.org/ru/production/users
И еще Google новые компоненты для андроида на Раст пишет
> И еще Google новые компоненты для андроида на Раст пишетэто печально.
Гугол много на чем пишет.
Язык со встроенным пакетным менеджером... Теперь я видел всё.
Неправильно ты, Дядя Фёдор, мыслишь.
Это пакетный менеджер со встроенным языком!
Это как бы Си для нубов ?
С? Это чё еще за ассемблер для неосиляторов?
Плюсы для профессионалов
Си простой как два рубля, и нуб от профессионала отличается тем, что профессионал чаще статическим анализатором пользуется и вообще осторожнее работает с указателями,т.к. шишек набил. А Раст это попытка запилить язык в котором некорректную работу с памятью (такую, которую хакеры могут использовать через эксплоит) просто не выразить через синтаксис (тупо не скомпилируется). Но взамен чудовищное переусложнение практически на ровном месте. Borrow checker, лайфтаймы, внезапная фрустрация от того, что деревья и графы в расте описать можно, не используя unsafe, только очень неуклюже, ядрёными костылями.
> внезапная фрустрация от того,
> что деревья и графы в расте описать можно, не используя unsafe,
> только очень неуклюже, ядрёными костылями.Можно их реализовать на базе массива, заменив указатели индексами. Как например в главе 2.2 книжки А.Ахо, Дж.Хопкрофта, Дж.Ульмана сделано на Паскале. Фрустрация у меня от того, что почему-то не видел такой реализации.
Crablang тоже актуален
https://github.com/crablang/crab/blob/master/RELEASES.md