The OpenNET Project / Index page

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



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

"Выпуск Rust 1.79. Создан консорциум для разработки высоконадёжных систем на Rust"  +/
Сообщение от opennews (??), 13-Июн-24, 23:31 
Опубликован релиз языка программирования общего назначения Rust 1.79, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки)...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=61362

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

Оглавление

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

1. Сообщение от Аноним (1), 13-Июн-24, 23:31   +22 +/
Зачем нужен консорциум, если Rust и так безопасный?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6, #52, #200

4. Сообщение от Аноним (99), 13-Июн-24, 23:36   –9 +/
Скорей бы линукс уже на раст переписали! Нужно больше безопасности!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #88

5. Сообщение от iiiypuk (ok), 13-Июн-24, 23:36   +8 +/
> Создан консорциум для разработки высоконадёжных систем на Rust

Каждый второй проект на Rust

> unsafe

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #8, #9, #31

6. Сообщение от Аноним (-), 13-Июн-24, 23:37   +10 +/
> если Rust и так безопасный?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #11, #178

7. Сообщение от Аноним (7), 13-Июн-24, 23:38   +3 +/
Оказался недостаточно безопасным для решений требующих повышенной надёжности?)
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #10, #30, #108, #220, #402

8. Сообщение от Карлос Сношайтилис (ok), 13-Июн-24, 23:40   +2 +/
Каждый любой проект на любом языке использует системные вызовы, которые написаны на языке unsafe by design. И?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #38

9. Сообщение от Аноним (-), 13-Июн-24, 23:42   +1 +/
> Каждый второй проект на Rust

Не каждый. Тут совсем недавно была статистика www.opennet.ru/opennews/art.shtml?num=61251, что только 20% крейтов содержат unsafe.

А которые содержат, чаще всего используют для вызова дыряшечных функций через FFI, что по определению не может быть безопасно. И самый жирый по использованию unsafe - crate-пакет windows, являющийся обвязкой над API платформы Windows.

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

10. Сообщение от Аноним (-), 13-Июн-24, 23:45   +4 +/
Разумеется.
MISRA C был предуман не просто так.
Ада была создана для разработки надежных систем, но это не помешало им сделать еще более безопасный Spark.
Всегда можно улучшить надежность дополнительными проверками, ограничениями или админ. палкой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

11. Сообщение от 12yoexpert (ok), 13-Июн-24, 23:51   +/
1) синтаксис
2) борьба с компилятором вместо работы
3) аргессивная реклама и фанатики

Я как плюсовик несколько раз пытался тыкать раст, поддавался на хайп, но это скам, а не язык

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #13, #14, #19, #34, #64, #127, #319

12. Сообщение от TydymBydym (ok), 13-Июн-24, 23:52   +5 +/
> применяет концепцию неизменяемости [...] переменных

Вот за что мы его и любим! Просто не надо менять переменные и всё будет в поряде!

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

13. Сообщение от Аноним (13), 13-Июн-24, 23:59   +9 +/
Я не топлю ни за раст ни за С++ ни за любой другой язык. Но слышать такое от С++ разраба это вообще дичь. Борьба с компилятором? Это когда ошибки в С++ хер прочтешь это ли не борьба с компилятором? Или когда в С++ куча неявного поведения в стандартной библиотеке? Самое глупое например что я видел это  std::endl который казалось бы должен просто добавлять конце строки в поток. Но он ко всему этому еще и флашит буффер. Почему он делает то о чем его название не говорит? Почему я должен об этом догадаться?  Или почему в мапе если нет значения при использовании с квадратными скобками он создаст значение? Это ж так очевидно, опять делают то что не просят

Все просто! Чтобы эффективно программировать на С++ ты ОБЯЗАН учить абсолютно все к чему притрагиваешься не важно на сколько очевидным оно тебе кажется. Это ж так удобно

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #15, #35, #47, #66, #106, #109, #137

14. Сообщение от Аноним (1), 13-Июн-24, 23:59   +/
4. Экосистема, завязанная на централизованный обмен пакетами.
Помню был случай, когда разраб для экономии времени сборки запихал в crate блоб.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #63

15. Сообщение от Аноним (1), 14-Июн-24, 00:01   +1 +/
С rust то же самое, но вдобавок ужасный синтаксис и строгий компилятор, мешающий прототипированию.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #16, #345

16. Сообщение от Аноним (13), 14-Июн-24, 00:04   +10 +/
> С rust то же самое, но вдобавок ужасный синтаксис и строгий компилятор,
> мешающий прототипированию.

В расте хватает говна согласен и не мало, особенно с избыточностью тех же unwrap(мелочь а бесит) и так далее. Но там чуть больше логики я в этом вижу(могу быть не прав, это субъективно для меня). Плюс все удобства в виде встроенного инструментария тестирования а также пакетного менеджера и нормального билда а не анального траха с CMake  и других таких вещей. Мне по работе необходимо много работать с С++ кодом и это дичь зачастую. Только если у тебя ОЧЕНЬ много опыта в С++ ты сможешь писать достаточно красивый, логичный и эффективный код.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #23, #474

17. Сообщение от Доктор Альбаemail (?), 14-Июн-24, 00:08   +/
Давайте перепишем всё на Rust, например, GNOME.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #22

19. Сообщение от Аноним (19), 14-Июн-24, 00:11   –2 +/
Кивание на синтаксис (вместо оценки семантики), общие слова и не технические аргументы - явные признаки "домашнего" программиста.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #548

22. Сообщение от iiiypuk (ok), 14-Июн-24, 00:17   +1 +/
Gnome на Vala переписывать начали...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #39

23. Сообщение от Витюшка (?), 14-Июн-24, 00:34   –2 +/
Zig спасёт отца демократии
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

24. Сообщение от Аноним (24), 14-Июн-24, 00:34   +/
>объявила о создании консорциума "Safety-Critical Rust Consortium

Снова? Никогда не было и вот опять.

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

25. Сообщение от Витюшка (?), 14-Июн-24, 00:36   +4 +/
Новость хорошая. Но изучать эти кракозябры не очень охота.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #40

26. Сообщение от Аноним (26), 14-Июн-24, 00:44   +3 +/
Просто писать на Ада не вариант? Надо обязательно сделать то же самое самим?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #29, #149, #287

27. Сообщение от Аноним (27), 14-Июн-24, 00:55   +/
>let foo = [const { None }; 100];

Говнище какое. Кажется скоро будет такая же лажа как плюсовый auto.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #41, #56, #102

28. Сообщение от Алиса (??), 14-Июн-24, 01:20   +2 +/
Синтаксис избыточный. Если у Ada он просто многословный, то тут именно заbloatченый.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #123

29. Сообщение от Алиса (??), 14-Июн-24, 01:22   –1 +/
Ada хотя бы читабельная, а тут не пойми что, какой-то набор символов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #58

30. Сообщение от Алиса (??), 14-Июн-24, 01:25   –3 +/
Безопасность решается методологией написания кода, а не языком. Вот для ознакомления, короткое, но информативное видео: https://www.youtube.com/watch?v=GWYhtksrmhE
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #59

31. Сообщение от Алиса (??), 14-Июн-24, 01:28   +3 +/
Unsafe это прям как goto сегодняшних дней. Удобно, эффективно, но небезопасно. Кстати unsafe это больше про системное программирование, там где прям нужно лезть в саму память. Большинство прикладных программ этого не требуют)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #46, #49, #67, #77

32. Сообщение от Ivan_83 (ok), 14-Июн-24, 01:28   +/
> создании консорциума "Safety-Critical Rust Consortium", нацеленного на использовании языка Rust в решениях, требующих повышенной надёжности (Safety-Critical Software)

Да, без этого никуда, а то ведь никто не использует самый бизапасный БДСМ язык для чего то, куда ни плюнь страшный С. :)

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #33, #36

33. Сообщение от Алиса (??), 14-Июн-24, 01:30   +3 +/
> куда ни плюнь страшный С

Си это lingua franca всея программирования. А так да, в какую спеку не заглянешь, везде описания структур данных на сишке)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #157

34. Сообщение от Алиса (??), 14-Июн-24, 01:35   +1 +/
> 12yoexpert

Вот тут соглашусь с каждым пунктом данного одиозного товарисча) Особенно по 3 пункту

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

35. Сообщение от Алиса (??), 14-Июн-24, 01:38   +/
> Почему я должен об этом догадаться?

Ты должен для начала открыть reference manual чтобы не удивляться очевидному) П.с. Это если твоя IDE не подсвечивает синтаксис))

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #147

36. Сообщение от Аноним (36), 14-Июн-24, 02:14   –2 +/
Страшный с++.
Который вытеснил сишку практически из всех областей разработки, даже из embedded.
А сишка осталась только в легаси, и старых больших проектах, которые просто экономически нет смысла исправлять.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #37, #43, #55, #279

37. Сообщение от Аноним (38), 14-Июн-24, 02:42   +2 +/
> А сишка осталась только в легаси

Вы мягко говоря неправы. Есть такое понятие, как целесообразность. В большинстве тех мест, где применяется Си (особенно встройка), ООП нафиг не нужно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #110, #118

38. Сообщение от Аноним (38), 14-Июн-24, 02:44   +3 +/
> И?

Каков смысл в "безопасном языке", если без unsafe никуда?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #45

39. Сообщение от Аноним (39), 14-Июн-24, 03:15   +/
Что за внезапный прелестный сон?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #94

40. Сообщение от Аноним (39), 14-Июн-24, 03:16   +3 +/
То же самое хотел написать. Отличный язык! Но программировать на нём я конечно не буду
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #50

41. Сообщение от Аноним (39), 14-Июн-24, 03:17   +/
Что эта линия значит?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

42. Сообщение от Круз (?), 14-Июн-24, 03:18   +2 +/
> Обеспечено автоматическое продление времени жизни временных значений, которые используются в конструкциях "match" и "if".

вот и завезли сборщик мусора, теперь ржависты со своим наречием стали совсем ненужны

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #53, #61, #124

43. Сообщение от Аноним (39), 14-Июн-24, 03:20   +/
Ну это кучка дешёвых понтов поверх ровной и любимой сишке
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #129

45. Сообщение от MT (ok), 14-Июн-24, 03:44   +/
Сначала пишем библиотеки-обвязки с `unsafe`, потом используем эти библиотеки уже в безопасном стиле.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #48, #117

46. Сообщение от cheburnator9000 (ok), 14-Июн-24, 03:49   +1 +/
Некоторые графические программы хотят более лучше интегрироваться в систему и как-то с ней взаимодействовать. И не изобретать велосипед на каждый чих. Но до сих пор на каждый чих все изобретают свои способы подходы к вопросам. Под макос все просто есть Cocoa API, там по сравнению с WinAPI все куда более организовано. А под линуксом что? 100500 сервисов которые реализованы для общения либо через сокеты, либо через dbus, либо вообще умудряются микро http сервер держать для rest api. И все это ради чего? Правильно чтобы не влезать в "unsafe" мир. Тогда почему Apple это вообще не колышит, а под линуксом каждый второй изобретает велосипеды лишь бы оно не было на C/C++.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #104, #190

47. Сообщение от Аноним (47), 14-Июн-24, 05:25   +2 +/
Почему до сих самых пор игры пишут на плюсах, а не на расте? В плюсах же - ведь все настолько плохо... а как вообще окна написали? Да и весь остальной код.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #62, #73, #101, #164

48. Сообщение от Аноним (47), 14-Июн-24, 05:27   +/
И это превратит его в безопасный код?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #51

49. Сообщение от Аноним (47), 14-Июн-24, 05:29   –1 +/
Что-то мне подсказывает, без unsafe - особо дальше hello world не уехать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #238

50. Сообщение от Аноним (47), 14-Июн-24, 05:31   +4 +/
Программировать можно, но как потом читать все это безобразие? Я всегда считал плюсы ужасными, но раст одним махов их переплюнул.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #91, #296, #322

51. Сообщение от Прохожий (??), 14-Июн-24, 05:48   +1 +/
Это поможет гораздо быстрее находить ошибки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48 Ответы: #76

52. Сообщение от Аноним (-), 14-Июн-24, 05:54   +/
> Зачем нужен консорциум, если Rust и так безопасный?

Раст безопасный, но вон там список CVE по слову Rust почему-то уже довольно длинный.

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

53. Сообщение от Прохожий (??), 14-Июн-24, 05:57   –3 +/
В таком смысле он там всегда был. Но этот "сборщик мусора", в отличие от других языков, работает предсказуемо и без дополнительных накладных расходов, то есть на этапе компиляции.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

55. Сообщение от Аноним (55), 14-Июн-24, 05:59   +/
> Страшный с++.
> Который вытеснил сишку практически из всех областей разработки, даже из embedded.

Да вот вся фирменная идиотия сей - на месте. Типа int хрензнает какого размера и прочих integer promition с совершенно отшиблеными правилами вида "попробуй угадать что сделает клмпилер".

Хотя при сильном желании на плюсах можно даже сделать подобие сабжа, конечно. На минималках даже из сишки немного можно. Только криво.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #119, #261, #280

56. Сообщение от Прохожий (??), 14-Июн-24, 06:01   +/
И что же здесь плохого?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #82

58. Сообщение от Прохожий (??), 14-Июн-24, 06:05   –2 +/
Если не читать документацию, тогда, конечно, будет "не пойми что". А если читать документацию, всё будет относительно просто и понятно. Примерно, как с математикой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

59. Сообщение от Прохожий (??), 14-Июн-24, 06:18   +3 +/
А теперь представь, что вместо изобретаемых организационных правил, не обязательных к соблюдению, тебя контролирует компилятор, который ты не сможешь игнорировать. И подумай ещё раз над тем, что ты сказала.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

61. Сообщение от Аноним (-), 14-Июн-24, 06:29   +1 +/
> вот и завезли сборщик мусора, теперь ржависты со своим наречием стали совсем ненужны

Если так рассуждать - то даже в си есть автоматическое управление памятью, ежели аллокации на стеке. И проблемы с ним там - довольно характерные, угумс. А самое прикольное что это не стандартизировано и implementation detail вообще.

И да, на этом можно налететь, если это делать глупо. А "gc" вообще хардваром подперт. Вот только оно поэтому просто и быстро в отличие от неведомой зверушки с непредсказуемой фоновой активностью и хрен его знает каким временем лага - так что про вон то, которое критикал, можно совершенно точно забыть. А как вы реалтайм гарантии будете с таким инструментом давать? Никак? Ну вот то-то и оно.

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

62. Сообщение от Прохожий (??), 14-Июн-24, 06:37   +2 +/
Очевидно, потому, что C++ гораздо раньше появился на свет, и уже успели написать очень много, и переписывать всё на новом языке выйдет довольно дорого (хотя движки игровые уже начали появляться и на Rust). Кроме того, в играх ошибки работы с памятью не особо критичны. Ну упадёт где-то игра, никто особо на деньги не пострадает. Только настроение у игрока испортится. Игру починят, и поедут дальше. В критичных же для бизнеса приложениях подобные ошибки чреваты большими убытками.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #72

63. Сообщение от Прохожий (??), 14-Июн-24, 06:41   +1 +/
Что помешает этому же разрабу проделать подобное с кодом, который не входит в эту экосистему? И причём здесь вообще экосистема, которая всего лишь существенно облегчает поиск нужного тебе пакета и интеграцию в твой проект?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #86

64. Сообщение от Прохожий (??), 14-Июн-24, 06:45   –1 +/
1) вкусовщина (другими словами непрофессионализм).
2) недостаток знаний, плохое владение предметной областью (то есть, снова не профессионализм).
3) субъективное ничем не подтвержденное мнение (опять он, непрофессионализм).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

66. Сообщение от Аноним (66), 14-Июн-24, 07:08   –1 +/
> Я не топлю ни за раст ни за С++ ни за любой другой язык.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #74, #116

67. Сообщение от Илья (??), 14-Июн-24, 07:09   +/
> Большинство прикладных программ этого не требуют

Прикладные лучше на c# писать. Дотнет вылизали как конфетку последнее время.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #69

69. Сообщение от Аноним (69), 14-Июн-24, 08:29   +/
Последние лет 15 если быть более точными.
Хорошие быстрые и надежные приложения.
Но есть нюансы - смотря какая предметная область - Если какие либо приложения с UI - MS умудрилась ловко забросить годный WinForms, потом так же ловко слить 10 лет назад Сильверлайт и WPF, и сейчас там все довольно туманно - активного развития давно, последние 10 лет, там нет.
Плюс доступных и бесплатных развитых IDE тоже нет -кроме VS Comunity требующий регистрации в MS - свободный и кривой MonoDevelop давно заброшен.
А так да, все конфетно, но с элементами некромагии.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #169

72. Сообщение от Аноним (72), 14-Июн-24, 08:40   +2 +/
Раст уже 9 лет как "стабильный" язык почему на нём ничего не пишут?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #79, #347, #547

73. Сообщение от Аноним (13), 14-Июн-24, 08:40   +1 +/
> Почему до сих самых пор игры пишут на плюсах, а не на
> расте? В плюсах же - ведь все настолько плохо... а как
> вообще окна написали? Да и весь остальной код.

Как тот кто пробовал писать на плюсах и на расте для игр я скажу что в расте это просто больно из-за дикой строгости. В играх всегда важна скорость иттераций и процесс проверки идей. А также С++ более близко интегрирован со всеми библиотеками котоыре используют для разработки игр и все  SDK также поставляются с заголовками на С++.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #112

74. Сообщение от Аноним (72), 14-Июн-24, 08:41   +/
Но ведь основа любого пузыря это святая вера.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66

76. Сообщение от Аноним (72), 14-Июн-24, 08:44   –1 +/
Нет не поможет, проснись.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #320

77. Сообщение от Аноним (72), 14-Июн-24, 08:46   +/
Большинство производительных прикладных программ написано но Go.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #89

79. Сообщение от Аноним (79), 14-Июн-24, 08:50   +/
пишут и много
например в блокчейне
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #84, #99

80. Сообщение от Аноним (99), 14-Июн-24, 08:52   –1 +/
Предлагаю вспомнить методы формальной логики.
Раст вышел из мозиллы->мозилла~4%->в соседней веточке, в теме популярности ЯП'ов раста не видать в топах.
....
Раст - это про пиар.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #81, #83, #326

81. Сообщение от Аноним (81), 14-Июн-24, 08:58   +4 +/
>Раст - это про пиар

Раст - это про "собаки лают, а караван идет"

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

82. Сообщение от Пользователь (?), 14-Июн-24, 09:01   –1 +/
То что максимально странный синтаксис.
Поди разберись что это: словарь, массив или вообще что-то другое

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56 Ответы: #103, #122

83. Сообщение от Аноним (72), 14-Июн-24, 09:02   +/
Но если не раст то что? Если есть энергия что-то пиарить надо перекоючит пиар на что-то другое. Но этого другого нет. Раньше часто пиарили Хаскель. Но всё перебил раст, хотя он во всем хуже Хаскеля.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80 Ответы: #85, #107

84. Сообщение от Аноним (84), 14-Июн-24, 09:13   +7 +/
очередное подтверждение, что это скам, а не язык
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79

85. Сообщение от Аноним (99), 14-Июн-24, 09:13   +1 +/
Про Хаскель в точку!
А почему бы не пиарить фундаментальное образование? С годными знаниями математики оно и с указателями попроще будет. Да и вообще айсикью постабильнее от изучения точных наук. Лучшая профилактика старика Альцгеймера и прочих деменций!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83 Ответы: #87

86. Сообщение от Аноним (84), 14-Июн-24, 09:15   +/
нафига это, если есть пакетный менеджер ОС и git?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63 Ответы: #105

87. Сообщение от Аноним (87), 14-Июн-24, 09:18   +2 +/
да кому нужны умные люди?
нужны гребцы на ржавые галеры )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85 Ответы: #90, #162

88. Сообщение от нах. (?), 14-Июн-24, 09:20   +/
Ну опять двадцатьпять... говорите правильно: _начали_переписывать_!

Нет кода - вот и безопастненько!

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

89. Сообщение от Аноним (84), 14-Июн-24, 09:21   +/
и что они производят, кроме тепла и сотен мегабайт мусора на диске для хранения себя же?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77 Ответы: #126

90. Сообщение от Аноним (99), 14-Июн-24, 09:22   +/
Сэд бат труЪ.
Ну ничего,давеча с Клодом пообщался плодотворно. Сложилось стойкое впечатление, что АГИ не за горами. Маск явно что-то знает.
И кому будут нцжны эти проржавевшие байдарочники?!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87

91. Сообщение от нах. (?), 14-Июн-24, 09:22   +5 +/
пиши в write-only style, ну как некоторые на перле в 90х.

Зачем его потом читать, он же - безопастный! Понадобилось что-то поменять? Просто удали код и пиши заново, это называется refucktoring, во!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #323

94. Сообщение от Axel (??), 14-Июн-24, 09:29   +1 +/
Pantheon
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #407

99. Сообщение от Аноним (99), 14-Июн-24, 09:55   +1 +/
А биток ака "золотой стандарт" внезапно на крестах.
Ну, Вы поняли.
Про скам там уже писали.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79 Ответы: #113

101. Сообщение от Аноним (-), 14-Июн-24, 10:00   +/
Потому что если в игрушке будет out-of-bounds и она внезапно удалит все файлы юзера, то бідем иметь одну сгоревшую задницу.
А если такое же будет в ядре линукс, но получим удаленное выполнение случайного кода, то попа сгорит у кучи админов и людей с деньгами.

Поэтому в ядро добавляют раст, а на геймеров всем плевать.

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

102. Сообщение от Аноним (102), 14-Июн-24, 10:03   +/
Плюсовый auto как раз удобен и понятен, в отличие от.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #173

103. Сообщение от Аноним (-), 14-Июн-24, 10:05   +/
Разве свифт это не ARC ?
Я понимаю, что даже в objc можно было писать всякие autorelispool, а в свифте обмазываться UnsafeRawPointer, MemoryLayout...
Но зачем?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82

104. Сообщение от Аноним (104), 14-Июн-24, 10:24   +1 +/
> И все это ради чего? Правильно чтобы не влезать в "unsafe" мир.

Нет конечно. Просто разработка линукса - это базар в худшем его виде.
Лебедь, рак и щука просто нервно курят в сторонке, глядя на это сборище непризнанный "гениев", засилье NIH и stable anything nonsense. Причем все попытки сделать хоть что-то стандартом де-факто оборачиваются метанием продуктов жизнедеятельности в создателя.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #131

105. Сообщение от Аноним (105), 14-Июн-24, 10:25   +1 +/
Устанавливайте зависимости напрямую из любого гит репо, кто же вам запрещает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86 Ответы: #356

106. Сообщение от Аноним (106), 14-Июн-24, 10:33   –2 +/
> ты ОБЯЗАН учить абсолютно все к чему притрагиваешься

Да, так всегда в жизни

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

107. Сообщение от Facemaker (?), 14-Июн-24, 10:36   +1 +/
>Но всё перебил раст, хотя он во всем хуже Хаскеля

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83 Ответы: #111

108. Сообщение от Аноним (104), 14-Июн-24, 10:37   +/
> Безопасность решается методологией написания кода, а не языком. Вот для ознакомления, короткое,
> но информативное видео:

Ты вообще видео отрывала? (открывал?)
Там третье же требование - youtu.be/GWYhtksrmhE?t=101 - не использовать heap.

И этим они пытаются решить типичные сишкопроблемы с памятью.
Т.е. они настолько осознали что сишники не смогут писать нормально, что решили "Тут не исправить уже ничего, Господь, жги!" и просто запретили malloc/free. Классное решение! Невероятно добавляет надежности!
А заодно в очередной раз показывает убогости сишки))

Там есть еще крутые "limit preprocessor" и "restrict pointer usage"))
А что остается от сишки, если выполнить все эти требования? Это же получается другой язык, ну или очень порезанный диалект.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #275

109. Сообщение от Герострат (?), 14-Июн-24, 10:37   +1 +/
> Это когда ошибки в С++ хер прочтешь это ли не борьба с компилятором?

Ты читать не умеешь что ли?

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

110. Сообщение от Герострат (?), 14-Июн-24, 10:41   +/
На плюсах тоже можно писать без ооп
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

111. Сообщение от Аноним (99), 14-Июн-24, 10:52   +/
> на Rust работаю за деньги

Если Вас не затруднит, расскажите пожалуйста подробнее о специфике проектов. В каких реальных секторах экономики сейчас применяют раст?
Пишут ли софт с нуля, или ваяют костыли?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107 Ответы: #121

112. Сообщение от Аноним (47), 14-Июн-24, 10:55   +/
Rust раз за разом бьет программиста по рукам - раз язык должен себе такое позволять?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73 Ответы: #114

113. Сообщение от freecoder (ok), 14-Июн-24, 11:01   +1 +/
Биткоин появился раньше, чем Rust.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #115

114. Сообщение от freecoder (ok), 14-Июн-24, 11:03   +/
Бьёт только до тех пор, пока программист не научится программировать на Rust.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112 Ответы: #150

115. Сообщение от Аноним (99), 14-Июн-24, 11:04   +/
Тем не менее, он не написан скажем на жабе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113 Ответы: #125

116. Сообщение от freecoder (ok), 14-Июн-24, 11:07   +1 +/
Вот я уже более пяти лет активно использую Rust в разработке, и у меня всё хорошо. Язык улучшается, экосистема растёт, что не может не радовать. Почему это он вдруг должен "сдуться"?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66 Ответы: #146

117. Сообщение от freecoder (ok), 14-Июн-24, 11:11   +1 +/
Концепция безопасности в Rust предполагает использование unsafe там, где компилятор не может гарантировать безопасность и её должен гарантировать программист. Unsafe - полноценный и необходимый элемент языка Rust. Если вы ожидали другого - это проблема ваших ожиданий, сам Rust не скрывает важности и нужности unsafe.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #166

118. Сообщение от Аноним (-), 14-Июн-24, 11:11   +1 +/
> Есть такое понятие, как целесообразность.

Именно. И вот целесообразности писать на сишке практически не осталось.

> ООП нафиг не нужно

C++ - мультипарадигменный язык. На нем можно и в процедурная стиле писать.
Зато пользоваться всеми аспектами, которые сейчас являются просто нормой для нормальных языков программирования.

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

119. Сообщение от Аноним (-), 14-Июн-24, 11:15   +/
> Да вот вся фирменная идиотия сей - на месте.

Да, к сожалению. Это цена поддержки обратной совместимости.
Но лучше хорошее + чуть сишной убогости, чем одна только убогость.

> Хотя при сильном желании на плюсах можно даже сделать подобие сабжа, конечно. На минималках даже из сишки немного можно. Только криво.

Только это будут уже не плюсы и не сишка. А какой-то кадавр, над которым поиздевался хирург mad-doc.

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

120. Сообщение от Аноним (120), 14-Июн-24, 11:25   +1 +/
Надеюсь консорциум будет достаточно дайвёрсити и инклюзивити. Надеюсь откроют целый отдел тех, кто будет следить за инклюзивностью. В расте по другому не принято.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #328

121. Сообщение от Facemaker (?), 14-Июн-24, 11:26   +2 +/
Не хочу, чтоб меня расшифровали коллеги :), поэтому выражусь уклончиво. Работаю в крупной российской компании, один из проектов которой — СУБД, полностью реализуемая с нуля на языке Rust. В других проектах "костыли": существующие C или C++-системы расширяются, где возможно, на Rust.

А вообще Rust много где уже применяется. Список компаний можно составить, просмотрев hh.ru :). Поэтому так смешно читать злопыхательства местных экспертов.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #128, #135

122. Сообщение от freecoder (ok), 14-Июн-24, 11:28   +2 +/
Фигурные скобки обозначают блок, квадратные скобки - массив, срез или доступ по индексу. Так понятнее?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82 Ответы: #302, #306, #409

123. Сообщение от freecoder (ok), 14-Июн-24, 11:29   +1 +/
А в чём избыточность?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #252

124. Сообщение от Аноним (124), 14-Июн-24, 11:35   +/
Это то же самое, что очищение локальных переменных в конце функции, там нет stop the world
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

125. Сообщение от freecoder (ok), 14-Июн-24, 11:35   +/
> Тем не менее, он не написан скажем на жабе.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #115 Ответы: #130

126. Сообщение от Аноним (-), 14-Июн-24, 11:39   +/
> и что они производят, кроме тепла

Они производят полезность в виде выполненной задачи.
При этом умудряясь не сегфолтиться, выходить за границы буферов и получать рута.

А если для вас пара сотен мб это много... значит вы застряли где-то в 90х-2000х.
Потому что сейчас терабайтные ссд даже у самых нищуков есть.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89 Ответы: #132, #174, #176

127. Сообщение от Аноним (127), 14-Июн-24, 11:40   +/
Я как сишник несколько раз пытался тыкать плюсы, поддавался на хайп, но это скам, а не язык.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #145

128. Сообщение от Аноним (72), 14-Июн-24, 11:48   +/
То что в компаниях тоже есть фанатики совершенно не говорит о юзабельности Руста. 100 вакансий на Москву это пыль по сравнению с другими языками. Которых требуется в десятки раз больше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #121 Ответы: #138

129. Сообщение от Аноним (72), 14-Июн-24, 11:50   +/
Си это база.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

130. Сообщение от Аноним (99), 14-Июн-24, 11:51   +/
Вместе с тем бОльшая часть энтерпрайзного софта пишется на ней и на шарпах. По крайней мере из того, что видел лично я. Сейчас не говорю о том, что узкие места обычно пишутся на низком уровне.
Тем не менее Сатоши не воспользовался подобной парадигмой, а написал на крестах все, причем по мнению экспертов сделал это красиво.

Можем ли мы видеть корреляцию компетенций и айсикью в данном примере?
Ведь сама по себе реализация кодовой базы - вопрос прикладного характера, во многом руководствующийся бизнес логикой. Здесь же человек и/или группа людей придумал/и действительно новую фичу, вызвавшую усиление пульса пониже спины у представителей мировой фин системы, да еще и красиво реализовав на крестах. Без шума, пыли, охов и вздохов.
А ведь мог взять какую-нить предтечу раста, да в узких местах наваять на сях. Ан нет, почему-то он так не сделал.

Во истину этот человек гений. По моему скромному мнению.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #125 Ответы: #134

131. Сообщение от Аноним (131), 14-Июн-24, 11:53   +/
Один сделал стандарт де факто, теперь система при разлогине пользователя браузер прибивает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104 Ответы: #508

132. Сообщение от Аноним (131), 14-Июн-24, 11:56   +/
Хотелось бы на этих терабайтных ссд хранить ещё что-то помимо программ.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126

133. Сообщение от Аноним (133), 14-Июн-24, 11:56   +1 +/
Тем, кто "на заборе" - если хотите что-то лучше крестов, то пробуйте zig или go.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #136

134. Сообщение от freecoder (ok), 14-Июн-24, 12:00   +/
BitShares был написан на плюсах и соскамился. Solana написана на Rust и держится. Нет ли тут корреляции?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #130 Ответы: #140

135. Сообщение от Аноним (99), 14-Июн-24, 12:04   +/
> Работаю в крупной российской компании, один из проектов которой — СУБД,

Провел беглый анализ ситуации на рынке, согласно данным открытых источников, отечественные наработки базируются на основе слонов. Ака постгрес.

Если допустить уровень "супер секретности", дескать мы тихо разрабатываем и никому не говорим, то это просто не укладываеься в общий политический тренд импортозамещения.
У нас принято громко заявлять о успехах, когда проект еще на уровне идеи. Дескать авось ассигнацию выделят. Овер 99% таких "проектов" умирают не родившись.

На основании полученных данных делаю вывод о том, что пилите какую-то обвязку на расте вокруг экосистемы постгри.

Что сказать, видел как пилили под линуксом на шарпах. Оставлю этл без комментариев. На совести разработчиков, скажем так.

> существующие C или C++-системы расширяются, где возможно, на Rust

"Все проходит и это тоже пройдет". (с)
Видели и не такое.
Меж тем костыли менялись, база осталась.
Могу пожелать Вам крепкой нервной системы!

>А вообще Rust много где уже применяется. Список компаний можно составить, просмотрев hh.ru :)

Мне не интересен хх.ру
Вы сказали, что много где используете лично, я поинтересовался лично у разработчика, Вы от ответа ушли.
И простите, но по моему мнению солгали, касаемо СУБД с 0 в РФ на раст.
На хх.ру много чего пишут, как на заборе практически...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #121 Ответы: #139, #142, #144

136. Сообщение от Facemaker (?), 14-Июн-24, 12:05   +/
Не совсем верно. C++ — язык для создания огромных и сложнейших систем. Zig прост и скорее конкурент Си. Go — соглашусь, способен во многих проектах заменить и C++, и Java и тем более Python. Но Go не перекрывает всё, на что способен C++. Тут можно рассмотреть Rust. Единственно, где C++, возможно, до сих пор незаменим — приложения, выжимающие максимум производительности (за счёт оптимизаций, запрещённых в более безопасных языках).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #133 Ответы: #171, #183, #389

137. Сообщение от _kp (ok), 14-Июн-24, 12:05   +/
>> когда ошибки в С++ хер прочтешь это ли не борьба с компилятором?

Смените IDE.
Вон, в Visual Studio, ткнёш в ошибку, и предлагаются варианты исправления на выбор, при опечатках и явных плюхах, то есть человеческом факторе, очень ускоряют работу.

>>казалось бы должен просто добавлять конце строки в поток. ... этому еще и флашит буффер.

Кажется - перекрестись и сплюнь.
Если поведение не явно оговорено, то ПО УМОЛЧАНИЮ будет как угодно, ибо иного не обещано, но на самом деле Вы можете настроить срабатывание flush.

>>Почему он делает то о чем его название не говорит? Почему я должен об этом догадаться?

Потому что плохо учились, или мало учились.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #273

138. Сообщение от Аноним (-), 14-Июн-24, 12:06   +/
> То что в компаниях тоже есть фанатики совершенно не говорит о юзабельности
> Руста. 100 вакансий на Москву это пыль по сравнению с другими
> языками. Которых требуется в десятки раз больше.

Так себе аргумент. Потому что больше всего погромистов требуется для JS и php.
И по твоей логике они теперь стали самыми юзабельными языками?))


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #128 Ответы: #141

139. Сообщение от Facemaker (?), 14-Июн-24, 12:06   +/
>по моему мнению солгали, касаемо СУБД с 0 в РФ на раст

Время покажет :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135 Ответы: #143

140. Сообщение от Аноним (99), 14-Июн-24, 12:16   +/
Посмотрите гитхаб юитшарес, узнаете много нового и интересного.

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

Про солану почитайте новости, не так давно минувших дней.

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

141. Сообщение от Аноним (72), 14-Июн-24, 12:18   +4 +/
Нет вот видишь ты даже не знаешь статистику какие программисты нужны. Ты оторван от реальности и не можешь здраво рассуждать. Php вакансий меньше чем C++ просто попробуй с этим пожить чуток.

Сразу скажу что сумма вакансий php js c++ меньше чем вакансий на один только python. Python нужен в 70 раз больше чем раст. И да python самый юзабельный язык попробуй это принять.

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

142. Сообщение от Аноним (72), 14-Июн-24, 12:20   +2 +/
Так это же раст они только пишут и никак не напишут. Хоть обвязку хоть с нуля. В их работа важен процесс, а не результат.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135

143. Сообщение от Аноним (99), 14-Июн-24, 12:22   +/
Дай то Патрег!
Я только за! И за свои камни, и за свои япы и все все все...
Пока исхожу из реалии.
Пресс релизы всея яндекса молчат о таком чуде.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #139

144. Сообщение от n00by (ok), 14-Июн-24, 12:22   +/
> На основании полученных данных делаю вывод о том, что пилите какую-то обвязку
> на расте вокруг экосистемы постгри.

Я на основании "не хочу, чтоб меня расшифровали коллеги" сделал такой вывод. В лучшем случае.)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135 Ответы: #213

145. Сообщение от Аноним (145), 14-Июн-24, 12:23   +/
А правда, когда сишнику нужна структура данных типа словаря, то они подумают-подумают, решат, что не сильно то и надо, и сделают обычную таблицу-массив?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #127 Ответы: #148, #292, #482

146. Сообщение от Аноним (-), 14-Июн-24, 12:24   +/
Думаю если добавить все добавления в ядро, драйвера от шапки и асаши, то у хейтеров будет вообще кислое выражение лица)
Владельцы линукса решили что им достаточно CVE в ядре и теперь будут исправлять ситуацию
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116

147. Сообщение от Sw00p aka Jerom (?), 14-Июн-24, 12:25   +/
А ссылка где?

https://en.cppreference.com/w/cpp/io/manip/endl

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

148. Сообщение от Аноним (-), 14-Июн-24, 12:26   +1 +/
Однозначно!
По массиву легче идти-идти, а потом раз! и выйти за пределы.
Ну, чтобы жизнь стала интереснее.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145

149. Сообщение от Bottle (?), 14-Июн-24, 12:29   –1 +/
Не, ты что! Язык с одним компилятором против десятка коммерческих, без стандарта против языка со стандартом ISO, язык с арифметикой, разнящейся на машинах против языка с гарантиями точности, точно нужен!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #314

150. Сообщение от Аноним (47), 14-Июн-24, 12:31   +/
Язык должен делать то, что пожелает программист... не наоборот. Тем более бить его про рукам.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #114 Ответы: #154

154. Сообщение от freecoder (ok), 14-Июн-24, 12:42   +/
Конечно. Поэтому Rust позволяет программисту делать всё, что он пожелает. Просто желать не нужно скверного.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #150 Ответы: #156

156. Сообщение от Аноним (-), 14-Июн-24, 12:53   +/
> Конечно. Поэтому Rust позволяет программисту делать всё, что он пожелает. Просто желать не нужно скверного.

Но тем не менее он позволяет делать даже скверное


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

157. Сообщение от Аноним (-), 14-Июн-24, 13:04   –4 +/
Как показала история, даже lingua franca тоже дохнут)
Латынь весело машет ручкой из могилы, хфранцузский, на котором, вроде как, говорил весь мир и даже писалась русская литература, нужен уже не столь многим.
СИшка как латынь в медицине - куча легаси осталось. Термины заучиваются, но все современное это уже на других языках.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #277, #418

162. Сообщение от Аноним (-), 14-Июн-24, 13:28   +1 +/
> да кому нужны умные люди?

А где их взять? И вообще они когда-то были
Вон самые Ылитные пограммеры на СИшке выдавливают из себя такой код, что просто страшно становится.
Подумаешь не осилили split строки
А ведь это Glibc, казалось должна быть надежной! opennet.ru/opennews/art.shtml?num=59867

И такой кал они выдавали даже 30+ лет назад.
"Уязвимости в библиотеках X.Org, две из которых присутствуют с 1988 года "
opennet.ru/opennews/art.shtml?num=59906
Тут пол опеннета наверное младше той дырени.

> нужны гребцы на ржавые галеры )

Кто хочет идет на галеру, это его право.
Кто не хочет - может пились самостоятельно что хочет.
Тут вопрос в том, что за опенсорс отвечают как раз владельцы галер)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87 Ответы: #170, #177

164. Сообщение от JackONeillemail (?), 14-Июн-24, 13:33   +/
Потому что крупные игры на слуху делают не на языке, а на движках, первая 5ка из которых появились задолго до появления ржавого. По моему тут все просто. На rust идет разработка движков. Да и игры есть, не крупные конечно де пока. Все это гуглится на ура.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

166. Сообщение от Аноним (166), 14-Июн-24, 13:39   +/
> де компилятор не может гарантировать безопасность и её должен гарантировать программист.

Цепь прочна ровно настолько, насколько прочно её слабое звено. Так что панацеи не получилось, всё равно всё упирается в профессионализм программиста.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #117 Ответы: #172, #428

169. Сообщение от Илья (??), 14-Июн-24, 13:51   +/
> Но есть нюансы - смотря какая предметная область - Если какие либо приложения с UI - MS умудрилась ловко забросить...

Ну я на беке работаю, мне хорошо, тут дотнет только хорошеет. А про UI согласен. Каждые несколько лет Microsoft пилит новый UI фреймворк, а один закапывает. Я бы и рад освоить Blazor, но судя по тенденции, лучше взять React, который никуда не денется еще лет 10.

> Плюс доступных и бесплатных развитых IDE тоже нет

A такие бывают для других технологий? В дотнет мире всё очень даже хорошо с идешками. Visual Studio Community хорош. Для профессиональной разработки есть Rider, но он платен. VS Code - тоже вариант.


> А так да, все конфетно, но с элементами некромагии.

Удивительно, как это у нас получается. У меня на прошлой работе было два проекта. Один на dotnet framework 3.5, а другой на дотнет 3.1. Если вы понимаете, о чём я

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #401

170. Сообщение от Аноним (99), 14-Июн-24, 13:52   +/
>И такой кал они выдавали даже 30+ лет назад.

"Уязвимости в библиотеках X.Org, две из которых присутствуют с 1988 года "

Как здесь уже говорили, возможно даже Вы: найс пунш.

Но не то. Ксорг не является релевантным примером. Ибо насколько я помню, первоначально пилился под клиент серверную архитектуру для обеспечения работу терминалов мейнфреймов. Своего рода тонкий клиент.
Дальше всем было лень сделать полноценный рефакторинг под новую задачу, стали набрасывть как водится сверху. И заверте...

Собсно и 30+ лет назад были двоечники, от этого никто и не открещивается. Но в общей массе их было поменьше. Да и уровень тогдашнего лузера легко дотягивает до сегодняшнего крепкого хорошиста. Легко. По моим субьективным наблюдениям.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #162 Ответы: #175

171. Сообщение от Аноним (-), 14-Июн-24, 13:58   +/
> Zig прост и скорее конкурент Си.

Где-то пол года назад в zig-песочнице можно было спокойно сделать double-free и use-after-free при помощи пары строк код.
Я бы сказал, что он слегка лучше (хотя бы меньшим кол-вом UB), но не то чтобы прям решал основные проблемы си.

> Единственно, где C++, возможно, до сих пор незаменим — приложения, выжимающие максимум производительности (за счёт оптимизаций, запрещённых в более безопасных языках).

До эпохи массового интернета это было норм.
А сейчас если выбирать между 'х2 производительность' (хотя думаю в реале будет скорее 5-10%) и 'какиры взломали ваши серваки и продают террабайты кода' многие хорошо задумаются.
Пример гугла говорит о том, что новый код они стараются писать на расте.

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

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

172. Сообщение от Аноним (-), 14-Июн-24, 14:01   +/
> Цепь прочна ровно настолько

Только у тебя не цепь.
Можешь представить офисное зданием, много этажей, куча дверей.
Часть дверей гнилые, где-то нет замков. Даже если ты заменишь половину дверей - уже станет лучше.

> профессионализм

пока что профессионалы лепять очередное double-free в ядре на сишечке

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #166 Ответы: #185, #546

173. Сообщение от Аноним (27), 14-Июн-24, 14:04   +/
Плюсовый авто удобен чтобы форич по только что упомянутому листу не занимал пол экрана только на объявление, но когда ехал авто через авто смотрит авто авто авто и нифига не ясно кто какого типа и зачем тут нужен это читать больно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102 Ответы: #410

174. Сообщение от Илья (??), 14-Июн-24, 14:04   +/
> А если для вас пара сотен мб это много... значит вы застряли где-то в 90х-2000х.

Не устану повторять, что дешевизна оперативной памяти - миф.

1. Большинство современных ноутбуков продаётся с распаянной памятью. Расширение памяти по стоимости равно покупке нового устройства.

2. Каждые пару лет необходимо расширять оперативную память в два раза. Не на пару сотен мегабайт, а в два раза.

3. Мне для комфортной работы необходимо 32 гига. А если с запасом брать - то не менее 64 гигов. 32 гига, КАРЛ

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #180

175. Сообщение от Аноним (-), 14-Июн-24, 14:12   +/
> Но не то. Ксорг не является релевантным примером. Ибо насколько я помню, первоначально пилился под клиент серверную архитектуру для обеспечения работу терминалов мейнфреймов. Своего рода тонкий клиент.

Но который писали вроде не глупые пограммисты.
Или там были сплошные двоечники сбежавшие из ПТУ?

> Дальше всем было лень сделать полноценный рефакторинг под новую задачу, стали набрасывть как водится сверху. И заверте...

Напоминает историю ядра)

> Собсно и 30+ лет назад были двоечники, от этого никто и не открещивается. Но в общей массе их было поменьше.

Я видел как тогдашние отличники заряжали воду от телевизора и тащили денежки в МММ.
У них вообще нет ни понимания "причина следствие", просто феноминальный инфантилизм, зато просто феноминальное ЧСВ и уверенность в качестве своего образования.
Последствие этого мы пожинаем до сих пор(

> Да и уровень тогдашнего лузера легко дотягивает до сегодняшнего крепкого хорошиста. Легко.

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

> По моим субьективным наблюдениям.

Субъективные наблюдения не могут быть объективной метрикой.
Думаю ты тут спорить не будешь)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #170 Ответы: #182

176. Сообщение от Аноним (99), 14-Июн-24, 14:14   +/
>Потому что сейчас терабайтные ссд даже у самых нищуков есть.

Нищуков. Новый перл?!
Как-то до сих пор справляюсь с 256гб. 1тб ссд не имею.
Коли Вы не нищук, подкинете немного криптовалютного лута нищуку, для обновления приборной базы? Или это так  ради "красного словца"?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #181

177. Сообщение от Аноним (87), 14-Июн-24, 14:14   +/
Возможно ли как-то оценить количество генерируемого кала тогда и сейчас ?
Особенно если взять в учёт что сегодняшние "профессионалы на безопасных языках" продолжают сотрясать воздух в то время как серьёзные вещи продолжают создаваться на языках 40+ летней давности
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #162 Ответы: #331

178. Сообщение от Аноним (-), 14-Июн-24, 14:18   +/
> Полная верификация это долго и очень дорого - можно почитать сколько стоила верификация seL4, поэтому пытаются найти баланс.

Мне кажется, что последняя часть предложения неверна. Баланс между сложностью верификации и качеством результата верификации пытается найти rust сам по себе, точнее он уже нашёл какой-то компромисс, и теперь старается его держаться. Но когда речь заходит о формальной верификации поверх раста, то тут уже качество результата перестаёт быть предметом торга, и выставляется в 100%.

В расте формальная верификация значительно проще чем в C/C++[1], потому что большая часть работы выполняется компилятором, который заставляет программиста писать программу следуя определённым правилам. Там проблемы, я полагаю, в основном про масштабируемость решения. Ну и конечно надо дождаться, когда какой-нибудь из формальных верификаторов раста победит, чтобы я мог бы в Cargo.toml заказать только верифицированные депенденсы, и потом сделать `cargo verify`.

[1] https://graydon2.dreamwidth.org/312681.html

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #184

180. Сообщение от Аноним (180), 14-Июн-24, 14:23   +/
> Не устану повторять, что дешевизна оперативной памяти - миф.

Можно просто посмотреть статистику цены оперативки за последние лет 10.
И убедиться что это не миф.

> 1. Большинство современных ноутбуков продаётся с распаянной памятью. Расширение памяти по стоимости равно покупке нового устройства.

Ноутбук это мобильное рабочее место, с соответсвующими минусами.
Работай на десктопе - там можно память расширять почти до бесконечности.
Народ себе даже рамдиски делает для ускорения рабочих процессов.

> 2. Каждые пару лет необходимо расширять оперативную память в два раза. Не на пару сотен мегабайт, а в два раза.

Неправда. Есть некие комфортные стандарты.
16 гигов держалось думаю лет 5-8.
32 будет хватать еще лет 5-10.

> 3. Мне для комфортной работы необходимо 32 гига. А если с запасом брать - то не менее 64 гигов. 32 гига, КАРЛ

Для работы!
Мне для работы нужен не только комп, а еще и станок который весит 5 тонн.
5 тонн, Карл!
Обычных юзеров это вообще мало волнует.
Они получают готовый бинарь и раз в 10 лет просто покупают новый комп, а старый отдают тем, кому нужна печатная машинка.


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

181. Сообщение от Аноним (-), 14-Июн-24, 14:30   –1 +/
> Как-то до сих пор справляюсь с 256гб.

Молодец.
> 1тб ссд не имею.

Сочувствую. Даже интересно, как вы работаете?
Проекты на ссд существенно быстрее собираются. Можно конечно сделать рамдиск гигов на 32 и перекинуть кеш туда...

А у меня 850PRO на 256Гб (ему уже почти 10 лет!) и 860EVO на 2Тб. Не топчик конечно, но пока хватает.
Как только перестанет хватать или по скорости, или по размеру - просто куплю новый.
Сейчас 990 PRO на 4TB стоит 350 баксов. Ну пусть с налогами будет 400.
Кажется это любой айтишник позволить может. И хватит его на ближайшие лет пять точно.
А потом просто перейдет на что-то менее ответственное еще лет на пять.
У меня предыдущая ссд на 120гб с десктопа съехал в ноут, а потом в комп для телека. И жив до сих пор, хотя ему лет 15.

> Или это так  ради "красного словца"?

Прости, нищим не подаем.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #176 Ответы: #186

182. Сообщение от Аноним (99), 14-Июн-24, 14:34   +/
>Но который писали вроде не глупые пограммисты.

Или там были сплошные двоечники сбежавшие из ПТУ?

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

>Напоминает историю ядра)

Вай нот!?
Дык может запилить свое с 0. На том же расте... учитывая все косяки дедов.
Где уже новые Торвальдсы?!

>Я видел как тогдашние отличники заряжали воду от телевизора и тащили денежки в МММ.

Вы будете удивлены, но основатель МММ, царствие ему небесное, был очень образованным человеком. Посмотрите его альма-матер. С точными науками дрцжил оч хорошо.
Не стоит путать образованность, наивность и инфантилизм.
Порой это даже взаимоисключающие параграфы.

>Последствие этого мы пожинаем до сих пор(

Пожинать будем и дальше. Стагнация 70х - детский лепет в сравнении с фундаментом, заложенным в 90е и омг сытые нулевые. Ягодки уже собирают.

Наивность большинства образованных людей тех лет зижделось на красном воспитании. Когда лгать, красть и творить прочее непотребство порицалось и считалось постыдным. Человек человеку был товарищ и брат. Не все быстро сориентировались. Сергей Пантелеевич сориентировался в изменяющемся мире. А некоторые так и остались верны принципам.

Инфантилизм же зиждется на постулатах рыночной экономики. Я, мое, мне. Человек человеку волк. Я заберу свое и мне безразличны последствия. Ограниченность эгоцентричного сознания.
В общем сравниваете несравнимое. Специфика разных эпох.

>Ну или ты просто учился в гимназии,

Ну что Вы, куда мне, простому колхознику!

>Субъективные наблюдения не могут быть объективной метрикой.

Думаю ты тут спорить не будешь)

Не буду. Просто в общении с людьми заметно.
А обьективной метрикой в данном случае может выступать компаративистика конечного продукта в исторической ретроспективе. Думаю не будете спорить.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #175 Ответы: #193

183. Сообщение от Аноним (-), 14-Июн-24, 14:39   +1 +/
> Единственно, где C++, возможно, до сих пор незаменим — приложения, выжимающие максимум производительности (за счёт оптимизаций, запрещённых в более безопасных языках).

В расте не запрещены никакие оптимизации. Но зато есть возможность эти оптимизации локализовать в unsafe, и позволить компилятору затем оптимизировать агрессивнее.

Например, строки в rust'е все в utf8. Код работы со строками с целью оптимизации полагается на то, что весь этот utf8 валиден, вплоть до UB в случае невалидного utf8 внутри str. Но std гарантирует, что если ты не создаёшь str при помощи unsafe, то все они будут валидны.

В C++ с этими вещами исторически проблемы, потому что когда C++ создавался, и потом когда его STL создавалась, программисты ещё никак не могли решить, как разделить ответственность между вызывающей и вызываемой сторонами за валидность данных. В результате эта ответственность размазана, то она на вызывающей стороне, и вызов функции с невалидными данными -- это UB, то она на вызываемой стороне, и та в рантайме выполняет проверки, которых часто можно было бы избежать. И C++ не содержит средств, для того, чтобы следить за валидностью данных внутри string. Программист легко может получить char*, затереть там '\0' и вписать невалидный utf8. Код string в результате проверяет в рантайме, то, что он может проверить, сегфолтит на том, что он не может проверить, и получается что ни тебе гарантий в отношение кода, ни производительности.

Единственно, где C++ до сих пор незаменим, это существующие кодобазы на C++.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136 Ответы: #187, #197, #312, #390

184. Сообщение от Аноним (-), 14-Июн-24, 14:47   +/
> Мне кажется, что последняя часть предложения неверна. Баланс между сложностью верификации и качеством результата верификации пытается найти rust сам по себе, точнее он уже нашёл какой-то компромисс, и теперь старается его держаться.

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

> Но когда речь заходит о формальной верификации поверх раста, то тут уже качество результата перестаёт быть предметом торга, и выставляется в 100%.

Согласен, тут как свежесть осетрины, первая и она же последняя.
Если говорить о формальной верификации то результат действительно должен быть 100%
Но если у нас есть 2 либы которые верифицированы, но радом есть прослойка обычного кода, то о верификации на 100% говорить естественно нельзя, но будет лучше чем без нее)

> В расте формальная верификация значительно проще чем в C/C++[1], потому что большая часть работы выполняется компилятором, который заставляет программиста писать программу следуя определённым правилам.

Тут еще нужно проверять логические ошибки, что очень сложно.
За ссылку, большое спасибо, было познавательно.

> Там проблемы, я полагаю, в основном про масштабируемость решения. Ну и конечно надо дождаться, когда какой-нибудь из формальных верификаторов   раста победит, чтобы я мог бы в Cargo.toml заказать только верифицированные депенденсы, и потом сделать `cargo verify`.

Вот что пришлось сделать при верификации seL4:
- 8,700 lines of C code and 600 lines of assembler
- создание модели на Хаскеле
- проверка этого при помощи Isabelle/HOL

И какой ценой)
- abstract spec took about 4 person months
- Haskell prototype 2 person years
- significant research and about 9 person years invested in formal language frameworks, proof tool
The total effort for the seL4-specific proof was 11 person years.
We expect that re-doing a similar verification for new kernel, using the same overall methodology, would reduce this figure to 6 py, for a total (kernel plus proof) of 8 person years. [1]

Т.е это очень сложно и дорого.
Но было бы очень классно действительно чтобы для Раста были отдельные либы или крейты которые верифицированы.

[1] web1.cs.columbia.edu/~junfeng/09fa-e6998/papers/sel4.pdf


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

185. Сообщение от Аноним (47), 14-Июн-24, 14:50   +/
В случае обвязок, аналогия достаточно верная - так как учитывает иерархию. А вот ваша - нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #172

186. Сообщение от Аноним (99), 14-Июн-24, 14:50   +/
>Сочувствую. Даже интересно, как вы работаете?

Я свое уже отработал. Мне в этом нет нужды.

>А у меня 850PRO на 256Гб (ему уже почти 10 лет!) и 860EVO на 2Тб. Не топчик конечно, но пока хватает

Кингстон 256гб. Ему 13 лет. Хватает.
Для ускорения сборки полагаю, красный триппер какой овер 100500 ведер надо бы.

> стоит 350 баксов. Ну пусть с налогами будет 400.

Кажется это любой айтишник позволить может.

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


>Прости, нищим не подаем.

А чего так? Только понты кидаете, да про инфантилизм рассуждаете?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #181 Ответы: #199

187. Сообщение от Аноним (187), 14-Июн-24, 14:52   +/
>Единственно, где C++ до сих пор незаменим, это существующие кодобазы на C++.

Заменим, незаменим...

Когда  Rust начнут использовать для ПО используемом на АЭС, в аэрокосмической отрасли и т.п, тогда можно сказать про какую-то замену.

А пока "истории успеха" от этого языка единичны.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #183 Ответы: #196

188. Сообщение от pavlinux (ok), 14-Июн-24, 15:09   +/
100500 лет назад доказано, что никакой язык не может сам себя проверять.
На пальцах: if ( ptr == NULL) - сам язык может проверить только, что ptr NULL или нет,
но не может отвечать, что if ( ) правильно отработал.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #189

189. Сообщение от Массоны Рептилоиды (?), 14-Июн-24, 15:14   –1 +/
> 100500 лет назад доказано, что никакой язык не может сам себя проверять

Не может проверять сам себя - будем проверять javascript-ом

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #188 Ответы: #194

190. Сообщение от Аноним (190), 14-Июн-24, 15:15   +/
Апле оно не колышит потому что в году 16 они принудидили своих писак писать на своем растоподобном. Там тоже пытаются обработку всехвсех ошибок во время сборки делать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #299

193. Сообщение от Аноним (-), 14-Июн-24, 15:22   +/
> В ту пору, как и любую другую, коллектив всегда разношерстный. Одни качества группы индивидов дополняются иными качествами другой группы. Все как всегда. Вопрос что есть двоечник тогда, и он же сейчас...

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

> Вай нот!?
> Дык может запилить свое с 0. На том же расте... учитывая все косяки дедов.
> Где уже новые Торвальдсы?!

Возможно вот он "проект по разработке на языке Rust легковесного Unix-подобного ядра, реализующего подмножество системных вызовов ядра Linux,"
"На текущем этапе развития в Maestro реализован 31% (135 из 437) системных вызовов Linux, чего достаточно для загрузки консольного окружения на базе bash и стандартной Си-библиотеки Musl. "
opennet.ru/opennews/art.shtml?num=60391

> Вы будете удивлены, но основатель МММ, царствие ему небесное, был очень образованным человеком. Посмотрите его альма-матер. С точными науками дрцжил оч хорошо.
> Не стоит путать образованность, наивность и инфантилизм. Порой это даже взаимоисключающие параграфы.

То что основать ИММ, земля ему стекловатой, был образованным это факт.
А вот экономическое образование тысяч его "клиентов" явно хромало.
Возможно в те временя такого урока вообще не было, в отличии от истории кпсс.

> Наивность большинства образованных людей тех лет зижделось на красном воспитании. Когда
> лгать, красть и творить прочее непотребство порицалось и считалось постыдным.

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

> Человек человеку был товарищ и брат.

Ага, вроде брат, но танками в случае чего давили.

> Инфантилизм же зиждется на постулатах рыночной экономики. Я, мое, мне. Человек человеку
> волк. Я заберу свое и мне безразличны последствия. Ограниченность эгоцентричного сознания.

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

> А обьективной метрикой в данном случае может выступать компаративистика конечного продукта в исторической ретроспективе. Думаю не будете спорить.

Да, поэтому я смотрю на то как раст входит и в ядро, и другние проекты.
Простой объективный факт.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #182 Ответы: #203

194. Сообщение от pavlinux (ok), 14-Июн-24, 15:32   +1 +/
>> 100500 лет назад доказано, что никакой язык не может сам себя проверять
> Не может проверять сам себя - будем проверять javascript-ом

И как жабаскрипт проверит выставлен ZF на проце или нет?


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #189 Ответы: #206

196. Сообщение от Аноним (72), 14-Июн-24, 15:35   +1 +/
В софте для АЭС не может быть никакой магии. Или в аэрокосмической области. Не может быть такого что из карго прилетел неизвестный пакет и не может быть такого что лишняя непонятная магия проверяет некие абстрактные выходы за границы буфера.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #187 Ответы: #201, #210

197. Сообщение от Аноним (72), 14-Июн-24, 15:37   +/
Ты же понимаешь что в си плас плас софте все так потому что ни для кого это не является проблемой кроме тебя. И то ты просто теоретик и си плас плас никогда в глаза не видел.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #183

199. Сообщение от Аноним (-), 14-Июн-24, 15:42   +/
> Я свое уже отработал. Мне в этом нет нужды.

Ну тогда вам и прикладного софта не так много и нужно)) В 256Гб точно должен влезть.

> Для ускорения сборки полагаю, красный триппер какой овер 100500 ведер надо бы.

Нет, но действительно жду старта продаж Granite Ridge. Но это для рабочего компа. Для домашнего мне хватает уже не помню какой АПУ.

> Наравне с веяниями текущих лет впитали в себя не совсем хорошую совковую привычку оценивать чужой карман.

А что не так? Средняя, медианная и даже минимальная ЗП для IT известны. В разных источниках они чуток плавают, но их тоже можно усреднить. И относительно них вполне валидно давать оценки.

> А чего так?

А тогда не хватит на новый ссд))

> Только понты кидаете, да про инфантилизм рассуждаете?

Я бы понял вас, если бы я хвастался многоголовым серваком на over 9000 ядер + схд на 100500Тб... это да, понты.
А если для вас понты сддешка на 2Тб... ну не знаю, мне вас жаль наверное.
Для меня это обычный рабочий инструмент.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #186 Ответы: #207, #297

200. Сообщение от nonon (?), 14-Июн-24, 15:42   +/
Это как я случайно делил на ноль в расте)
Сваливался в панику...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #204, #274

201. Сообщение от Алиса (??), 14-Июн-24, 15:43   +2 +/
> АЭС
> аэрокосмической
> карго

Тех кто юзает "карго" и всякие хипстерские "безопасные" язычки, как правило, не допускают к этим областям на пушечный выстрел)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #196 Ответы: #335

203. Сообщение от Аноним (99), 14-Июн-24, 15:47   +/
>Сейчас современные школьники осваивают программинг бытирее чем я в свое время.

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

Вам повезло! Вы алгоритмы расписывали. Это куда интереснее погроммирования мышкой.
Но сдается мне, что скоро и в погроммировании мышкой не будет нужды. Клод ии уже хорошо умеет. Пройдет лет 5, как Маск говорит...

>Возможно вот он "проект по разработке на языке Rust легковесного Unix-подобного ядра, реализующего подмножество системных вызовов ядра Linux,"

И вот опять: ..системных вызовов линукс. Ну пусть хоть так! Ждем прод потыкать.

>А вот экономическое образование тысяч его "клиентов" явно хромало

Разве сам Сергей Понтелеевич имел экономическое образование?!

> земля ему стекловатой

Зачем Вы так? Кругом и так много зла.

>Хахаха, я давно так не смеялся.

Безусловно было и то, о чем писали Вы. Всякое было. Особенно после 70х. Вместе с тем фундамент воспитания определенных черт в массах не меняется быстро. На это ушли десятилетия.
Было и то о и другое.

>Ага, вроде брат, но танками в случае чего давили.

Восставших супротив общей идеи. Как фактор любой государственности. Монополия на насилие, вот это все.

>Странно, я думал инфантилизм это "мы люди маленькие мы ничего не решаем",

https://www.forbes.ru/forbeslife/486431-koren-infantilizma-p...Инфантилизм%20или%20инфантильность%20—%20это%20состояние,конфликтов,%20эгоцентричный%20взгляд%20на%20мир.

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

>"по конституции недра принадлежат государству, значит газ и эл-во должны быть бесплатным"

А про "я заберу твое" раскажи это тем кого убили при создании колхозов. Или заморили голодом в поволжье, продавая зерно за бугор.

Забористая у Вас!
Вроде народу принадлежало по конституции. Если Вы о той конституции.
К слову в структуре дохода нефтяная игла стала прослеживаться в позднем совке.
Про "заберу твое" ака коллективизация и прочие кулаки, да период становления. Из неоткуда ресурс не берется. В ту пору народ был малограмотен, повсеместное образование бесплатное появилось позже, в том числе за счет этого базиса. Распределенного на начальном этапе и не разворованного, а преумноженного.
Не говорю, что это хорошие методы, но справедливости ради, шло оно на дело, а не в оффшоры. Думаю Вы не станете с этим спорить.

>Да, поэтому я смотрю на то как раст входит и в ядро, и другние проекты.

Простой объективный факт.

Остается дождаться пощупать. Потом посчитать и проекты, и cve.
Пока только надстройки над уже существующим. Не считая мелких проектов.
Но гонору то, пиару...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #193 Ответы: #216, #239

204. Сообщение от Аноним (99), 14-Июн-24, 15:50   +/
Это явный баг!
Надеюсь отправили багрепорт.
Ведь современные исследователи полагают, что на 0 делить можно. Даже порой пытаются это доказать!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #200

206. Сообщение от Массоны Рептилоиды (?), 14-Июн-24, 15:58   +/
> И как жабаскрипт проверит выставлен ZF на проце или нет?

Элементарно! Напишем npm пакет if-zf на rust-е

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #194 Ответы: #208, #253

207. Сообщение от Аноним (99), 14-Июн-24, 16:05   +/
>Нет, но действительно жду старта продаж Granite Ridge

Ну если по старинке без распараллеливания, то может и нет.
В остальных случаях да, 96 ведер победят.

>А что не так?
> И относительно них вполне валидно давать оценки.

Оно и не так. Такие оценки давать в принципе не очень хорошо. Всегда хорошо смотреть в свой карман. А в чужом хозяин кармана сам разберется.
Кто-то будет инвестировать в конпуктер, кто-то в финансовые инструменты, кто-то в детей...

>А тогда не хватит на новый ссд))

Не факт. Будьте милосердны и обрящете.

>А если для вас понты сддешка на 2Тб..

Для меня понты - это спичи вида: кто не купил ссдшник на &tb тот нищук.
Мир намного глубже и многограннее, чем кажется на первый взгляд.

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

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

208. Сообщение от pavlinux (ok), 14-Июн-24, 16:18   +2 +/
>> И как жабаскрипт проверит выставлен ZF на проце или нет?
> Элементарно! Напишем npm пакет if-zf на rust-е

:D

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

209. Сообщение от Ноним (?), 14-Июн-24, 16:33   +1 +/
Спрашивается, как в 21 веке можно было придумать язык с настолько неочевидным синтаксисом? В сравнении с Ржавчиной C++ отдыхает.

К чему все эти закорючки, бесконечные знаки препинания? Лишние, никому ненужные ключевые слова. Без let переменная не объявляется? зачем после имени константы двоеточие? Парсер писали генератором случайных чисел?

Без fun не понятно, что это функция? Почему инициализаторы массива идут через точку с запятой, вот чтобы что? Типа, у нас Rust, сделаем все не так, как у всех! Идиотизм какой-то.

Rust не делает больше других ЯП, но делает это до вырвиглазности некрасиво.

Концепция, может, и правильная. А реализация просто наиотвратнейшая.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #211, #217, #221

210. Сообщение от pavlinux (ok), 14-Июн-24, 16:37   –2 +/
> В софте для АЭС не может быть никакой магии.

Как такого "софта для АЭС" нет, там всë аналоговое. Полупроводники не любят радиацию

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #196 Ответы: #244, #362

211. Сообщение от pavlinux (ok), 14-Июн-24, 16:39   +1 +/
> слова. Без let переменная не объявляется?

Можно, как в C, норм?  

register inline const unsigned long long int __restict * const __volatile__ JOPA[] ____cacheline_aligned_in_smp;


Прочëл и дождь пошëл.  o.0

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #209 Ответы: #218

213. Сообщение от Витюшка (?), 14-Июн-24, 16:43   +/
Именно. Я практически на 100% в этом уверен. Скорее всего их расширение на Rust.

Не знаю ни одной базы данных на Rust в России с нуля.

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

216. Сообщение от Аноним (-), 14-Июн-24, 16:54   +/
> Вам повезло! Вы алгоритмы расписывали. Это куда интереснее погроммирования мышкой.

А типа мышкой нельзя программровать?
Когда я вижу ребенка который в шесть-семь лет что-то ваяет в скретче, мне становится слегка завидно.
Т.к я в его годы крапиву палкой махал и по гаражам лазил.

Хотя есть и визуальное программирование для взрослых, например тот же Дракон, который даже в космос слетал. Или Simulink с помощью которого в матлабе можно было довольно многое сделать.

> И вот опять: ..системных вызовов линукс. Ну пусть хоть так! Ждем прод потыкать.

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

> Зачем Вы так? Кругом и так много зла.

Значит если его и станет больше, то не на много.
Я не религиозный, но разве даже по христианству обманывать такое кол-во людей не грех? С логичным попаданем в ад или чистилище?

> Безусловно было и то, о чем писали Вы. Всякое было. Особенно после 70х. Вместе с тем фундамент воспитания определенных черт в массах не меняется быстро. На это ушли десятилетия.

А до 70х была послевоенная разруха и долгое востановление.
Я не настолько стар чтобы застать те времена, но бабушка расказывалоа как в 49м от голода жевали смолу, охотились на крыс и пол села померло.
Естественно после такого любые 60е были просто как рай.
Но хорошим это назвать я не могу.

> Восставших супротив общей идеи. Как фактор любой государственности. Монополия на насилие, вот это все.

Особенно если сначала их оккупировали под благовидным предлогом)

> https://www.forbes.ru/forbeslife/486431-koren-infantilizma-p...Инфантилизм%20или%20инфантильность%20—%20это%20состояние,конфликтов,%20эгоцентричный%20взгляд%20на%20мир.

Хорошоая статья, спасибо что подтведили мои тезисы.
1. "Импульсивные действия, отсутствие размышлений о последствиях" - типичный весь мир в труху.
2. "Неспособность взять на себя ответственность: отчаянные попытки избежать столкновения с ответственностью за свою жизнь и выбор, неспособность либо колоссальные трудности даже с самым простым выбором, обвинения других в своих проблемах. Постоянные оправдания за свое поведение вместо того, чтобы признать свои ошибки и исправить их."
То англичанка гадит, то массонская ложа.
С выбором правда не везде были трудности, тк часто выбора то не было.
Есть галоши фабрики большевичка, хошъ бери, хошъ не бери.

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

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

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

А т.е убить и украсть в начале это хорошо, а вот потом это плохо?
Какая-то готтентотская мораль получается.

> Распределенного на начальном этапе и не разворованного, а преумноженного.

Угу, так хорошо преумножили, что страну развалили.
Просто у наворованного изначально, а потом построенного силами рабов хватило прочности лет на 50-70.
А потом нежизнеспособная махина рухнула под собственным весом.

> Не говорю, что это хорошие методы, но справедливости ради, шло оно на дело, а не в оффшоры. Думаю Вы не станете с этим спорить.

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

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

217. Сообщение от pavlinux (ok), 14-Июн-24, 16:58   +1 +/
> А реализация просто наиотвратнейшая.

Самый прекрасный язык - это Фортран на перфокартах

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #209 Ответы: #233

218. Сообщение от Ноним (?), 14-Июн-24, 17:06   –1 +/
> register inline const unsigned long long int __restict * const __volatile__ JOPA[] ____cacheline_aligned_in_smp;

Весело, конечно..)) Какой еще register inline? Лет 20 как на это компиляторы внимания не обращают.

В чем смысл писать _на_столько_ низкоуровневый код? Оно, конечно, нужно, но только где-то там и только один раз. Мне __volatile__ понадобился, может, пару раз в жизни.

Можно было как в JS, Java, C#, Go...

var JOPA []int64

А в Rust предложил бы:

..; #let:;. JOPA$;.<>; %int64;;., <[(;;)]>;;

Причем чтобы если запятую пропустишь - не компилилось. Больше знаков, больше жести!

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #211 Ответы: #222

220. Сообщение от Аноним (220), 14-Июн-24, 17:10   +1 +/
Сейчас бы не понимать разницы между гарантиями языка и надёжностью системы. Впрочем, иного от хейтерков ожидать не приходится.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

221. Сообщение от Алиса (??), 14-Июн-24, 17:12   +/
Я выше уже писала, что взять ту же Ада, у неё просто многословный синтаксис, но крайне понятный и читабельный, а тут просто набор символов какой-то)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #209 Ответы: #225, #463

222. Сообщение от pavlinux (ok), 14-Июн-24, 17:12   +1 +/
> В чем смысл писать _на_столько_ низкоуровневый код?

Я последние лет 10-15 только под ядро линя  и пишу, забыл уж как int main(....)  правильно пишется )

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #218 Ответы: #255

223. Сообщение от Аноним (220), 14-Июн-24, 17:13   +1 +/
Ещё один открыл для себя языки с неизменяемыми переменными. От функциональных ЯП небось вообще мозг взрывается, да? Шутка ли, мало того что переменные неизменяемые, так ещё и выполнение участка кода может быть отложено! Ну ничего, наберёшься опыта, научишься программировать, попустит.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #295

225. Сообщение от pavlinux (ok), 14-Июн-24, 17:14   +/
> Я выше уже писала, что взять ту же Ада, у неё просто

Напиши на Аде драйвер MMU для Risc-V, хотя все олдскульные имеют Asm(), asm(), __asm__,....  

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #221 Ответы: #257

233. Сообщение от Ноним (?), 14-Июн-24, 17:27   +/
99% софта состоит из совершенно банальных конструкций.

На Расте же нужно постоянно что-то компилятору сообщать. Какие-то стрелочки, скобочки... Раст по кривокосости даже Bash превосходит. Я бы понял, если бы этот ЯП изобрели лет 50 назад. Но ведь это новодел...

Открываешь практически любой ЯП - и все понятно. В Расте даже простейшие вещи делаются не просто сложно, а как будто специально через одно место. Изобретатель Раста ни о каком KISS не слышал.

На Расте пишут точно такие же банальные конструкции. Софт никак не отличается. Но в синтаксисе Раста все вдруг становится каким-то чумовым rocket science. Перерост формы над содержанием.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #217 Ответы: #305, #341

238. Сообщение от Наноним (?), 14-Июн-24, 17:38   +1 +/
Даже hello world без ансейва не написать, нужно сделать системный вызов write - а систем вывзов это unsafe операция
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49

239. Сообщение от Аноним (99), 14-Июн-24, 17:38   +/
>Т.к я в его годы крапиву палкой махал и по гаражам лазил.

Не поверите, я тоже. И омг я счастлив!
Счастлив от того, что познал мир таким, каков он есть. Речь о мире настоящем.
Счастлив и от того, что открываю этот мир и своим детям.

>А типа мышкой нельзя программровать?

А типа что там мышкой напограммтровали? Даже если пресловутую вебню взять. Помню потыкал палкой викс, или как оно там. Тыкал мышкой я дольше, чем руками правил. Просто по фану.
И да, не будем путать среды моделирования с погроммированием. Это про симулинк иже с ними.

>Иначе придется пилить не только систему, но и все пользовательские приложения.

Оу май! Но так чуть больше чем все эти пользовательские приложения внезапно на столь нелюбимых Вами сях.
Стей хард! Будьте последовательны в своих начинаниях. Выбросить, так везде! Тем более если уж на то пошло, в каком-нить офисном приложении для раста вполне нашлось бы место.

>но разве даже по христианству обманывать такое кол-во людей не грех? С логичным попаданем в ад или чистилище?

По-христианству: не судите, да не судимы будете, ибо какой мерой меряете, такой и вам отмерено будет.
За свои грехи он ответил сам.


>А до 70х была послевоенная разруха и долгое востановление.
>бабушка расказывалоа как в 49м от голода жевали смолу, охотились на крыс и пол села померло.

Здесь речь о том какой рывок был сделан за 30 лет. Можно даже сравнить с тем, что за крайние 30 было сделано. И это без мировой войны...
Да, было жестко, ктож спорит то. Но от сози до ядреной бомбы прошли. И народ крепкий был, что физически, что ментально.

>Особенно если сначала их оккупировали под благовидным предлогом)

Как буд-то в благословенных странах не так. Суть зело византийская система управления. Сильный пожирает слабых и за счет этого выживает. Разница лишь в степени обратных инвестиций.
Почитайте интервью тех же пуштунов. С их слов: вот совок да, воевал, но приходил и строил школы, дороги...американцы пришли, разгромили, перенаправили потоки веществ нехороших и набивают карман. Вот и разница.

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

>Странно в Союзе я рынка не помню (ну кроме того где продавали курей и капусту), а вот нежелание брать на себя ответственность видел практически везде от школы до уже работы.

Странно, а я помню другой союз.
Помню как решил в детстве понтануться и пройти с сигаретой мимо дома девчули, которая мне нра. Дык старшие товарищи завидев такое, просто отвесили мне леща и за ухо отвели к родителям.
Еще как-то неосторожно с другом шли и матерились, точно так же за ухо отправились к родителям.
Люди брали на себя ответственность.
Стоит ли мне говорить о том, что происходит сейчас в тех же вопросах. Думаю все и так видят.

>А т.е убить и украсть в начале это хорошо, а вот потом это плохо?

Нет. Я там писал далее, что не одобряю этих методов. Но факты ечть факты.
Далее было практически тоже самое, просто более цивилизованными методами.

>Угу, так хорошо преумножили, что страну развалили.

Лихо Вы так 7 десятилетий прокинули.
По сути, по моему мнению, ссср - это страна Сталина. Все что после, двигались по инерции его задела. Задел закончился, все рухнуло.
Я не говорю хорош он или плох. Это история, это было и это никуда не денешь. Красным я не являюсь. Но всегда стараюсь обьективно смотреть на вещи. Красным богоборчества лично я забыть не могу.

>Так дачка в болгарии и икорка красная.

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

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

241. Сообщение от Наноним (?), 14-Июн-24, 17:42   +3 +/
> {integer}::unchecked_add
> {integer}::unchecked_mul
> {integer}::unchecked_sub

Гениально, в "safe" языке даже арифметические операции требуют ансейфа. Кто-то ещё воспринимает растерков всерьёз?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #246, #251, #258

244. Сообщение от Массоны Рептилоиды (?), 14-Июн-24, 17:46   +/
> Как такого "софта для АЭС" нет, там всë аналоговое. Полупроводники не любят радиацию

Там чистый стимпанк в основном. Шестерёнки и паровые клапана

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

246. Сообщение от pavlinux (ok), 14-Июн-24, 17:49   +/
> Гениально, в "safe" языке даже арифметические операции требуют ансейфа.

В Си пишут всяки флаги или через pragma :  -mieee-fp  -funsafe-math-optimizations ... и т.п.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #241 Ответы: #254

247. Сообщение от Вы забыли заполнить поле Name (?), 14-Июн-24, 17:52   +/
Для серьезного языка нужна возможность бустрапинга компилятора. Вот для GCC есть GNU Mes, а что с растом?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #256

248. Сообщение от Вы забыли заполнить поле Name (?), 14-Июн-24, 17:54   +/
> объявила о создании консорциума "Safety-Critical Rust Consortium", нацеленного на использовании языка Rust в решениях, требующих повышенной надёжности (Safety-Critical Software), сбой в которых может угрожать жизни людей, нанести вред окружающей среде или привести к серьёзным повреждениям оборудования

Раньше как-то делали и не жжужали.  Кажется это очередное нецелове расходование средств, консорциум для управления экосистемой языка извне.

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

250. Сообщение от Алиса (??), 14-Июн-24, 17:56   +/
Ну а чего, сложность проектов растёт, отсеивая хеллоуворлдщиков, а кушать хочется всем) вот вместо кодинга занимаются всякой фигнёй)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #248

251. Сообщение от Вы забыли заполнить поле Name (?), 14-Июн-24, 17:56   +1 +/
> Гениально, в "safe" языке даже арифметические операции требуют ансейфа. Кто-то ещё воспринимает растерков всерьёз?

По умолчанию же сейф? Это как я понял для оптимизаций?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #241 Ответы: #259, #260, #443

252. Сообщение от Наноним (?), 14-Июн-24, 17:59   +/
let, fn, куча ненужных символов
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123 Ответы: #334

253. Сообщение от _ (??), 14-Июн-24, 18:09   +1 +/
Ви таки зохватите Землю, да :) План зело хорошЪ!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #206 Ответы: #313

254. Сообщение от Наноним (?), 14-Июн-24, 18:12   +/
С каких пор Си предендует на звание safe языка?
Понятно что и Си, и Раст - небезопасные языки. Но зачем растерки постоянно всех обманывают?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #246 Ответы: #364

255. Сообщение от _ (??), 14-Июн-24, 18:13   +/
А что ты под него пишешь?
Просто свинское любопытство, ничего более :)
Раньше то таких ... было, но сейчас всё в тумане (в облаке аха) и не стало вдруг ...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #222 Ответы: #358

256. Сообщение от pavlinux (ok), 14-Июн-24, 18:16   +/
> Mes, а что с растом?

https://rust-gcc.github.io

А вообще там конфликт лицензий, у Раста Apache и MIT, против правоверного  GPL v2

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #247 Ответы: #266

257. Сообщение от _ (??), 14-Июн-24, 18:18   +/
Ой вЭй! Ви таки хотите сказать что это таки невозможно?
А я таки скажу: если уж вы забутстрапили Аду на этой железке, то невозможно это будет только если MMU на ней немножечко совсем нет! :-р :D :-)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #225 Ответы: #363

258. Сообщение от Аноним (-), 14-Июн-24, 18:19   +/
> Кто-то ещё воспринимает растерков всерьёз?

Давай посчитаем:
Линус с ядром, разю
Гугл с написанием нового кода на раст, везде где это возможно, два.
Тот же гугл с Open Se Cura.
Клаудфаря с pingora.
Амазон у которого Why AWS loves Rust....
Довольно немало.

Но конечно они меркнут перед кекспертизой Нанонима!


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #241 Ответы: #265, #268, #286

259. Сообщение от _ (??), 14-Июн-24, 18:20   +/
>По умолчанию же сейф? Это как я понял для оптимизаций?

Для реальной жизни же :) А не interview code sample :)

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

260. Сообщение от Наноним (?), 14-Июн-24, 18:21   +/
Видимо Раст был недостаточно "safe", вот и решили добавить побольше операций чтобы уж точно никто в ансейфности раста не сомневался. Вот интересно, как растерки неистово наяривают на оптимизации, не понимая, что оптимальный код и safe код - это две взаимоисключающие вещи. В итоге Раст по производительности даже C++ не может догнать, так ещё и не более безопасен. Ради чего это всё тогда?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #251 Ответы: #269, #452

261. Сообщение от Аноним (261), 14-Июн-24, 18:21   +/
> Типа int хрензнает какого размера

Так это специально. Зависимый от железа int - самый быстрый.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #262, #307

262. Сообщение от Аноним (261), 14-Июн-24, 18:21   +1 +/
И int фиксированного размера давно уже есть и в C, и в C++.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #261 Ответы: #310

265. Сообщение от _ (??), 14-Июн-24, 18:28   +1 +/
>> Кто-то ещё воспринимает растерков всерьёз?
>Давай посчитаем:

А давай!

>Линус с ядром, разю

Целый "сайд-саппорт" для самого простого драйвера написан. НЕ САМ ДРАЙВЕР, НЕТ! :)
Интересно, посмотрев на вот это всё когда С++ в ведро пустят? :)

>Гугл с написанием нового кода на раст, везде где это возможно, два.

Да тьфу. Они и на Dart'е пишут - и что дарт всех порвёт?!?!

>Тот же гугл с Open Se Cura.

На это у на есть Урюпинск с Рога и Копыта! Но там вообще 1С - но на по ты паря поставил! :)

>Клаудфаря с pingora.

Всё ещё недозаменившая Си-шный ngix? Но в принципе ладно, засчитываем.

>Амазон у которого Why AWS loves Rust....

А до этого и Python и Java и Javascript и .... нестЪ числа им!(С)

>Довольно немало.

Смотря с чем сравнивать. Если с каким нить ZIG-ом то вы - просто гиганты :) А уж в попугаях то ...

>Но конечно они меркнут перед кекспертизой Нанонима!

Даже не обсуждается!, единственные вменяемые во всём россейском этом вашем ойти :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #258 Ответы: #336, #473

266. Сообщение от Алиса (??), 14-Июн-24, 18:33   +1 +/
> v2

Какой же он правоверный, если допускает тивоизацию?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #256 Ответы: #303, #357

268. Сообщение от Ноним (?), 14-Июн-24, 18:36   +/
Уверяю, они выбрали Rust не потому, что он "хороший", а потому, что временно безальтернативный.

Если бы указанным корпам действительно нужна была безопасность, они бы давно озаботились каким-нибудь MISRA. Получилось бы супербезопасно, вот только разрабатывать действительно безопасный софт это боль и страдание сродни BDSM. А тут им, получается, эту безопасность просто так пообещали, почти бесплатно. Отчего бы не взять? Лишним не будет.

Только, повторю, если бы ин нужна была безопасность - они бы давно озаботились. А так, получается, этим корпам 100 лет в обед и они ни разу в безопасность не игрались.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #258 Ответы: #337

269. Сообщение от Вы забыли заполнить поле Name (?), 14-Июн-24, 18:37   +2 +/
> что оптимальный код и safe код - это две взаимоисключающие вещи

Истина.

Важные качества языка - это Correct, Beautiful, Efficient. Но можно выбрать только 2.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #260 Ответы: #271, #435

270. Сообщение от Аноним (270), 14-Июн-24, 18:47   –1 +/
Из-за ошибки работы с памятью сделали целый язык и создали консорциум. Это бред какой-то. Непонятно, как без этого языка жили то? Господи помилуй!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #272, #276, #278, #553

271. Сообщение от Наноним (?), 14-Июн-24, 18:53   +/
> Correct, Beautiful, Efficient

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #269 Ответы: #453

272. Сообщение от Алиса (??), 14-Июн-24, 18:57    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #270

273. Сообщение от нейм (?), 14-Июн-24, 18:59   +/
тот самый visual studio который чтоб скачать - надо на тридварасов посмотреть?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #137 Ответы: #293

274. Сообщение от Аноним (-), 14-Июн-24, 19:14   +1 +/
> Это как я случайно делил на ноль в расте)
> Сваливался в панику...

Ну вот... А мог бы как нормальныя языки рута дать!
Или хотя бы произвольный код выполнить.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #200 Ответы: #374

275. Сообщение от Аноним (275), 14-Июн-24, 19:31   +/
> и просто запретили malloc/free

Так и делаю давно, выделяю память и создаю потоки на стороне Java или python, там вся бизнес логика, в сишке супербыстрая числомолотилка. Получается всё хорошо.

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

276. Сообщение от Аноним (-), 14-Июн-24, 20:01   –1 +/
> Из-за ошибки работы с памятью сделали целый язык и создали консорциум. Это бред какой-то.

Только для того, кто не знает историю язык Ada.
Ты бы хоть википедию почитал.

> Непонятно, как без этого языка жили то? Господи помилуй!

Плохо жили) То CVE, то RCE.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #270 Ответы: #283

277. Сообщение от Ivan_83 (ok), 14-Июн-24, 20:36   +1 +/
Латынь не совсем умерла, она растеклась по куче разных языков.

С - язык близкий к асму, поэтому не смотря на все фантазии петонистов и растовиков оно никуда не денется.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #157 Ответы: #300

278. Сообщение от Аноним (278), 14-Июн-24, 20:39   +/
массив[0..10]цел
ввод и
вывод массив[5+и]

Ну и как тут "на этапе компиляции" обеспечить безопасность при и=6?

Сделали автоматическую вставку проверок входных данных и выдают это за "Уникальное Достижение". Просто чутка облегчили прогеру работу.

Тож самое с ИИ -- раньше это были "стат системы принятия решения" и никто кипятком не писал, а теперь "оооо! ИИ! во все поля! дайте лярдов на внедрение!"

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #270 Ответы: #285, #290

279. Сообщение от Ivan_83 (ok), 14-Июн-24, 20:40   +/
Так чувак, а ты чего до сих пор сидишь на легаси линуксе/бсд/мак/венде!?
Они же на С написаны, да ещё с вообще не человеческим асмом который ты не вкуриваешь!?

Давай, где там твой рустОС, руст-компилер и прочая?
А руст браузер у тебя есть чтобы сюда писать?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #284

280. Сообщение от Ivan_83 (ok), 14-Июн-24, 20:41   +/
Если вы не в курсе, то часто реально пофиг какого там размера этот самый int, потому что его пихают чтобы посчитать от 0 до 10.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #360

283. Сообщение от Ivan_83 (ok), 14-Июн-24, 20:55   –1 +/
Чувак, в реале люди тоже совершают ошибки, прикинь!?
И в отличии от каких то CVE/RCE это бывает фтально.
А те кто эксперементирует с ошибками вне фатального поля часто являются или мелкими жуликами или крупными предпринимателями.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #276 Ответы: #291, #339

284. Сообщение от Аноним (-), 14-Июн-24, 20:56   +/
Боже, ну хватит показывать свое некомпетентность...

> Они же на С написаны

Ты утекшие исходники винды смотрел? Сколько там отвратительной сишки и сколько прекрасных плюсов, а?
Вот, то-то же! На сишке осталось легаси омно, до которого просто не доходят руки переписать.

> Давай, где там твой рустОС, руст-компилер и прочая?

рустОС - redox os
руст-компилер - cranelift
в ФФ - есть раст и куча с++. Дыряшка там тоже осталась, но эту гниль старательно заменяют на нормальные языки вроде с++.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #279 Ответы: #294

285. Сообщение от Аноним (99), 14-Июн-24, 20:57   +/
Про ИИ не соглашусь.
Потрайте тут https://chat.lmsys.org/
Кнопка директ чат. Выбираем клод, пусть даже хайку, самый простой из трех.
Оно решает абсолютно нетривиальные задачи, некоторые из которых не под силу определенному кругу человеков, даже от ит индустрии. Сэд бат труъ. То ли еще будет.
Это вам не алиса, скоммунизженная с древней ревизии чатгпт, времен его открытого кода под Маском.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #278 Ответы: #351, #400

286. Сообщение от Ivan_83 (ok), 14-Июн-24, 21:00   +1 +/
Тут надо понимать что это не корпы решили выбрать раст как самое лучшее в индустрии, это снизу такие же фанбои раста рассказывали как они щас всё быстро перепишут на расте и оно будет в 1000050000 раз лучше и в 9999999 раз прибыльнее.
Для разработв это способ позниматся фигнёй которая увеличит их стоимость на рынке труда и не ломать мозг думая на текущими задачами которые уже всех задолбали.
Так же было и в начале чумки: все радостно запирались дома чтобы не ходить на работу, а потом оказалось что и на улицу теперь низя да ещё и уколы в наморднике делать надо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #258 Ответы: #338

287. Сообщение от warlock66613 (ok), 14-Июн-24, 21:01   +/
Попробуйте объявить на Ада Unicode строку. Только без дураков — чтобы на уровне типов было зафиксировано, что строка именно Юникод. Неважно что это будет — UTF-8, UTF-16 или UTF-32, но чтобы строго Юникод.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #304

290. Сообщение от Аноним (-), 14-Июн-24, 21:11   –1 +/
> массив[0..10]цел
> ввод и
> вывод массив[5+и]
> Ну и как тут "на этапе компиляции" обеспечить безопасность при и=6?

Рубанув сборку кода - "доказуемо небезопасное действие" ;)

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

291. Сообщение от Аноним (-), 14-Июн-24, 21:15   –1 +/
> И в отличии от каких то CVE/RCE это бывает фтально.

Вообще ошибка в коде бортового компьютера - тоже достаточно фатальна. Правда в ArianV это на аде было - такая безопасность :). Очень безопасно наверное когда ракета взрывается.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #283 Ответы: #308, #388

292. Сообщение от Аноним (292), 14-Июн-24, 21:25   +/
То мы берем uthash
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145

293. Сообщение от _kp (ok), 14-Июн-24, 21:45   +/
Не понимаю, на что у Вас приходится смотреть. Вы с этой планеты пишете?


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

294. Сообщение от Ivan_83 (ok), 14-Июн-24, 22:47   +/
Утекшие исходники были где то от 2к венды, тамошние плюсы от С мало чем отличались :)
Внутрь я не смотрел, полагаю на крестах был гуй и некоторые службы.
Где то с висты дрова стало можно писать на крестах, но что там внутри ОС я хз.


> в ФФ - есть раст и куча с++. Дыряшка там тоже осталась, но эту гниль старательно заменяют на нормальные языки вроде с++.

ФФ - сколько там того раста? хотя бы треть есть?
И чтобы вы знали, RUST как раз и переводится как гниль, один из вариантов :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #284 Ответы: #380

295. Сообщение от TydymBydym (ok), 14-Июн-24, 23:02   +1 +/
Как для "менструирующих людей" есть правильное слово, так и для "неизменяемой переменной". А пока авторы язычка будут баловаться подобной е#аниной - счастья не будет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #223 Ответы: #318, #488

296. Сообщение от Аноним (296), 14-Июн-24, 23:17   +/
Приведи пример нечитаемого раста.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

297. Сообщение от Аноним (-), 14-Июн-24, 23:22   +1 +/
>> А чего так?
> А тогда не хватит на новый ссд))

А, ты и сам нищук, просто "я уже 5 минут как из-за парты, но как же я вас, школьников, уже ненавижу!!!111" видимо.

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

299. Сообщение от cheburnator9000 (ok), 14-Июн-24, 23:37   +/
> Апле оно не колышит потому что в году 16 они принудидили своих
> писак писать на своем растоподобном. Там тоже пытаются обработку всехвсех ошибок
> во время сборки делать.

Алее, у Apple API всегда доступны в двух вариантах. В Obj-C, и в Swift. https://developer.apple.com/documentation/foundation/nsnotif...

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

300. Сообщение от Аноним (296), 14-Июн-24, 23:39   +/
> и будет брать отвественность за ошибки на себя.

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

Если на расте задачи решаются лучше/быстрее, чем не на расте, значит лучше использовать раст, а не нераст.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #277 Ответы: #379, #387

301. Сообщение от Аноним (303), 14-Июн-24, 23:42   +1 +/
>организация Rust Foundation, которая курирует связанную с языком Rust экосистему, объявила о создании консорциума "Safety-Critical Rust Consortium"

Надеюсь, CoC они уже написали.

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

302. Сообщение от Аноним (302), 14-Июн-24, 23:42   +2 +/
> Фигурные скобки обозначают блок, квадратные скобки - массив, срез или доступ по
> индексу. Так понятнее?

И какой логический смысл блока { None }; в типа-массиве? Если это интуитивно - то для кого? Ящеры не палятся?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122 Ответы: #393, #432

303. Сообщение от Аноним (303), 14-Июн-24, 23:45   +/
У GCC лицензия GPLv3+ начиная с 2007. Следовательно, у gccrs тоже она самая.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #266

304. Сообщение от Аноним (304), 14-Июн-24, 23:48   +/
Ой, а а каком языке с этим вообще нормально? Вот чтобы len('👩‍🚀') было 1?

Мне в голову из популярных только Swift приходит.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #287 Ответы: #333

305. Сообщение от мурзилка (?), 14-Июн-24, 23:55   –1 +/
Разработчик Rusta не был специалистом (профессиональным программистом или учёным в области информатики), он был просто любителем. Отсюда и неудачный дизайн.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #233 Ответы: #343

306. Сообщение от Аноним (-), 14-Июн-24, 23:57   +1 +/
> Фигурные скобки обозначают блок, квадратные скобки - массив, срез или доступ по
> индексу. Так понятнее?

И какой логический смысл блока { None }; в типа-массиве? Если это интуитивно - то для кого? Ящеры не палятся?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122 Ответы: #430

307. Сообщение от Аноним (-), 15-Июн-24, 00:02   +/
>> Типа int хрензнает какого размера
> Так это специально. Зависимый от железа int - самый быстрый.

Поэтому взяв допустим ардуину, и вкатив там ключом компилера вот именно 16-битный int (да, так на 8 бит платформе будет куда быстрее) - можно будет быстренько узнать почем сегодня фунт лиха.

С одной стороны это - абсолютно по стандарту. С другой - 95% кода на этом глобусе, разумеется, не ожидает столь фееричной подляны. Кто ж эти ваши стандарты еще и читает то, от и до?!

И в результате это не только самый быстрый - но и самый грабледром.

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

308. Сообщение от мурзилка (?), 15-Июн-24, 00:04   +/
Ада - это не про безопасность, это про деньги. Как и Rust.
Целью создания Ады было сокращение расходов на сопровождение, а не повышение надёжности.
Поздравляю всех с 95-летием журнала "Мурзилка"!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #291 Ответы: #325

309. Сообщение от мурзилка (?), 15-Июн-24, 00:15   +/
>Verus - инструментарий для проверки корректности кода, написанного на языке Rust ... Во время выполнения исполняемого кода Verus проверяет соответствие спецификации для подтверждения корректности работы.

Уже нарождаются языки нового поколения, которые со временем вытеснят Руст из области повышенной надёжности. Первая ласточка -это язык Идрис
https://www.idris-lang.org/

Это, о чем мечтал Дейкстра всю жизнь - языки с автоматическим доказательством правильности программы.

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

310. Сообщение от Аноним (-), 15-Июн-24, 00:22   +/
> И int фиксированного размера давно уже есть и в C, и в C++.

Спасибо Капитан Очевидность! Вы дали фееричную лекцию - практикующему сишнику и немного плюсовику как раз.

К сожалению это все было сделано комитетом полудурков максимально через ж"пу.
1) В препроцессоре тоже есть вычисления. И конечно без нормальных типов данных, чтобы было не очень скучно. Забавно же когда все константы и предвычисления препроцессором - implementation defined?!
2) 1, 1U, 1UL и 1ULL это 4 довольно разные вещи... и сколько там де факто в граммах^W битах в том или ином случае окажется - довольно интересный вопрос.
3) Все это лезет в практически всех математических операциях, чтобы не было скучно, а с правил integer promition слетят с катушек даже ящеры с другой планеты, пожалуй.
4) До C23 (и C++ рядом) signed int overflow/underflow - махровейшее UB. Например потому что формат хранения signed int - ну, их несколько разных. В 23 это все же заманало и зафорсили two's complement. Но UB все равно формально не сняли. Бег по граблям с препятствиями.
5) А ваш код переживает -Wconversion без варнингов? Это такой миноискатель показывающий где вон те грабли (могли) быть.
6) Можно юзать signed int как индекс массивов. При том отрицательный индекс не то чтобы сильно редко случается в real world коде. С понятным результатом.
7) enum в сях да и плюсах довольно бесполезная хрень, даже если что-то typedef'нуть в него - это никак не энфорсится и не проверяется. Даже когда можно было.
8) Аннотации типа foo(array[10]) просто отбрасывают аннотацию [10] и вот так сразу - никто ничего не проверяет.
9) Бывают всякие builtin типа add_overflow, но они нестандартные.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #262 Ответы: #346, #383

312. Сообщение от Аноним (-), 15-Июн-24, 00:38   –1 +/
> Например, строки в rust'е все в utf8. Код работы со строками с
> целью оптимизации полагается на то, что весь этот utf8 валиден, вплоть
> до UB в случае невалидного utf8 внутри str. Но std гарантирует,
> что если ты не создаёшь str при помощи unsafe, то все
> они будут валидны.

То-есть если строка передается ремотой, мы можем конкретно выкусить? Оок!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #183 Ответы: #370

313. Сообщение от Аноним (-), 15-Июн-24, 00:40   +/
> Ви таки зохватите Землю, да :) План зело хорошЪ!

КМК будет как с наполеоном примерно. Захватил, спалил, сам не понял нахрен это сделал, удрал обратно получая по пути волшебные пинки... закончил дни на острове вообще. Ящеры историю не изучали? :)

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

314. Сообщение от Аноним (314), 15-Июн-24, 00:43   +/
Да что вы с этими стандартами ЯП возитесь? Как будет готов язык и желающие создать другие компиляторы этого ЯП, то наверняка найдётся хитрый антимонопольный комитет какого-нибудь Евросоюза, который и попросит стандартизировать. Хотя можно и без стандарта, но тогда начнётся недобросовестная конкуренция. Всегда можно попросить какого-нибудь Абрамовича стандартизировать ЯП. Вам от этого легче станет? Сразу побежите по стандарту свой компилятор клепать?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #149 Ответы: #377, #381

315. Сообщение от Аноним (316), 15-Июн-24, 00:55   +/
Если ИИ будет развиваться с такой же скоростью, то боюсь, вся разработка уйдёт в декларативное описание, а на выходе чистейший максимально оптимизированный машинный код.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #309 Ответы: #340

316. Сообщение от Аноним (316), 15-Июн-24, 01:01   +/
Это был самый первый коммит. Нынешние погромисты занимаются чем угодно: этикой, инклюзивностью, КоКами, но никак не написанием кода 🤷‍♂️
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #301 Ответы: #519

318. Сообщение от Прохожий (??), 15-Июн-24, 01:46   +/
>счастья не будет

Кому? Вон и Гугл, и Майкрософт, и Клаудфлэр не нарадуются. И производительность программистов выше, и качество кода.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #295 Ответы: #332, #549

319. Сообщение от Аноним (319), 15-Июн-24, 01:46   +/
> 2) борьба с компилятором вместо работы

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

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

320. Сообщение от Прохожий (??), 15-Июн-24, 01:49   +1 +/
Я не сплю. Когда возможные проблемные места изолированы, ошибки искать быстрее и проще, чем когда они размазаны по всему коду. Вроде, банальные вещи.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76 Ответы: #344

321. Сообщение от Аноним (321), 15-Июн-24, 01:56   +/
А мне вся эта движуха с Rust напоминает другой супербезопасный язык Ada, там было все и крики о надежности, и консорциумы с военщиной и тд и тп, финал немного очевиден
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #348, #398

322. Сообщение от Прохожий (??), 15-Июн-24, 02:00   +/
Набор символов одинаков, что в Плюсах, что в Расте. Так, к слову.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

323. Сообщение от Прохожий (??), 15-Июн-24, 02:04   +/
>Зачем его потом читать, он же - безопастный!

Ещё один "юморист", наверное претендующий на остроумие. Уже 100500 раз обсудили, что Раст от всех возможных ошибок не страхует. Должно уже было дойти, даже до самых невменяемых. А поди ж ты.

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

325. Сообщение от Аноним (-), 15-Июн-24, 02:07   +/
> Ада - это не про безопасность, это про деньги. Как и Rust.

Нехило бы как-то обосновывать громкие заявления.

> Целью создания Ады было сокращение расходов на сопровождение, а не повышение надёжности.

Здорово получилось: програмеров на этом почти нет, так что и затрат на них - тоже.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #308 Ответы: #413

326. Сообщение от Прохожий (??), 15-Июн-24, 02:22   +/
Вам лучше про логику молчать, у вас с ней очевидные проблемы, потому что вы делаете выводы из неверных предпосылок.

1. Какая разница, какая рыночная доля у Мозиллы, если в спонсорах Rust Google и прочие немелкие конторы?

2. Rust - более сложный язык программирования, чем тот же JS, Python, ниша у него уже - в наши дни люди гоняются больше не за производительностью программ, но программистов. Также появился он гораздо позже Си и Плюсов, на которых горы кода написаны. Поэтому в топе его и нет пока что.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80 Ответы: #361

328. Сообщение от Прохожий (??), 15-Июн-24, 02:34   +/
>В расте по другому не принято.

Ещё один гений логики. Какое-то концентрированное сборище просто. Смешались в кучу кони, люди. Какое отношение имеет язык программирования (а не организация его развивающая) к инклюзивности? Правильный ответ - никакого. Но некоторые продолжают пытаться натягивать сову на глобус.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #120 Ответы: #366

331. Сообщение от Прохожий (??), 15-Июн-24, 02:40   +/
>серьёзные вещи продолжают создаваться на языках 40+ летней давности

А слабо почитать статьи на этом ресурсе? Или настоящий тутошний эксперт - не читатель?
Уже тучу раз приводились примеры и Гугла, и Майкрософт, и Клаудфлэр, но Воины Супротив Раста продолжают, как дятлы, долбить одну и ту же тему про серьёзные вещи и морально устаревший хлам, несмотря на то, что примеров серьезных приложений на Расте уже хватает.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #177 Ответы: #395

332. Сообщение от TydymBydym (ok), 15-Июн-24, 02:41   +/
>>счастья не будет
> Кому? Вон и Гугл, и Майкрософт, и Клаудфлэр не нарадуются. И производительность
> программистов выше, и качество кода.

Ну да, ну да. Вскрытие покажет. Я много инициатив видал, но которые конторки не чета вышеперечисленным не могли не нарадоваться. И где всё это сейчас?..

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #318 Ответы: #342

333. Сообщение от Прохожий (??), 15-Июн-24, 02:49   +/
Нормально там, где присутствует строгая семантика. То есть, авторы библиотеки осознанно подходят к работе с Юникодом и его спецификой. В Расте есть такие библиотеки, хотя они и не являются стандартными. Авторы стандартной библиотеки решили, что для простоты и скорости они будут работать с кодами, а не символами. Но при этом в Расте нет проблем с объявлением строк в Юникоде.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #304 Ответы: #552

334. Сообщение от Прохожий (??), 15-Июн-24, 02:51   +/
То не избыточность. То просто вы плаваете в предметной области.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #252 Ответы: #378

335. Сообщение от Прохожий (??), 15-Июн-24, 03:05   +/
Правильно ли я понимаю, что поскольку Си - нехипстерский язык, то ваять на нём софт для АЭС или космоса - нормалёк, несмотря на известную распространённость ошибок определённого класса, от которых на 100% защититься невозможно?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #201 Ответы: #415, #424

336. Сообщение от Прохожий (??), 15-Июн-24, 03:14   +/
Другими словами, ты согласен, что на Rust вполне себе серьёзный софт можно писать. Ч.Т.Д.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #265

337. Сообщение от Прохожий (??), 15-Июн-24, 03:23   +/
Корпам нужна прибыль прежде всего. Безопасность - часть её. Если можно сразу писать код с меньшим количеством ошибок, чем на другом языке, да ещё не теряя производительность труда программистов, то почему бы и нет? Другими словами, корпам нужна безопасность, но также нужен баланс между стоимостью разработки и получаемым доходом. Поэтому корпы думали о безопасности и ранее (было дело в начале двухтысячных, когда Майкрософт остановила разработку почти всех продуктов на несколько месяцев, чтобы провести обучение своих сотрудников по разработке безопасного кода). Но ранее не было Раста. А теперь он есть. И безопасность, которую он предоставляет, корпы получают почти даром.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #268

338. Сообщение от Прохожий (??), 15-Июн-24, 03:28   –1 +/
Именно корпы решили выбрать Раст,как самое лучшее в индустрии. Почему? Потому что именно они спонсируют разработку Раста. И не прогадали, надо заметить. Производительность труда выросла, качество кода улучшилось.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #286 Ответы: #385, #411

339. Сообщение от Прохожий (??), 15-Июн-24, 03:37   +/
>Чувак, в реале люди тоже совершают ошибки, прикинь

И что? По этой причине наплюем на типичные и САМЫЕ РАСПРОСТРАНЕННЫЕ ошибки в коде?

>И в отличии от каких то CVE/RCE это бывает фтально.

Взлом компании, повлекшей многомилионные прямые и репутационные убытки - это ерунда по-твоему?

>А те кто эксперементирует с ошибками вне фатального поля часто являются или мелкими жуликами или крупными предпринимателями.

Это из чего следует?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #283 Ответы: #386

340. Сообщение от Прохожий (??), 15-Июн-24, 03:43   +/
Однако же ДОКАЗАТЕЛЬСТВО корректности кода всё равно надо будет иметь, хотя бы в критических для жизни людей областях. Так что эту проблему не отменит никакой ИИ.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #315 Ответы: #349, #511

341. Сообщение от Прохожий (??), 15-Июн-24, 03:59   +/
>99% софта состоит из совершенно банальных конструкций.

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

>На Расте же нужно постоянно что-то компилятору сообщать.

Как и на любом другом более-менее развитом языке программирования. Особенно, если речь идёт о языке со строгой типизацией. Хотя некоторый прогресс с автоматическим выведением типов и наметился, но до идеала ещё далеко.

>Какие-то стрелочки, скобочки...

Где их нет?

>Изобретатель Раста ни о каком KISS не слышал.

Конечно, он слышал и об этом, и о многом другом в этой области гораздо больше тебя.

>На Расте пишут точно такие же банальные конструкции. Софт никак не отличается.

Конечно, отличается. Меньшим количеством ошибок определённого класса.


>все вдруг становится каким-то чумовым rocket science

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #233 Ответы: #437

342. Сообщение от Прохожий (??), 15-Июн-24, 04:08   +/
А что-то есть вечное в этом мире?

И что там вскрытие ещё должно показать, если уже есть отчёты счастливых разработчиков?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #332 Ответы: #513

343. Сообщение от Прохожий (??), 15-Июн-24, 04:17   +/
>Разработчик Rusta не был специалистом (профессиональным программистом или учёным в области информатики)

Создатель Rust работал программистом в Мозилле. За деньги. Следовательно, он был профессионалом. Но он не единственный, кто участвовал в создании языка. Были и другие люди.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #305 Ответы: #382, #391

344. Сообщение от Аноним (47), 15-Июн-24, 06:12   –1 +/
Вы так рассуждение, как-будто все ошибки и проблемные места будут изолированы в unsafe-блоках... пожалуй, на этом можно и заканчивать. В вашем дивном мире - розовые пони, случайно, не летают..?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #320 Ответы: #456

345. Сообщение от Советский инженер (ok), 15-Июн-24, 06:59   +1 +/
>строгий компилятор, мешающий прототипированию

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #489

346. Сообщение от тыквенное латте (?), 15-Июн-24, 07:00   +/
юзер234, ты от девопс экспертизы перешел на кодинг? хоспате, пощади.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #310 Ответы: #359

347. Сообщение от Советский инженер (ok), 15-Июн-24, 07:03   +/
> Раст уже 9 лет как "стабильный" язык почему на нём ничего не пишут?

а что нового за это время написали на плюсах?
все более менее стоящее стартануло сильно раньше.

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

348. Сообщение от Аноним (72), 15-Июн-24, 07:30   +/
Заказчик разработки языка ада министерство обороны США. Область его применения точно известна и в ней язык широко распространен. На этом в общем-то твой наброс и провалился.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #321 Ответы: #369, #556

349. Сообщение от Аноним (72), 15-Июн-24, 07:35   +/
В критически важных местах нельзя полагаться на магию. Например в самолёте Як-40 нет ни одной микросхемы, но тем не менее у него и автопилот и все нужные системы безопасности для полетов. Работа всех систем точно известна и детерминирована. Без всяких безопасТных языков программирования.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #340 Ответы: #397, #448

351. Сообщение от Аноним (72), 15-Июн-24, 07:44   +1 +/
Чего там коммуниздить? Ты когда-нибудь код нейросети видел? Он простой как железная дорога. Вся магия кроется во входных данных. Кто больше насобирал и разметил тот больший молодец.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #285 Ответы: #352

352. Сообщение от Аноним (99), 15-Июн-24, 07:59   +/
>Чего там коммуниздить? Ты когда-нибудь код нейросети видел? Он простой как железная дорог

Отчего тогда код клода, чатгпт 3.5+ закрыт?

> Вся магия кроется во входных данных. Кто больше насобирал и разметил тот больший молодец.

В том числе, да. Но если дело только в них, кто мешал яндексу собрать? Разве у них мало данных?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #351 Ответы: #354

354. Сообщение от Аноним (72), 15-Июн-24, 08:16   +/
> Отчего тогда код клода, чатгпт 3.5+ закрыт?

А как ты деньги будешь собирать если просто отдашь модель как файл? И пусть каждый безлимитно юзает. И тебе присылает только бонусы спасибо.

> В том числе, да. Но если дело только в них, кто мешал яндексу собрать? Разве у них мало данных?

Я тебя слегка удивлю но Яндекс сами все разметили у полно своих данных и даже сервис Толока где куча асессоров. И сам все обучили.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #352 Ответы: #368, #485

356. Сообщение от Аноним (-), 15-Июн-24, 08:26   –1 +/
> Устанавливайте зависимости напрямую из любого гит репо, кто же вам запрещает.

Билдовка е...чим cargo и потуги качать полинтернета на каждый пшик.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105 Ответы: #371

357. Сообщение от pavlinux (ok), 15-Июн-24, 08:27   –1 +/
> если допускает тивоизацию?

Разрешить использовать ножи и топоры только кухаркам и поварам?


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #266 Ответы: #365

358. Сообщение от pavlinux (ok), 15-Июн-24, 08:29   +/
> А что ты под него пишешь?

Вон в профиле ссылка на контору

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

359. Сообщение от Аноним (-), 15-Июн-24, 08:31   +/
> юзер234, ты от девопс экспертизы перешел на кодинг? хоспате, пощади.

Я умел програмить чуть менее чем всегда. Так что уж прости, лаптэ. А по делу сказать нечего? Грабли сишки я получше вашего обпрыгал. И почему-то не горю желанием прыгать по граблям до гроба.

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

360. Сообщение от Аноним (-), 15-Июн-24, 08:37   +/
> Если вы не в курсе, то часто реально пофиг какого там размера
> этот самый int, потому что его пихают чтобы посчитать от 0 до 10.

Зато в случае когда там было поболее чем 10 - становится очень сильно не пофиг. Когда код глючит, разваливается, непортабельный, а помахав стандартом - забыли с ним комплайнс обеспечить. А зачем тогда стандарт был, блин? И зачем он написан как написан?

А в случае всяких там индексов и чего там еще - самое то, в паре с integer promition, чтобы прострелить себе череп с заподвыподвертом, в прыжке, держа пистолет левой ногой. Даже не заметив этого, ибо -Wconversion какой - это таки хардкор и далеко не каждый рискнет сие вкатить на свой код.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #280 Ответы: #384

361. Сообщение от Аноним (99), 15-Июн-24, 08:41   +/
>Вам лучше про логику молчать, у вас с ней очевидные проблемы

Ну наконец-то нашелся человек, у которого нет проблем с логикой. С превеликим удовольствием приму наставничество, отче!

>Какая разница, какая рыночная доля у Мозиллы, если в спонсорах Rust Google и прочие немелкие конторы?

Иметь немелкого спонсора - это теперь залог успеха? Повспоминайте проекты самих немелких спонсоров, в которые были влиты сотни нефти и при этом почившие в бозе. Виндавс вон когда-то и на мобилках был, например.
Уж про посевные инвестиции аообще молчу. (Аля спонсирование раст и иже с ними). Там выхлоп стремится к 5% в лучшем случае. Но 5% обычно окупает все остальное. Реальная жизнь.

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

Ваша логика как бы говорит сейчас: производительность не нужна, нужно больше программистов, набрасывающих по быстренькому. Это подмножество программистов не умеет и не может уметь в си, потому им нужно дать инструмент, соответствующий их уровню развития/компетенций, чтобы наваливать больше кода, ща счет большего количества рук/ног.

Ну да, Вы верно описали причинно-следственную связь. Только во всю эту стройную теорию в ближайшие годы может ворваться АГИ и прогрессивное большинство вновь останется не у дел. Опять хомки летят с обрыва. Все старо как мир.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #326 Ответы: #459

362. Сообщение от Аноним (-), 15-Июн-24, 08:42   +/
>> В софте для АЭС не может быть никакой магии.
> Как такого "софта для АЭС" нет, там всë аналоговое. Полупроводники не любят радиацию

То-есть древний журнал "наука и жизнь" про станционную ЭВМ (если не ошибаюсь "Скала" называлась) в анализе аварии ЧАЭС - нагло гнал? Или таки полупроводник полупроводнику рознь?

FYI ты скопытишься от радиации заметно быстрее чем многие полупроводники, особенно оптимизированные на rad hard.

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

363. Сообщение от Аноним (-), 15-Июн-24, 09:00    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #257

364. Сообщение от Аноним (-), 15-Июн-24, 09:04   +/
> С каких пор Си предендует на звание safe языка?

Какой-нибудь MISRA C - вполне себе претендует. Правда апликушным раздолбаям - не понравится.

> Понятно что и Си, и Раст - небезопасные языки. Но зачем растерки
> постоянно всех обманывают?

А таки хруст как минимум попытался решить ряд задолбавших проблем. А вечно трахаться с int неопределенного размера - ну, черт, это для тех кто в ад хочет попасть досрочно. А когда вы наконец умрете, в аду вам просто выдадут сишку и DSPшник с 16-битными словами. И будете программировать под него вечно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #254 Ответы: #396

365. Сообщение от Аноним (-), 15-Июн-24, 09:05   +/
>> если допускает тивоизацию?
> Разрешить использовать ножи и топоры только кухаркам и поварам?

Вообще-то за "неправильный" ножик - тебе могут запросто пришить ношение холодного оружия.

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

366. Сообщение от Аноним (99), 15-Июн-24, 09:10   +/
>Ещё один гений логики.
> Какое отношение имеет язык программирования (а не организация его развивающая) к инклюзивности?

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

Здесь вспоминатеся ирония мамки сендмыла, ну это для тех, кто помнит.

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

368. Сообщение от Аноним (99), 15-Июн-24, 09:23   +2 +/
>А как ты деньги будешь собирать если просто отдашь модель как файл? И пусть каждый безлимитно юзает. И тебе присылает только бонусы спасибо.

Сегодня просто праздник логики какой-то!
Комментом выше Вы утверждали, что код ничто, данные все!

Каждый не сможет безлимитно юзать, ибо чтобы правильным данным обучить, нужно еще и много железа/мощностей задействовать.

>Я тебя слегка удивлю но Яндекс сами все разметили у полно своих данных и даже сервис Толока где куча асессоров. И сам все обучили

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

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

369. Сообщение от Аноним (369), 15-Июн-24, 09:26   +1 +/
Интернет(он же в девичестве ARPANET) заказчик разработки минобороны США и внезапно популярен за стенами пентагона.

Что то не сходится дружок-пирожок=)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #348 Ответы: #376

370. Сообщение от Аноним (500), 15-Июн-24, 09:31    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #312

371. Сообщение от Аноним (-), 15-Июн-24, 09:51   +/
>> Устанавливайте зависимости напрямую из любого гит репо, кто же вам запрещает.
> Билдовка е...чим cargo и потуги качать полинтернета на каждый пшик.

Зачем тебе инет?
Ты что, до сих пор не осилил как в toml прописать локальные зависимости?

Почитай хоть доку перед тем как позориться
doc.rust-lang.org/cargo/reference/specifying-dependencies.html

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #356 Ответы: #375

374. Сообщение от n00by (ok), 15-Июн-24, 11:25   –1 +/
>> Это как я случайно делил на ноль в расте)
>> Сваливался в панику...
> Ну вот... А мог бы как нормальныя языки рута дать!
> Или хотя бы произвольный код выполнить.

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

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

375. Сообщение от Аноним (-), 15-Июн-24, 11:26   +/
> Зачем тебе инет?
> Ты что, до сих пор не осилил как в toml прописать локальные зависимости?

В каждом проекте это делать несколько задолбает. ЯП продвигает практики попадения на зависимость от вон той клики корпоративных директоров с единственной репой, увы и ах.

> Почитай хоть доку перед тем как позориться
> doc.rust-lang.org/cargo/reference/specifying-dependencies.html

Доки доками а фактическкое состояние дел - это фактическое состояние дел.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #371 Ответы: #455

376. Сообщение от pavlinux (ok), 15-Июн-24, 11:58   –3 +/
> Интернет(он же в девичестве ARPANET) заказчик разработки минобороны США

Интернет придумали еще Майя, правда тогда юзали сигнальные костры.

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

377. Сообщение от n00by (ok), 15-Июн-24, 11:58   +/
Стандарт нужен, когда у двух экспертов возникает спор. Решает его не тот, кто умело применяет риторику и доказывает по аналогии, а способный найти нужный пункт в стандарте.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #314

378. Сообщение от n00by (ok), 15-Июн-24, 12:07   +1 +/
В Бейсике было ключевое слово let, но обычно можно было его не писать - транслятор размером 8Кб вполне справлялся.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #334 Ответы: #416

379. Сообщение от n00by (ok), 15-Июн-24, 12:10   +/
>> и будет брать отвественность за ошибки на себя.
> Смысл программирование - решение задач, а не рассказывание окружающим, как ты взял
> на себя ответственность.

В системном программировании какие задачи решаются?

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

380. Сообщение от n00by (ok), 15-Июн-24, 12:26   +/
> Утекшие исходники были где то от 2к венды, тамошние плюсы от С
> мало чем отличались :)
> Внутрь я не смотрел, полагаю на крестах был гуй и некоторые службы.

Там нет ни Си, ни плюсов. В ядре куча Паскаль-кода с венгерской нотацией, записанная странным диалектом Си, потому что другого у Микрософт и не было. Если не придираться к непривычногому синтаксису, то назвать тот код овном - это надо быть очень смелым анонимным гением. На то время передовые технологии, ОО в полный рост, спроектированное создателями DEC VMS. Где-то, вероятно, было и "Си с классами", собираемое как плюсы (но это к Юзер234 вопрос, из какого чатика он инфу сюда скопировал).

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

381. Сообщение от Bottle (?), 15-Июн-24, 12:29   –1 +/
Потому что язычки без стандарта и языки с плохим стандартом обречены на раздробленную экосистему, что мы наблюдаем на примере C и C++. То собери этим компилятором строго этого года строго под Windows XP Service Pack 1, это симейком, а это базелем, а это ещё одной системой сборки с данными флагами компилятора. И молись, чтобы всё запустилось.
Даже т.н. легаси не спасёт языки от забвения, если совместимость не продумана наперёд.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #314 Ответы: #408

382. Сообщение от wyry (-), 15-Июн-24, 12:49   +/
>Создатель Rust работал программистом в Мозилле.
>Следовательно, он был профессионалом.

Не следовательно. Так можно вообще кого угодно назвать профессиналом, если он(а) получил(а) деньги за программирование.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #343 Ответы: #454

383. Сообщение от Ivan_83 (ok), 15-Июн-24, 13:57   +/
Вы плохо практикующий, потому что:
- С это не язык по какой то там спеке, это язык про железо, поэтому какойнить int не зазорно быть аппаратно зависимым типом
- достаточно пару раз наступить на грабли чтобы запомнить и больше не наступать, это называется обучаемость
- про енумы - в сях вообще ничего не энфорсится, потому что это не язык БДСМщиков
- отрицательные индексы для массивов тоже возможны, иногда так задумано, хотя я не разделяю таких методов
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #310 Ответы: #404

384. Сообщение от Ivan_83 (ok), 15-Июн-24, 14:02   +/
Насколько по более?)
Я везде у себя юзаю size_t для размеров и индексов, но та же луа почти целиком на int и ничего.
Более того там и отрицательные значения для индексов используются активно и это нигде не мешает.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #360 Ответы: #405

385. Сообщение от Ivan_83 (ok), 15-Июн-24, 14:05   +/
Да да, особенно в геймдеве оно выросло :)))
И при такой мегапроизводительности - где результаты? Уже весь мир должен был быть переписан на раст, и где оно?)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #338 Ответы: #450

386. Сообщение от Ivan_83 (ok), 15-Июн-24, 14:17   +/
Я ошибкой считаю не то что там компилятор себе надумал а то что мешает программе выдавать нужный мне результат/функционал.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #339 Ответы: #449

387. Сообщение от Ivan_83 (ok), 15-Июн-24, 14:22   –1 +/
Не решаются они быстрее на расте, он проигрывает всем в этом плане.
С одной стороны есть выкоуровневые языки где можно сосредоточится только на самой задаче без раздумий о деталях типа памяти или доступе при многопоточности.
С другой есть типа С где компилятор не путается под ногами со своими "очень ценными" "советами" как правильно писать, и не собирает часами хэлловорлд.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #300 Ответы: #417

388. Сообщение от Ivan_83 (ok), 15-Июн-24, 14:24   +/
Не каждая ошибка в бортовом компе фатальна, не надо придумывать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #291

389. Сообщение от Ivan_83 (ok), 15-Июн-24, 14:30   +/
Нету в С/С++ никаких оптимизаций которые где то запрещены.
Есть ручное управление ресурсами и есть возможность писать код так чтобы он работал максимально эффективно на конкретных архитектурах.

В остальном - я вот смотрю на зоопарк приложений у меня в компе и там очень мало приложений где я могу уверенно сказать: "а пофиг на производительность и сколько оно жрёт".

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

390. Сообщение от Ivan_83 (ok), 15-Июн-24, 14:37   +/
Про отвественность между вызывающей/вызываемой и проверкой кода возврата - да.
Но я лично всегда всё проверяю на входе и проверяю код возврата если не пофиг на результат.


Насчёт строк - уже много раз писал: нет в С/С++ никаких срок кроме константных объявленных в коде.
Всё что вы откуда то получили - это область памяти с какими то данными предположительно содержащими текст, и именно так и надо это обрабатывать: указатель + размер передавать везде, а не думать что там /0 будет и что только валидный текст.

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

391. Сообщение от Ivan_83 (ok), 15-Июн-24, 14:52   +2 +/
Забавно, я вот тоже работаю пограмистом за деньги, но моё мнение относительно стрёмности раста и крутости С вам не нравится :)

В остальном скажу так.
До прихода LLVM люди создавали языки редко и в основном ограничивались либами для решения конкретных задач, когда типовую проблему хотелось закрывать парой строчек кода.
В мозилле, хроме и других браузерах вполне себе всё работало и работает без раста.
И если бы они работали на результат а не проедали деньги то никакого раста не появилось бы.

Все эти сказки адептов про раст это системный язык на замену С - туфта полная, потому что С это практически асм только переносимый, хоть и с нюансами на разном железе. А асм выкинуть не получится.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #343 Ответы: #441, #446, #460

393. Сообщение от _kp (ok), 15-Июн-24, 17:37   +1 +/
Там и в let смысла нет. Начали б с const и не меньше употребляли разные нехорошие вешества.
Если язык спроектирован грамотно, то в общих случаях синтаксис ясный и лаконичный.

Кстати, в Swift синтаксис хороший, сам язык только узкоспециализированный.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #302 Ответы: #403, #431

395. Сообщение от Ivan_83 (ok), 15-Июн-24, 18:13   +/
И сколько там раста у микрософта?
Особенно в его кормящих продуктах типа венды и оффиса.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #331 Ответы: #447, #514

396. Сообщение от Ivan_83 (ok), 15-Июн-24, 18:17   +/
На Z80 были 8 и 16 бит регистры, это далеко не самое страшное :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #364 Ответы: #406

397. Сообщение от Аноним (415), 15-Июн-24, 20:29   +/
Автопилот довольно простая аналоговая система несмотря на страшное название. И вообще, в таких областях, как авиация или космонавтика, идут по пути максимального упрощения, минимизируя количество потенциальных точек отказа. Это известно каждому инженеру.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #349 Ответы: #470

398. Сообщение от Аноним (415), 15-Июн-24, 20:36   –1 +/
> супербезопасный язык Ada

Ну он, собсно, таким и является. Ты же не будешь спорить с NASA или Пентагоном касаемо выбранного ими языка 😉

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #321 Ответы: #426

400. Сообщение от Аноним (415), 15-Июн-24, 20:54   +/
> https://chat.lmsys.org/

Спс за ссыль, давно хотел пощупать Opus нахаляву. Сгенерировало хеллоуврот на fasm на чистом win32 api без ошибок. Круто.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #285 Ответы: #412

401. Сообщение от Аноним (-), 15-Июн-24, 21:05   +/
> Ну я на беке работаю, мне хорошо, тут дотнет только хорошеет. А
> про UI согласен. Каждые несколько лет Microsoft пилит новый UI фреймворк,
> а один закапывает. Я бы и рад освоить Blazor, но судя
> по тенденции, лучше взять React, который никуда не денется еще лет 10.

О, кажется этот маздайщик уже начал немного догадываться за кого его на самом деле держит майкрософт. А скоро, чувак, тебя в легаси спишут. Со всеми потрохами. У майкрософта и их маркетинга теперь новая игрущка - сабж. Они даже в совет директоров вписались. И кстати там не нужны виртуальные машины, огромные рантаймы, да и работы на эвона какую толпу распихны, не надо все это самим за свой счет фигачить. Сплошной профит.

Так что вынесут вас куда-то на уровень кобола, когда оно вроде есть - но уже махровое deprecated, legacy, NRND, в общем - паллиатив для тех кто от батареи отковаться не смог. А остальные будут сабж юзать. Без минусов того переростка.

>> Плюс доступных и бесплатных развитых IDE тоже нет
> A такие бывают для других технологий? В дотнет мире всё очень даже
> хорошо с идешками. Visual Studio Community хорош. Для профессиональной разработки есть
> Rider, но он платен. VS Code - тоже вариант.

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

> Удивительно, как это у нас получается. У меня на прошлой работе было
> два проекта. Один на dotnet framework 3.5, а другой на дотнет
> 3.1. Если вы понимаете, о чём я

О том что этот мусор не на 100% совместим между версиями и порой перенос на более новую версию это боль? Ну это майкрософт, они всегда все свои проблемы конвертят в проблемы даунстримов, кредо у них такое :). И именно поэтому оттуда подрапало немало девелоперс, девелоперс... но до некоторых, вот, как до жирафов ;). Хотя учить реактжыэс - это достойная участь для дотнетчика, конечно. Или как еще эпичнее признать что продолбал море времени и резервов мозга ни на что?!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #169 Ответы: #478

402. Сообщение от Аноним (-), 15-Июн-24, 21:13   +/
> Оказался недостаточно безопасным для решений требующих повышенной надёжности?)

Safety и security это 2 довольно разных аспекта. Они местами пересекаются, по той линии что вулны это таки тоже - "незапланированное поведение программы". Но в целом это все же разные аспекты.

Можно написать безопасную в плане вулнов программу, которая однако хренова с точки зрения надежности. В частности хрустовский panic на любую проблему - надежности не подарок. И в линух кернеле это вылезло во весь рост. Оказывается, все вырубить при сбое - это хреновая идея для ядра ОС. По линии надежности работы такой ОС. И вот уже в сабже появились всякие try_* и прочие, и чем это так уж от alloc/free и проверок успеха отличалось - а вот ктулху его знает?! Те же грабли, другой синтаксис? ORLY? :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #414

403. Сообщение от Аноним (-), 15-Июн-24, 21:19   +2 +/
> Там и в let смысла нет.

Я тоже не понимаю чего они паскальское := не стырили. Оскорбляло меньшинства своим видом?

> Начали б с const и не меньше употребляли разные нехорошие вешества.

Ну до них и try_* дошел только сильно опосля. И вот оказалось что если пчелы против меда, тогда потом в улье жрать нечего. А системный яп не могет в системные задачи. И пришлось городить такие вот костыли. Вот уже почти совсем, закостылили, стабильной версией собирается - вчера закомитили, сегодня ночью отрелизились, проверяйте стабильность :))). Поэтому дрова на этом всем и болтаются в режиме эксперимента - тулчейн телепают на каждую фигню.

> Если язык спроектирован грамотно, то в общих случаях синтаксис ясный и лаконичный.

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

> Кстати, в Swift синтаксис хороший, сам язык только узкоспециализированный.

Ну, мне он ни в 3.14, ни в красну аpмию...

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

404. Сообщение от Аноним (-), 15-Июн-24, 21:33   +/
> Вы плохо практикующий, потому что:

Хотите об этом поговорить? Окей, "пошло веселье!" (c) джеди.

> - С это не язык по какой то там спеке, это язык
> про железо, поэтому какойнить int не зазорно быть аппаратно зависимым типом

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

> - достаточно пару раз наступить на грабли чтобы запомнить и больше не
> наступать, это называется обучаемость

Судя по числу вулнов, сбоев и прочих факапов математики которые я в таком коде "от дидов" конопатил, с этим были, есть и будут проблемы. Если грабли не раскладывать - не придется прокачивать скилл в бинтовании лбов. Ну вот реально - нафиг надо тратить время на борьбу с проблемой которой быть не должно с самого начала. И да, если бы стандарт делал я, я бы переделал работу с integer'ами до конкретных размеров, как в хрусте, по всей площади. И в препроцессоре, и в математике, и в константах, и проч. С более другими правилами.

> - про енумы - в сях вообще ничего не энфорсится, потому что это не язык БДСМщиков

БДСМ это как раз пытаться поймать баг где по ошибке вкатили левое значение - например опечатавшись. И enum мог бы заметить что ну вот явный левак дали. Ан нет. Чисто декоративная хреновина, существующая неизвестно зачем. Почтальон печкин: задекларить намерения кодера можно, но это никого ни к чему не обязывает.

Более того - даже тип к которому enum будет де-факто приведен и грабли на этом пути это очень сильно отдельный топик. И самое печальное что там нет хорошего, простого, однозначного ответа "а что это на самом деле будет". Это хреновый стандарт, вот хоть как.

> - отрицательные индексы для массивов тоже возможны, иногда так задумано, хотя я
> не разделяю таких методов

На мой вкус именно в массивы это не должно катить. То что это де факто decays to pointer - окей, одна из причин по которым в сях проблемы с статическим анализом. А падающая в рантайме фирвара, бутлоадер или ядро - немного не то чего мы хотели от системщины, уж пардон.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #383 Ответы: #422

405. Сообщение от Аноним (-), 15-Июн-24, 21:47   +/
> Насколько по более?)

Ага, вы кажется начинаете о чем-то догадываться. Большая часть кода на этом глобусе железно уверено что в int лезет что-то уровня 2^31-1. И вон там, в примере с авркой, если мы еще и удумаем реально поюзать даденое стандартом право сделать платформе удобно, вкатив int сподручный ей, 16 битов, ибо по стандарту так можно было - мы гуано откушаем на большей части кода.

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

Угу, теперь попробуй фирмварь так написать. А потом перенести скажем работу с конкретной железкой на пару других платформ. А допустим в лине - драйверы цепляют свои железки - на довольно разном cpu core, и если они будут на такие вещи уповать.... Ну вот нет, от того что линух работал только на i386 торвальц ушел, и почему портабельность хорошо - понял. На память об этом у нас 1 набор дров под разные платформы работает. Ведь скопипастить IP-блок можно к любому процессорному ядру, равно как и PCI какой к нему пристроить, etc.

> Более того там и отрицательные значения для индексов используются активно и это
> нигде не мешает.

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

> И не забывайте что С был для работы с реальным железом, очень разным,

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

> а не для какой то там спеки, потому некоторые типы были машинозависимые.

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

> По сути это такой удобный асм, а не то что вы там себе придумали.

Для асма тем более непростительно то что оно с типами и integer promition вытворяет. Впрочем это даже и в апликушных вещах может все нагнуть при желании пульнуть что-то по сети или прочитать файл одинаково на разных платформах.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #384 Ответы: #423

406. Сообщение от Аноним (-), 15-Июн-24, 21:53   +/
> На Z80 были 8 и 16 бит регистры, это далеко не самое страшное :)

Под Z80 толком нет полноценных сишных компилеров. А так все хорошо, прекрасная маркиза. Даже аврка удобнее для сей чем ЭТО. Но потом прищел ARM с своими Cortex M и дал всем мастеркласс на тему как это на самом деле надо было.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #396 Ответы: #425

407. Сообщение от Аноним (407), 15-Июн-24, 22:23   +/
Так ему 10 лет в обед, и это не шутк
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94 Ответы: #475

408. Сообщение от Аноним (407), 15-Июн-24, 22:30   +1 +/
Сишка под винду собирается на раз два чем угодно
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #381 Ответы: #419

409. Сообщение от Аноним (407), 15-Июн-24, 22:33   +/
> Фигурные скобки обозначают блок, квадратные скобки - массив, срез или доступ по индексу. Так понятнее?

Приз за сложную шутку

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

410. Сообщение от Аноним (407), 15-Июн-24, 22:36   +/
> Плюсовый авто удобен чтобы форич по только что упомянутому листу не занимал пол экрана

Попадание, но я бы так

-- удобен
++ вдруг понадобился

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

411. Сообщение от мурзилка (?), 15-Июн-24, 22:45   +/
Хорошо, большие фирмы выбирают Rust. А мы тут при чём? Мы в этих больших фирмах не работаем.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #338 Ответы: #451

412. Сообщение от Аноним (99), 15-Июн-24, 22:45   +/
Рад помочь!
Оно действительно творит чудеса.
Ичсх в любых областях знания.
Это начинает немножечко пугать.
Создатель ядреной бомбы в свое время понимал что к чему и основными фичами поделился с ссср. Сдается мне, что сейчас так не будет. Даже сдается мне не на пустом месте.

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

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

413. Сообщение от мурзилка (?), 15-Июн-24, 23:02   +/
>Нехило бы как-то обосновывать громкие заявления

Изучайте историю создания языка Ада.
К середине 70-х годов в проектах, которые курировала минобороны сша, использовались 400 языков программирования. Понятно что трудно было разобраться во всём этом по. Требовалась унификация средств разработки, чтобы сократить расходы на специалистов по всяким разным языкам. Было решено всё писать на одном языке (Ада). Когда минобороны сша объявило конкурс на проект языка Ада, то в требованиях было сказано, что язык должен быть основан на Паскале или PL/1. Если бы они думали о надёжности, то ни за что бы не упомянули PL/1.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #325 Ответы: #469

414. Сообщение от Аноним (319), 15-Июн-24, 23:13   +/
> И вот уже в сабже появились всякие try_* и прочие, и чем это так уж от alloc/free и проверок успеха отличалось - а вот ктулху его знает?!

Смею дилетантски предположить, что разница всё-таки есть. Именно в сочетании озвученных Вами надежности и безопасности. При условии что правильно понял Вашу претензию. В случае сишных (условных) "alloc/free и проверок успеха" если где-то забыть сделать "проверку успеха", то какая-нибудь вулна, радостно потирая ладошки, (опять же, условно) тихо перепишет область за границами массива нужным ей куском кода и поимеет систему и это может произойти совсем незаметно для жертвы. А в случае со ржавым, если забудешь сделать try_* и вулна попытается воспользоваться этим, вылезет panic, который уронит систему. Для надежности, конечно, нехорошо, но всё же лучше, чем зараженная система. Я правильно понял? Если да, это подтверждает Вашу претензию насчет синтаксиса для достижения надежности, но возникает большая разница в плане достижения безопасности.

> Те же грабли, другой синтаксис? ORLY? :)

В случае с си с его "alloc/free и проверок успеха" у нас нет ни надежности, ни безопасности.
В случае со ржавым у нас так же нет надежности, но зато есть значительно, кардинально бОльшая безопасность (потому что подавляющее большинство именно вулнов вызвано именно теми сишными ошибками работы с памятью).

А за надежностью, предположу, это вообще не к языкам надо обращаться, а к архитектурам систем/приложений/фреймворков. Как пример - организация системы в виде микроядра и всевозможных перезапускаемых при сбоях сервисах. Или (по тем же мотивам) - создание отказоустойчивого сервиса на каком-нибудь эрланге с фреймворком OTP, где система будет построена по шаблону супервайзера с кучей перезапускаемых при сбоях процессах-воркерах.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #402 Ответы: #420

415. Сообщение от Аноним (415), 15-Июн-24, 23:15   +/
Си -язык простой (в математическом смысле). Sapienti sat.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #335

416. Сообщение от _kp (ok), 15-Июн-24, 23:18   +1 +/
Там это было для упрощения интерпретатора, и конкретно интерпретации байткода, когда при вводе операторы упаковывались в один байт. Более умные Бейсики довольно быстро избавились от лишних рудиментов в исходнике.

Но когда нужно объявить переменную с конкретными свойствами что то типа "let" вполне уместно. Неуместно именно использование на каждый чих, когда это избыточно в исходнике.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #378 Ответы: #427

417. Сообщение от Аноним (319), 15-Июн-24, 23:34   +1 +/
> Не решаются они быстрее на расте, он проигрывает всем в этом плане.

Ты просто бессовестно лжешь. Ну или дремуче заблуждаешься.

Три месяца назад Ларс Бергстром (технический директор Google) на конференции заявил, что "Команды, работающие на Rust, в два раза продуктивнее команд, использующих C++".

Цитаты с той конференции, содранные уже с реддита:

"...Some additional context on these two specific claims:

Google found that porting Go to Rust "it takes about the same sized team about the same time to build it, so that's no loss of productivity" and "we do see some benefits from it, we see reduced memory usage [...] and we also see a decreased defect rate over time"

On re-writing C++ into Rust: "in every case, we've seen a decrease by more than 2x in the amount of effort required to both build the services written in Rust, as well as maintain and update those services. [...] C++ is very expensive for us to maintain."
..."

Причем, как ты можешь заметить, не просто "решаются" в два раз быстрее на расте, но в том числе и "обслуживаются/сопровождаются" и "обновляются". И чтобы понятно было даже таким, как ты, ставят точку - "C++ is very expensive for us to maintain" ("C++ очень дорог для нас в обслуживании")

И это всё уже после кучки лет внедрения и использования раста.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #387 Ответы: #421

418. Сообщение от _kp (ok), 15-Июн-24, 23:47    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #157

419. Сообщение от Bottle (?), 16-Июн-24, 00:20   +/
Кроме оффтопика, который с восьмой версии стал шпионской помойкой, есть и другие платформы. А вон там уже всплывают все грабли и костыли, заботливо расставленные Ритчи и коллективом по стандартизации.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #408

420. Сообщение от Аноним (-), 16-Июн-24, 02:15   +/
> Смею дилетантски предположить, что разница всё-таки есть. Именно в сочетании озвученных
> Вами надежности и безопасности. При условии что правильно понял Вашу претензию.

Я не понимаю чем проверка успеха try_* отличается от проверки успеха *alloc и ко. Так просто и банально. Те же яйца, вид в профиль вроде. Может эксперты по хрусту расскажут

> А в случае со ржавым, если забудешь сделать try_* и вулна
> попытается воспользоваться этим, вылезет panic, который уронит систему.

Это тоже может быть CVE, если вызывается ремотно - "атакующий может вызвать отказ в обслуживании".

> Для надежности, конечно, нехорошо, но всё же лучше, чем зараженная система.

Возможность уронить систему - это тоже вулн, внезапно.

> нет ни надежности, ни безопасности.
> В случае со ржавым у нас так же нет надежности, но зато
> есть значительно, кардинально бОльшая безопасность

Насколько она там "кардинально" - это мы еще будем посмотреть. Ибо вон там пачка CVE уже висит, несколько сотен.

> А за надежностью, предположу, это вообще не к языкам надо обращаться, а
> к архитектурам систем/приложений/фреймворков.

ЯП может это все так изгадить что сделать более-менее надежно и предсказуемо станет вообще малореально. Хруст правда совсем так не смог - но под ядро его пришлось сурово костылить, в том числе и try_*.

> мотивам) - создание отказоустойчивого сервиса на каком-нибудь эрланге с фреймворком OTP,

Ну покажите отказоустойчивый линукскернел на этом?

> где система будет построена по шаблону супервайзера с кучей перезапускаемых при
> сбоях процессах-воркерах.

Про микроядра бредили уж давно. А воз и ныне там. К тому же с реальным железом это все ну вот не факт что хорошо заработает в именно таком виде.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #414 Ответы: #433

421. Сообщение от Ivan_83 (ok), 16-Июн-24, 06:08   –2 +/
А вы где у меня увидели ++?

Кроме того не понятно что они там переписывают, какое оно по размеру.

Другой интересный вопрос в том, что они переписывают готовое и работающее, те там уже есть архитектура и эксперементы/исследования не нужны.

И вы когда переводите - хотя бы делайте это через гугло транслейт, потому что "усилия" это не тоже самое что и "время".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #417 Ответы: #434

422. Сообщение от Ivan_83 (ok), 16-Июн-24, 06:17   +/
Про енум согласен.

В остальном ещё раз подумайте и поймите, что это язык для работы с железом на низком уровне прежде всего, а уже потом всё остальное.
Поэтому инты - это любая хрень со знаком размером с регистр проца, а если надо что то конкретного размера то отдельно завезли uintXX_t, intXX_t и прочее.
Про оверфлоу при вычислении примерно так же: обычно на это пофиг, потому что системный код простой и примитивный, там и так понятно что до MAX_INT оно никогда до досчитает, потому проверками никто не заморачивается, ради скорости и простоты.
То что ими не заморачиваются там где рассчёты и где оно может случится - это отдельная история.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #404 Ответы: #466

423. Сообщение от Ivan_83 (ok), 16-Июн-24, 06:25   +/
Большая часть кода с int которую я видел за последнее время (lua, return error code в линухе/бсд) легко могла бы уложится в 16 бит, а может даже и 8.


size_t - это для размера куска памяти на конкретной архитектуре где собран код.
В форматы его понятное дело не пихают ибо получится плохо переносимо.
Но тот же memset(), memcpy(), strlen() - это уже давно с size_t, везде.

В асме код тоже далеко не всегда с проверками переполнения, потому что очевидно часто оно не случится никогда.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #405 Ответы: #467

424. Сообщение от Ivan_83 (ok), 16-Июн-24, 06:28   +/
for (int i = 0; i < 100; i ++) printf("%i/n", i);

Зачем мне тут от чего то защищатся? :)
Даже если int станет 8 бит, понятно что ничего не изменится.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #335 Ответы: #476

425. Сообщение от Ivan_83 (ok), 16-Июн-24, 06:30   +/
Я не фонат Z80, просто с него начинал в 1998 году и это единственная архитектура с такой низкой разрядностью которую я щюпал/знаю.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #406 Ответы: #468

426. Сообщение от Аноним (426), 16-Июн-24, 10:18   +2 +/
На этом безопасном языке была написана программа, которая привела к крушению французского космического корабля Ариан 5. Как-то так. Ты же тоже не будешь с этим спорить.

Диагноз - каким бы не был "защищенным" язык программирования кривые, шаловливые ручонки недопрограммистов тоже никто еще не отменял. И это - основная проблема ошибок в программах.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #398 Ответы: #445, #503

427. Сообщение от n00by (ok), 16-Июн-24, 10:37   +/
Так свойства переменной можно записывать перед её именем. Но в Rust решали как раз эту "проблему" Си, вот и let на каждый чих.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #416 Ответы: #429, #458

428. Сообщение от freecoder (ok), 16-Июн-24, 13:26   +/
Как лучше: проверять каждое звено на гниль, или только 20% звеньев, так как для 80% автоматически гарантирована исправность?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #166

429. Сообщение от freecoder (ok), 16-Июн-24, 13:38   +/
> Так свойства переменной можно записывать перед её именем. Но в Rust решали
> как раз эту "проблему" Си, вот и let на каждый чих.

Вот статья специально для таких как вы была написана: https://habr.com/ru/articles/532660
Раздел "Постфиксная запись типа".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #427 Ответы: #436

430. Сообщение от freecoder (ok), 16-Июн-24, 13:43   +1 +/
> И какой логический смысл блока { None }; в типа-массиве?

Блок в котором одна инструкция, причём так как после неё нет точи с запятой, то результата вычисления выражения этой инструкции будет возвращаемым значением блока. Это один из базовыв примитивов в Rust, который используется повсеместно. Примерчик вам для понимания:


let sum = {
    let a = 1;
    let b = 2;
    a + b
};

Подробнее - в статье: https://habr.com/ru/articles/532660

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #306 Ответы: #439

431. Сообщение от freecoder (ok), 16-Июн-24, 13:49   +1 +/
> Там и в let смысла нет. Начали б с const

Если бы начали с const, то это было бы объявление константы foo. Так можно, но семантика приведённого выше выражения в другом: само foo не является константой, константным является только выражение, результат вычисления которого определяет значение элементов объявляемого массива.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #393 Ответы: #438

432. Сообщение от freecoder (ok), 16-Июн-24, 13:56   +1 +/
> И какой логический смысл блока { None }; в типа-массиве?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #302 Ответы: #510

433. Сообщение от Советский инженер (ok), 16-Июн-24, 14:14   +/
>Я не понимаю чем проверка успеха try_* отличается от проверки успеха *alloc и ко.

если не проверил try_* - будет варнинг.
не проверил *alloc  - ничего не будет

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #420 Ответы: #472

434. Сообщение от Советский инженер (ok), 16-Июн-24, 14:27   +1 +/
>А вы где у меня увидели ++?

ты написал что раст проигрывает всем.
у тебя какие-то особенные "все" которые не включают С++ ?

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

435. Сообщение от Аноним (-), 16-Июн-24, 14:32    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #269

436. Сообщение от n00by (ok), 16-Июн-24, 15:20   +/
>> Так свойства переменной можно записывать перед её именем. Но в Rust решали
>> как раз эту "проблему" Си, вот и let на каждый чих.
> Вот статья специально для таких как вы была написана: https://habr.com/ru/articles/532660
> Раздел "Постфиксная запись типа".

Специально для писателей того раздела, пугающих читателя "int (*fns[16])(int * const * p);", в Си и Си++ придумано ключевое слово typedef. А в C++ из OCaml, на котором была написана первая версия транслятора Rust, заимствован вывод типов по алгоритму Хиндли–Миллнера.

Специально для писателей слов "простой парсер" написана бородатая Драгонбук, где вводится термин "семантический анализ".

Я так и не понял, что я должен был почерпнуть из того раздела. Или надо было читать следующий, где let служит для сопоставления с образцом? Ну так тогда можно сказать, что избыточны все остальные конструкции.)

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

437. Сообщение от Ноним (?), 16-Июн-24, 15:45   –1 +/
> Здесь хорошо бы уточнить, на каком языке программирования с использованием какой парадигмы.

Не имеет значения. Совсем.

> В Плюсах, например, существует надцать способов инициализации полей класса.

Не надцать, а по пальцам одной руки. Что уже на N-1 больше необходимого.

> Хотя некоторый прогресс с автоматическим выведением типов и наметился, но до идеала ещё далеко.

С одной стороны вопрос обратной совместимости. С другой - совершенно новый язык. Auto в C++ > 10 лет.

> Конечно, он слышал и об этом, и о многом другом в этой области гораздо больше тебя.

Верю, верю))) Результат его работы говорит сам за себя.

> Меньшим количеством ошибок определённого класса.

Это отнюдь не причина создавать на столько альтернативно одаренный язык. Отсутствие ошибок - не фича языка, а одно из его свойств.

Нет никаких проблем написать все то же самое на C++. Но придется писать самому. И это не будет несовместимо с существующим софтом.

> Согласно неоднократным опросам, сложное в Расте - это время жизни переменных и заимствования.

Разве этим не занимается САМ ЯЗЫК? Да вы что...

> Остальное всё так же банально, как и в других сходных языках.

Интересно, о каких других языках вы говорите?))) Такого угрюмого синтаксиса как в Расте нет нигде.

> Просто надо документацию прочитать хотя бы раз.

Выше сказал, что Раст совершенно неочевиден.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #341 Ответы: #461, #462

438. Сообщение от _kp (ok), 16-Июн-24, 16:44   +/
Вспомнилось..
Где деньги?
Я всё объясню.
Нет, объяснить я и сам могу что угодно. Где деньги?
;)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #431 Ответы: #493

439. Сообщение от Ноним (?), 16-Июн-24, 17:13   –1 +/
Это было еще в C. И в разы проще.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #430 Ответы: #457

441. Сообщение от Советский инженер (ok), 16-Июн-24, 17:25   +/
> что С это практически асм только переносимый, хоть и с нюансами на разном железе.

C, который практически ASM остался на PDP-11.
так что не ври людям, и себе

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

443. Сообщение от крок (?), 16-Июн-24, 19:16   +/
это вы так скоро поймете сущность С и вернетесь обратно 😃
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #251

445. Сообщение от Аноним (445), 16-Июн-24, 21:30   +/
Структурная надежность технической системы обычно не предмет компетенций заурядного кодера. Требования к надежности подсистем (тем более космического корабля) определяются не досужими IMHO  анонимов с холиварных топиков.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #426

446. Сообщение от Аноним (500), 16-Июн-24, 22:02   +/
> До прихода LLVM люди создавали языки редко и в основном ограничивались либами

Правда, в какой-то другой, альтернативной мне реальности:
https://en.wikipedia.org/wiki/Timeline_of_programming_languages
(тут даже если смотреть ЯПы 2000х - LLVM в качестве бэкэнда там совершенно не доминирует).

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

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

447. Сообщение от Прохожий (??), 17-Июн-24, 01:18   +/
Это к чему вопрос был? Говорили о наличие Rust в серьезных приложениях, вроде. Теперь на тему о количестве кода внезапно перескочили.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #395

448. Сообщение от Прохожий (??), 17-Июн-24, 01:21   +/
А кроме самолёта Як-40 других в мире больше нет?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #349 Ответы: #471, #502

449. Сообщение от Прохожий (??), 17-Июн-24, 01:31   +/
>мешает программе выдавать нужный мне результат/функционал.

И наличие ошибок в коде, из-за которых программа, например, падает, сюда никаким боком?

>Взломы корпораций вполне себе происходят и без ошибок в коде, и гораздо чаще.

Поэтому будем плевать с высокой колокольни на критические ошибки?

>Но вы же дальше своего кода не мыслите.

Я-то как раз мыслю. И даже примеры привёл, где нарушение безопасности - это очень важно, и корпы-производители софта это понимают. А подобные вам - нет.


>Более того, есть страховщики, которые могут такое покрывать.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #386 Ответы: #540

450. Сообщение от Прохожий (??), 17-Июн-24, 01:50   +/

>особенно в геймдеве оно выросло

В геймдеве, я уже отвечал на этот вопрос выше, ошибки работы с памятью не столь критичны. И уже успели наваять движков на Плюсах и Си Шарпе. Новые, на Rust, догонят по функциональности не скоро. Но они уже есть.

>где результаты?

Я и не только уже неоднократно приводил их. Мало того, вы всё это точно читали. Если плохо с памятью, попробуйте к специалисту на приём сходить.

>Уже весь мир должен был быть переписан на раст, и где оно?)

У Дропбокса, Клаудфлэр, Дискорд, например, весь мир переписан. Андроид (новый код). Амазон (отдельный софт). И так далее. Но удобней, конечно, не замечать реальность, которая противоречит твоей картине мира.

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

451. Сообщение от Прохожий (??), 17-Июн-24, 01:52   +/
Rust выбирают не только большие фирмы. Это вообще не связанные вещи: выбор языка программирования для какого-то проекта и размер фирмы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #411

452. Сообщение от Прохожий (??), 17-Июн-24, 02:02   +/
>В итоге Раст по производительности даже C++ не может догнать

Где на эти итоги просмотреть можно? Потому что там, где я смотрел, Rust уделывал Плюсы (не помню точно, как сильно). Только Си не мог догнать, но разрыв был около 5%.

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

453. Сообщение от Прохожий (??), 17-Июн-24, 02:07   +/
На самом деле получается, хотя не всегда с первой попытки. Но это потому, что Rust - своего рода первопроходец. Просто не все способны оценить адекватно в силу или слабости когнитивных способностей, или предубеждённости.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #271

454. Сообщение от Прохожий (??), 17-Июн-24, 02:14   +/
>Не следовательно.

Если человек регулярно получает деньги за свою работу, он является профессионалом. Это следует из определения этого слова. Автор получал за свою работу деньги регулярно. Кроме того, Раст создавался не только этим одним человеком, были и другие люди. И их труд уже был оценен мировыми лидерами софтостроения, хотя пока и не всеми.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #382 Ответы: #465

455. Сообщение от Прохожий (??), 17-Июн-24, 02:21   +/
>В каждом проекте это делать несколько задолбает.

Но в Си или Плюсах - это, считай, обязаловка. И тебя это почему-то устраивает.

>ЯП продвигает практики попадения на зависимость от вон той клики корпоративных директоров

Как будто тебя кто-то заставляет попадать к ним в зависимость.

> с единственной репой, увы и ах.

Никто не запрещает создать свою и пользоваться ею.

>Доки доками а фактическкое состояние дел - это фактическое состояние дел.

То, что тебе мерещится и у тебя паранойя - это не фактическое состояние дел, это искаженное восприятие реальности.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #375 Ответы: #464

456. Сообщение от Прохожий (??), 17-Июн-24, 02:25   +1 +/
Кто бы говорил про дивные миры. Вы там что-то себе нафантазировали от моего имени и потом пытаетесь это оспорить. Я где-то сказал о всех ошибках?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #344

457. Сообщение от Прохожий (??), 17-Июн-24, 02:29   +1 +/
Вы, наверное, и продемонстрировать сможете, как это же В РАЗЫ проще на Си?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #439 Ответы: #477, #480

458. Сообщение от Прохожий (??), 17-Июн-24, 02:32   +/
>вот и let на каждый чих

На какой каждый? Объявляет новую переменную - появляется let. Занимаетесь присваиванием - нет никакого let.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #427 Ответы: #481

459. Сообщение от Прохожий (??), 17-Июн-24, 02:53   +/
>С превеликим удовольствием приму наставничество, отче!

Всегда, пожалуйста.

>Иметь немелкого спонсора - это теперь залог успеха?

Внезапно, да. Особенно, если их несколько, и они не словом, а делом подтверждают жизнеспособность проекта/продукта.

>Повспоминайте проекты самих немелких спонсоров, в которые были влиты сотни нефти и при этом почившие в бозе.

Лучше приведите примеры, где бы проект под крышей нескольких спонсоров оказался негодным. Это было бы весомым аргументом. А так - слабовато.

>Ваша логика как бы говорит сейчас: производительность не нужна, нужно больше программистов, набрасывающих по быстренькому

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

>Это подмножество программистов не умеет и не может уметь в си

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

>в ближайшие годы может ворваться АГИ

А может и не ворваться.

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

460. Сообщение от Прохожий (??), 17-Июн-24, 03:04   +/
>Забавно, я вот тоже работаю пограмистом за деньги, но моё мнение относительно стрёмности раста и крутости С вам не нравится :)

Это потому, что я не считаю ваше мнение сколь-либо весомым и аргументированным, то есть экспертным. А не потому, что вы - не профессионал в разработке на том же Си, к примеру.

>Все эти сказки адептов про раст это системный язык на замену С - туфта полная, потому что С это практически асм только переносимый, хоть и с нюансами на разном железе. А асм выкинуть не получится.

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

Мало того, опыт Гугла при разработке нового кода для Андроида доказывает это на практике, а не только в теории.

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

461. Сообщение от Прохожий (??), 17-Июн-24, 03:24   +/
>Не имеет значения. Совсем.

Вообще-то, имеет, если мы говорим про "банальность" (обыденность, обычность, привычность). То, что банально в императивном языке,  в функционально может быть невозможным. И наоборот. Ещё пример. В Си следить за коректным освобождением памяти в крупном проекте вещь совсем не банальная, как показывает история.

>Результат его работы говорит сам за себя.

Есть ещё мнение независимых экспертов (например, из того же Гугла). Их опыт показал, что Раст по сравнению с Плюсами - прекрасный язык.

>Это отнюдь не причина создавать на столько альтернативно одаренный язык.

Как показывает опыт использования Раст - ещё какая причина.


> Отсутствие ошибок - не фича языка, а одно из его свойств.

Не совсем понятно, в чем разница между фичей и свойством.

>Нет никаких проблем написать все то же самое на C++. Но придется писать самому.

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

>И это не будет несовместимо с существующим софтом.

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

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

462. Сообщение от Прохожий (??), 17-Июн-24, 03:36   +/
>> Согласно неоднократным опросам, сложное в Расте - это время жизни переменных и заимствования.
>Разве этим не занимается САМ ЯЗЫК? Да вы что...

Имелось ввиду понимание этих аспектов языка обучающимися.

>> Остальное всё так же банально, как и в других сходных языках.
>Интересно, о каких других языках вы говорите?))) Такого угрюмого синтаксиса как в Расте нет нигде.

C, C++, Perl - синтаксис ничем не проще. Примерно такой же угрюмый.


>> Просто надо документацию прочитать хотя бы раз.
>Выше сказал, что Раст совершенно неочевиден.

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

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

463. Сообщение от Прохожий (??), 17-Июн-24, 03:45   +/
>Ада, у неё просто многословный синтаксис, но крайне понятный и читабельный, а тут просто набор символов какой-то)

Математика - это тоже просто набор символов какой-то. И как люди живут с этим уже столько сотен (если не тысяч) лет...

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

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

464. Сообщение от Аноним (-), 17-Июн-24, 07:15   +1 +/
>>В каждом проекте это делать несколько задолбает.
> Но в Си или Плюсах - это, считай, обязаловка. И тебя это почему-то устраивает.

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

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

> Как будто тебя кто-то заставляет попадать к ним в зависимость.

Существующие проекты юзающие это - вполне себе. И это недостаток. По сравнению с сями и плюсами, ага. Да, меня волнует "effective rule set" с котторым придется столкнуться а не формальные отмазки.

>> с единственной репой, увы и ах.
> Никто не запрещает создать свою и пользоваться ею.

Кроме того что в сях/плюсах я просто пойду и просто сбилдую а тут - левый гимор с каждым первым проектом.

> То, что тебе мерещится и у тебя паранойя - это не фактическое
> состояние дел, это искаженное восприятие реальности.

Это де-факто состояние дел. И перетрясать каждый первый проект - мягко говоря не рулит.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #455 Ответы: #598

465. Сообщение от wyry (-), 17-Июн-24, 07:37   –1 +/
>>Не следовательно.
> Если человек регулярно получает деньги за свою работу, он является профессионалом.

В индустрии абсолютное большинство некомпетентных людей, которые регулярно получают деньги за работу. Более того, по такой логике Кнут, Таненбаум или Петцольд должны быть самыми богатыми ITшниками в мире, на деле же это совершенно не так.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #454 Ответы: #498

466. Сообщение от Аноним (-), 17-Июн-24, 08:02   +/
> Про енум согласен.

Да там не только в нем проблема. Но enum - просто такой характерный пример когда вроде ну все сделали - и зачем-то пролюбили пойнт сделаного. А зачем делали тогда? Чисто для галочки что, вот, фича есть?

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

Я по моему очень понятно обрисовал что я на самом деле хочу при вот именно работе с железом. А вот что я совершенно точно при этом не хочу - дурацкие првила integer promotion, UB и тому подобное веселье. Ибо железо так то разное бывает. Как тебе сбой в фирваре крутящей вон тот двигун? Или рулящей вон тем опасным процессом? Ну очень круто, да? И в этом месте последнее что я хочу видеть - это "size_t" хрен знает какого рамера, непонятки "что будет если?" и тому подобные вещи, типа игнора аннотации вида array[10] до "decays to pointer" и даже очевидный out of bounds - не ловится сколь-нибудь регламентировано и штатно.

> Поэтому инты - это любая хрень со знаком размером с регистр проца,
> а если надо что то конкретного размера то отдельно завезли uintXX_t, intXX_t и прочее.

Как я уже сказал, полудурков из ISO не хватило чтобы сделать это нормально. Поэтому в препроцессоре, константах, enum и прочем integer promotion можно знатно попрыгать по граблищам, которым к тому же топор на рукоять одели для лулзов.

Да, даже просто написать "+ 1" может сделать немного не то что програмер подразумевал, очень контринтуитивно запромотив тип. Enum'а это тоже касается. И булеаны появились в том числе и поэтому. А чтоб вы не скучали - в C23 их вынесли, #include <trollface.h> однако :)

> Про оверфлоу при вычислении примерно так же: обычно на это пофиг, потому
> что системный код простой и примитивный, там и так понятно что
> до MAX_INT оно никогда до досчитает,

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

> ради скорости и простоты.

Я думаю что по состоянию на сейчас пора пересмотреть эту практику и явно аннотировать критичный к перфомансу код как таковой. Иначе - получается фигня как выше, и это очень сомнительная услуга человечеству. Да и большую часть проверок компилер так то может выпилить оптимизером - на самом деле там прувер мама не горюй у современных компилеров, он это для оптимизаций делает, но вон там - Торвальдс крыл gcc за удаленные проверки null, где с этим в компилере малость перестарались даже :)

> То что ими не заморачиваются там где рассчёты и где оно может
> случится - это отдельная история.

Меня как-то напрягает что вон той системке можно радиопакетом череп вынести просто подогнав значения чтобы алго посчитало не то что там себе диды вообразили, сорян. Так быть не должно.

> Ну и раз вы хотите быть уверенны во всём, вы же должны
> понимать что ваш код просто обязан работать только на платформах где
> память с ECC, иначе никакой гарантии того что вы записали 22
> и прочитаете 22 просто нет.

FYI у микроконтроллеров бывает и оператива с parity/ECC, и флеха с ней же. И на десктопе у меня таки тоже ECC. А вы можете глюкать и прыгать по граблям если хотите. И файлуху без чексум можно юзать.

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

467. Сообщение от Аноним (467), 17-Июн-24, 08:16   +/
> Большая часть кода с int которую я видел за последнее время (lua,
> return error code в линухе/бсд) легко могла бы уложится в 16
> бит, а может даже и 8.

Проблема в том что "меньшей" части вполне хватит чтобы огрести дохрена неочевидных багов. Реально кода который compliant с столь дурацким стандартом - не больно дофига.

> size_t - это для размера куска памяти на конкретной архитектуре где собран код.

Опять же - если мы например с хардварным регистром размером 32 бита работаем, этот IP блок uncore, внезапно, могли пришить к совершенно разным cpu core. А идея скопипастить обвес uncore - ну вот вообще ничему не противоречит. И потом - и с дравером ЭТО ЖЕ сделать, чем какие-нибудь линуксоиды хуже VHDLщиков всяких? Они о вон том - догадываются.

...и в этом месте мы начнем догадываться, что для вот именно работы с железом size_t как раз таки вообще совсем не оно. У железок бывают вполне конкретные требования по размеру доступа за раз, выраваниванию и проч. А если попробовать что-то иное - грабля по морде даст так что мало не покажется. А оно может тупо не уметь иные варианты доступов в тот регион, для упрощения и ускорения железа, например.

> В форматы его понятное дело не пихают ибо получится плохо переносимо.
> Но тот же memset(), memcpy(), strlen() - это уже давно с size_t, везде.

И за это тоже воздается глупыми багами на ровном месте...

> В асме код тоже далеко не всегда с проверками переполнения, потому что
> очевидно часто оно не случится никогда.

Есть довольно большая разница между доказуемыми вещами, и "наобум напрогали так". В коде от дидов много второго. И на краевых условиях это добро сыпется только в путь. И вот ЭТО как раз несколько заманало.

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

468. Сообщение от Аноним (-), 17-Июн-24, 08:27   +/
> Я не фонат Z80, просто с него начинал в 1998 году и
> это единственная архитектура с такой низкой разрядностью которую я щюпал/знаю.

Этот опыт малорелевантен в контексте си и тем более сабжа. А кто-то из местных пытался сабжа на аврке 8 бит раскочегарить. Хз что получилось, но в принципе так можно было.

У AVR много однотипных регистров, это типичный RISC, одноцикловый по большинству операций. Правда разные адресные пространства - сям таки карму сильно нагибают, 8 битов тоже так то условность, data path к флехе с кодом 16 бит, и что прикольнее, адреса флехи - считают в юнитах по 16 бит. Ведет к знатному деланию мозга если указатели хочется. Поэтому cortex M это добро и зарулят постепенно. Лучше - в вообще совсем всем. От периферии до ядра проца.

Кста адресовать флеху юнитами строго по 16 бит немного похоже на те DSPшники. Правда у тех - жестче: нате-ка вам 16-бит char! По стандарту ж можно! Ну и вот как хотите так и живите с этим. И понятно что кода который compliant опять же - мизер.

Скажем (unsigned) char[20] посылаемый "в провод", эфир, записываемый в файл - ну вот вообще совсем не новость. А теперь представь что char не 8 бит стал, а 16... и все как бы честно! По тем горе стандартам так можно было. Ну код и сломается чуть менее чем весь :))

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

469. Сообщение от Аноним (-), 17-Июн-24, 08:35   +/
>>Нехило бы как-то обосновывать громкие заявления
> Изучайте историю создания языка Ада.

Оно мне надо? Я не собираюсь на этом програмить. Мерзотная пасквилеобразная хня, надругательство над идеей системного программирования.

> К середине 70-х годов в проектах, которые курировала минобороны сша, использовались 400
> языков программирования. Понятно что трудно было разобраться во всём этом по.

Где они в 70х столько ЯП взяли, интересно? Там реально употребительных было штук 5.

> Требовалась унификация средств разработки, чтобы сократить расходы на специалистов по
> всяким разным языкам. Было решено всё писать на одном языке (Ада).

Почему-то это очень напоминает мне комикс XKCD за номером 927.

> Когда минобороны сша объявило конкурс на проект языка Ада, то в
> требованиях было сказано, что язык должен быть основан на Паскале или
> PL/1. Если бы они думали о надёжности, то ни за что
> бы не упомянули PL/1.

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

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

470. Сообщение от Аноним (-), 17-Июн-24, 08:39   +/
> Автопилот довольно простая аналоговая система несмотря на страшное название. И вообще,
> в таких областях, как авиация или космонавтика, идут по пути максимального
> упрощения, минимизируя количество потенциальных точек отказа. Это известно каждому инженеру.

Ну вот и упростили. Выкинули чертову кучу проводочков, тросиков, тяг, колесиков и прочей ломкой, хлипкой, требующей периодического квалифицированого обслуживания оптом фигни.

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

...так появился Fly By Wire. И даже до россиян через i++ лет что-то понемногу стало доползать.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #397 Ответы: #554

471. Сообщение от Аноним (-), 17-Июн-24, 08:41   +/
> А кроме самолёта Як-40 других в мире больше нет?

А про fly by wire этому неандертальцу явно не рассказали. Да что там, он и про электронный газ в авто наверное не слышал.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #448 Ответы: #555

472. Сообщение от Аноним (-), 17-Июн-24, 08:44   +/
> если не проверил try_* - будет варнинг.
> не проверил *alloc  - ничего не будет

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

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

473. Сообщение от Советский инженер (ok), 17-Июн-24, 08:54   +/
> Целый "сайд-саппорт" для самого простого драйвера написан. НЕ САМ ДРАЙВЕР, НЕТ! :)

и даже это в бесконечность раз больше чем у С++ :)

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

474. Сообщение от Аноним (-), 17-Июн-24, 09:46   +/
> В расте хватает говна согласен и не мало, особенно с избыточностью тех
> же unwrap(мелочь а бесит) и так далее. Но там чуть больше
> логики я в этом вижу(могу быть не прав,

Ага, вон там товарисч фрикодер пример подогнал логику! :)


fn foo<'a, T: FromStr, I: IntoIterator<Item = T>, F: Fn(T) -> bool>(
    self: &'a Self,
    first: T,
    callable: F,
    iter: I,
) -> Result<&'a T, T::Err> {
    // ...
}

Ну что, сиплюсплюсеры, обломались?! Вас таки сделали!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #545

475. Сообщение от Аноним (-), 17-Июн-24, 09:50   +/
> Так ему 10 лет в обед, и это не шутк

Так и сабжу в общем то - тоже. Так что инновация то уже - рядом с плесневелым сыром и настоявшимся вином.

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

476. Сообщение от Аноним (483), 17-Июн-24, 09:50   +/
>Даже если int станет

Ваня, слезай с дерева! Ты не прав.

(0..100).for_each(|d| println!("{d}"))

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

477. Сообщение от Аноним (-), 17-Июн-24, 09:59   +/
> Вы, наверное, и продемонстрировать сможете, как это же В РАЗЫ проще на Си?

На си ты все же обломаешься написать как у гражданиина freecoder в хабре:


fn foo<'a, T: FromStr, I: IntoIterator<Item = T>, F: Fn(T) -> bool>(
    self: &'a Self,
    first: T,
    callable: F,
    iter: I,
) -> Result<&'a T, T::Err> {
    // ...
}

Интуитивненько, да? Тут и тяжеловесный плюсер то - поднапряжется уже, не, к ТАКОМУ даже он непривычный. Теперь попробуйте без поллитра понять что вообще эта конструкция за зверь.

Нет, на сях вы ТАК - все же не сможете. Хотя, конечно, креативным использованием препроцессора можно поразвлечься, но там явно напрягаться надо. А тут такое выражовывание - часть уже имевшегося синтаксиса. Так что какой-нибудь нублон легко подгонит вам такой полет мысли. А как вы этот интуитивный код будете декодировать - не его траблы, дескать.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #457 Ответы: #483, #491

478. Сообщение от Аноним (478), 17-Июн-24, 10:11   +/
MS кидает всегда.., ну прям как девиз Таргариенов из игры престолов :)

ВПФ, сильверлайт, а теперь еще блазор - то же, но вид сбоку, через несколько лет забросят, но успеют задолбать адептов платными курсами и конференциями.
И поэтому аноним вовремя соскочил обратно на C++ когда работа появилась.

> У майкрософта и их маркетинга теперь новая игрущка - сабж. Они даже в совет директоров вписались

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #401 Ответы: #484

479. Сообщение от Аноним (483), 17-Июн-24, 10:16   +/
Последний тренд зарубежья - На Раст писать софт удобно, быстро, безопасно. Но переписывать, dirty-патчить, рефакторить - мука. Он плохо подходит под однопоточные приложения из-за тоталитарного борроу-чекера.

/lessons_learned_after_3_years_of_fulltime_rust/
Раст плохо подходит для однопоточных приложений, которые надо часто пере/дописывать, и в которых на RCE всем плевать. (Держу в курсе)

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

480. Сообщение от n00by (ok), 17-Июн-24, 10:33   +/
> Вы, наверное, и продемонстрировать сможете, как это же В РАЗЫ проще на
> Си?

Если без return, то так:

#include <stdio.h>
int main(void)
{
    int a, b;
    printf("%i", (a = 1, b = 2, a + b));
}

А если вспомнить, откуда вырос синтаксис Rust, то так:

let sum =
  let a = 1 in
  let b = 2 in
  a + b
;;

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #457 Ответы: #490

481. Сообщение от n00by (ok), 17-Июн-24, 10:41   +/
>>вот и let на каждый чих
> На какой каждый? Объявляет новую переменную - появляется let.

Вот на этот. Тип при объявлении указан? Значит let лишний, если об этой задуматься.

Например, есть let, но тип int не указывается, а выводится:

let i = 1;;

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #458 Ответы: #492

482. Сообщение от Аноним (-), 17-Июн-24, 10:48   +/
> А правда, когда сишнику нужна структура данных типа словаря, то они подумают-подумают,
> решат, что не сильно то и надо, и сделают обычную таблицу-массив?

Или возьмут готовую либу. И будет им - ну вот это вот.

Более того - можно взять скадем toxcore - и на менее чем страницу кода влезет бот распределенного p2p месенжера. И вы даже на питоне каком сильно не отыграете, ибо секрет - в клевой либе с разумным апи "месенжер в либе".

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

В общем сказать что си низкоуровневый - ну вот зависит от. Каким боком целый распределенный месенжер в несколько строк, или HTTP серв так же - низкий уровень? Да, и корутины в нем тоже кстати есть, чисто по приколу - потому что могут.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145 Ответы: #487, #500

483. Сообщение от Аноним (483), 17-Июн-24, 11:04   +/
Чел, ты чем смотришь? Вот же в новости написано...

Твой код можно переписать в это:
fn foo<T: FromStr, I: IntoIterator<Item = T>>(&self, _first: T, _callable: impl Fn(T) -> bool, _iter: I) -> _MyResult<T>

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

484. Сообщение от Аноним (-), 17-Июн-24, 11:25   +/
> MS кидает всегда.., ну прям как девиз Таргариенов из игры престолов :)

Я очень плотно партнерил с ними. Так что отлично в курсе как они работают. И как их саппорт работает. И что может отколоть их маркетинг. И как сие на бошку "партнеров" ощущается.

> ВПФ, сильверлайт, а теперь еще блазор - то же, но вид сбоку,

Да лол, нетчиков уже разок депрекейтили в пользу html плиток на уровне маркетинга. И такой ножик в спину - еще в восьмерке аж, на минуточку. А тут до жирафа что-то доходить стало, лол.

> через несколько лет забросят, но успеют задолбать адептов платными курсами и конференциями.

ЧСХ это знание тоже вскоре придется списать в утиль.

> И поэтому аноним вовремя соскочил обратно на C++ когда работа появилась.

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

> Но все же сабж и донет несколько разные вещи и разные области применения.

Дотнетчикам бы хотелось так думать, но де факто их ниши там и тут - порубали и что им в результате осталось - хрен его знает. Наверное, pre-existing легаси корпоративные проекты которые майнтайнить в виде "приковали кодера к батарее чтоб не сбежал".

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

Сабж - для много чего. Скажем вон тот сервис для крипты - явно не "системное программирование". Апликушнятина махровая.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #478 Ответы: #486

485. Сообщение от Аноним (-), 17-Июн-24, 11:58   +/
> Я тебя слегка удивлю но Яндекс сами все разметили у полно своих
> данных и даже сервис Толока где куча асессоров. И сам все обучили.

Да... этот спич даже на чатгоптя не тянет. Яндекс, залогинься.

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

486. Сообщение от Аноним (-), 17-Июн-24, 12:57   +/
> И культура экосистемы мне как-то больше нравится. Вместо потребителей загибающих пальцы относительно объема захаваного - созидатели, которые сообща работают над тем что им нравится. Намного круче имхо.

Классный у тебя Линукс, а где ты такой нашел?

Я вижу типичную ситуацию "лебедь, рак и щука", 100500 дистров которые отличаются нескучными обоями.
Сообщество потербялдей, которые сами нифига не делают, зато ноют в двух случаях:
1. когда корпы что-то добавляют, например системмд
2. когда корпы что-то удаляют, например ХОрг
Причем вклад майкрософта думаю больше чем половины васянов, не зря он все-таки платиновый спонсор

Ну еще есть всякие междуусобчики кто более швободистый каноебут или либрбут.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #484 Ответы: #509

487. Сообщение от Аноним (-), 17-Июн-24, 13:04   +/
> Или вон там lwan можно взять. И вот уже можно дать мастеркласc игогошнику на тему микросервисов, когда вот вам кастомный вебсервак, аж полстранички сей. С той разницей что это на си, а заодно - можно легко в топичный топ-чарт бенчмарков вломиться, есои хочется. И бинарь в сборе - не 10

мегов, а 120 кил на все.
Хм, а потом вломиться в топ 10 CVE, тк срезали углы как могли?
Не представляю где может иметь значение будет бинарь 10 метров или 1, ктоме какой-то эмбедедовки.

> В общем сказать что си низкоуровневый - ну вот зависит от. Каким боком целый распределенный месенжер в несколько строк, или HTTP серв так же - низкий уровень? Да, и корутины в нем тоже кстати есть, чисто по приколу - потому что могут.

Чисто по приколу можно и на брейнфаке писать, но почему-то мало кто этим занимается))


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #482 Ответы: #507

488. Сообщение от Аноним (-), 17-Июн-24, 13:35   +/
> Как для "менструирующих людей" есть правильное слово, так и для "неизменяемой переменной".

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

Константа небось? Но неизменяемая переменная не константа. Неизменяемость растовых переменных локальна, их значение меняется сквозь жизнь программы, часто их время жизни ограничено и меньше времени жизни всей программы. Это _не_ константы. Но C/C++ программистам конечно сложно понять, потому что они таким тонкостям необучены.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #295 Ответы: #494, #551

489. Сообщение от Серб (ok), 17-Июн-24, 14:03   +/
> а кому и это сложно, тот вообще прототипипует на питоне.

И потом 20 лет пытается переписать на Си.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #345 Ответы: #497

490. Сообщение от freecoder (ok), 17-Июн-24, 14:24   –1 +/
>> Вы, наверное, и продемонстрировать сможете, как это же В РАЗЫ проще на Си?
> Если без return, то так:
> #include <stdio.h>
> int main(void)
> {
>     int a, b;
>     printf("%i", (a = 1, b = 2, a + b));
> }

Код не эквивалентный, так как здесь a и b объявлены во внешнем пространстве имён.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #480 Ответы: #495

491. Сообщение от freecoder (ok), 17-Июн-24, 14:31   +/
> Интуитивненько, да? Тут и тяжеловесный плюсер то - поднапряжется уже, не, к
> ТАКОМУ даже он непривычный. Теперь попробуйте без поллитра понять что вообще
> эта конструкция за зверь.

Вы саму статью-то читали, особенно в том месте, откуда вы выдрали этот код? Похоже, что нет. Потому цитирую:

Хорошо, допустим, каждый из элементов синтаксиса относительно неплох, но как они сочетаются все вместе? Разве их комбинация не превращает Rust-код в нечитаемое месиво из спецсимволов? Например:


fn foo<'a, T: FromStr, I: IntoIterator<Item = T>, F: Fn(T) -> bool>(
    self: &'a Self,
    first: T,
    callable: F,
    iter: I,
) -> Result<&'a T, T::Err> {
    // ...
}

На самом деле это действительно большая проблема. Сигнатуры обобщенных функций с заданными ограничениями, видимо, самые перегруженные синтаксисом элементы языка Rust. И чтобы справиться с ними, Rust предлагает различные синтаксические улучшения и особый сахар, который помогает лучше упорядочить ограничения и скрыть из виду те аспекты, которые и так достаточно очевидны:


fn foo<T, I>(&self, first: T, callable: impl Fn(T) -> bool, iter: I) -> MyResult<T>
where
    T: FromStr,
    I: IntoIterator<Item = T>,
{
    // ...
}

Сигнатура метода foo уже не выглядит настолько страшно, как в исходном варианте. Она не идеальна, но сравнивая с тем, что было, все же заметен явный прогресс в улучшении читаемости. Видно, что алиасы, автовывод времен жизни, сахар для указания self, impl Trait в позиции аргумента, блок where и прочее, введены в язык не случайно и они сильно упрощают чтение действительно сложных мест, с непростой семантикой.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #477 Ответы: #515

492. Сообщение от freecoder (ok), 17-Июн-24, 14:44   +/
Здесь уже давно отвечено:

https://stackoverflow.com/questions/32180684/why-does-rust-u...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #481 Ответы: #496

493. Сообщение от freecoder (ok), 17-Июн-24, 15:09   +/
Вы ломитесь в открытую дверь: константы объявлять в Rust можно, но упомянутый пример не об этом. Он об использовании выражений как констант.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #438 Ответы: #512

494. Сообщение от n00by (ok), 17-Июн-24, 15:50   +3 +/
> какое слово ты знаешь для неизменяемой переменной
> мне очень интересно, что это?

Пере-менная означает "меняющееся". "Неизменяемое меняющееся" называется одним словом - "чушь".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #488 Ответы: #499

495. Сообщение от n00by (ok), 17-Июн-24, 15:54   +/
>>> Вы, наверное, и продемонстрировать сможете, как это же В РАЗЫ проще на Си?
>> Если без return, то так:
>> #include <stdio.h>
>> int main(void)
>> {
>>     int a, b;
>>     printf("%i", (a = 1, b = 2, a + b));
>> }
> Код не эквивалентный, так как здесь a и b объявлены во внешнем
> пространстве имён.

Удивительно, но в Си не пространств имён.

Если имелась ввиду "область видимости", то она ограничена {  } функции main - за её пределами никто не видит, в отличие от такого:

int a, b;

int main(void)
{
}    

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #490 Ответы: #504

496. Сообщение от n00by (ok), 17-Июн-24, 15:56   +/
> Здесь уже давно отвечено:
> https://stackoverflow.com/questions/32180684/why-does-rust-u...

Там отвечено на вопрос "зачем", а не "зачем лишнее".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #492 Ответы: #505

497. Сообщение от Советский инженер (ok), 17-Июн-24, 17:03   +/
главное что у человека эти  20 лет есть хлеб с маслом, и возможно и на икорку хватает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #489

498. Сообщение от Аноним (500), 17-Июн-24, 17:04   +/
>>>Не следовательно.
>> Если человек регулярно получает деньги за свою работу, он является профессионалом.
> Более того, по такой логике Кнут, Таненбаум или Петцольд должны быть самыми богатыми  ITшниками в мире,

По какой-такой "логике"? Особой, женской^W опеннетно-квантовой?

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

499. Сообщение от Аноним (500), 17-Июн-24, 17:16   +/
> "Неизменяемое меняющееся" называется одним словом

Да и "постоянная переменная" (как и constant variable), по моему, ничем не лучше.
Менять (присваивать) значение мы можем: один раз - (обычно) с неопределенного на что-то другое (возможно, тоже неопределенное, кхе).
Но вот как назвать кратко и точно, без "выноса мозга"?


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #494 Ответы: #520

500. Сообщение от Аноним (500), 17-Июн-24, 17:36   +/
> а заодно - можно легко в топичный топ-чарт бенчмарков вломиться, есои хочется.

Но лишь топ-чарт ничего не значащих синтетических хелловротов, ага.

> В общем сказать что си низкоуровневый - ну вот зависит от. Каким
> боком целый распределенный месенжер в несколько строк, или HTTP серв так же - низкий уровень?

Таким [боком], что что-то сложнее хелловрота написать и поддерживать будет сильно геморно. И ведь что-то засилия http-сервисов на сишко-лване не наблюдается - хотя казалось бы, что можно сэкономить кучу денег на куче железа ...

> Да, и корутины в нем тоже кстати есть, чисто по приколу - потому что могут.

А еще можно эмулировать ООП, функциональщину и проч. - но опять же, как обычно, плохенько-кривенько-тормознутенько (гтк передает приветы) и лишь для демонстрации "смотри как я могу".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #482 Ответы: #526

502. Сообщение от _ (??), 17-Июн-24, 17:54   +/
>А кроме самолёта Як-40 других в мире больше нет?

Таких - нет. Потому как нет больше стран которым пофиг на цену керосина.
Туда, куда летал Як-40 теперь обычно только турбопропы ходят.

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

503. Сообщение от _ (??), 17-Июн-24, 17:56   +1 +/
>На этом безопасном языке была написана программа, которая привела к крушению французского космического корабля Ариан 5.

Вот именно! А уч чего с ржавчиком будет ... 8-о

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

504. Сообщение от freecoder (ok), 17-Июн-24, 18:14   +/
Да, область видимости. В вашем Си-коде и в моём Rust-примере имена переменных по разному видны (объявленное внутри блока в Rust не будет видимо вне его). Так что это разные примеры.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #495 Ответы: #521

505. Сообщение от freecoder (ok), 17-Июн-24, 18:29   +/
> Там отвечено на вопрос "зачем", а не "зачем лишнее".

Если использовать let в месте типа, то сложится впечатление, что его можно использовать как заменитель типа, но это не так. Например, в сигнатурах функций - нельзя. В указании типа в обобщённых типах - нельзя. И т.д. С текущим синтаксисом больше консистентности: let - это именно отдельная инструкция сопоставления с образцом, в которой могут быть введены новые имена (переменные) в составе образца. Аннотация типа (": Type") при этом может не указываться - тогда она просто пропускается без необходимости её на что-то заменять.

В этом принципиальное отличие let от плюсового auto, который действительно является заполнителем типа.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #496 Ответы: #522

507. Сообщение от Аноним (-), 17-Июн-24, 23:01   +/
> Хм, а потом вломиться в топ 10 CVE, тк срезали углы как могли?

Да там CVE не лезут оптом, авторы одупляемые, умеют fuzzing и азы секурити. Тут надо просто смотреть на культуру кодеров и их практики. Если какой-то дид просто набивает себе цену а код - ужастик с кучей варнингов, это одно. А если это нормальный современный кодер с best practices - у него и сишку поюзать можно. Если они понимали antibug, security и все такое. Это видно.

Ну и в конце концов, изначально мы делаем софт чтобы он работал и работал хорошо. По прямому назначению. Без этого все остальное, извините, нахрен надо. А в HTTP сервантах основная масса вулнов лезет вовсе не там где вы вещаете. А какие-нибудь path traversal или request spoof и проч. При том если условному админу подшили левый реквест - еще большой вопрос что хуже. Огреть сплойтом hardened код - обломается на раз. А вот левый реквест принятый за админский - сервак сам же и выполнит, легитимным code path. И такой фигни - немеряно у всех.

> Не представляю где может иметь значение будет бинарь 10 метров или 1,
> ктоме какой-то эмбедедовки.

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

> Чисто по приколу можно и на брейнфаке писать, но почему-то мало кто этим занимается))

Ну вы можете писать на чем там вам нравится. А пример от freecoder'а выше, так то, может составить брейнфаку довольно достойную конкуренцию. А то что в новой версии это можно писать менее погано - не гарантирует что в существующем проекте таким кодом не огорошат. Си хорош хотя-бы тем что ТАКОЕ выдать кодер все же забодается и устанет, и забьет на такие потуги. Так что настолько феерично гунявый немайнтенабельный код на нем - просто неудобно.

И за дидом я могу и рефакторнуть ценное алго, подумав за них насчет краевых условий и проверив fuzzing'ом что я прав в моих идеях. Хоть это и позор для них конечно. А вон то - write-only код. Майнтайнить это не будет никто и никак.

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

508. Сообщение от Аноним (-), 17-Июн-24, 23:03   +/
> Один сделал стандарт де факто, теперь система при разлогине пользователя браузер прибивает.

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

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

509. Сообщение от Аноним (-), 17-Июн-24, 23:24   +/
> Классный у тебя Линукс, а где ты такой нашел?

В смысле где, он такой один - kernel.org. Это и есть линукс. Ядро. Те кто его делают на мой вкус самые крутые спецы с которыми я когда либо работал.

> Я вижу типичную ситуацию "лебедь, рак и щука", 100500 дистров которые отличаются
> нескучными обоями.

А я беру дебиан. Это моя стартовая площадка. Модули, из которых я наберу систему которая была нужна в задаче, начав с ультра-минимального фундамента. При том 99% пакетов будут майнтайнить - другие. Так что я могу фокусироваться на специфике задачи и утрясании тех хотелок с этими возможностями в пределах скиллов.

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

Теперь вы понимаете почему я не буду юзать винду даже если мне за это приплатят? У нее швах со всем. С модульностью. Поддержкой платформ. Вертикальным масштабированием. Кастомизацией. Автоматизацией. Предсказуемостью. Подконтрольностью. Всем что я люблю и ценю, в общем.

> Сообщество потербялдей, которые сами нифига не делают, зато ноют в двух случаях:

Вы не по адресу. Я таки стараюсь взаимодействовать с апстримами если поводы есть. И за годы я и патчей много куда раскидал, и помог загасить немало багов, и вообще. А как вы думаете я узнал что с линуксоидами совместно работать - кайфово? :P

> 1. когда корпы что-то добавляют, например системмд

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

> 2. когда корпы что-то удаляют, например ХОрг

Опять же. В моем лексиконе это "проблемный компонент" и я не буду о нем сильно скучать.

> Причем вклад майкрософта думаю больше чем половины васянов, не зря он все-таки
> платиновый спонсор

Майкрософт вкладывается в свои задачи, как вы понимаете. Остальным это похрен так то. Какой мне профит с того что они накидали патчей своему гиперви? Не, было и пару рефакторов с @microsoft.com - только что-то эти кодеры из майкрософта ушли. Ну вот не выживает норм опенсорсник в мс более года-двух как правило. Видимо остатки их проприетарской культуры все ж икаются.

> Ну еще есть всякие междуусобчики кто более швободистый каноебут или либрбут.

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

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

510. Сообщение от Аноним (-), 17-Июн-24, 23:32   +/
>> И какой логический смысл блока { None }; в типа-массиве?
> Данный конкретный пример - искусственный, для иллюстрации, как в принципе можно делать.

А, понятно, сбили автомобилем вертолет - но системы ПВО все же не продаете. Чисто ради эффектов. Только вот в случае яп большой вопрос фича ли это. Если можно хреначить такой бред - ну его и будут хреначить. И с майнтенансом такого кода, очевидно, начнутся проблемы.

> В реальном коде конечно там будет не None, а выражение, результат
> вычисления которого может быть использован в константном контексте.

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

Может, им стоило бы волевым усилием сделать какой-нибудь хруст-2.0 где все будет менее ректально?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #432 Ответы: #516

511. Сообщение от Аноним (-), 17-Июн-24, 23:53   +/
> Так что эту проблему не отменит никакой ИИ.

ИИ для генерации доказательств + система формальной верификации доказательств могут творить чудеса. Вот, просвещайся: https://www.scientificamerican.com/article/ai-will-become-ma.../

И, я отмечу, это только начало. Все эти прорывы вида ChatGPT только ещё учатся увязывать с системами формальной логики. Да и, прям скажем, сами по себе эти чатботы ещё далеки от завершённости: есть основания полагать, что там можно снизить количество нейронов на порядок не потеряв в качестве. Просто до этого ещё руки не дошли, пока все наперегонки тренируют всё большие и большие нейросетки, чтобы посмотреть что будет.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #340 Ответы: #523

512. Сообщение от _kp (ok), 18-Июн-24, 00:09   +1 +/
Я больше про неопределенный артикль - let.
Если есть "const", то смысловая польза от "let", как от сиволов валюты в perl/php. Просто засиоают ис0одник, в угоду примитивизму компиляторов/интерпретаторов.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #493 Ответы: #518

513. Сообщение от Аноним (-), 18-Июн-24, 01:26   +/
> А что-то есть вечное в этом мире?

Базовые законы физики, вероятно. Они будут существовать столько сколько существует этот мир. Если они изменились - ок, это вероятно уже другой мир, с другими свойствами.

Алгоритмы тоже вероятно можно причислить в эту категорию. Через N лет DCT так и останется DCT, а рид-соломон - рид-соломоном. То что не все из них может быть целесообразно применять через N лет это уже второй вопрос.

> И что там вскрытие ещё должно показать, если уже есть отчёты счастливых разработчиков?

...но что-то мне подсказывает что сишка пережиет и вас и меня. Он по своему прекрасен в своей простоте.

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

514. Сообщение от Аноним (-), 18-Июн-24, 01:40   +/
> И сколько там раста у микрософта?
> Особенно в его кормящих продуктах типа венды и оффиса.

Майки помнится недавно нанимали - програмеров на хрусте. Чтобы переписывать. Бэкэнд офиса365. На хруст. С дотнета. Это так, отделные приветы дотнетчикам, дополнением к ответу на вопрос про офис.

А как вы думаете откуда народ догадался что план - кинуть дотнетчиков в пользу хруста? Шило в мешке не утаишь, по ряду хедхантерской активности все понятно и без анонсов :)

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

515. Сообщение от Аноним (-), 18-Июн-24, 01:56   +/
> На самом деле это действительно большая проблема. Сигнатуры обобщенных функций с заданными
> ограничениями, видимо, самые перегруженные синтаксисом элементы языка Rust. И чтобы справиться
> с ними, Rust предлагает различные синтаксические улучшения и особый сахар,

...но не дает никаких гарантий что конкретный кодер в конкретном проекте будет юзать именно то, именно так, поэтому всегда будет риск отхватить на вход - вот такой чудо-код от очередного write-only поймавшего волну. Да, вон тот тип в 2 ночи, на пике возможностей - еще и не так завернет. Теперь попробуйте это майнтайнить.

> Сигнатура метода foo уже не выглядит настолько страшно, как в исходном варианте.

Ну, по сравнению с первым вариантом это улучшение. Хотя как по мне - это на уровне забористых плюсов примерно. Т.е. в целом я вообще видеть ТАКОЙ код - не хочу.

...однако никто и ничто не гарантирует что в энном проекте не будет вон то. И тогда можно будет охренеть эти инопланетные каракули декодировать.

> Она не идеальна, но сравнивая с тем, что было, все же
> заметен явный прогресс в улучшении читаемости.

На мой вкус - им бы норм архитекта нанять и сделать синтаксис 2.0. Зарубив на корню вон те страшилища. Это конечно будет кидалово, но пока на этом не сильно много важного софта и это еше терпимо будет. Реально нужное поправят. А вечно майнтайнить те ужастики - ну вот нет. Они умрут от своего веса и 0 майнтайнеров на такой код.

> where и прочее, введены в язык не случайно и они сильно
> упрощают чтение действительно сложных мест, с непростой семантикой.

Хороший ЯП должен делать сложные вещи - неудобными. Потому что цель - вовсе не дать програмеру повыражовыаться с заподвыподвертом. Код видите ли должны другие майнтайнить потом. Иначе это сдохнет как только програмеру надоест его проект. И уж вроде корпы должны бы такой аспект понимать, но не, даже с 3 директорами от корп фэйл. Парадокс прямо.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #491 Ответы: #517

516. Сообщение от freecoder (ok), 18-Июн-24, 09:29   +/
> кажись составили достойную конкуренцию в борьбе за первое место на тему
> неочевидных конструкций и кривого синтаксиса.

Конструкция более чем очевидна и логична в рамках синтаксиса и семантики Rust. Просто вы не знаете языка, поэтому вам не очевидно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #510 Ответы: #527

517. Сообщение от freecoder (ok), 18-Июн-24, 09:35   +/
> Теперь попробуйте это майнтайнить.

Переписываешь как надо - и спокойно дальше майнтайнишь. Или в чём должен майнтейниг заключаться?

> На мой вкус - им бы норм архитекта нанять и сделать синтаксис
> 2.0. Зарубив на корню вон те страшилища. Это конечно будет кидалово,
> но пока на этом не сильно много важного софта и это
> еше терпимо будет. Реально нужное поправят. А вечно майнтайнить те ужастики
> - ну вот нет. Они умрут от своего веса и 0
> майнтайнеров на такой код.

Напишите пример, как именно вы хотите, чтобы выглядел такой код, с такой же семантикой. У вас же к синтаксису претензии, правильно? Предложите лучший синтаксис для лучшего выражения того же.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #515 Ответы: #528

518. Сообщение от freecoder (ok), 18-Июн-24, 09:38   +/
> Я больше про неопределенный артикль - let.
> Если есть "const", то смысловая польза от "let", как от сиволов валюты
> в perl/php. Просто засиоают ис0одник, в угоду примитивизму компиляторов/интерпретаторов.


const FOO: [i32; 5] = [1, 2, 3, 4, 5];

Вот вам определение константы. Где вы тут let видите?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #512

519. Сообщение от Пряник (?), 18-Июн-24, 12:07   +/
Через правила поведения бизнес пытается управлять OpenSource разработчиками. Они же по сути волонтёры, халявные работники.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #316

520. Сообщение от n00by (ok), 18-Июн-24, 12:12   +/
>> "Неизменяемое меняющееся" называется одним словом
> Да и "постоянная переменная" (как и constant variable), по моему, ничем не
> лучше.
> Менять (присваивать) значение мы можем: один раз - (обычно) с неопределенного на
> что-то другое (возможно, тоже неопределенное, кхе).
> Но вот как назвать кратко и точно, без "выноса мозга"?

В стандарте Си называют объектами. У объекта есть тип, в определении он предшествует имени объекта. Константные объекты для краткости называют константами, а изменяемые - переменными.

В функциональных языках похожая на определение переменной запись на самом деле является функцией:

let i = 0;; (* чистая ф., возвращает значение 0 типа int *)

Rust в конструкции как эта (из #6.430)

let sum = {
    let a = 1;
    let b = 2;
    a + b
};

отличается от функционального OCaml:

let sum =
  let a = 1 in
  let b = 2 in
  a + b
;; (* двойное ;; не всегда требуется *)

лишь слабой попыткой выглядеть как Си, за счёт спецсивмолов. ИМХО авторов испугал неудачный опыт Hackell и они принялись скрывать функциональную основу. Вместо того, что бы парить мозг "замена Си", следовало бы делать упор на "быстрый функциональный язык с возможностью писать интересные штуки на нижнем уровне абстракции".

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

521. Сообщение от n00by (ok), 18-Июн-24, 12:28   +/
> Да, область видимости. В вашем Си-коде и в моём Rust-примере имена переменных
> по разному видны (объявленное внутри блока в Rust не будет видимо
> вне его). Так что это разные примеры.

Разные разве что языки. Объявленные внутри main a и b не видны за её пределами. Если не понятен был намёк "если без retuen", то вот императивная запись:

int sum() {
  int a = 1;
  int b = 2;
  return a + b;
}

В моём примере на OCaml, который очень похож на Rust

let sum =
  let a = 1 in
  let b = 2 in
  a + b
;;

и потому его пришлось выкинуть в ответе для удобства парирования, это вообще не переменные, а чистые функции. Если Rust возвращает значение без императивного return, значит это и там - функция (неудачное её имя -- отдельная тема, но вопрос "что она суммирует" проще замять для ясности).  

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #504 Ответы: #539

522. Сообщение от n00by (ok), 18-Июн-24, 12:41   +/
>[оверквотинг удален]
> Если использовать let в месте типа, то сложится впечатление, что его можно
> использовать как заменитель типа, но это не так. Например, в сигнатурах
> функций - нельзя. В указании типа в обобщённых типах - нельзя.
> И т.д. С текущим синтаксисом больше консистентности: let - это именно
> отдельная инструкция сопоставления с образцом, в которой могут быть введены новые
> имена (переменные) в составе образца. Аннотация типа (": Type") при этом
> может не указываться - тогда она просто пропускается без необходимости её
> на что-то заменять.
> В этом принципиальное отличие let от плюсового auto, который действительно является заполнителем
> типа.

У меня сложилось впечатление, что тут:

let sum = {
    let a = 1;
    let b = 2;
    a + b
};

нет образца, с которым что-то зачем-то сопоставляется. Это очень похоже на чистую функцию (тело которое не имеет особого смысла, оптимизируется до 3).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #505 Ответы: #529

523. Сообщение от Аноним (523), 18-Июн-24, 17:31   +/
Почитал статью, там только мечтают.

"I think in the future, instead of typing up our proofs, we would explain them to some GPT. And the GPT will try to formalize it in Lean as you go along.
...
In the future, I could imagine a big theorem being proven by a combination of 20 people and a bunch of AIs each proving little things. And over time, they will get connected, and you can create some wonderful thing. That will be great. It’ll be many years before that’s even possible. The technology is not there yet, partly because formalization is so painful right now."

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


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

524. Сообщение от Аноним (523), 18-Июн-24, 17:45   +/
вот что пишет человек, который на программировании игр на Rust'е собаку съел:

https://loglog.games/blog/leaving-rust-gamedev/

он пишет что Rust не подходит для прототипирования и когда требования быстро меняются.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #479 Ответы: #525

525. Сообщение от Аноним (-), 18-Июн-24, 18:24   +/
> он пишет что Rust не подходит для прототипирования и когда требования быстро меняются

Логично, для прототипа проще использовать питон.
Дла игрушек лучше с++ тк будет быстро, а если оно где-то упадет или крешнится - то всем почти пофиг. Раст там не нужен.

Учитывая, что происходит в геймдеве, с кранчами по 60-80 часов в неделю...
Хорошего кода там все равно не будет.
Будут костыли построенные поверх велосипедов.

А потом люди удивляются "почему игра становится играбельной через минимум пол года после релиза"


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

526. Сообщение от Аноним (-), 19-Июн-24, 05:34   +/
>> а заодно - можно легко в топичный топ-чарт бенчмарков вломиться, есои хочется.
> Но лишь топ-чарт ничего не значащих синтетических хелловротов, ага.

С одной стороны - я себе напилил с пяток хеловорлдвовых ботов. Они спамят меня интересными событиями и проч. И это - за считаные минуты. Без регистраций и смс. И даже локальный сегмент при отвале интернета пашет. Чем оно и круто. Теперь попробуйте это с любым иным месенжеорм на хоть каком яп. Там извините трешак - на уровне невменяемых апей, так что за счтанные минуты не получится ни на чем. Тем более без регистраций и смс. А, да, на хрусте вариант либы тоже пытались. Но оказалось что языком трындеть не мешки ворочать, так что либа как бы есть но как бы недопиленая по фичам. Хрустики слили сишникам при равноценном зарубе :)

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

А так, если так рассуждать - тогду у тех вообще 90% кода будет ненужный brainfart, да еще с периодом полураспада год-два. И уж этим ли господам пенять на эту тему?

> Таким [боком], что что-то сложнее хелловрота написать и поддерживать будет сильно геморно.

ИМХО сильно зависит от ситуации. Ну да, CRM так делать наверное не надо. Однако сейчас в тренде микросервисы, которым как раз сложными быть и не надо.

> И ведь что-то засилия http-сервисов на сишко-лване не наблюдается - хотя
> казалось бы, что можно сэкономить кучу денег на куче железа ...

Засилье - нет. Но некую свою нишу нашло. Каки всякие более странные вещи типа libmicrohttpd. Этого юзают когда хотят в существующую программу немного веба добавить. Ну там морду управления грубо говоря.

> А еще можно эмулировать ООП, функциональщину и проч. - но опять же,
> как обычно, плохенько-кривенько-тормознутенько

Ну вот в lwan корутины так то довольно прикольные. И уж что-что а назвать его тормозным - ну вот нет. Оно в топах чартов, застолбив ряд "профильных" бенчмарков.

> (гтк передает приветы) и лишь для демонстрации "смотри как я могу".

Этак еще окажется что вы гадили на бошки гномерам - юзая их проги и тулкит, не? Потом нубохрустики и прочие игогошики удивляются чего их считают выскoчкaми и пoзepaми :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #500 Ответы: #531

527. Сообщение от Аноним (-), 19-Июн-24, 05:41   +/
> Конструкция более чем очевидна и логична в рамках синтаксиса и семантики Rust.
> Просто вы не знаете языка, поэтому вам не очевидно.

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

А реалдьно - я не понимаю почему они не наняли нормального архитекта и вместо этого решили что пиар и вбивание гнилых костылей - тема.

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

528. Сообщение от Аноним (-), 19-Июн-24, 05:49   +/
> Переписываешь как надо - и спокойно дальше майнтайнишь. Или в чём должен
> майнтейниг заключаться?

Лол. Для этого
1) Надо въехать в проект. При том основательно. Иначе будут наломаны дрова. Такие конструкции с такой записью это делают мягко говоря не быстрым и не простым занятием. В своей проге разбираться просто. Теперь возьмите большой чужой проект и попробуйте там что-то поменять, не словам ничего. Посмотрите сколько времени уйдет. На сях я так могу на чем-то с линукскернел размером и быстро. На хрусте - боюсь даже представить сколько времени сожрет въезд в все абстракции с такой записью и общей читаемостью кода. И то что такие навороты можно хреначить на 1 дыхании - вообще не фича.

2) Убить дофига времени на переписывание и проверки что нигде факап не вышел. Рефакторы весьма багоопасная тема. И уж точно существенный рефактор кода - это не майнтенанс. Странно что вы это не знаете.

> Напишите пример, как именно вы хотите, чтобы выглядел такой код, с такой
> же семантикой. У вас же к синтаксису претензии, правильно? Предложите лучший
> синтаксис для лучшего выражения того же.

Го блин за образец возьмите :). Можно сманив прям тех же тушек. А половину абстракций вероятно надо будет просто выкинуть к хренам. И черт с ними с концепциями и прочей функциональщиной. Не надо это все в реальных проектах, только майнтенанс делает непотребным.

Хотя конечно можно в это как следует вляпаться и посмотреть как до корпов это допрет - и тогда они кинут вас куда жестке, объявив deprecated когда у вас полжизни на это завязана сдуру уже. Вон там нетчики прикольно кипишуют, реакт :)) осваиваьт собираются. А зачем тогда тот мусор учили? А, чтобы ща списать дофига знаний в /dev/null? И обратно на уровнеь джуна? Отличные перспективы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #517 Ответы: #530

529. Сообщение от freecoder (ok), 19-Июн-24, 08:32   +/
В данном примере значение выражения (выражением является блок, возвращающий своё последнее вычисленное значение) сопоставляется с образцом, который состоит только из одного нового имени. Это частный случай образца.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #522 Ответы: #534

530. Сообщение от freecoder (ok), 19-Июн-24, 08:42   +/
> Такие конструкции с такой записью это делают мягко говоря не быстрым
> и не простым занятием.

Те улучшения плохо написанного кода, о которых шла речь выше - чисто синтаксические, они автоматически проверяются компилятором. Невозможно ничего сломать, просто перенося impl Trait в позицию аргумента или вынося ограничения в блок where, или вводя свой новый алиас для типа. В этом прелесть строгой типизации в Rust: подобные вещи проверяются компилятором автоматически, поэтому рефакторить код на расте очень легко.

> Го блин за образец возьмите :). Можно сманив прям тех же тушек.
> А половину абстракций вероятно надо будет просто выкинуть к хренам.

Вот именно. Что с той же семантикой такое на Go вообще не получится записать. А абстракции выкинуть и в Rust можно, если они вам не нужны.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #528 Ответы: #570

531. Сообщение от Аноним (531), 19-Июн-24, 12:31   +/
>> Но лишь топ-чарт ничего не значащих синтетических хелловротов, ага.
> С одной стороны - я себе напилил с пяток хеловорлдвовых ботов. Они спамят меня интересными событиями и проч.

Еще можно запилить хелловрот на асме и с тем же успехом написать "сказать что си^W Асм низкоуровневый - ну вот зависит от."


>> Таким [боком], что что-то сложнее хелловрота написать и поддерживать будет сильно геморно.
> ИМХО сильно зависит от ситуации. Ну да, CRM так делать наверное не
> надо. Однако сейчас в тренде микросервисы, которым как раз сложными быть
> и не надо.

Где-где эти самые массовые микросервисы, говорите?

>> А еще можно эмулировать ООП, функциональщину и проч. - но опять же, как обычно, плохенько-кривенько-тормознутенько
> Ну вот в lwan корутины так то довольно прикольные. И уж что-что а назвать его тормозным - ну вот нет. Оно в топах чартов, застолбив ряд "профильных" бенчмарков.

Но кроме демок и нишевого применения ничего не видать, а так-то да "все хорошо, прекрасная маркиза!". И ГТК4 ну вот совсем почти не тормозит, ага.


>> (гтк передает приветы) и лишь для демонстрации "смотри как я могу".
> Этак еще окажется что вы гадили на бошки гномерам - юзая их проги и тулкит, не? Потом нубохрустики и прочие игогошики удивляются чего их считают выскoчкaми и пoзepaми :)

Экий спрыг с "в сях можно и то, и это, во!" на "сам дурак!".
Этак еще окажется, что все кто мог, переползли с гномовского тулкита на кути и проч, оставив гномеров с их 3½ аппликухами фанатам. Потом 294ые удивляются, почему их считают балаб^W позерами.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #526 Ответы: #533

533. Сообщение от Аноним (-), 20-Июн-24, 06:23   +/
> Еще можно запилить хелловрот на асме и с тем же успехом написать
> "сказать что си^W Асм низкоуровневый - ну вот зависит от."

У асма основная проблема - в том что он вообще совсем никак не структурированый. Ни по сегментам кода, ни по абстракциям данных. И если что - я на асме еще и прогал, так что его порблемы знаю из первых рук. А вы?

Хотя прочитать лекцию тому кто асм практиковал, от того кто его на картинке и то не факт что видел - с опеннетных экспертов станется.

> Где-где эти самые массовые микросервисы, говорите?

Насчет массовых не знаю, но так можно было. А так - д@рьма больше чем золота - но это не доказывает что д@рьмо лучше. У большей части этого барахла - нужно как можно дешевле и еще вчера, и получается - понятно что.

> Но кроме демок и нишевого применения ничего не видать, а так-то да
> "все хорошо, прекрасная маркиза!". И ГТК4 ну вот совсем почти не тормозит, ага.

Все познается в сравнении. Если сравнивать его с HTML, электронами всякими и проч... он даже окажется не такой уж и плохой, пожалуй, в том числе и по этому аспекту :)

> Экий спрыг с "в сях можно и то, и это, во!" на "сам дурак!".

Не спрыг а выражение мнения о тех кто ср@тся на бошку тех на чьих плечах стоит. Вот конкретно хрустики и прочие игогошики - вообще не сделали ни 1 графического тулкита достойного упоминания, так что о чем мы тут вообще? Гнум соревнуется - с секундной стрелкой. С кутями на плюсах. Но точно не с хрустиками и не игогошиками. Эти не смогли - никак.

> Этак еще окажется, что все кто мог, переползли с гномовского тулкита на
> кути и проч, оставив гномеров с их 3½ аппликухами фанатам. Потом
> 294ые удивляются, почему их считают балаб^W позерами.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #531 Ответы: #535, #536

534. Сообщение от n00by (ok), 20-Июн-24, 09:41   +/
> В данном примере значение выражения (выражением является блок, возвращающий своё последнее
> вычисленное значение) сопоставляется с образцом, который состоит только из одного нового
> имени. Это частный случай образца.

let sum = {
    let a = 1;
    let b = 2;
    a + b
}

То есть "образец" здесь "sum"? С чем в данном примере он с сопоставляется?

Если имеется ввиду подстановка вместо sum "блока", когда sum встречается где-то в другом месте, так называйте вещи своими именами. Знакомые с функциональными языками поймут, программисты на Си воспримут как "похоже на макрос". Пока получаются пёрлы из разряда "неизменяемая переменная" и "функциональный язык - это когда много функционала".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #529 Ответы: #537, #538

535. Сообщение от Аноним (531), 20-Июн-24, 11:50   +/
> У асма основная проблема - в том что он вообще совсем никак не структурированый.
> Ни по сегментам кода, ни по абстракциям данных.

Вообще-то, у основных диалектов - макросы и проч были.
structы, как в сишке, с доступом к полям не через ручной расчет смещения адреса (как впрочем и к переменным на стеке), "функции-процедуры" и проч. даже упоминать не будем - кое-кто вообще "эмуляцию" OOP умудрялся делать.
Основная проблема у асма таки привязка к платформе, хоть ОС, хоть железа, там даже миграция с 32-бит на 64 - гемор.

> И если что - я на асме еще и прогал, так что  его порблемы знаю из первых рук. А вы?

В свое время и гуевые приложения на тройку-другую тыщ строк кода на нем писал и парочку под "барметал" и вон там даже HTTP (правда, еще 1.0) сервис был.
Точно хотите померятся "длиной"?

> Хотя прочитать лекцию тому кто асм практиковал, от того кто его на картинке и то не факт что видел - с опеннетных экспертов станется.

Эк самокритично-то, но почему о себе - в третьем лице?


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #533 Ответы: #569

536. Сообщение от Аноним (531), 20-Июн-24, 14:45    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #533

537. Сообщение от freecoder (ok), 21-Июн-24, 09:30   +/
Это не похоже на макрос. Выражение вычисляется в данном месте и имя sum обозначает вычисленное значение. Вместо одного имени там потенциально мог быть более сложный паттерн. Сопоставление значению выражения нового имени - это частный случай сопоставления с образцом вообще.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #534 Ответы: #543

538. Сообщение от freecoder (ok), 21-Июн-24, 09:35   +/
Вот пример с более сложным выражением и паттерном, в котором, однако, точно также вводится новое имя sum:

struct Ops {
    sum: i32,
    mul: i32,
}

let (_, _, Ops { sum, .. }) = {
    let a = 1;
    let b = 2;
    (a, b, Ops { sum: a + b, mul: a * b })
};

https://play.rust-lang.org/?version=stable&mode=debug&editio...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #534 Ответы: #542

539. Сообщение от freecoder (ok), 21-Июн-24, 09:52   +/
В Rust можно сделать функцию:

fn sum() -> i32 {
    let a = 1;
    let b = 2;
    a + b    
}

sum();


замыкание

let sum = || {
    let a = 1;
    let b = 2;
    a + b
};

sum();


и блок:

let sum = {
    let a = 1;
    let b = 2;
    a + b
};

В отличии от функций и замыканий, блок не принимает аргументов, в блоке нельзя сделать в произвольном месте return и вычисляется блок в том месте, где он определяется, возвращая при этом значение последнего выражения, вычисленного внутри него.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #521 Ответы: #541

540. Сообщение от Ivan_83 (ok), 21-Июн-24, 23:38   +/
Вот когда упадёт - тогда и починим.

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

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

541. Сообщение от n00by (ok), 22-Июн-24, 18:06   +/
Похоже, все три не принимают аргументов. И будут вычислены на этапе трансляции, "возвращая при этом значение последнего выражения, вычисленного внутри него".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #539 Ответы: #558

542. Сообщение от n00by (ok), 22-Июн-24, 18:22   +/
>[оверквотинг удален]
>     mul: i32,
> }
> let (_, _, Ops { sum, .. }) = {
>     let a = 1;
>     let b = 2;
>     (a, b, Ops { sum: a + b,
> mul: a * b })
> };
>
> https://play.rust-lang.org/?version=stable&mode=debug&editio...

Довольно многословная запись для конструктора.

struct Ops {
  int32_t sum;
  int32_t mul;
  Ops() { auto a = 1, b = 2; sum = a + b; }
};

https://godbolt.org/z/Ys58Y1oYc

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #538 Ответы: #557

543. Сообщение от n00by (ok), 22-Июн-24, 18:22   +/
> Это не похоже на макрос.

Это похоже на макрос с т.з. программиста на Си.

> Выражение вычисляется в данном месте и имя
> sum обозначает вычисленное значение. Вместо одного имени там потенциально мог быть
> более сложный паттерн. Сопоставление значению выражения нового имени - это частный
> случай сопоставления с образцом вообще.

"Сопоставление с образцом" на инглише "pattern matching". Обычно это ключевое слово match.

То есть есть некий образец, и есть данные. Если они каким-то образом подходят под образец, значит сопоставление происходит успешно, иначе рассматривается другой образец (если он есть).

Когда вместо имени подставятся "сопоставленное" в некоем определении выражение, это называется "подстановка". В Си так происходит с макросами.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #537 Ответы: #559

545. Сообщение от Neon (??), 22-Июн-24, 21:59   +/
Даже у С++ эта абракадабра сломает мозг.) Еще более извращенный синтаксис, чем у С++
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #474

546. Сообщение от Neon (??), 22-Июн-24, 22:01   +/
Если часть дверей гнилые и нет замком, то замена половины дверей лучше точно не сделает. Тут надо всё менять
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #172

547. Сообщение от Neon (??), 22-Июн-24, 22:02   –1 +/
Так в стабильном языке до сих пор стабилизацию делают. От версии к версии.)))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72

548. Сообщение от Neon (??), 22-Июн-24, 22:05   +/
Конечно, профессиональный программист привык терпеть и чесание левой пяткой правого уха, всё, что от него потребует работодатель, даже абсурдное.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

549. Сообщение от Neon (??), 22-Июн-24, 22:07   +/
Они то может и радуются, вот только пользователи как то не радуются. Постоянным фейлам с теми же обновлениями у M$
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #318

551. Сообщение от Neon (??), 22-Июн-24, 22:09   +/
А на фига такие сложности ?! Мало проблем, так их нужно еще и самим создать ?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #488

552. Сообщение от Neon (??), 22-Июн-24, 22:11   +/
Эти библиотеки должны стать стандартом языка, не так, что захотели авторы библиотек, какая моча им в голову ударила
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #333

553. Сообщение от Neon (??), 22-Июн-24, 22:16   +/
Это не бред, а имитация бурной деятельности с соответствующим гешефтом)))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #270

554. Сообщение от Neon (??), 22-Июн-24, 22:18   +/
Особенно весело стало, когда компы и мк стали управлять в Боингах 737 Max. Где пилоты вынуждены были вести неравную борьбу с автопилотом.) Который еще фиг выключишь. Спасибо, что до россиян пока этот маразм не дошел
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #470 Ответы: #593

555. Сообщение от Neon (??), 22-Июн-24, 22:19   +/
электронный газ в авто...слышали, когда аварии случались. Пользователь жмет на тормоз, а электроника на газ.)))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #471 Ответы: #594

556. Сообщение от Neon (??), 22-Июн-24, 22:21   +/
министерство обороны США - вот где гигантские попили огромных бюджетных сумм. Ах, да, это называется не коррупция, а лоббирование.) Ведь в странах демократии коррупции как бы нет).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #348

557. Сообщение от freecoder (ok), 23-Июн-24, 11:50   +/
> Довольно многословная запись для конструктора.

Потому что это не конструктор. В Rust нет конструкторов как специальных методов структуры. Если нужно, то пользователь может создать сам подобный метод, который вернёт экземпляр структуры, его условно можно назвать "конструктором".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #542 Ответы: #561

558. Сообщение от freecoder (ok), 23-Июн-24, 11:54   +/
> Похоже, все три не принимают аргументов. И будут вычислены на этапе трансляции,
> "возвращая при этом значение последнего выражения, вычисленного внутри него".

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #541 Ответы: #560

559. Сообщение от freecoder (ok), 23-Июн-24, 12:11   +/
> Это похоже на макрос с т.з. программиста на Си.

Это не похоже на Си-макрос совершенно.

> "Сопоставление с образцом" на инглише "pattern matching". Обычно это ключевое слово match.

match в Rust осуществляет сопоставление в общем виде, но есть ещё if let, let и let else, которые используются для сопоставления в специальных случаях.

let требует, чтобы записанный паттерн полностью соответствовал значению, с которым он сопоставляется (паттерн должен покрывать все возможные значения выражения справа).
if let и let else допускают уже только частичное покрытие.

> То есть есть некий образец, и есть данные. Если они каким-то образом
> подходят под образец, значит сопоставление происходит успешно, иначе рассматривается
> другой образец (если он есть).

Так работает match, в котором могут быть указаны несколько паттернов и они в совокупности должны покрыть все варианты. В let указывается только один паттерн, поэтому только он и должен покрыть все варианты. Ну либо не все, тогда нужно использовать let else.

> Когда вместо имени подставятся "сопоставленное" в некоем определении выражение, это называется
> "подстановка". В Си так происходит с макросами.

В Rust нет никакой "подстановки", а есть pattern matching в let: https://doc.rust-lang.org/book/ch18-01-all-the-places-for-pa...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #543 Ответы: #562

560. Сообщение от n00by (ok), 24-Июн-24, 19:54   +/
>> Похоже, все три не принимают аргументов. И будут вычислены на этапе трансляции,
>> "возвращая при этом значение последнего выражения, вычисленного внутри него".
> Приведены варианты функции и замыкание с пустым списком аргументов, у блока аргументов
> нет в принципе. В функции и замыкании можно в произвольном месте
> сделать return, в блоке - нельзя. Функцию можно несколько раз вызвать
> из разных мест, блок - нельзя: он вычисляется только в месте
> создания.

Всё это очень любопытно, одна беда: замыкание и есть функция, и даже "константная переменная" есть функция (не принимающая аргументов и чистая). В функциональных языках так. Rust, как я понял, функциональный, но очень не хочет, что бы про него так думали - по сложившемуся мнению, они далеки от "железа".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #558 Ответы: #563

561. Сообщение от n00by (ok), 24-Июн-24, 20:05   +/
>> Довольно многословная запись для конструктора.
> Потому что это не конструктор. В Rust нет конструкторов как специальных методов
> структуры. Если нужно, то пользователь может создать сам подобный метод, который
> вернёт экземпляр структуры, его условно можно назвать "конструктором".

Понятно, что нет конструкторов, потому и приходится применять вот такое, или реализовать "фабрику". Конструктор + деструктор в Си++ ведь нужны, что бы работало RAII, гарантирующее "безопасное" освобождение ресурсов. А тут другие методы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #557 Ответы: #564

562. Сообщение от n00by (ok), 24-Июн-24, 20:12   +/
>> Это похоже на макрос с т.з. программиста на Си.
> Это не похоже на Си-макрос совершенно.

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

>> "Сопоставление с образцом" на инглише "pattern matching". Обычно это ключевое слово match.
> match в Rust осуществляет сопоставление в общем виде, но есть ещё if
> let, let и let else, которые используются для сопоставления в специальных
> случаях.
> let требует, чтобы записанный паттерн полностью соответствовал значению, с которым он сопоставляется
> (паттерн должен покрывать все возможные значения выражения справа).
> if let и let else допускают уже только частичное покрытие.

Где в определении блока let то, с чем сопоставляется "образец"? Без этого не понятно, с чем сопоставление.

>> То есть есть некий образец, и есть данные. Если они каким-то образом
>> подходят под образец, значит сопоставление происходит успешно, иначе рассматривается
>> другой образец (если он есть).
> Так работает match, в котором могут быть указаны несколько паттернов и они
> в совокупности должны покрыть все варианты. В let указывается только один
> паттерн, поэтому только он и должен покрыть все варианты. Ну либо
> не все, тогда нужно использовать let else.

Да, несколько паттернов - это основа паттернматчинга, без них в общем случае сопоставление с образцом не имеет смысла как вычислительная конструкция, теряет полноту по Тьюрингу. Получается то, что обычно называли "макрос". В данном случае, возможно, правильнее переводить как "шаблон", что бы не путалось с полноценным match.

>> Когда вместо имени подставятся "сопоставленное" в некоем определении выражение, это называется
>> "подстановка". В Си так происходит с макросами.
> В Rust нет никакой "подстановки", а есть pattern matching в let: https://doc.rust-lang.org/book/ch18-01-all-the-places-for-pa...

Я так понял, что в Rust есть своя особая терминология для принятых в других ЯП вещей. Что бы быть непохожим на них, или что бы не находить общий язык - это пока не понял.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #559 Ответы: #565

563. Сообщение от freecoder (ok), 25-Июн-24, 10:25   +/
Rust - императивный язык с zero-cost абстракциями, которые, в том числе, взяты из функциональных языков. От действительно функциональных языков, таких как Haskell, Rust довольно далёк. Тем не менее, он находит способ реализации некоторых полезных функциональных абстракций в императивном подходе. В этом качестве он делает то же, что делал C++ в своё время с ООП.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #560 Ответы: #566

564. Сообщение от freecoder (ok), 25-Июн-24, 10:33   +/
> Понятно, что нет конструкторов, потому и приходится применять вот такое, или реализовать
> "фабрику". Конструктор + деструктор в Си++ ведь нужны, что бы работало
> RAII, гарантирующее "безопасное" освобождение ресурсов. А тут другие методы.

В Rust повсеместно используется RAII. Управление ресурсами на основе владения (Ownership Based Resource Management, OBRM) - по-сути это и есть RAII.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #561 Ответы: #567

565. Сообщение от freecoder (ok), 25-Июн-24, 10:53   +/
> С точки зрения кого? Я это утверждаю, как писавший когда-то препроцессор Си.
> Полагаю, имею некое право говорить за программистов на Си, хотя бы
> некоторых. Понятно, что возможности у макросов существенно беднее. Потому и "похоже",
> а не "это он и есть".

Суть макроса в том, что он задаёт некий шаблон, который заменяется препроцессором на код, представленный в определении макроса. Здесь же нет никакой замены. Тем более текстовой, как реализованы макросы в Си. В Rust тоже есть макросы, но в отличии от сишных они работают на уровне AST.

> Где в определении блока let то, с чем сопоставляется "образец"? Без этого
> не понятно, с чем сопоставление.


let PATTERN = EXPRESSION;

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


match foo() {
    (first, _) => println!("{first}"),
}

Ну и где здесь "потеря полноты по Тьюрингу"?

> Я так понял, что в Rust есть своя особая терминология для принятых
> в других ЯП вещей. Что бы быть непохожим на них, или
> что бы не находить общий язык - это пока не понял.

Ахахах! )))
Ну да, ну да. Просто имейте смелость признать, что вы были не правы. Или высокомерие и самолюбие не позволяют? )

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #562 Ответы: #568

566. Сообщение от n00by (ok), 25-Июн-24, 11:20   –1 +/
> Rust - императивный язык

Из приведённых примеров (в частности - отсутствие императивного оператора return для возврата результата функции) видно, что Rust прежде всего функциональный язык, а потом уже всё остальное.

> с zero-cost абстракциями, которые, в том числе, взяты
> из функциональных языков. От действительно функциональных языков, таких как Haskell, Rust
> довольно далёк.

Отсутствие ленивости не делает Rust далёким от своего предка - OCaml.

> Тем не менее, он находит способ реализации некоторых полезных
> функциональных абстракций в императивном подходе. В этом качестве он делает то
> же, что делал C++ в своё время с ООП.

А что C++ делает с ООП, когда там нет базового - методов? Первая общепринятая библиотека - STL - это попытка привнести функциональный стиль в императивный язык.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #563 Ответы: #571

567. Сообщение от n00by (ok), 25-Июн-24, 11:26   +/
>> Понятно, что нет конструкторов, потому и приходится применять вот такое, или реализовать
>> "фабрику". Конструктор + деструктор в Си++ ведь нужны, что бы работало
>> RAII, гарантирующее "безопасное" освобождение ресурсов. А тут другие методы.
> В Rust повсеместно используется RAII. Управление ресурсами на основе владения (Ownership
> Based Resource Management, OBRM) - по-сути это и есть RAII.

Я не вполне понял. В Rust повсеместно используется OBRM, но хочется назвать это RAII? Или RAII в Си++ даёт право говорить "у нас есть OBRM из Rust"?

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

568. Сообщение от n00by (ok), 25-Июн-24, 11:40   –1 +/
>> С точки зрения кого? Я это утверждаю, как писавший когда-то препроцессор Си.
>> Полагаю, имею некое право говорить за программистов на Си, хотя бы
>> некоторых. Понятно, что возможности у макросов существенно беднее. Потому и "похоже",
>> а не "это он и есть".
> Суть макроса в том, что он задаёт некий шаблон, который заменяется препроцессором
> на код, представленный в определении макроса. Здесь же нет никакой замены.
> Тем более текстовой, как реализованы макросы в Си. В Rust тоже
> есть макросы, но в отличии от сишных они работают на уровне
> AST.

Если следовать логике ("заменяется препроцессором"), получается, что в Rust нет никаких макросов. Надеюсь, понятно объяснил?

>> Где в определении блока let то, с чем сопоставляется "образец"? Без этого
>> не понятно, с чем сопоставление.
>

 
> let PATTERN = EXPRESSION;
>

Образец (которого нет в let) где-то в другом месте исходника магически "сопоставляется" с PATTERN, после чего на место PATTERN проставляется EXPRESSION? Это называется подстановка. Примерно так и происходит "раскрытие макросов".

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

 
> match foo() {
>     (first, _) => println!("{first}"),
> }
>

> Ну и где здесь "потеря полноты по Тьюрингу"?

Например, в том месте, где отсутствует цикл.

>> Я так понял, что в Rust есть своя особая терминология для принятых
>> в других ЯП вещей. Что бы быть непохожим на них, или
>> что бы не находить общий язык - это пока не понял.
> Ахахах! )))
> Ну да, ну да. Просто имейте смелость признать, что вы были не
> правы. Или высокомерие и самолюбие не позволяют? )

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

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

569. Сообщение от Аноним (-), 25-Июн-24, 12:13   +/
> Вообще-то, у основных диалектов - макросы и проч были.

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

> structы, как в сишке, с доступом к полям не через ручной расчет
> смещения адреса (как впрочем и к переменным на стеке),

В асме таки нет каких-то особых проверок типов по настоящему. И в целом - структурирование программирование не про асм.

Понятно что с эн костылей можно сделать подобие си. Но сишка + если очень надо немного asm() или simd интринсиков, будет лучше. Потому что там это все по настоящему и портабельно.

> "функции-процедуры" и проч. даже упоминать не будем - кое-кто вообще
> "эмуляцию" OOP умудрялся делать.

Да понятно что с препроцессором и макро можно развернуться. Я на си сделал себе проверки что не трогаю явно левые биты вон тех регистров MCU, так что ну вот не даст тронуть 33-й бит в 32 бит регистре, да еще сломав все в компилтайме при такой попытке.

> там даже миграция с 32-бит на 64 - гемор.

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

Да и называя вещи своими именами - я через пару кило устану трекать юзался ли энный регистр, в отличие от LTO-оптимизера какого. А вот ему не облом помнить что три кило назад уже вгрузили пригодную константу в тот регистр, возьмем-ка ее тут за базу и вкодируем в команду только смещение от?! Самому на асме так очень гиморно.

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

Я видел огромные проекты на асме, на сотни кило (вы их никогда не увидите, confidential proprietary). С очень сложной логикой, продвинутой математикой и проч. Проблема в том что это почти не подлежало расширению и майнтенансу. Даже мелкую фичу добавить - мучение. На сишке в 100 раз проще.

> Точно хотите померятся "длиной"?

Я могу. Но не факт что хочу. И посмотрев на то - я предпочел уметь сишку.

> Эк самокритично-то, но почему о себе - в третьем лице?

Ну, потому что я умею в несколько разных асмов, си, и например МК всякие. А вот что эксперт опеннета имеет сравнимый бэкграунд - таки очень редкое явление природы. Если я все же ошибся, чтож, это приятный сюрприз.

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

570. Сообщение от Аноним (-), 25-Июн-24, 12:22   +/
> прелесть строгой типизации в Rust: подобные вещи проверяются компилятором автоматически,
> поэтому рефакторить код на расте очень легко.

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

> Вот именно. Что с той же семантикой такое на Go вообще не
> получится записать. А абстракции выкинуть и в Rust можно, если они
> вам не нужны.

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

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

571. Сообщение от Аноним (-), 25-Июн-24, 12:25   +/
> Из приведённых примеров (в частности - отсутствие императивного оператора return для возврата
> результата функции) видно, что Rust прежде всего функциональный язык, а потом
> уже всё остальное.

Как я понимаю вместо этого сигналом служит отсутствие ; после энного выражения.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #566 Ответы: #572, #573

572. Сообщение от freecoder (ok), 25-Июн-24, 15:37   +/
> Как я понимаю вместо этого сигналом служит отсутствие ; после энного выражения.

Я выше уже писал, что из функций в Rust можно в любом месте сделать return. Но у человека похоже что-то с головой: он придумывает себе свой собственный Rust, без return, чисто функциональный, с блоками-макросами и отсутствием сопоставления с образцом в let.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #571 Ответы: #574

573. Сообщение от n00by (ok), 25-Июн-24, 18:12   +/
>> Из приведённых примеров (в частности - отсутствие императивного оператора return для возврата
>> результата функции) видно, что Rust прежде всего функциональный язык, а потом
>> уже всё остальное.
> Как я понимаю вместо этого сигналом служит отсутствие ; после энного выражения.

Понимать надо, что return это императив, т.е указание "верни". Нет императива, есть значение, как в школьной записи функции f(x) = 2x - похоже, что язык не императивный, а функциональный.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #571 Ответы: #575

574. Сообщение от n00by (ok), 25-Июн-24, 18:16   +/
>> Как я понимаю вместо этого сигналом служит отсутствие ; после энного выражения.
> Я выше уже писал, что из функций в Rust можно в любом
> месте сделать return. Но у человека похоже что-то с головой: он
> придумывает себе свой собственный Rust, без return, чисто функциональный,

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

Цитирую себя: Rust прежде всего функциональный язык, а потом уже всё остальное.

Цитирую freecoder-а: _чисто_ функциональный.

Да, что-то у него с головой.

> с блоками-макросами
> и отсутствием сопоставления с образцом в let.

Опять что-то с головой? Чем же надо было читать "с точки зрения Си программиста _похоже_"?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #572 Ответы: #576

575. Сообщение от freecoder (ok), 25-Июн-24, 21:09   +/

fn foo(a: i32) -> bool {
    if a < 0 {
        return false;
    }
    // ...
    true
}

К Rust'у это не относится, в нём return есть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #573 Ответы: #578

576. Сообщение от freecoder (ok), 25-Июн-24, 21:10   +/
> Цитирую себя: Rust прежде всего функциональный язык, а потом уже всё остальное.

Rust прежде всего императивный язык, а потом уже всё остальное.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #574 Ответы: #577

577. Сообщение от n00by (ok), 26-Июн-24, 08:46   +/
>>> Rust ... чисто функциональный,
>> Цитирую себя: Rust прежде всего функциональный язык, а потом уже всё остальное.
> Rust прежде всего императивный язык, а потом уже всё остальное.

Прежде всего, произошла попытка приписать мне ложный тезис, на основании чего делать заявления про голову. Голова, как мы выяснили, собственная. Что же делать оппоненту, пойманному на передёргивании? Выкинуть контекст и попытаться устроить спор, да.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #576 Ответы: #580, #585

578. Сообщение от n00by (ok), 26-Июн-24, 08:48   +/
>
 
> fn foo(a: i32) -> bool {
>     if a < 0 {
>         return false;
>     }
>     // ...
>     true
> }
>

> К Rust'у это не относится, в нём return есть.

Не вижу return перед true, в основной "точке выхода". Таким образом указанный мной характерный признак остаётся в силе. Но за пример спасибо - видна нелепость синтаксиса, когда вместо скобочек можно быть оставить ключевое слово из OCaml.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #575 Ответы: #579

579. Сообщение от freecoder (ok), 26-Июн-24, 11:43   +/
> Таким образом указанный
> мной характерный признак остаётся в силе.

Какой признак?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #578 Ответы: #581

580. Сообщение от freecoder (ok), 26-Июн-24, 11:45   +/
Так императивный или функциональный Rust прежде всего? В зависимости от вашего ответа будет понятно, есть у вас проблемы с головой, или нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #577 Ответы: #582

581. Сообщение от n00by (ok), 26-Июн-24, 15:01   +/
>> Таким образом указанный
>> мной характерный признак остаётся в силе.
> Какой признак?

Перечитай моё предыдущее сообщение в той его части, что ты столь старательно удалил при цитировании.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #579 Ответы: #583

582. Сообщение от n00by (ok), 26-Июн-24, 15:01   +/
> Так императивный или функциональный Rust прежде всего? В зависимости от вашего ответа
> будет понятно, есть у вас проблемы с головой, или нет.

Так ты доктор? Программируешь на Rust на досуге? Я было решил, что-то понимаешь в нём.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #580 Ответы: #584

583. Сообщение от freecoder (ok), 27-Июн-24, 10:02   +/
Вы можете прямо ответить на вопрос или нет?

fn foo(a: i32) -> bool {
    if a < 0 {
        return false;
    }
    // ...
    true
}

Это то же самое, что

fn foo(a: i32) -> bool {
    if a < 0 {
        return false;
    }
    // ...
    return true;
}

И то, и то - корректный код на Rust. Так о каких признаках шла речь?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #581 Ответы: #586

584. Сообщение от freecoder (ok), 27-Июн-24, 10:19   +/
Rust - не то, что вам кажется. Вместо досужих домыслов о нём просто прочтите документацию.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #582 Ответы: #588

585. Сообщение от freecoder (ok), 27-Июн-24, 10:32   +/
> Прежде всего, произошла попытка приписать мне ложный тезис, на основании чего делать
> заявления про голову.

Чем же надо было читать: "Но у человека _похоже_ что-то с головой"?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #577 Ответы: #587

586. Сообщение от n00by (ok), 27-Июн-24, 12:41   +/
> Вы можете прямо ответить на вопрос или нет?

Я не вижу вопроса.

>[оверквотинг удален]
> Это то же самое, что
>

 
> fn foo(a: i32) -> bool {
>     if a < 0 {
>         return false;
>     }
>     // ...
>     return true;
> }
>

Сахарок, что бы не рвало шаблон императивщикам.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #583 Ответы: #591, #592

587. Сообщение от n00by (ok), 27-Июн-24, 12:43   +/
>> Прежде всего, произошла попытка приписать мне ложный тезис, на основании чего делать
>> заявления про голову.
> Чем же надо было читать: "Но у человека _похоже_ что-то с головой"?

Вот и подумай, чем ты читал и зачем на ровном месте развязал спор. Разве только для того, что бы я показал тебе зеркало?

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

588. Сообщение от n00by (ok), 27-Июн-24, 12:47   +/
Понял, не буду читать досужие домыслы. Тем более, каким языком является Rust, мне в своё время красиво объяснил Ordu. Как раз в ответ на "отсутствие return как характерный признак ФЯ". Объяснил так, что с ним не поспоришь. И со мной при этом не спорил. Жаль, что специалистов того уровня по языку здесь давно не видно
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #584 Ответы: #590

590. Сообщение от freecoder (ok), 29-Июн-24, 22:23   +/
И ссылки вы конечно же приводить не будете.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #588 Ответы: #597

591. Сообщение от freecoder (ok), 29-Июн-24, 22:44   +/
> Ещё раз: пока ты будешь удалять из моих сообщений данные мной ответы

Я не модератор, поэтому удалять ваши ответы из ваших сообщений физически не могу. Но вам я сочувствую, у вас то в Rust'е придумывают свой паттерн-матчинг, не такой, какой у вас в голове, теперь ещё и ваши сообщения не такие, как вы их писали... Жаль, но проблема у вас прогрессирует.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #586 Ответы: #596

592. Сообщение от freecoder (ok), 29-Июн-24, 22:52   +/
> Сахарок, что бы не рвало шаблон императивщикам.

А может чтобы "не рвало шаблон" функциональщикам?
Тело функции в Rust - это блок, завёрнутый в return. Например, тело такой функции:


fn add(a: usize) -> usize {
    let b = a + 1;
    b
}

По-сути является следующим:

// argument_0 is the actual first argument passed from the caller
let a: usize = argument_0;
return {
    let b = a + 1;
    b
};

https://doc.rust-lang.org/reference/items/functions.html#fun...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #586 Ответы: #595

593. Сообщение от Аноним (-), 30-Июн-24, 00:23   +/
> Особенно весело стало, когда компы и мк стали управлять в Боингах 737
> Max. Где пилоты вынуждены были вести неравную борьбу с автопилотом.) Который
> еще фиг выключишь.

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

Более того - с диагностикой отказов и проч тоже полный булшит. Цифровая система может просканировать себя сама, прочекав основные аспекты. И соседей отпинговать, проверив что они по шинам доступны, шины работают, вот это все. А с тросиками, лампочками и циферблатиками... ну вы там где-нибудь в середине полета и заметите факап при случае. И если не угадаете который из приборов гонит - ну, сорянчики, что там про человеческий фактор было? Вот оно и будет.

> Спасибо, что до россиян пока этот маразм не дошел

Вообще-то таки дошел. Хоть и на ...цать лет позже остальных. Никто не будет уже новые дизайны делать как будто на дворе 1960-е.

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

594. Сообщение от Аноним (-), 30-Июн-24, 00:28   +/
> электронный газ в авто...слышали, когда аварии случались. Пользователь жмет на тормоз,
> а электроника на газ.)))

Несомненно, без ABSок и подушек безопасности было гораздо безопаснее. Аж два раза. Если ДТП и было меньше - то только потому что машин было мало. И таки - сорян но без микроконтроллера даже просто подушки в морду отстрелить вовремя - сложновато будет. Чтоб надежно отличать опасные ситуации от всякой фигни. Не, вылетевшие от резкой остановки на светофоре подушки - не рулят. Да и вообще - рисковано когда тебе пиротехника в морду подушкой бьет. Но вот убиваться об лобовуху еще более рисковано, поэтому - вот так. А ABS и прочие ассистенты постараются чтобы до этого вооюще не дошло.

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

595. Сообщение от n00by (ok), 30-Июн-24, 14:47   +/
>> Сахарок, что бы не рвало шаблон императивщикам.
> А может чтобы "не рвало шаблон" функциональщикам?

Если вопрос не риторический, попробуй опросить функциональщиков. Обычно функциональщикам удаётся производить подстановку.

> Тело функции в Rust - это блок,

Это так везде. Функция - именованный блок.

> завёрнутый в return.

И возвращается этим самым return что? Блок. Очень хотелось найти return в документации, но получилось, что получилось. ;)

>[оверквотинг удален]
> По-сути является следующим:
>

 
> // argument_0 is the actual first argument passed from the caller
> let a: usize = argument_0;
> return {
>     let b = a + 1;
>     b
> };
>

> https://doc.rust-lang.org/reference/items/functions.html#fun...

Ох, да, ссылка весьма кстати. Поищи там "a function yields a first-class value" - это ещё один характерный признак.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #592 Ответы: #599, #602

596. Сообщение от n00by (ok), 30-Июн-24, 14:55   +/
>> Ещё раз: пока ты будешь удалять из моих сообщений данные мной ответы
> Я не модератор, поэтому удалять ваши ответы из ваших сообщений физически не
> могу.

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

> Но вам я сочувствую, у вас то в Rust'е придумывают
> свой паттерн-матчинг, не такой, какой у вас в голове,

Для справки: паттерн-матчингу лет больше чем мне и Rust-у.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #591 Ответы: #601

597. Сообщение от n00by (ok), 30-Июн-24, 14:58   +/
Зачем бы мне это было надо?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #590 Ответы: #600

598. Сообщение от Прохожий (??), 30-Июн-24, 15:25   +/
> На сях или плюсах я могу либы ставить - системным пакетником.

Добавят Rust сначала в ядро Линукса, а потом и в твой дистр, и будет практически то же самое. Да, понимаю, хотелось бы побыстрее. Но уж как есть.

> И майнтайнерам моего дистро я доверяю сильно больше чем амазону, гуглу и майкрософт из совета директоров хруст фаундейшна.

Внезапно Google является активным участником развития ОС Linux. Как и Microsoft, кстати. Наверное, и Amazon там же. А твой дистр основан на ядре Линукса. Тоже внезапно, наверное.

> А тут сделали удобно маздайщикам ваяких, не забыв вкатить подобие вендорлока. Незачет.

Какого конкретно вендора? Вон же, компилятор Rust команда из gcc, вроде как, пилит параллельно.

> Существующие проекты юзающие это - вполне себе. И это недостаток. По сравнению с сями и плюсами, ага. Да, меня волнует "effective rule set" с котторым придется столкнуться а не формальные отмазки.

Дык посмотри, кто стандарты для Си и Плюсов ваяет, и прозрей.

> Кроме того что в сях/плюсах я просто пойду и просто сбилдую а тут - левый гимор с каждым первым проектом.

В чём конкретно его левизна? Твой дистр пока Rust не содержит, в этом всё дело?

> Это де-факто состояние дел.

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


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

599. Сообщение от freecoder (ok), 02-Июл-24, 17:49   +/
> И возвращается этим самым return что? Блок.

Нет. Возвращается значение последнего выражения, вычисленного в блоке, а не сам блок. Если бы функция возвращала блок, то и тип возвращаемого значения был бы "блок", но он не "блок", а равен типу значения последнего выражения в блоке.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #595 Ответы: #606

600. Сообщение от freecoder (ok), 02-Июл-24, 17:52   +/
Вы очень много выдумываете из своей головы в нашем разговоре. То, чего нет и не было в реальности. Приведите ссылку - тогда можно обсуждать этот случай, как действительно имевший место быть. Пока же больше похоже на вашу выдумку.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #597 Ответы: #605

601. Сообщение от freecoder (ok), 02-Июл-24, 17:55   +/
Я читаю и воспринимаю всё сообщение, а цитирую только ту часть, на которую отвечаю. Для вашего же удобства стараюсь. Или вам что, обидно, что модераторы чикают ваши сообщения за оверквотинг, а не мои? )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #596 Ответы: #604

602. Сообщение от freecoder (ok), 02-Июл-24, 18:09   +/
> Ох, да, ссылка весьма кстати. Поищи там "a function yields a first-class
> value" - это ещё один характерный признак.

Признак чего? Просто в языке можно оперировать функциональным элементом, например, связывать его с указателем на функцию:


let add_ptr: fn(usize) -> usize = add;

Как эта возможность характеризует язык?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #595 Ответы: #603

603. Сообщение от n00by (ok), 03-Июл-24, 10:33   +/
>> Ох, да, ссылка весьма кстати. Поищи там "a function yields a first-class
>> value" - это ещё один характерный признак.
> Признак чего? Просто в языке можно оперировать функциональным элементом, например, связывать
> его с указателем на функцию:
>
 
> let add_ptr: fn(usize) -> usize = add;
>

> Как эта возможность характеризует язык?

Очевидно, даёт freecoder-у абсолютную уверенность, что язык - императивный.

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

604. Сообщение от n00by (ok), 03-Июл-24, 10:36   +/
> Я читаю и воспринимаю всё сообщение, а цитирую только ту часть, на
> которую отвечаю. Для вашего же удобства стараюсь.

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

> Или вам что, обидно,
> что модераторы чикают ваши сообщения за оверквотинг, а не мои? )

Нет, не обидно, ведь это не моя фантазия.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #601 Ответы: #608

605. Сообщение от n00by (ok), 03-Июл-24, 10:38   +/
Что мне надо обсуждать с тем, кто выдумывает, будто бы я выдумываю ответы Ordu, что он писал здесь мне? Проекции в психологии? И зачем?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #600 Ответы: #607

606. Сообщение от n00by (ok), 03-Июл-24, 10:41   +/
>> И возвращается этим самым return что? Блок.
> Нет. Возвращается значение последнего выражения, вычисленного в блоке, а не сам блок.
> Если бы функция возвращала блок, то и тип возвращаемого значения был
> бы "блок", но он не "блок", а равен типу значения последнего
> выражения в блоке.

Если бы не произошло очередной подмены тезиса ("возвращается этим самым return" на "функция возвращала"), то я бы прочитал ответ на это мой сообщение. А так видно, что кто-то не видит разницы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #599 Ответы: #609

607. Сообщение от freecoder (ok), 03-Июл-24, 12:21   +/
Не хотели бы обсуждать - то не писали бы об этом изначально. На слово я вам не верю, доказать вы не хотите - тогда и правда, разговаривать не о чем.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #605

608. Сообщение от freecoder (ok), 03-Июл-24, 12:26   +/
Какая именно суть и где она была выброшена? Приведите пример, пожалуйста.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #604

609. Сообщение от freecoder (ok), 03-Июл-24, 12:32   +/
В контексте нашего разговора - не вижу разницы. return в Rust - ключевое слово, которое обозначает возвращение значения из функции: https://doc.rust-lang.org/std/keyword.return.html

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

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


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

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




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

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