The OpenNET Project / Index page

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



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

Оглавление

Завершён процесс создания организации Rust Foundation , opennews (??), 08-Фев-21, (0) [смотреть все]

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


307. "Завершён процесс создания организации Rust Foundation "  –2 +/
Сообщение от Аноним (307), 09-Фев-21, 11:36 
Синтаксис как синтаксис. Перл хуже.
Ответить | Правка | Наверх | Cообщить модератору

316. "Завершён процесс создания организации Rust Foundation "  +3 +/
Сообщение от RomanCh (ok), 09-Фев-21, 12:10 
Будто растишка лучше. Я бы тут ещё поспорил.

Ребята в очередной раз переизобретают printf(), примера пихона в котором несколько вариантов форматированного вывода которые регулярно писуны на нём путают им оказалось мало.

https://doc.rust-lang.org/stable/rust-by-example/hello/print...

    println!("{number:>0width$}", number=1, width=6);

Очень понятно, ага.

А это что, очередной образчик идеального интуитивно понятного синтаксиса?
https://doc.rust-lang.org/stable/rust-by-example/hello/print...


    // `f` is a buffer, and this method must write the formatted string into it
    fn fmt(&self, f: &mut Formatter) -> fmt::Result {
        let lat_c = if self.lat >= 0.0 { 'N' } else { 'S' };
        let lon_c = if self.lon >= 0.0 { 'E' } else { 'W' };

        // `write!` is like `format!`, but it will write the formatted string
        // into a buffer (the first argument)
        write!(f, "{}: {:.3}°{} {:.3}°{}",
               self.name, self.lat.abs(), lat_c, self.lon.abs(), lon_c)
    }


Аж в глазах рябит!

Работа с типами:

https://doc.rust-lang.org/stable/rust-by-example/primitives....

let logical: bool = true;

Что??? bool = true? WTF???

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

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

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

331. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от freecoder_xx (?), 09-Фев-21, 12:34 
Так ли токсичен синтаксис Rust?
https://habr.com/ru/post/532660/
Ответить | Правка | Наверх | Cообщить модератору

344. "Завершён процесс создания организации Rust Foundation "  +1 +/
Сообщение от RomanCh (ok), 09-Фев-21, 13:04 
Спасибо за ответ по существу. Хотя на мой взгляд статья самим своим существованием подтверждает что с синтаксисом что-то не так ("На самом деле синтаксис Rust не так плох, как о нем говорят.") и в целом очень уж субъективна.

Например:

>  Первый вариант — это "паскалевский" способ декларации типа. Хотя он дополнительно "загрязнен" символом двоеточия, однако в общем случае он проще, как для разбора парсером, так и для восприятия человеком.

Про восприятие человеком - голый субъективизм, вопрос привычки. Полагаю что автор не готов предоставить пруфлинки обосновывающие его утверждение. Про парсеры - возможно.

Но дальше нам дают для сравнения "сложный" для восприятия пример:

> int (*fns[16])(int * const * p);

Против "простого" растовского:

> let fns: [fn(*const *mut isize) -> isize; 16];

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

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

Что же до восклицательного знака, то я принимаю аргумент "вызов становится заметным, но не настолько, чтобы перетянуть на себя все внимание (как происходит с другими, широкими символами, вроде @)". Однако лично я (и подозреваю я такой не один) лучше бы чуть-чуть больше внимания потратил на менее удобные визуально символы (опять же нужны пруфлинки что они не так удобны), чем постоянно махать рукой над клавиатурой тыкая в край 4го ряда. Тут знаете, и время тратится, и вероятность опечаток существенно возрастает, да и износ суставов и связок не дремлет. Мелочь, а неприятно. И на мой взгляд - собачки выглядят лучше, да и нажимались бы хотя бы не мизинцем, но тоже не то чтобы очень удобно.

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

439. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (439), 09-Фев-21, 21:15 
>> let fns: [fn(*const *mut isize) -> isize; 16];
>Ничего себе проще и понятней!..

Потому что это пример FFI с СИ. В раст константность по-умолчанию, а указателей нет - есть ссылки.
https://play.rust-lang.org/?version=stable&mode=debug&editio...
К сожалению пострадавшим от утино-динамической типизации трудно "с ходу" помочь. Придется потратить время.

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

444. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от RomanCh (ok), 09-Фев-21, 22:17 
> К сожалению пострадавшим от утино-динамической типизации трудно "с ходу" помочь. Придется
> потратить время.

Дражайший, я конечно не программист, но для вещей серьёзней скриптов автоматизации предпочитаю ЯП со статической типизацией, так что история с утино-динамической тут мимо.

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

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

552. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (551), 14-Фев-21, 06:21 
> Потому что это пример FFI с СИ.

Так хруст динамически линковаться вроде вообще не умеет? И такого интерфейса к самому себе у него вроде вообще нет? Да и делать такие загогули при работе с сями когда у вас таких красивых кодогенератор LLVM - ну, знаете...

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

364. "Завершён процесс создания организации Rust Foundation "  –1 +/
Сообщение от Урри (ok), 09-Фев-21, 15:00 
> Откуда там такая любовь к восклицательным знакам?

Я могу объяснить откуда. В нормальных функциональных языках, таких как Scheme и ее диалекты, восклицательный знак является признаком "не чистых" функций - функций, у которых есть внутреннее состояние и которые могут выдавать различный результат в совершенно идентичных условиях вызова.

Этот восклицательный знак служит интуитивным предупреждением функциональщику, что "этот код не безопасен", будь осторожен. Что лично мне ооооооочень нравится, когда я переписываю свою свежепридуманную математику на лисп.

Ну а растишки, в полном соответствии принципам "чу, слышу звон, но не знаю откуда он" и "нет времени объяснять, быстрее побежали" просто втащили восклицательный знак к себе. Ведь так сделано во взрослом серьезном языке.

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

391. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от RomanCh (ok), 09-Фев-21, 16:43 
Спасибо.

> Этот восклицательный знак служит интуитивным предупреждением функциональщику, что "этот код не безопасен", будь осторожен.

Ну да, если в качестве "не лезь, убьёт!", то вопросов нет. Тем более что такой код не должен появляться слишком часто. Но когда, блин, print нужно с ! писать, это на мой взляд явно что-то не то.

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

431. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Vkni (ok), 09-Фев-21, 20:27 
>> Откуда там такая любовь к восклицательным знакам?
> Я могу объяснить откуда. В нормальных функциональных языках, таких как Scheme и
> ее диалекты, восклицательный знак является признаком "не чистых" функций - функций,
> у которых есть внутреннее состояние и которые могут выдавать различный результат
> в совершенно идентичных условиях вызова.

Спасибо. Ну это в Scheme.

> "нет времени объяснять, быстрее побежали"

Ну это да - сколько там у них типов макросов?

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

455. "Завершён процесс создания организации Rust Foundation "  +1 +/
Сообщение от cheater (?), 10-Фев-21, 00:22 
> Ну а растишки, в полном соответствии принципам "чу, слышу звон, но не
> знаю откуда он" и "нет времени объяснять, быстрее побежали" просто втащили
> восклицательный знак к себе. Ведь так сделано во взрослом серьезном языке.

Шта? По такой логике, разработчикам языков разрешено присваивать восклицательному знаку только определённую семантику, чтобы не дай бог не обидеть scala разработчиков? Ай плохой какой Грейдон Хоар, ещё и апостроф в раст добавил при том что в лиспах у него другой смысл, запутал людей совсем!

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

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

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




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

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