The OpenNET Project / Index page

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



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

Оглавление

Выпуск языка программирования Rust 1.48, opennews (ok), 19-Ноя-20, (0) [смотреть все]

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


84. "Выпуск языка программирования Rust 1.48"  +3 +/
Сообщение от Аноним (84), 20-Ноя-20, 02:24 
Для бэкенда веб-сервисов пойдет, а для программ консольных, графических, загрузчиков и своих операционных систем я бы взял язык Zig.
Ответить | Правка | Наверх | Cообщить модератору

87. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (87), 20-Ноя-20, 02:32 
Андрей перелогинтьтесь =)
Ответить | Правка | Наверх | Cообщить модератору

112. "Выпуск языка программирования Rust 1.48"  +2 +/
Сообщение от Аноним (101), 20-Ноя-20, 04:38 
Можно конкретнее пожалуйста? С упором на плюсы Zig
Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

196. "Выпуск языка программирования Rust 1.48"  +3 +/
Сообщение от Аноним (84), 20-Ноя-20, 13:05 
C удовольствием!
- zig имеет си-подобный синтаксис, намного проще его читать чем Rust
- модули у Zig - это просто файлы, берешь такой и const mything = @import("./relpath.zig");
- ленивая компиляция - компилятор пытается разобраться только в том, что реально используется в коде main либо в том, что экспортируется библиотекой
- обработка ошибок... Вы когда-нибудь программировали на Rust свою библиотеку? Вас бесила необходимость при любой обработке ошибок руками самому писать тип ошибок? В Zig есть интересный тип ошибки, который генерируется компилятором. Ты проходишься по нему через классический switch и компилятор гарантирует, что все возможные типы ошибок обработаны. Либо можно ошибку пробросить дальше с помощью оператора try! . Еще раз, для всего вышеописанного не придется написать ни одного класса и ни одной специальной структуры для ошибок
- dead code elimination - вот в Расте оно работает через оптимизации и компилятор медленно думает, а у Zig из-за ленивой компиляции ненужное даже не входит в процесс компиляции
- Вместе с компилятором zig в комплекте идут исходники libc для множества платформ, например есть mingw, glibc нескольких версий, для других архитектур всякая всячина. В случае с Rust нужно отдельно через rustup качать бинарные тулчейны с сайта мозиллы, если туда еще будет доступ. Нельзя доверять чужим бинарникам, особенно когда не дают инструкций как их собрать.
- Свои аллокаторы можно определять. Вообще язык с ручной работой с памятью, поэтому такие штуки как wasi, wasm писать на Zig одно удовольствие (да, биндинги на js приходится писать ручками, но оптимизация-то гарантированно на нашей стороне)
- В zig есть система сборки, которая умеет искать зависимости через pkg-config и... Было там майкрософтовское поделие такое, с телеметрией... vcpkg! точно.
- Вместо макросов в zig используются compile-time выражения на таком же языке, как и выражения в рантайме, что делает код читаемым! Для сравнения почитайте стандартную библиотеку Zig и например пакет serde/serde_json. Или стандартную библиотеку Раста.
- в Zig нет unsafe, потому что zig не лицемерит. Системный язык не может быть не-unsafe. Поэтому можно писать что угодно, а не безопасные обертки над unsafe, как это приходится делать в случае с Rust. Для примера попробуйте написать двусвязный список без использования стандартных примитивов-контейнеров Vector и List в Rust. Это больно. На Zig я написал двусвязный список строк динамического размера для своего небольшого проекта на webassembly за полчаса, и он работает на любых платформах и как и все остальное в Zig аллокатор передается туда как аргумент, то есть можно взять любой аллокатор без изменения кода
- для zig любители уже написали тулчейны чтобы программировать homebrew игры для psp и gameboy (Zig-PSP и ZigGBA)
- если вам мало, просто возьмите и попробуйте язык, в конце концов надо определять нужность вещи практикой работы с ней, а не баззвордами типа "безопасный язык"
Ответить | Правка | Наверх | Cообщить модератору

198. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (84), 20-Ноя-20, 13:20 
Забыл упомянуть, что у Zig намного лучше взаимодействие с си, что через ffi, что через импорт си-файлов напрямую, ну и конечно на Zig можно писать нормальные динамические библиотеки, которыми можно УДОБНО пользоваться из си, из Rust и из любых других языков, что умеют в ffi, а еще что Zig умеет компилировать си. Если бы у вас получилось в ваших сишных зависимостях переписать скрипт сборки чтобы он использовал `zig cc`, возможно с аргументом -target, то можно было бы обойтись вообще без компилятора си в системе.
Ответить | Правка | Наверх | Cообщить модератору

290. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (-), 21-Ноя-20, 16:17 
>  zig имеет си-подобный синтаксис, намного проще его читать чем Rust

О да, такое же уныло г:

> pub fn main() void {

Первое что там написано : в зависимостях llvm и gcc/clang.  Собственно, если у меня уже есть gcc или clang да еще и llvm для которой нужна полноценная ос и окружение - на какой черт мне эти все зиги фиги с растами всместе взятыми ? Дырень головного мозга какая-то и массовый психоз. Не решают эти хрусты с зигами ровно ни единой проблемы, а лишь создают их. И авторы у них безмозглые и недальновидные идиоты.

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

299. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним84701 (ok), 21-Ноя-20, 21:16 
>> bootstrap-zig
>> Stage 1: Build Zig from C++ Source Code
>> gcc >= 5.0.0 or clang >= 3.6.0
>> Stage 2: Build Self-Hosted Zig from Zig Source Code
> Первое что там написано : в зависимостях llvm и gcc/clang.  Собственно, если у меня уже есть gcc или clang да еще и llvm для которой нужна полноценная ос и окружение - на какой черт мне эти все зиги фиги с растами всместе взятыми ?

Вам? Вам оно действительно ни к чему. Ни то, ни другое.

> И авторы у них безмозглые и недальновидные идиоты.
> или clang да еще и llvm для которой нужна полноценная ос и окружение

А ведь так дышал, так дышал! (с)

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

304. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (-), 21-Ноя-20, 21:57 
" реально используется в коде main либо в том, что экспортируется библиотекой "
и как это живет например с обработчиком прерывания, который вызывается "непонятно почему" сам по себе, железом? или с неочевидными механизмами типа call tables и динамического импорта из .so?

" dead code elimination - "
он случайно обработчик irq не выпилит в чем-нибудь сиситемном? потому что main и все остальные его нигде не вызывают, это железо делает!

" Вместе с компилятором zig в комплекте идут исходники libc для множества платформ "
если речь про бутлоадеры и проч - а без этого libc можно? или куда он будет в бутлоадере вызовы делать, вообще?

" в Zig нет unsafe, потому что zig не лицемерит. Системный язык не может быть не-unsafe. "
идея что системное программирование может быть safe вообще вилами по воде писана - я например неверный адрес в dma вкатил разок, и какая разница на каком яп это было сделано, яп же не знает что это число оказывается будет адресом памяти для той железяки и она танцуя от него половину памяти системы прострелит.

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

240. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от временный_аноним (?), 20-Ноя-20, 18:49 
А ещё у нас есть группа в Телеграме. Приходите, и друзей приводите! :-)
Ответить | Правка | К родителю #112 | Наверх | Cообщить модератору

303. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (-), 21-Ноя-20, 21:51 
ещё у нас есть группа в Телеграме. Приходите, и друзей приводите! :-)

это не та которую экстремистской признали? :)

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

151. "Выпуск языка программирования Rust 1.48"  –1 +/
Сообщение от Аноним (150), 20-Ноя-20, 09:49 
> программ консольных

Самый приятный опыт написания консольных утилит у меня был именно на Rust. При помощи крейта Clap и процедурных макросов весь CLI-интерфейс описывается за пару минут. GUI-крейты еще в зачаточном состоянии и пока не могут конкурировать с многолетными монстрами индустрии. Но никто не мешает юзать на расте GTK, QT или вообще Skia.

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

203. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (84), 20-Ноя-20, 13:39 
Написание консольных утилит - это создание своего решения какой-то задачи, обычно пишут новую утилиту когда альтернативного готового решения или библиотеки нету. Поэтому "опытом написания" я считаю процесс написания программы с использованием возможностей языка, а не процесс использования библиотеки вроде Clap. Каждая библиотека дает свой опыт использования, приятный или неприятный, но это не дает полного впечатления об используемом языке программирования. Писать клей для чужих библиотек скучно, попробуйте своё решение, это возвысит вас с точки зрения творчества, инженерного мышления и логики и это прекрасно!
Ответить | Правка | Наверх | Cообщить модератору

328. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (-), 23-Ноя-20, 10:52 
И желательно лет через 15 когда появится реальная проблема которую нужно быстро решить в офлайн написав максимально алгоритмически эффективную программу ^_^
Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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