The OpenNET Project / Index page

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



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

Оглавление

Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go и Rust, opennews (??), 02-Май-24, (0) [смотреть все]

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


7. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +7 +/
Сообщение от Аноним (7), 02-Май-24, 23:36 
>Для целевых платформ x86_64-pc-windows-msvc, i686-pc-windows-msvc, x86_64-pc-windows-gnu, i686-pc-windows-gnu, x86_64-pc-windows-gnullvm и i686-pc-windows-gnullvm теперь требуется как минимум версия Windows 10.

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

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

10. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Аноним (10), 02-Май-24, 23:44 
Ты против винды как платформы компиляции или что?
Ответить | Правка | Наверх | Cообщить модератору

13. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +7 +/
Сообщение от Аноним (7), 03-Май-24, 00:13 
Я против навязывания новых версий продуктов M$. Сказки про

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

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

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

37. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +1 +/
Сообщение от Астролог (?), 03-Май-24, 00:59 
>>новых версий

Windows10 вышла восемь лет назад.

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

69. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +3 +/
Сообщение от Аноним (69), 03-Май-24, 05:42 
А дерьмом не перестала быть до сих пор. Следующие версии ещё хуже.
Ответить | Правка | Наверх | Cообщить модератору

72. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +4 +/
Сообщение от Юрий (??), 03-Май-24, 05:51 
Переходи на линукс
Ответить | Правка | Наверх | Cообщить модератору

227. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +1 +/
Сообщение от Аноним (227), 03-Май-24, 20:59 
После чего поймешь что винда очень даже неплохая система.
Ответить | Правка | Наверх | Cообщить модератору

284. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Пряник (?), 06-Май-24, 18:39 
Если особо не вникать в Windows, то да. Windows - это синяя пилюля. Живёшь в иллюзии безопасности и надёжности. Внутренне это монструозный комбайн из наслоения древних бесполнезных технологий (тм). Система создавалась для выкачивания бабла из людей.
Ответить | Правка | Наверх | Cообщить модератору

128. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Пряник (?), 03-Май-24, 10:37 
Ну запусти в Wine.
Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

241. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Аноним (239), 03-Май-24, 23:55 
Не в этом проблема, сначала прочитай на что отвечаешь.
Ответить | Правка | Наверх | Cообщить модератору

18. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +1 +/
Сообщение от Ivan_83 (ok), 03-Май-24, 00:20 
Технологически венда интересная (по крайней мере фундамент там не ипахабили ещё и азуровцы как то вытягивают ситуацию), но то что она полностью закрытая и огороженная ставит на ней крест, для любого кто уважает себя и своё время.
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

23. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Аноним (7), 03-Май-24, 00:37 
Теоретически любой тьюринг-полный ЯП можно скомпилировать под любую систему. Пракрически - кто содержит Foundation - тот её и танцует. Вместе со всеми разрабами, решившими поучаствовать в этой пляске, и со всеми пользователями, которые к плясунам можно сказать наручниками пристёгнуты.
Ответить | Правка | Наверх | Cообщить модератору

25. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  –1 +/
Сообщение от Буратино (?), 03-Май-24, 00:42 
Те, кто пишут подобное приведённому вами на любом языке напишут плохо.
Раньше C++ был "дефолтным языком для всего" - и благодаря этому нам остались кучи примеров monkey-кода на нём.
Сейчас "дефолтным" стал JS - результат работы JS-обезьян видят все и каждый день с ними соприкасаются.
Сделаете популярно-дефолтной "ржавчину" - будет то же самое, но на ней.
Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

26. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Буратино (?), 03-Май-24, 00:43 
Промазал с веткой
Ответить | Правка | Наверх | Cообщить модератору

34. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +1 +/
Сообщение от Ivan_83 (ok), 03-Май-24, 00:52 
Хоть вы и вроде как не мне но я пожалуй отвечу :)

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

С++ никогда не был дефолтным языкм для всего.
Так может думать только человек который начинал на венде примерно лет 20 назад, когда вижал бейсик уже вроде как закопали, .NET толком не взлетел и но вижал с++ как был так и дальше работал и до сих пор работает. Там вроде как последние лет 10 C# взлетел.

За пределами венды я бы сказал что основной язык С, который даёт фундамент всему, а дальше там просль ++, пхп, жавы, питона и прочих.

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

40. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  –1 +/
Сообщение от Ivan_83 (ok), 03-Май-24, 01:16 
А касательно того фрагмента, так проблема крестов и прочих переусложнённых языков в том, что нужно быть супер гуру чтобы пользоватся ими правильно.
На практике гуру почти не существует и они тоже часто фигачат всякую фигню.

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

Потом я ходил по пути: надо написать свои функции для всего и везде ими пользоватся.
Да, свои memset, memcpy и пр.
Правда быстро выяснилось что они более медленные и утывая сколько там нюансов для оптимизации скорости я сдался :)

Потом были врапперы:
mem_set(void *buf, const size_t size, const uint8_t c);
#define mem_bzero(__buf, __size)    mem_set((__buf), (size_t)(__size), 0x00)
#define zalloc(__size)            calloc(1, (size_t)(__size))
#define zallocarray(__nmemb, __size)    calloc((__nmemb), (size_t)(__size))
#define mem_new(__type)            (__type*)malloc(sizeof(__type))
#define mem_znew(__type)        (__type*)zalloc(sizeof(__type))
#define mallocarray(__nmemb, __size)    reallocarray(NULL, (__nmemb), (size_t)(__size))
Удобно же?

Удобно, и идеологически правильно, и ваще офигенско!
Но только вот постороннему разработчику не до конца понятно что это, те по сути это введение своего диалекта для С.

В итоге я это выкинул, и даже не стал брать bcopy(), bzero() - потому что они уже типа депрекейтед.
Только explicit_bzero() местами воткнул где было похоже что memset() компелятор выкинет.

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


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

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

49. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +2 +/
Сообщение от тыквенное латте (?), 03-Май-24, 02:23 
К врапперам вопросов нет, вопрос практичности/объема проекта/степени реюза и туевой хучи факторов.

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

лол, никак.

Знание синтаксиса С - это достаточный уровень чтоб выстрелить себе в голову. Твой код бесполезен для таких людей. А эти люди, в свою очередь, бесполезны для тебя, т.к. С -  просто lingua franca для решения задачи в какой-то предметной области. Именно знания в какой-то предметной области, такая экспертиза тебе и нужна в своём коде. И ты возьмёшь человека с такими знаниями, и проведёшь его по безопасному пути в конечный пуш-коммит своим код-ревью и советами. Цель твоего кода - решать задачу, а не быть понятным любому долб. Так как каким бы ты простым его не сделал, всегда придёт долб. который ничё не понимает. =)

P.S. KISS, скажем, был KISS'ом для инжинера, а не васяна с базовыми знаниями стрелки осциллографа. Таки дела.

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

51. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +1 +/
Сообщение от Ivan_83 (ok), 03-Май-24, 02:49 
Вы тут сильно смешиваете всё в одну кучу.

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

Но одно дело описывать технологию простым и доступным языком а другое описывать её максимально не понятно никому кроме автора. Более того, по прошествии времени я и сам забываю детали и становлюсь не лучше людей пришедших со стороны.
Некоторым кускам моего кода уже более 20 лет :)

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

53. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  –1 +/
Сообщение от тыквенное латте (?), 03-Май-24, 03:04 
> Вы тут сильно смешиваете всё в одну кучу.

ой ли.

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

или вы начинаете смешивать "технологии" (с)(r)(tm) (метод решения?) и предметную область.
и чем больше бла-бла, тем меньше смысла.

> Но одно дело описывать технологию простым и доступным языком а другое описывать
> её максимально не понятно никому кроме автора.

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

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

документировать надо :)

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

63. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +1 +/
Сообщение от Ivan_83 (ok), 03-Май-24, 04:10 
Возможность копипастить код - это просто индикатор того что там нет зависимостей от других частей кода.

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

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

78. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от тыквенное латте (?), 03-Май-24, 07:04 
> Возможность копипастить код - это просто индикатор того что там нет зависимостей
> от других частей кода.

нарушает принцип DRY, а в запущенной стадии ведёт к туевой хуче антипаттернов. копипастить код - это не задача кода и/или проекта :) на тебя "clean code" (c) (r) (tm) так подействовал, чтоб до степени фарса доводить? я видел его воздействие на коллег когда-то: ужасающе. Но хуже было то, как они бродили по наркодиспансеру и всем его толкали: - "ты читал?! ты читал?!"

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

ты выдумал проблему: (не)возможность копипастить код какими-то yep-LAN-ами, с начальными навыками владения инструментом, которыми они себе собираются выстрелить в голову.

А я, как человек, у которого иногда бывает мессианское настроение наставить на путь праведный, истинно говорю тебе: это не твоя проблема, чувак. ^_^

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

точно клин код.

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

233. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Ivan_83 (ok), 03-Май-24, 21:47 
Нет, это не оно. )

У меня моя liblcb и я её делал линкуемой, идея была в том, чтобы инклюдить и линковать по минимуму.
Но местами там стал наступать монолитизм, когда ради одного функционала надо приличное колличество от либы.

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

91. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  –1 +/
Сообщение от Аноним (91), 03-Май-24, 08:52 
Абсолютно согласен, то же пришёл к такому выводу, но никогда не обмазывал родные типы и функции. Вот только со `String` обмазывал, что бы получать форматированную строку по месту, типа
```
printf(MyString("a=%d", a).c_str());
```
Но справшивается, до коле каждый будет обмазывать себя сам? Уже 40 лет языку, а строк как таковых по сути и нет.
Ответить | Правка | К родителю #40 | Наверх | Cообщить модератору

94. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +1 +/
Сообщение от тыквенное латте (?), 03-Май-24, 09:12 
> Абсолютно согласен, то же пришёл к такому выводу, но никогда не обмазывал
> родные типы и функции. Вот только со `String` обмазывал, что бы
> получать форматированную строку по месту, типа
> ```
> printf(MyString("a=%d", a).c_str());
> ```

это С или С++? Если С - что это за обвязка такая? O_o Что за обращение к элементу c_str()?
Что за строка такая, что требует конвертации (malloc?) в null-end, и передачи как первого аргумента в printf, когда он требует другого вообще... А если С++, то зачем... ох, вы реально так делаете или это вброс?

> Но справшивается, до коле каждый будет обмазывать себя сам? Уже 40 лет
> языку, а строк как таковых по сути и нет.

Похоже таки вброс. Ну ок, какие именно строки вам нужны в стандарте?

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

121. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от n00by (ok), 03-Май-24, 10:32 
Это не вброс, это что-то похуже. Такие сначала утверждают, что strlen() требуют оптимизации, а потом не могут сказать, где и для чего они берут null-terminated строки размером в мегабайт.
Ответить | Правка | Наверх | Cообщить модератору

237. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Ivan_83 (ok), 03-Май-24, 22:14 
strlen() это memchr(,, 0x00) :)
Ответить | Правка | Наверх | Cообщить модератору

234. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Ivan_83 (ok), 03-Май-24, 21:50 
Я думаю вы пошли по не правильному пути :)
Нужно признать что в С нет строк, есть только куски памяти с непредсказуемым содержимым.
Единственное что можно называть строками - это строковые константы задаваемые в коде двойными кавычками.
Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

257. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Аноним (-), 04-Май-24, 09:42 
>Нужно признать что в С нет строк,

А этот факт кто-то отрицал? Паскальщики уже полвека об этом говорят. Си - это не ООП язык.

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

261. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Ivan_83 (ok), 04-Май-24, 11:48 
ООП на сях вполне себе есть, просто оно не обмазано сахаром.
Оно в общем и на ассемблере есть.
Потому что ООП это не фича языка а подход.
Ответить | Правка | Наверх | Cообщить модератору

260. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от тыквенное латте (?), 04-Май-24, 11:06 
> Нужно признать что в С нет строк

стандарт знает об этом, или инфа от инсайдера?

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

262. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Ivan_83 (ok), 04-Май-24, 11:50 
Так это вопрос интерпретации стандарта, не более.

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

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

267. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от тыквенное латте (?), 04-Май-24, 18:00 
> Так это вопрос интерпретации стандарта, не более.

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

> Кто то считает что по сокету на 80 порту он может получить
> исключительно текст, я против такого подхода и призываю ожидать текст только
> от строковых констант из кода.

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

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

274. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Аноним (-), 05-Май-24, 06:41 
В стандарте чистаго Си про строки, ничего не написано.
Ответить | Правка | Наверх | Cообщить модератору

275. Скрыто модератором  +/
Сообщение от тыквенное латте (?), 05-Май-24, 10:44 
Ответить | Правка | Наверх | Cообщить модератору

116. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от n00by (ok), 03-Май-24, 10:24 
> Потом были врапперы:
> mem_set(void *buf, const size_t size, const uint8_t c);
> #define mem_bzero(__buf, __size) mem_set((__buf), (size_t)(__size), 0x00)
> #define zalloc(__size)   calloc(1, (size_t)(__size))
> #define zallocarray(__nmemb, __size) calloc((__nmemb), (size_t)(__size))
> #define mem_new(__type)   (__type*)malloc(sizeof(__type))
> #define mem_znew(__type)  (__type*)zalloc(sizeof(__type))
> #define mallocarray(__nmemb, __size) reallocarray(NULL, (__nmemb), (size_t)(__size))
> Удобно же?
> Удобно, и идеологически правильно, и ваще офигенско!

По какой идеологии правильно? Такое г-но ещё Ален И. Голуб расчихвостил в своё время, но народ всё так и ходит по граблям макросов https://bugzilla.altlinux.org/show_bug.cgi?id=38212#c2 священная корова же, трогать нельзя!
reallocarray это тоже макрос?

> А что делают в крестах?

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

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

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

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

235. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Ivan_83 (ok), 03-Май-24, 21:58 
reallocarray() это функция, появилась в OpenBSD и растащилась как минимум во фрю.

mem_set(void *buf, const size_t size, const uint8_t c);
Вот это идеологически правильно: буфер, размер и только потом фиговина которую туда пихать.
В традиционном memset() иногда размер пишут вторым аргументом.


> Там отчасти решают проблемы вон того непотребства, в том числе и с ошибками из-за приведения типов.  inline в Си откуда заимствовано?

Это выдуманная проблема.


> Вопрос в том, какой ценой выходит код.

Ну это тоже как посмотреть.
Кресты же пытаются дотянуть до уровня высокоуровневых языков практически без ручного манагемента памяти, куда то чуть ли не до LUA/PHP/python.

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

280. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от n00by (ok), 06-Май-24, 11:20 
> reallocarray() это функция, появилась в OpenBSD и растащилась как минимум во фрю.

Значит код чуть лучше, чем я написал, но основные проблемы никуда не делись: вложенные макросы, неотличимые по именам от функций. Проблема с sequence point ещё и в том, что с одним транслятором получится в соответствии с наивными ожиданиями программиста, а на другом она выстрелит в ногу.

> mem_set(void *buf, const size_t size, const uint8_t c);
> Вот это идеологически правильно: буфер, размер и только потом фиговина которую туда
> пихать.
> В традиционном memset() иногда размер пишут вторым аргументом.

Ну и я так писал :) и не только в memset. Потому предпочитаю по возможности инициализировать в определении, присвоив {0}. Правильно будет, когда транслятор выдаст как минимум предупреждение при приведении типов.

>> Там отчасти решают проблемы вон того непотребства, в том числе и с ошибками из-за приведения типов.  inline в Си откуда заимствовано?
> Это выдуманная проблема.

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

По ссылке:

2020-03-12 - обнаружено (им ещё повезло, что отловили тестами).
2020-04-23 - нарыли причину.

Я только сейчас увидел, что год 20-й! Сижу как идиот жду, когда и как исправят в glibc... думал, ещё месяца 3.

>> Вопрос в том, какой ценой выходит код.
> Ну это тоже как посмотреть.

Я на плюсы начинал смотреть как раз со стороны генерируемых асм-листингов, и мне было непонятно, зачем нужен Си, кода результат (иногда даже лучший) можно получить меньшим количеством строк, плюс вынести часть ошибок на этап трансляции. Тогда я не учитывал, что в BSD/Linux есть традиция, как и вес .so с библиотекой плюсов.

> Кресты же пытаются дотянуть до уровня высокоуровневых языков практически без ручного манагемента
> памяти, куда то чуть ли не до LUA/PHP/python.

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

Вот этом основная проблема плюсов, если не считать объёма стандарта: с одной стороны, понижен порог вхождения; с другой стороны, кто мог бы взять какие-то полезности из плюсов и упростить код на Си говорят "мы с вон теми за один стол не сядем". Может быть, её отчасти решит Rust, перетянув к себе первых.

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

75. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +2 +/
Сообщение от Роман (??), 03-Май-24, 06:28 
В какое место ставит крест?

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

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

204. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  –2 +/
Сообщение от Аноним (204), 03-Май-24, 16:11 
>в порядке убывания важности:
> - решает ли задачу
> - насколько сложно поддерживать
> - насколько глючно и не безопасно

Чисто корпоративный подход - снижение издержек важнее безопасности.
А вот для потребителя/юзера безопасность данных важнее прибыли корпораций.

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

226. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от тыквенное латте (?), 03-Май-24, 20:55 
юзеру пох, он сидит на венде даже без (обожемой) юблока. пока инфоцыгане пытаются его напугать до ус-чки, чтоб продать "безопасность" (с) (r) (tm).
Ответить | Правка | Наверх | Cообщить модератору

236. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +1 +/
Сообщение от Ivan_83 (ok), 03-Май-24, 22:08 
Нет, юзеру безопасность не важна, ему важнее функционал.

Зачем смартфон без порнухи и котиков но зато безопасный? Уверены что такое купят?
Посмотрите на продажи всяких аврор, кашмарских и прочих фриковских поделок.

Даже когда доходит до безопасности жизни юзер выбирает функционал.
Вы видели хоть одно популярное серийное авто с лимитом скрости в 40-60 км/ч и обвешенное подушками безопасности? (а свыше 60км/ч уже практически не возможно гарантировать сохранность тушки при мгновенной остановке ТС)
А видели чтобы на гражданских самолётах отсреливалась верхняя часть фюзеляжа и все кресла пассажиров катапультировались и потом у них у каждого раскрывался парашют, как у военных?

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

И таких примеров - сколько угодно.
Приведите хоть один пример когда юзер деньгами проголосовал за безопасность против функционала.
(сфера всяких сигнализаций - не считается, там сразу платят за видимость безопасности)


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

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

242. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Аноним (204), 04-Май-24, 00:02 
>Даже когда доходит до безопасности жизни юзер выбирает функционал.

Абсурд!
Ты многих встречал, которые ради функциональности (не таскать с собой связку ключей - это же так удобно) не закрывают квартиру или машину?

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

>Потому подотритесь своей безопасностью

Желаю тебе не познать отсутствие безопасности на своем кошельке. Пребывай в розовых очках и дальше.

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

251. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Ivan_83 (ok), 04-Май-24, 02:16 
Наверное для вас будет шоком но есть много мест где люди не заморачиваются закрытием квартир и машин.

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

Речь была про код и потом про вещи: фичи VS безопасность.
Речи про безопасность VS удобство не было.

Машина/квартира/телефон - единственный функционал которых закрыватся опять же не нужны :)

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

134. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +2 +/
Сообщение от zog (??), 03-Май-24, 11:01 
Он просто обеженный непрофессионал, у которого вечно зудит.
Продолжать поддерживать древние версии Винды в 2024 году, в особенности не получившие популярность версии 8 и 8.1 - это верх идиотизма. Тем более в современном ЯП, не успевшем обрасти легаси.
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

46. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Аноним (46), 03-Май-24, 02:03 
Не вижу arm в списке.
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

68. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от caralice (ok), 03-Май-24, 05:35 
А седьмая винда существует под арм? У раста есть таргеты относящиеся к арму с виндой, в сортах не разбираюсь:

  • aarch64-pc-windows-msvc
  • aarch64-pc-windows-gnullvm
  • arm64ec-pc-windows-msvc
  • aarch64-uwp-windows-msvc
  • thumbv7a-pc-windows-msvc
  • thumbv7a-uwp-windows-msvc

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

52. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от caralice (ok), 03-Май-24, 03:03 
Windows 7 всё ещё поддерживается, но уже как отдельная Tier 3 платформа (точнее, две платформы: x86_64-win7-windows-msvc и i686-win7-windows-msvc); об этом писали в феврале: https://blog.rust-lang.org/2024/02/26/Windows-7.html
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

99. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Аноним (99), 03-Май-24, 09:31 
А надо - и XP, 2000, 98, 95, 3.1, ReactOS... Поддержка языка программой должна определяться не хотелками авторов компилятора, а задействованными в программе API и несовместимыми фичами формата (при этом должна быть возможность редактором формата подредактировать бинарь, чтобы он и без этих фич заработал на старье).
Ответить | Правка | Наверх | Cообщить модератору

228. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +1 +/
Сообщение от Аноним (227), 03-Май-24, 21:03 
Надо - значит делай. Исходники компилятора открыты всем желающим, качай и патчи как считаешь нужным.
Ответить | Правка | Наверх | Cообщить модератору

248. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +1 +/
Сообщение от Аноним (239), 04-Май-24, 00:29 
Проще использовать другой язык где таких проблем нет.
Ответить | Правка | Наверх | Cообщить модератору

252. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Аноним (252), 04-Май-24, 02:59 
Используй. А пособники Micro$oft будут использовать ванильный компилятор с ванильным рантаймом. Точно так же, как MSVC используют вместо MinGW, навязывая быдлы покупку лицензий на винду и компов под них.
Ответить | Правка | Наверх | Cообщить модератору

272. "Выпуск  Rust 1.78. Язык Borgo, сочетающий сильные стороны Go..."  +/
Сообщение от Аноним (272), 05-Май-24, 01:42 
> Точно так же, как MSVC используют вместо MinGW

Гнутый вендорлок? Это другое, понимать надо!

> навязывая быдлы покупку лицензий на винду и компов под них.

Да, покупать надо у правильных пацанов вроде IBM, Oracle, Canonical или Suse и стоить это будет дороже чем у MS. Всякие анекдоты про community-based дистры в проде рассказывать не нужно ибо давно уже не смешно.

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

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

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




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

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