The OpenNET Project / Index page

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



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

Оглавление

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

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


69. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (15), 20-Ноя-20, 01:52 
Тут вот в комментарии в скрытой ветки от критика Rust'а прозвучало, что мол "это кастрированный язык". А что в нем кастрированного, растохейтеры могут объяснить? На расте нельзя чего-то написать? А то очень странное было заявление
Ответить | Правка | Наверх | Cообщить модератору

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

75. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (15), 20-Ноя-20, 02:07 
Ну вообще я тут с вами в чем-то соглашусь. Назвать раст исцелением от ошибок нельзя. Да и вообще, хардкорное избавление от ошибок разве что в функциональщине с зависимыми типами возможно (и то, там не всегда удаётся завершимость доказать. Ибо неразрешимая проблема). Но ведь лучше всё-таки язык с таким контролем памяти, чем без никакого?

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

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

80. "Выпуск языка программирования Rust 1.48"  –1 +/
Сообщение от Аноним 80_уровня (ok), 20-Ноя-20, 02:16 
> Назвать раст исцелением от ошибок нельзя

=> не нужен.

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

82. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от nonon (?), 20-Ноя-20, 02:21 
Нет ЯП который бы исправил тот же дедлок, разве что ЯП однопоточный. Так что на твоём месте бякать не вникая это так себе. Поверхностное мышление
Ответить | Правка | Наверх | Cообщить модератору

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

102. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от анонимуслинус (?), 20-Ноя-20, 03:57 
идея классная. за полностью. за одно будем запускать по одной линейке процев в 2 года и сразу проводить набор спецов асма. вот будет 100% прогнозируемость развития и такая же работоспособность. при этом не понадобиться такого разнообразия конструкций. будет как у маков 5 типов компов и хватит всем.))) и что самое главное производительность будет на порядки выше современных систем( там вообще наверно будет использована 5 часть того что сейчас уходит на по в работе(ось). вот только это утопия. увы. и отсутствие конкуренции сильно замедлит развитие технологий( которые к слову частенько с боОльшими багами)
Ответить | Правка | Наверх | Cообщить модератору

175. "Выпуск языка программирования Rust 1.48"  +2 +/
Сообщение от Аноним (15), 20-Ноя-20, 11:12 
На асме человек пишет хуже, чем GCC компилит, не обольщайтесь
Ответить | Правка | Наверх | Cообщить модератору

324. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (-), 23-Ноя-20, 06:25 
> На асме человек пишет хуже, чем GCC компилит, не обольщайтесь

зависит от ситуации, поэтому почему-то в кодеках видны комиты вида "SSE4: gain w.r.t. C: 3.5x" - это конечно не глобальный выигрыш, а в тяжелой операции, но когда вот такого там и тут, оказывается что в сумме кодек разика в два быстрее портабельной сишной версии чего-то, и когда это приходит к выбору 720p мы на этом железе сжуем или 1080 - вот извините!

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

86. "Выпуск языка программирования Rust 1.48"  –1 +/
Сообщение от nonon (?), 20-Ноя-20, 02:30 
Ещё у тебя может переполниться int при математических операциях на проде. Но выпадет ошибка при отладке.

Убираются излишние проверки как плата за производительность.
Нельзя вот так сделать оптимально.
Но в каждом ЯП у цифр есть пределы.
Тот кто жалуется что ЯП только частично безопасный видимо плохо вникал

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

104. "Выпуск языка программирования Rust 1.48"  +1 +/
Сообщение от анонимуслинус (?), 20-Ноя-20, 04:04 
я вообще склонен считать все языки опасными. какими бы они изначально не задумывались. их делают все таки люди, а нам свойственно ошибаться, в том числе и в самом фундаменте конструкции языков. не зря же все ищут идеальный язык и никак не найдут. но я склонен считать раст незавершенным инструментом( даже сломанным ) чисто концептуально. с/с++ хоть не прикидываются пушистыми, а честно говорят - вот те контроль, но накосячишь сам и выкручивайся. я думаю это проблема маркетологов языка. незачем было так пиарить "безопасность" языка. А теперь все ждут этого, а его нет. только в чистой прикладухе. в системном его реально можно сравнить с плюсами. так зачем столько пиара и гонора.
Ответить | Правка | Наверх | Cообщить модератору

142. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Vkni (ok), 20-Ноя-20, 09:00 
> Я к Расту присматриваюсь для математических расчётов. Ищу язык, на котором не так легко совершить ошибку, как в Си, но который при этом работает побыстрее без всяких накладных расходов на гц ( как Джава какая-нибудь)

В математических расчётах, к сожалению, от статической типизации практически нет никакой пользы - как правило, все переменные типа double/Real/Double/float. Поэтому особенной разницы между Питоном и Хаскелем ждать, увы, не приходится. А уж Rust и C будут вообще неразличимы.

Как мне кажется, достаточно преспективной может быть полиморфные по типу чисел реализация вычислительных алгоритмов. То есть, для быстрого счёта - IEEE 754 double, для тестов - поля Галуа или целые, для контроля вычислительных ошибок - интервальные числа или UNUM. Но тут Rust почти не добавляет плюсов - полиморфизм слишком многословен. Ближе всего, наверное, из имеющихся языков к идеальному Хаскель с включённой по-умолчанию энергичностью вычислений.

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

155. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (15), 20-Ноя-20, 10:15 
Я дискретник, у меня даблов нет вообще. У меня много комбинаторного перебора и алгоритмов на графах
Ответить | Правка | Наверх | Cообщить модератору

249. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Ordu (ok), 20-Ноя-20, 21:47 
> В математических расчётах, к сожалению, от статической типизации практически нет никакой пользы - как правило, все переменные типа double/Real/Double/float. Поэтому особенной разницы между Питоном и Хаскелем ждать, увы, не приходится. А уж Rust и C будут вообще неразличимы.

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

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

269. "Выпуск языка программирования Rust 1.48"  +1 +/
Сообщение от Vkni (ok), 21-Ноя-20, 08:52 
Нужна. Но польза от строгой статической типизации далеко не такая серьёзная, как в обычной бизнес-логике, где "компилирующаяся программа на Хаскеле, скорее всего, правильно работает".

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

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

279. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Ordu (ok), 21-Ноя-20, 11:09 
А, я понял тогда. ок.
Ответить | Правка | Наверх | Cообщить модератору

146. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от red75prime (?), 20-Ноя-20, 09:23 
> там не всегда удаётся завершимость доказать. Ибо неразрешимая проблема

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

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

156. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (15), 20-Ноя-20, 10:17 
По идее да. Но вообще "проблема остановки" (или в англ. источниках "halting problem") не разрешима, для машины Тьюринга (а значит алгоритма) нельзя сказать, остановится она или нет.
Ответить | Правка | Наверх | Cообщить модератору

157. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (15), 20-Ноя-20, 10:19 
Т.е. если вы для прог любых можете доказать завершимость, то в теории вы в не Тьюринг-полном языке. Весь вопрос в том, насколько нужна Тьюринг-полнота и полная мощность, даваемая МТ
Ответить | Правка | Наверх | Cообщить модератору

177. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от red75prime (?), 20-Ноя-20, 11:21 
Неразрешимость проблемы остановки означает, что существует программы, для которых невозможно доказать остановятся они или нет. Для всех остальных программ это доказать можно.

То есть написать доказанно останавливающуюся (или не останавливающуюся) программу можно и на Тьюринг-полном языке. Но для этого сначала нужно написать конструктивное доказательство существования решения проблемы, и по этому доказательству построить программу. Такая программа существует согласно cоответствию Карри — Ховарда.

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

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

Если этого сделать нельзя, значит не существует такого доказательства для нашей задачи. То есть задача просто неразрешима и написать программу для её решения невозможно. В этом случае переформулируют задачу.

TL;DR Проблема остановки особого практического значения не имеет.

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

178. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от red75prime (?), 20-Ноя-20, 11:28 
> TL;DR Проблема остановки особого практического значения не имеет.

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

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

180. "Выпуск языка программирования Rust 1.48"  +2 +/
Сообщение от red75prime (?), 20-Ноя-20, 11:34 
Раст в этом плане даёт возможность писать большую часть программы так, что она доказанно обладает определёнными свойствами (отсутствие memory corruption). И доказательства (или интуитивная уверенность) требуются только для того, что unsafe части не нарушают инвариантов safe части.

То есть примерно то же, что и для языков с GC, но без GC.

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

270. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Vkni (ok), 21-Ноя-20, 08:55 
Введение unsafe позволяет разделить программу на Rust на два куска:
- огромный, как правило, медленный, но safe.
- маленький hotpath, но unsafe

В результате, особо тщательно проверять и тестировать нужно только маленький, unsafe кусок. Это сильно увеличивает производительность.

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

250. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Ordu (ok), 20-Ноя-20, 21:51 
>> TL;DR Проблема остановки особого практического значения не имеет.
> Точнее практическое значение в том, что серебрянной пули не существует. Или пишем
> доказательства, или используем Тьюринг-неполные языки, или, как обычно делается, пишем
> программы, которые вроде бы интиутивно должны работать и, в общем, работают,
> но неизвестно не сломаются-ли в какой-то ситуации.

Коллективное бессознательное опеннета искренне верит в интуицию опытного программиста. Философия уровня боевиков про кунг-фу: достаточно натренированный мастер может хером своим отбить удар хоть закалённого меча, хоть кузнечного молота. А если не может, значит мало тренировался.

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

305. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (-), 21-Ноя-20, 22:01 
если у системщика нет интуиции - хана системе, хоть на каком япе... там очень много мест где можно дров наломать и никакой яп от этого не спасет, скорее создаст соблазн нанять дешевых вебобезьян в надежде что с мегаязыком будет беопасно даже с ними - а чуда как обычно не произойдет, вон в соседней новости друпал которому лет уж сколько и буферов нет RCE радует
Ответить | Правка | Наверх | Cообщить модератору

309. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Ordu (ok), 21-Ноя-20, 22:28 
> если у системщика нет интуиции - хана системе, хоть на каком япе...

Ну да, ну да. Спасибо за наглядную демонстрацию содержимого коллективного бессознательного.

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

158. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (15), 20-Ноя-20, 10:19 
А вообще была как-то статья, что завершимость алгоритма Евклида доказывается в агде, вроде бы, с некоторыми костылями
Ответить | Правка | К родителю #146 | Наверх | Cообщить модератору

271. "Выпуск языка программирования Rust 1.48"  +1 +/
Сообщение от Vkni (ok), 21-Ноя-20, 08:58 
> Поэтому программу меняют так, чтобы завершимость можно было доказать.

Хочу отметить, что любая корректная GUI программа может выполняться вечно. :-)

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

296. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (15), 21-Ноя-20, 20:42 
Формально да. На практике GUI-программа обычно и в самом простом случае представляет из себя мейн луп и обработчики (кнопок, полей, ещё чего-то). И эти все обработчики должно завершаться (и желательно довольно быстро)
Ответить | Правка | Наверх | Cообщить модератору

272. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Vkni (ok), 21-Ноя-20, 08:59 
Он скорее чересчур разросшийся уже.
Ответить | Правка | К родителю #69 | Наверх | Cообщить модератору

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

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




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

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