The OpenNET Project / Index page

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



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

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

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

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

Оглавление

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

1. Сообщение от Аноним (1), 02-Май-24, 23:21   +27 +/
Надо брать лучшее от обоих языков - синтаксис от раста, ГК от го.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #5, #100, #108, #122, #198

2. Сообщение от Дмитрий (??), 02-Май-24, 23:23    Скрыто ботом-модератором+2 +/
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #21

3. Сообщение от Аноним (3), 02-Май-24, 23:26   +5 +/
паскаль -> модула -> оберон
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

5. Сообщение от Аноним (5), 02-Май-24, 23:32   +2 +/
Лучшее это синтаксис от Go и GC от Go.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #6, #97

6. Сообщение от Аноним (6), 02-Май-24, 23:34   +31 +/
Вы не прошли тест на сарказм
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #43

7. Сообщение от Аноним (7), 02-Май-24, 23:36   +7 +/
>Для целевых платформ 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, #46, #52

9. Сообщение от Аноним (7), 02-Май-24, 23:39   +3 +/
>Код на языке Borgo компилируется в представление на языке Go

то есть наследует все наиболее критичные недостатки языка go.

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

10. Сообщение от Аноним (10), 02-Май-24, 23:44   +/
Ты против винды как платформы компиляции или что?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #13, #18, #134

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

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

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

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

15. Сообщение от Аноним (15), 03-Май-24, 00:14   +3 +/
Теперь всё, что было переписано на расте, надо переписывать на Borgo
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #135

16. Сообщение от Ivan_83 (ok), 03-Май-24, 00:16   –3 +/
Кто то ещё не вырос и изобретает свои языки.
Одни запутались в крестах и кривой архитектуре, потому решили что ну его нафиг и для своей гнили изобрели отдельный гнилой язык.
Другие просто фигнёй маятся вместо решения насущих практических проблем.

GO - то понятно зачем: автору хотелось выпендрится а гуглю нужны обезьянки за дёшего, так бы тоже можно было обойтись PHP+LUA.

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

17. Сообщение от Аноним (17), 03-Май-24, 00:19   +1 +/
На Rust и Borgo всё ещё невозможно писать GUI-приложения?! Не нужно.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #27, #279

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

21. Сообщение от Ivan_83 (ok), 03-Май-24, 00:28   –2 +/
Дмитрий, кресты слишком сложные и в изучении и в написании и в отладке.
До того как начать рожать новые языки раз в месяц бездельники накидывали в кресты всякое разное и продолжают это делать до сих пор.

https://github.com/eranif/codelite/issues/3355 кусок со LanguageServerCluster.
В коде там что то типа:
char *path = build()->debug()->server().get_path();
это же полный треш и угар и виноват тут как автор так и язык.
На С до такого бы никогда не дошло, потому что там нет классов и никто бы не стал обмазывать обычные структуры так жирно бесполезным кодом с конструкторами/деструкторами.

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

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

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

26. Сообщение от Буратино (?), 03-Май-24, 00:43   +/
Промазал с веткой
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

27. Сообщение от Ivan_83 (ok), 03-Май-24, 00:43   +5 +/
А на чём их возможно писать?

Серьёзно, я не фонат этих двух языков, но по ИМХО дело не в языках, а в том что за пределами венды нет адекватных графических тулкитов, либо они не очень популярные.

На венде я писал гуёвые проги на вижал бейсике и на С, дёргал WinAPI напрямую, SendMessage(), сублассинг и тп.
Помню когда появилась 2к - там в API добавили совсем каплю, для прозрачности.
И для ХР тоже чуток докинули для тем.
Но все старые проги продолжили работать и работают до сих пор.

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

А тут QT/GTK - ненужно CSS и переписывать приложения раз в 2 года чтобы только они компелялись с новой версией.
Притом я то по сути не против CSS, просто в том же GTK он и нафиг не упал, проще было бы тогда просто в электрон переехать и не страдать от всех этих GOBJECT фиговин, а сразу писать html и указывать именя функций для обработки нажатий и прочего.
И в той же венде не нужен был никакой CSS для того чтобы темы менять. Мы ещё 20 лет назад извращались с WinAPI и делали и дырки в окнах (через которые было не только видно но и кликалось), и кастомной формы объекты.

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

28. Сообщение от Буратино (?), 03-Май-24, 00:44   +5 +/

Те, кто пишут подобное приведённому вами на любом языке напишут плохо.
Раньше C++ был "дефолтным языком для всего" - и благодаря этому нам остались кучи примеров monkey-кода на нём.
Сейчас "дефолтным" стал JS - результат работы JS-обезьян видят все и каждый день с ними соприкасаются.
Сделаете популярно-дефолтной "ржавчину" - будет то же самое, но на ней.

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

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

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

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

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

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

36. Сообщение от Аноним (36), 03-Май-24, 00:54   +4 +/
>Код на языке Borgo компилируется в представление на языке Go
>Код компилятора написан на языке Rust

Не хватает пакетного менеджера, написанного на Dart и системы сборки, написанной на Haskell.

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

37. Сообщение от Астролог (?), 03-Май-24, 00:59   +1 +/
>>новых версий

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

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

38. Сообщение от Аноним (38), 03-Май-24, 00:59   +/
Проекты на нем есть? Мне от внезапно понадобился другой редкий язык программирования. Там сплошная математика исходя из уроков. Пока сейчас компилируется IDE, думаю — за что мне так не повезло в жизни? Ну сделали Borgo и что? Теперь вопрос в комьюнити — сколько людей наберётся под какие проекты?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #47, #84

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

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

Потом я ходил по пути: надо написать свои функции для всего и везде ими пользоватся.
Да, свои 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() компелятор выкинет.

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


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

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

43. Сообщение от Anoni (?), 03-Май-24, 01:46   –2 +/
Анонисты спорят
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

46. Сообщение от Аноним (46), 03-Май-24, 02:03   +/
Не вижу arm в списке.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #68

47. Сообщение от Аноним (46), 03-Май-24, 02:04   +1 +/
>Теперь вопрос в комьюнити — сколько людей наберётся под какие проекты?

Берёшь и снимаешь с ним тикток, на следующий день будет на опеннете.

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

48. Сообщение от Прадед (?), 03-Май-24, 02:21    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору

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

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

лол, никак.

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

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

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

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

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

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

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

52. Сообщение от 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
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #99

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

ой ли.

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

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

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

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

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

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

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

54. Сообщение от Аноним (54), 03-Май-24, 03:26   –2 +/
Golang с человеческим лицом, допиленный для использования человеком и не вызывающий отвращения? Это интересно..
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #76

55. Сообщение от cheburnator9000 (ok), 03-Май-24, 03:31   +2 +/
Язык ` в ` котором ` на ` каждый ` чих ` дичь ` полнейшая ``.

А вот Borgo интересный. Но ответьте, кто знает, в нем также рантайм решает, где хранить объект (stack/heap)? Если да то можете закапывать, ибо все что сложнее примитивного кода у вас будет вызывать раздражение в сложной архитектуре.

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

61. Сообщение от Carantinemail (?), 03-Май-24, 03:43   +/
а где сравнения про вес простого текста в hello w?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #139

62. Сообщение от Аноним (62), 03-Май-24, 03:50   +/
> Проект развивает Marco Sampellegrini, автор книги "The Simple Haskell Handbook" и разработчик системы непрерывной интеграции Quad CI.

Брошенный проект, о котором никто не знает и не использует.

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

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

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

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

65. Сообщение от Аноним (65), 03-Май-24, 05:13   +/
А как ругатели Borgo относятся к Elixir ? :)
Ответить | Правка | Наверх | Cообщить модератору

67. Сообщение от Аноним (67), 03-Май-24, 05:33   +1 +/
Этот язык borgo - Мб он компилируется в go, но написан на расте, что значит, что он тащит весь невменяемый cargo. Синтаксис мб и лучше, но самая большая проблема раста не устранена.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #74

68. Сообщение от 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ообщить модератору
Родитель: #46

69. Сообщение от Аноним (69), 03-Май-24, 05:42   +3 +/
А дерьмом не перестала быть до сих пор. Следующие версии ещё хуже.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #72

72. Сообщение от Юрий (??), 03-Май-24, 05:51   +4 +/
Переходи на линукс
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #227

74. Сообщение от Аноним (76), 03-Май-24, 06:23   +/
Для сборки программы нужно сперва запустить cargo, затем go, пусть выкидывает на мусорку, это не язык, а очередной псевдотранспиллер, иными словами у вас никогда не будет полноценного дебаггкра в нем. Истории "не успеха" nim и vala никого не учат.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #131

75. Сообщение от Роман (??), 03-Май-24, 06:28   +2 +/
В какое место ставит крест?

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

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

76. Сообщение от Аноним (76), 03-Май-24, 06:30   +/
Он всего лишь избавился от if err != nil и от <- в каналах (обе эти сущности gyano обезьяны я согласен полностью). Но йопт нахрена это было делать на rust. Весь язык можно заменить на программу которая будет при запуске генерировать go код, написать LSP и все.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54 Ответы: #258

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

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

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

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

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

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

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

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

79. Сообщение от голос из леса (?), 03-Май-24, 07:05   +1 +/
De##lo, read:

>>  Код на языке Borgo компилируется в представление на языке Go

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

84. Сообщение от Аноним (84), 03-Май-24, 08:24   +1 +/
Какие ешё проекты этот язык заброшен уже 8 месяцев. А в новость его добавили чтобы сделать вид что на расте написаны какие-то проекты. Но проекты на расте достигают неподъмной когнитивной сложности уже на ранних этапах и их забрасыват как и сабж.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

85. Сообщение от Аноним (84), 03-Май-24, 08:25   +/
Я знаю что Борго никто больше не развивает это всё что надо про него знать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #244

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

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

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

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

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

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

97. Сообщение от fuggy (ok), 03-Май-24, 09:26   +1 +/
Не ну действительно, зачем язык который медленный как go и сложный как rust. Rust выбирают потому что быстрый, но не всем понятная система владения. Go выбирают потому что простой как пень.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #119, #133, #187

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

100. Сообщение от Tron is Whistling (?), 03-Май-24, 09:32   +6 +/
Ещё ООП от Javascript - и будет вообще конфетка.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #110

104. Сообщение от n00by (ok), 03-Май-24, 09:46   +/
> В коде там что то типа:
> char *path = build()->debug()->server().get_path();
> это же полный треш и угар и виноват тут как автор так
> и язык.
> На С до такого бы никогда не дошло, потому что там нет
> классов и никто бы не стал обмазывать обычные структуры так жирно

"Классы" в Си всегда были: struct в Си++ это class, где члены public по-умолчанию.
Подобного выше коду в Си - вагон и маленькая тележка, на вид он получится более громоздкий, поскольку передача this явная, потому разделяют на несколько строчек вроде такой:


    /* Curiouser and curiouser... NULL ->open() as "no device" ? */
    if (file->f_op->open)
        err = file->f_op->open(inode, file);

> бесполезным кодом с конструкторами/деструкторами.

Где конструкторы в той строке?

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

108. Сообщение от Пряник (?), 03-Май-24, 10:03   –4 +/
Ещё ни один шутник не догадался явно указать претензии к синтаксису. Пишите объяснительную на имя Евгения ВП.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

110. Сообщение от Middle Go Developer (?), 03-Май-24, 10:15   +1 +/
Стрелочные функции обязательно и самый простой метод отладки через console.log
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #100 Ответы: #138

114. Сообщение от Минона (ok), 03-Май-24, 10:23   +/
А как это выглядело бы на С++?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104 Ответы: #182

116. Сообщение от 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 в Си откуда заимствовано?

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

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

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

119. Сообщение от Пряник (?), 03-Май-24, 10:29   +2 +/
Система владения понятная. Все переменные - это либо значение в стеке (числа, символы, истина/ложь), либо структура в стеке с ссылкой на данные в куче (строка). Второй тип - это способ Rust управлять данными в куче и обезопасить нас от ошибок с кучей. При передачи в функцию значения в куче копируется ссылка на значение в куче, а не само значение. Также и при присвоении другой переменной. Rust следит, куча перемещалась ссылка, делая недействительной прошлую переменную.

Грубо говоря, при передачи кучи в функцию она уходит в неё "с концами" и надо делать return, иначе потеряешь значение. Другой вариант - передавать владение (является даже отдельным типом данных), тогда передаётся ссылка на ссылку на данные в куче. Тогда старая переменная остаётся рабочей, но данные через владения изменять нельзя. Если передать изменяемое владение, то Rust следит, чтобы всегда была только одна такая переменная. Всё.

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

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

122. Сообщение от Аноним (122), 03-Май-24, 10:32   +4 +/
Дополню список всего лучшего для будущих ЯП - синтаксис от Rust, GC от Go, стандартную библиотеку от C, скорость от JS, безопасность от C++
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #142, #172, #173, #210, #250

124. Сообщение от Пряник (?), 03-Май-24, 10:33   +/
Нет, не будет. Синтаксис Rust нарочно такой подробный, чтобы было трудно написать много говнокода.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #126

125. Сообщение от 12yoexpert (ok), 03-Май-24, 10:33   +4 +/
мусор в плюсы сейчас накидывают не бездельники, а очень даже трудолюбивые вредители из компании яндeкc
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

126. Сообщение от 12yoexpert (ok), 03-Май-24, 10:34   +2 +/
вообще в приципе много кода, не только говно-
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #124

127. Сообщение от Пряник (?), 03-Май-24, 10:35   +/
Классов нет в Си, ведь в структуре можно создать ссылку на функцию, но нельзя в этой функции сослаться на эту структуру. То есть никакого self.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104 Ответы: #165, #180

128. Сообщение от Пряник (?), 03-Май-24, 10:37   +/
Ну запусти в Wine.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #241

131. Сообщение от 12yoexpert (ok), 03-Май-24, 10:42   +/
вот кстати да, nim - прикольный язык, пока тебя не задолбает расставлять echo

дебажить как бы можно, но сгенерированный сишный код, т.е. дебаггера нет

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

133. Сообщение от zog (??), 03-Май-24, 10:51   +2 +/
> зачем язык который медленный как go

Почему ты решил, что Go медленный?

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

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

135. Сообщение от zog (??), 03-Май-24, 11:03   +/
И компилировать Go... ну ты понял, что сморозил пургу.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #194

136. Сообщение от Пряник (?), 03-Май-24, 11:17   +/
Всё это уже есть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

138. Сообщение от 12yoexpert (ok), 03-Май-24, 11:21   +2 +/
и побольше =
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110 Ответы: #167

139. Сообщение от Пряник (?), 03-Май-24, 11:21   +/
Зависит от кодировки. В Rust по умолчанию utf8.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61

142. Сообщение от 12yoexpert (ok), 03-Май-24, 11:23   +/
а чем GC от golang лучше GC от джавы?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122 Ответы: #247

148. Сообщение от tcpip (??), 03-Май-24, 11:52   +3 +/
Да нафиг надо ещё один ЯП! Есть старые, проверенные временем python, java, c++
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #151, #157, #160, #295

151. Сообщение от Пряник (?), 03-Май-24, 11:57   +/
Скорее нафиг ещё один синтаксис, если синтаксис почти не влияет на результат и не прибит гвоздями к процессу компиляции. Внезапно, можно добавить в C++ синтаксис Python и т.д. и не изобретать ещё один ЯП.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #148 Ответы: #243

157. Сообщение от Аноним (157), 03-Май-24, 12:06   +2 +/
> Есть старые, проверенные временем python, java, c++

Удачный вброс. Поместил свой "python" рядом с нормальными языками - и он уже не кажется таким убогим?

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

160. Сообщение от Аноним (160), 03-Май-24, 12:15   +/
не надо python... Совсем не надо...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #148 Ответы: #169

165. Сообщение от Аноним (165), 03-Май-24, 12:36   +/
>но нельзя в этой функции сослаться на эту структуру

Никто не мешает Вам сделать это явно obj.vtbl->myfunc(&obj, param);

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

167. Сообщение от Middle Go Developer (?), 03-Май-24, 12:42   +3 +/
Ну это то нужно. Вдруг данные не пришли и null, а не '', 0 или []
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #138

169. Сообщение от Афанасий (?), 03-Май-24, 12:46   –1 +/
А что нужно?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #160 Ответы: #190

170. Сообщение от Аноним (170), 03-Май-24, 12:48   +/
Добрый день! А есть язык программирования, сочетающий сильные стороны Visual Basic и Rust?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #181, #185, #186, #196, #202

172. Сообщение от Аноним (172), 03-Май-24, 12:50   –1 +/
Скорость от питона, у JS с этим как разно норм.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122 Ответы: #191

173. Сообщение от Аноним (173), 03-Май-24, 12:55   +/
Безопасность лучше от чистого C
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122 Ответы: #240

177. Сообщение от Аноним (177), 03-Май-24, 13:03   +2 +/
Все проходит и это пройдет. (С) Соломон
Ответить | Правка | Наверх | Cообщить модератору

180. Сообщение от n00by (ok), 03-Май-24, 13:29   +/
На самом деле классов в понимании ООП нет в Си++. class это struct из Си, где по умолчанию область видимости private. У class нет никаких методов, есть функции-члены. Как только кто-то начинает говорить об ООП в Си++ в противовес чему-то там на Си, можно начинать делить его аргументы на 360°. В Си всё примерно тоже самое, Страуструп начал с того, что пытался уменьшить количество писанины и диагностировать часть ошибок.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #127

181. Сообщение от Аноним (157), 03-Май-24, 13:30   +/
Есть не язык, а типичный подход. Кроссплатформенная разработка, предполагающая интерфейс на достаточно простом и удобном VB или его вариантах, а интенсивные вычисления на компилируемом языке.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #170

182. Сообщение от n00by (ok), 03-Май-24, 13:36   +/
Вот функция целиком:

static int usb_open(struct inode *inode, struct file *file)
{
    int err = -ENODEV;
    const struct file_operations *new_fops;

    down_read(&minor_rwsem);
    new_fops = fops_get(usb_minors[iminor(inode)]);

    if (!new_fops)
        goto done;

    replace_fops(file, new_fops);
    /* Curiouser and curiouser... NULL ->open() as "no device" ? */
    if (file->f_op->open)
        err = file->f_op->open(inode, file);
done:
    up_read(&minor_rwsem);
    return err;
}

file->f_op->open(inode, file);

f_op - это таблица виртуальных функций. То есть было бы:

file->open();


replace_fops(file, new_fops);
/* Curiouser and curiouser... NULL ->open() as "no device" ? */
if (file->f_op->open)

Можно было считать аналогом dynamic_cast, если бы не вопрос в комментарии. Основная проблема переписать именно это на Си++ - код в ядре, исключения кидать может быть не уместно.

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

185. Сообщение от Аноним (185), 03-Май-24, 13:50   +/
Чё то мелко плаваешь. Ищи уже тогда сочетание брэйнфака и пролога, заправленное макропроцессором M4. Хотя пролог сам по себе тот еще брэйнфак.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #170 Ответы: #201

186. Сообщение от Аноним (-), 03-Май-24, 13:57   +/
> Добрый день! А есть язык программирования, сочетающий сильные стороны Visual Basic и Rust?

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


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

187. Сообщение от Аноним (265), 03-Май-24, 14:00   +/
Система владения понятна, здесь нет ничего особенного. А синтаксис, и заигрывания с синтаксисом из функциональщины, - ужас. И есть немного ложечек дерьма вроде пропаганды засовывания UT в комментарии к методам.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97 Ответы: #231

189. Сообщение от AKTEON (?), 03-Май-24, 14:08   +2 +/
>char *path = build()->debug()->server().get_path();

Это как раз написано легко и понятно, аки в Библии.
Вот когда шаблон, параметризируемый типом , который сам шаблон переопределенный в хрен знает каом файле последством макросана 2 с половиной экрана - вот там без бутылски или understand scitools не разберешся....

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

190. Сообщение от 12yoexpert (ok), 03-Май-24, 14:08   +/
докопаться до языка, который тебе назовут
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #169 Ответы: #205

191. Сообщение от Аноним (265), 03-Май-24, 14:09   +/
Не, норм как раз у питона, он по крайней мере не даёт ложных обещаний и не треубет вагон памяти за лапшу на ушах
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #172

192. Сообщение от AKTEON (?), 03-Май-24, 14:10   +/
На Жабе- великой и ужасной,бгг
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

194. Сообщение от Аноним (265), 03-Май-24, 14:15   +/
Проблема банальнее - люди в массе тупые и программисты не исключение. В том числе, которые пишут новые ЯП и которые считают, что существующих ЯП достаточно и ничего больше делать не нужно. Со временем повышается порог вхождения в профессию и сейчас делать новый ЯП лучше других могут только по настоящему яйцеголовые.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135

196. Сообщение от AKTEON (?), 03-Май-24, 14:32   +/
(С прищуром змея в Эдеме) Молодой человек, а пробовали ли вы изучить Scala ?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #170

198. Сообщение от Аноним (198), 03-Май-24, 15:02   +/
Лучшее - это без GC.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

201. Сообщение от Прадед (?), 03-Май-24, 15:37   +/
m4 нетрошь, эта святое!!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #185 Ответы: #255

202. Сообщение от Прадед (?), 03-Май-24, 15:37   +/
Сишарб и дотнет
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #170

203. Сообщение от Прадед (?), 03-Май-24, 15:40   –1 +/
Все такие: а нахрена этот язык? А автор такой пожимает плечами. В отпуске был наверное.

Если же в рабочее время сделал, то это любопытно, с точки зрения атмосферы, скажем так, если вы понимаете о чём я

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

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

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

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

205. Сообщение от Афанасий (?), 03-Май-24, 16:21   +/
И зачем докапываться до указанных языков?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #190 Ответы: #208

208. Сообщение от 12yoexpert (ok), 03-Май-24, 16:35   +/
самоутверждаться
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #205 Ответы: #263

210. Сообщение от Бывалый Смузихлёб (ok), 03-Май-24, 16:42   –1 +/
Только на жс скорость весьма неплохая при норм выставленных параметрах джит )
Некоторые ругались на медленность жс, особенно раньше. И даже не задумывались, что претензии даже не к жс, а к работе с ДОМ, за которую отвечает браузерное двигло. Сам по себе жс - весьма шустрая штука

По плюшкам, добавил бы крейтсы от раста ну и нпм/пихон-модули, куда же без них. Хотя у доджо вроде ещё лучше - там бывали тупо прямые ссылки на репозитории

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

220. Сообщение от Советский инженер (ok), 03-Май-24, 19:12   +/
>но сгенерированный сишный код, т.е. дебаггера нет

и в чем проблема? деманглер некому написать?

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

224. Сообщение от cheburnator9000 (ok), 03-Май-24, 19:44   +/
https://plugins.jetbrains.com/plugin/15128-nim тут есть, тут прекрасная поддержка nim, ну до какой степени ее может реализовать один разработчик, но у них сразу 2 проблемы: плагин не своевременно обновляет поддержку новых релизов IDE (да можно сидеть на старой вообще без проблем), а самое главное он практически не развивается.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #220 Ответы: #229, #256

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

227. Сообщение от Аноним (227), 03-Май-24, 20:59   +1 +/
После чего поймешь что винда очень даже неплохая система.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #284

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

229. Сообщение от тыквенное латте (?), 03-Май-24, 21:03   +/
> Support for 2024.1
> Plugin Versions
> Apr 11, 2024
> Version 1.5.4-223

ого, да он же уже того... сдох.

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

231. Сообщение от Пряник (?), 03-Май-24, 21:31   +/
Что за UT? Unreal Tournament 99?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #187 Ответы: #232

232. Сообщение от Аноним (265), 03-Май-24, 21:37   +/
Unit Test, конкретно в rust называется Documentation Tests
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #231

233. Сообщение от Ivan_83 (ok), 03-Май-24, 21:47   +/
Нет, это не оно. )

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

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

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

235. Сообщение от 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ообщить модератору
Родитель: #116 Ответы: #280

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

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

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

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

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


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

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

237. Сообщение от Ivan_83 (ok), 03-Май-24, 22:14   +/
strlen() это memchr(,, 0x00) :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #121

238. Сообщение от cheburnator9000 (ok), 03-Май-24, 23:36   +/
Он не сдох, он в режиме поддержки доступности для новых версий Idea и все. Новых разработок в нем нет, потому что нет ни людей на проект ни, по-видимому, у них желания.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #229

239. Сообщение от Аноним (239), 03-Май-24, 23:47   –2 +/
И ради этого нужно городит отдельный язык с мудреным синтаксисом и фанатично требовать переписать на него все программы на свете? Да это можно было бы реализовать небольшим расширением синтаксиса Си и парой новых опций компилятора. Но кому=то очень хочется контроля.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #119 Ответы: #265, #281

240. Сообщение от Аноним (239), 03-Май-24, 23:49   +/
А там ее никому и не обещали. Нужна безопасность - делаешь безопастно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #173

241. Сообщение от Аноним (239), 03-Май-24, 23:55   +/
Не в этом проблема, сначала прочитай на что отвечаешь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #128

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

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

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

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

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

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

243. Сообщение от Аноним (239), 04-Май-24, 00:02   +/
Почему тогда Rust не сохранил простой и понятный синтаксис Си а изобрел свои каракули?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #151 Ответы: #285

244. Сообщение от Аноним (239), 04-Май-24, 00:12   +/
Почему же, активность в репозитарии есть, запрос общества на чистый синтаксис есть, может не сейчас, но шанс взлететь у него есть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85

247. Сообщение от Аноним (-), 04-Май-24, 00:23   +1 +/
> а чем GC от golang лучше GC от джавы?

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

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

248. Сообщение от Аноним (239), 04-Май-24, 00:29   +1 +/
Проще использовать другой язык где таких проблем нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #228 Ответы: #252

249. Сообщение от Аноним (239), 04-Май-24, 01:26   –1 +/
>язык программирования Borgo, который пытается быть более выразительным, чем язык Go, но менее сложным, чем язык Rus

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

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

250. Сообщение от Bottle (?), 04-Май-24, 02:03   +/
C++ безопасен, если не использовать навороты из обычного Си.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122

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

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

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

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

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

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

253. Сообщение от Аноним (253), 04-Май-24, 03:08   +/
Ну вот это кстати неплохо придумано. И вообще borrow. Плохо - постоянный перетряс и зависимость от мегакорпов, увы и ах.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #119 Ответы: #282

255. Сообщение от Афанасий (?), 04-Май-24, 03:27   +1 +/
M4 – ископаемое из докембрия. Ему место в палеонтологическом музее.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #201

256. Сообщение от Аноним (256), 04-Май-24, 05:59   +/
жаль, это проприетарная и крайне тормозная ide

надо посмотреть, как там всё реализовано

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

257. Сообщение от Аноним (-), 04-Май-24, 09:42   +/
>Нужно признать что в С нет строк,

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

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

258. Сообщение от Аноним (258), 04-Май-24, 09:47   +/
Справедливости ради тут ещё ADT, которого в go тоже не хватает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

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

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

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

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

262. Сообщение от Ivan_83 (ok), 04-Май-24, 11:50   +/
Так это вопрос интерпретации стандарта, не более.

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

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

263. Сообщение от Аноним (263), 04-Май-24, 13:44    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #208

264. Сообщение от lavren1974 (ok), 04-Май-24, 14:18   +1 +/
А ничего, что у borgo последний коммит был 8 месяцев назад? То есть, он уже практически не живой.
Ответить | Правка | Наверх | Cообщить модератору

265. Сообщение от Аноним (265), 04-Май-24, 17:52   –4 +/
Си язык дохлый и убогий, в нём ничего нельзя реализовать. Однако плюсы потихоньку сахарят подобную логику. Rust как минимум подходит где нужен ЯП вроде с++, но плюсы нельзя засунуть из-за отсутствия ABI
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #239

267. Сообщение от тыквенное латте (?), 04-Май-24, 18:00   +/
> Так это вопрос интерпретации стандарта, не более.

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

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

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

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

268. Сообщение от Аноним (-), 04-Май-24, 18:33    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #157

271. Сообщение от Аноним (271), 04-Май-24, 23:39   +/
>> зачем язык который медленный как go
> Почему ты решил, что Go медленный?

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

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

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

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

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

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

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

274. Сообщение от Аноним (-), 05-Май-24, 06:41   +/
В стандарте чистаго Си про строки, ничего не написано.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #267 Ответы: #275

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

276. Сообщение от S22 (?), 05-Май-24, 12:22   +/
Есть аналоги rust живые?
Ответить | Правка | Наверх | Cообщить модератору

278. Сообщение от Аноним (278), 05-Май-24, 17:59   +/
Если кто не в курсе - язык Borgo назван в честь актрисы IngeBorga Dapkunaite - такой же непостоянный и глючный, пытающий совместить в себе 2 култруры, но так и остающийся чужим для всех.
Ответить | Правка | Наверх | Cообщить модератору

279. Сообщение от Проходил мимо (?), 06-Май-24, 07:25   +/
На Rust возможно писать GUI приложения. Вы просто не в теме.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17

280. Сообщение от 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ообщить модератору
Родитель: #235

281. Сообщение от Пряник (?), 06-Май-24, 18:24   +/
Язык Rust и есть это самое небольшое расширение. А не нравится синтаксис - иди haskell/erlang/lisp учи. Языков миллион, но надо именно к Rust придраться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #239

282. Сообщение от Пряник (?), 06-Май-24, 18:27   +/
Не понимаю зависимости. Вроде бы язык Rust открытый полностью и Open Source. Любой форкнуть может. Тут скорее зависимость от LLVM, ибо Rust поверх него построен. Но тот тоже Open Source.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #253

283. Сообщение от Пряник (?), 06-Май-24, 18:33   +/
И потом обернуть в макрос, чтобы писать короче. Это будет ООП на уровне синтаксиса, а не компилятора. Нельзя на Си написать функцию, которая знает адрес структуры, в которой она находится. Скомпилируй в ассемблер через ggc --save-temps и посмотри.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #165 Ответы: #287

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

285. Сообщение от Пряник (?), 06-Май-24, 18:42   +/
Ну незнаю. Мне Rust больше напомнил Python. Когда уже будет конкретика?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #243

286. Сообщение от Пряник (?), 06-Май-24, 18:50   +/
Если писать своё мнение никак не аргументируя, то его обязательно все выслушают и примут к сведению. Что C++, что Java возникли и развились, как недоразумение, выносящее людям мозг. Почему Java не ругают за тормоза также, как и Python? Если Си это выстрел себе в ногу, то С++ это отпиливание и сжирание своей ноги вместе с костью. Мощное комбо из свободы действий и этих богатства действий.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #157

287. Сообщение от Аноним (165), 07-Май-24, 05:00   +/
> Это будет ООП на уровне синтаксиса, а не компилятора.

Вам шашечки или ехать ?
>Скомпилируй в ассемблер

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

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

288. Сообщение от Пряник (?), 07-Май-24, 11:01   +/
Результат в виде машинного кода или ассемблера важнее всего. Ведь это именно то, что и будет выполнять процессор.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #287 Ответы: #289

289. Сообщение от Аноним (165), 07-Май-24, 11:08   +/
Ну так там отличий и нет. Разве, что способ передачи параметров может отличаться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #288 Ответы: #290

290. Сообщение от Пряник (?), 07-Май-24, 15:23   +/
Не проверял, но отличия есть. Иначе не стали бы о наличии ООП отдельно в особенностях языков указывать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #289 Ответы: #291

291. Сообщение от Аноним (165), 07-Май-24, 15:50   +/
Я вот как раз проверял ещё в юности при фанатичной увлечённости Ассемблером. На низком уровне объект это просто указатель на структуру передаваемый первым параметром и не более того. В случае MSVC это параметр передаётся через ECX. Если у класса есть виртуальные методы, то первым параметром структуры идёт указатель на таблицу методов. ООП делают ради китов ООП полиморфизма, изоляции, инкапсуляции, наследования, что снижают вероятность выстрелить себе в ногу и дают немного сахара. Си может имитировать ООП в части логики, но запретить редактировать содержимое структур функциям не имеющим отношения к классу не может.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #290 Ответы: #292

292. Сообщение от Пряник (?), 07-Май-24, 17:31   +/
Никогда не понимал зачем приватить что-то в классе? Берёшь просто и не используешь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #291

294. Сообщение от Русский хакер (?), 10-Май-24, 00:52   +/
Вопрос знатокам, а это Borgo JSON распарсить сумеет? Избавились ли там от такого "прикола", как в Go — язык для "бекенда", но при этом не могущий распарсить JSON?
Ответить | Правка | Наверх | Cообщить модератору

295. Сообщение от burjui (ok), 18-Май-24, 01:17   +/
COBOL ещё более проверен временем.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #148


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

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




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

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