The OpenNET Project / Index page

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



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

Оглавление

Новые выпуски вариантов coreutils и findutils, переписанных на языке Rust , opennews (??), 03-Апр-23, (0) [смотреть все]

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


8. "Новые выпуски вариантов coreutils и findutils, переписанных ..."  +9 +/
Сообщение от Аноним (8), 03-Апр-23, 11:44 
Изучаю раст - а он не так уж и плох. Боров чекер сильно ограничивает, но безопасность того стоит. Что касается синтаксиса, то там все хорошо, в плюсах он гораздо ужаснее. Что касается аргумента от "язык макросов отличается от языка самого раста", то это пустой аргумент, ибо в си тоже пишешь на двух языках одновременно: CPP (C preprocessor) и C (C). Все инструменты под рукой: пакетный менеджер, сборщик, форматировщик, генератор документации -- в си каждую приблуду придется ставить отдельно, причем пакетного менеджера нет в принципе, и не будет. Есть концеция "фич". Допустим, crossterm знает все о том, как выводить цветной текст в терминал, а lscolors имеет опциональную поддержку crossterm, если врубить для нее такую фичу.
Ответить | Правка | Наверх | Cообщить модератору

41. "Новые выпуски вариантов coreutils и findutils, переписанных ..."  +1 +/
Сообщение от keydon (ok), 03-Апр-23, 12:44 
>Боров чекер сильно ограничивает, но безопасность того стоит.

Абстрактная безопасность. Оно того стоит https://www.opennet.ru/opennews/art.shtml?num=56551

>Что касается синтаксиса, то там все хорошо, в плюсах он гораздо ужаснее.

Еще более наркоманский чем в плюсах. Причем в плюсах это наследовали от си, а си это древнючий мамонт, а зачем такой синтаксис в 2014 в совершенно новом языке - непонятно.

>Что касается аргумента от "язык макросов отличается от языка самого раста", то это пустой аргумент, ибо в си тоже пишешь на двух языках одновременно: CPP (C preprocessor) и C (C).

В С он по сути сводится к копированию. Это довольно грубый, но хотя бы простой подход.
В плюсах уже есть темплейты и они уже встроены в язык (хоть как-то) и довольно мощны, но все равно с ними много исключений и нужно быть осторожным. И насколько я понимаю раст берет все (худшие) недостатки темплейтов из плюсов. В современном языке хотелось бы видеть что-то более элегантное и надежное, без усложнения отладки, без сильного увеличения времени компиляции. Но раст пошел дальше и еще добавил DSL (там где и макросы не хотелось бы видеть). Серьезно?

>Все инструменты под рукой: пакетный менеджер, сборщик, форматировщик, генератор документации -- в си каждую приблуду придется ставить отдельно

Что же тут может пойти не так? https://www.opennet.ru/opennews/art.shtml?num=58458

> в си каждую приблуду придется ставить отдельно, причем пакетного менеджера нет в принципе, и не будет

Есть и не один. Да, его придется ставить и это хорошо.

>Есть концеция "фич". Допустим, crossterm знает все о том, как выводить цветной текст в терминал, а lscolors имеет опциональную поддержку crossterm, если врубить для нее такую фичу.

Растоманы так носятся с этими фичами и трейтами, но это же синтаксический сахар, да и не первой свежести.

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

63. Скрыто модератором  –6 +/
Сообщение от Аноним (63), 03-Апр-23, 13:57 
Ответить | Правка | Наверх | Cообщить модератору

68. Скрыто модератором  +9 +/
Сообщение от Аноним (68), 03-Апр-23, 14:03 
Ответить | Правка | Наверх | Cообщить модератору

76. Скрыто модератором  +/
Сообщение от keydon (ok), 03-Апр-23, 14:19 
Ответить | Правка | К родителю #63 | Наверх | Cообщить модератору

194. Скрыто модератором  +/
Сообщение от llolik (ok), 04-Апр-23, 10:30 
Ответить | Правка | Наверх | Cообщить модератору

211. Скрыто модератором  –1 +/
Сообщение от keydon (ok), 04-Апр-23, 17:18 
Ответить | Правка | Наверх | Cообщить модератору

65. "Новые выпуски вариантов coreutils и findutils, переписанных ..."  +1 +/
Сообщение от freehckemail (ok), 03-Апр-23, 14:02 
>> Боров чекер сильно ограничивает, но безопасность того стоит.
> Абстрактная безопасность. Оно того стоит https://www.opennet.ru/opennews/art.shtml?num=56551

Именно. Ошибки связанные с логикой никто не отменяет. Реализация, повторённая на новом языке, пройдёт ровно тот же путь стабилизации, что и исходный тулкит, это очевидно. То есть вот те несколько десятков лет, что стабилизировался условный coreutils на сях -- вот тот же самый путь теперь предстоит пройти новому тулкиту на раст.

Зачем он нужен -- вопрос в целом понятный:
1) Во-первых сменить лицензию, корпорастам уже давно не нужен GPL, чтобы сотрудничать: они прекрасно сотрудничают и без лицензионного принуждения, и потому GPL приносит им больше проблем, нежели пользы; так что реализацию нужно повторить, причём так, чтобы это был не производный продукт; лучший способ, как можно этого добиться -- переписать на другом языке.
2) Во-вторых это снижает стоимость поддержки в долгосрочной перспективе, поскольку исчезает весьма немалый пласт ошибок, связанных с выходом за пределы допустимых областей памяти. Но это, конечно же, не основное, поскольку это будет лишь в очень отдалённой перспективе, ибо на ближайшее десятилетие само собой будут превалировать ошибки логики.

>> Все инструменты под рукой: пакетный менеджер, сборщик, форматировщик, генератор документации -- в си каждую приблуду придется ставить отдельно
> Что же тут может пойти не так? https://www.opennet.ru/opennews/art.shtml?num=58458

Странный наезд. С пакетным менеджером жить лучше, чем без него. И тем более хорошо, когда есть официальная имплементация оного. Ну да, эталонная реализация у растаманов оказалась так себе (я не знаю, как иначе объяснить CVE по ссылке выше, кроме как криворукостью и безалаберностью), и это повод призадуматься, какого уровня специалисты оказались в данной нише. Большинство ли разработчиков на RUST имеют подобную квалификацию, или нет -- покажет только время, оно-то в итоге всё по полочкам и расставит.

> Растоманы так носятся с этими фичами и трейтами, но это же синтаксический сахар, да и не первой свежести.

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

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

149. "Новые выпуски вариантов coreutils и findutils, переписанных ..."  +1 +/
Сообщение от Аноним (149), 03-Апр-23, 18:32 
>си это древнючий мамонт, а зачем такой синтаксис в 2014

Чем тебе синтаксис сишки не нравится?

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

195. "Новые выпуски вариантов coreutils и findutils, переписанных ..."  –4 +/
Сообщение от keydon (ok), 04-Апр-23, 10:47 
>>си это древнючий мамонт, а зачем такой синтаксис в 2014
> Чем тебе синтаксис сишки не нравится?

Очень перегружен. Куча лишних "{}<>#;%1f", магических знаков, макросов. Я уже привык к этой жути, но каждый раз когда возвращаюсь с современного языка ужасаюсь.
Много устаревших и неудобных конструкций (вроде спецификаторов формата в строках, их наверное только профессиональные сишники и помнят) (пофикшено в C++)
Много лишних и очевидных слов (тоже пофикшено в C++).
Вот как могло бы выглядеть более современное представление (увы, для указателя я не придумал замены, в идеале должно быть понятно что это указатель, а не логическая операция например, еще идеальнее если будет понятно как называется этот элемент не перелистывая спецификацию к языку):
include stdio

double first
printf "Enter number: "
scanf &first
printf "Number: {first}"
return 0

И оригинал
#include<stdio.h>

int main() {
  double first;
  printf("Enter number: ");
  scanf("%lf", &first);
  printf("Number: %.2lf", first);
  return 0;
}

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

203. "Новые выпуски вариантов coreutils и findutils, переписанных ..."  +1 +/
Сообщение от n00by (ok), 04-Апр-23, 13:15 
> Вот как могло бы выглядеть более современное представление (увы, для указателя я
> не придумал замены, в идеале должно быть понятно что это указатель,
> а не логическая операция например, еще идеальнее если будет понятно как
> называется этот элемент не перелистывая спецификацию к языку):
> include stdio

Не различает

#include<stdio.h>
#include "stdio.h"

впрочем, м.б. и не надо

> double first

static storage duration
в оригинале automatic

> printf "Enter number: "
> scanf &first
> printf "Number: {first}"
> return 0

С точкой с запятой всё просто в простых примерах, как и с круглыми скобками - можно просто убрать. Вопрос, что с более сложными.

Вы смотрели язык Genie? Это Vala (транслируется в Си) с синтаксисом Python.
Почему-то на нём не пишут (я не нашёл проекты), в отличие от Vala.
Подозреваю, как раз из-за всех этих "лишних" символов.

> И оригинал
> #include<stdio.h>
> int main() {
>   double first;
>   printf("Enter number: ");
>   scanf("%lf", &first);
>   printf("Number: %.2lf", first);
>   return 0;
> }

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

212. "Новые выпуски вариантов coreutils и findutils, переписанных ..."  –1 +/
Сообщение от keydon (ok), 04-Апр-23, 17:38 
> С точкой с запятой всё просто в простых примерах, как и с
> круглыми скобками - можно просто убрать. Вопрос, что с более сложными.

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

> Вы смотрели язык Genie? Это Vala (транслируется в Си) с синтаксисом Python.

Нет, посмотрел на примеры, нечто такое и хотелось бы видеть.

> Почему-то на нём не пишут (я не нашёл проекты), в отличие от
> Vala.
> Подозреваю, как раз из-за всех этих "лишних" символов.

Достаточно упоминания гнома, чтобы отпугнуть всех желающих :)

А вообще я придерживаюсь мнения что само существование высокоуровневых языков (и си на мой скромный взгляд первый виновник в этом преступлении) привело к появления потрясающего количество ошибок и неоптимальных программ по перетасовке байтиков (в духе преобразования из int в string, из string в unicode string, из unicode string в double и обратно в int) и собственно расцвету ада зависимостей от зависимостей. В идеале я считаю надо спуститься ближе к псевдоассемблеру (или условному байткоду) и постараться сохранить скорость разработки (частично она итак ускорится из-за устранения лишних абстракций) без запрятывания реализации под ковер как это делают высокоуровневые языки.

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

216. "Новые выпуски вариантов coreutils и findutils, переписанных ..."  +/
Сообщение от n00by (ok), 05-Апр-23, 08:27 
>> С точкой с запятой всё просто в простых примерах, как и с
>> круглыми скобками - можно просто убрать. Вопрос, что с более сложными.
> Скобки и точки с запятыми это всего лишь разделители, их всегда можно
> заменить на другие разделители, в т.ч. в самых сложных случаях.
>> Вы смотрели язык Genie? Это Vala (транслируется в Си) с синтаксисом Python.
> Нет, посмотрел на примеры, нечто такое и хотелось бы видеть.
>> Почему-то на нём не пишут (я не нашёл проекты), в отличие от
>> Vala.
>> Подозреваю, как раз из-за всех этих "лишних" символов.
> Достаточно упоминания гнома, чтобы отпугнуть всех желающих :)

В том-то и дело, что Vala не отпугивает. Язык прикручен к GLib, но технически можно писать без неё

> А вообще я придерживаюсь мнения что само существование высокоуровневых языков (и си
> на мой скромный взгляд первый виновник в этом преступлении) привело к
> появления потрясающего количество ошибок и неоптимальных программ по перетасовке байтиков
> (в духе преобразования из int в string, из string в unicode
> string, из unicode string в double и обратно в int) и
> собственно расцвету ада зависимостей от зависимостей. В идеале я считаю надо
> спуститься ближе к псевдоассемблеру (или условному байткоду) и постараться сохранить скорость
> разработки (частично она итак ускорится из-за устранения лишних абстракций) без запрятывания
> реализации под ковер как это делают высокоуровневые языки.

Си и есть псевдоассемблер. Некоторые ассмеблерщики его так и изучали - смотрели, в какие инструкции компилируется исходник. Другое дело, что на Си пишут в том числе и те, кто не понимает, как железо работает. Что Вы описываете, похоже на MSIL. Я даже видел человека, кто в том байткоде и кодит, без Сишарпов и Додиезов.

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

117. "Новые выпуски вариантов coreutils и findutils, переписанных ..."  –4 +/
Сообщение от Аноним (117), 03-Апр-23, 16:04 
>Что касается синтаксиса, то там все хорошо, в плюсах он гораздо ужаснее.

Сравнить левую пятку с мандарином.

Раст ближе к классическому Си.

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

154. "Новые выпуски вариантов coreutils и findutils, переписанных ..."  –1 +/
Сообщение от Аноним (154), 03-Апр-23, 18:57 
Говно эта концепция фич. Несовместима с динамической линковкой. Как и весь раст. Каждый разработчик на Rust должен платить налог на обновление компов всем остальным, пропроционально количеству сжираемой им памяти * количество установок. Ибо это по его вине софт жрёт столько памяти, что мне ком придётся на свалку отправить, ибо теперь даже ванильный firefox просто запустить нельзя, либо системе трэшит, либо вылетает сам..
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

156. "Новые выпуски вариантов coreutils и findutils, переписанных ..."  –1 +/
Сообщение от Аноним (156), 03-Апр-23, 19:22 
Если языку нужен пакетный менеджер и своя система сборки сложнее make (которым можно не только код собирать, а, например, запускать кодогенераторы на чём-то ещё), то это плохой язык.
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

158. "Новые выпуски вариантов coreutils и findutils, переписанных ..."  +7 +/
Сообщение от Аноним (158), 03-Апр-23, 20:09 
Это ты сам такие требования ввёл? Они реальности соответствуют примерно никак - попробуй большой проект на одном мейке и без пакетов сделать. Надоест тебе это развлечение очень быстро.
Ответить | Правка | Наверх | Cообщить модератору

165. Скрыто модератором  –1 +/
Сообщение от Аноним (-), 03-Апр-23, 21:05 
Ответить | Правка | Наверх | Cообщить модератору

181. "Новые выпуски вариантов coreutils и findutils, переписанных ..."  –2 +/
Сообщение от Том Круз (?), 04-Апр-23, 04:43 
в линуксе пакеты не ставии? ну или исходники не компилировали библиотек не разу? или у вас в час по 1000 новых приблуд ставится??
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

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

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




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

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