В этом ИТТ мы можем объяснить базовые и продвинутые концепции языка, и программирования в целом, поможем вкатывающимся, подскажем что выбрать для веба, игр или, прости Абу, блокчейна.
>>2898165 Омерзительный си++ с его дебильным синтаксисом. Пиши правильно. > Омерзительный си++ с его дебильным синтаксисом лучше чем раст. Хаха! Как смешно. А ты смешная нейросеть, я обозначу твой лайфтайм последней буквой алфавита.
>>2898183 >Омерзительный си++ с его дебильным синтаксисом. Двачаю каждый раз после работы с ним приходится мыть глаза и руки. Говно для дедов никак не помрет
Еще даже ничего толком не вкинули, а растобляди уже порвались, лол. Ну кроме истеричек и ебанутых этим поделием никто не будет пользоваться, это и давно понятно.
>>2898801 Однозначно го, ибо применяется только для микрописек в вебе. Растошизики сейчас перепишут дохуя всего и сожмут анальными клещами яйца кабанов. Поддерживать же надо.
>>2898810 > Растошизики сейчас перепишут дохуя всего Вы говорите об этом так, будто это что-то плохое. Переписываем. И что ты мне сделоеш? Шизиком обзовёшь? Да хоть горшком обзови. Я отбираю у тебя индустрию, а ты можешь только ржавожопить в моих тредах.
Бля, видимо, царь был прав, когда говорил, что болезные таким образом компенсируют свою ущербность, собираясь в кучки нитакусиков. Руби, хачкель, вот теперь раст. >Я отбираю у тебя индустрию, а ты можешь только ржавожопить в моих тредах. Вот примазался к некому илитарному сообществу, присвоил чужие заслуги и теперь ты не ничтожество ебаное, а член сообщества интеллектуалистов, двигатель истории.
>>2898851 >Переписываем. Еще бы этим переписанным кто-то реально пользовался. Классическое "переписывание на руст" выглядит так:
Взяли что-то известное, начали переписывать. RIIR! Анонсы по всему интернету! Такие же рустодрочеры налепили звездочек на гитхабе, нихуя нормально не работает, но все знают что это ПОБЕДА @ Проходит время, проект явно затормаживается. Ведущий разраб уже наигрался и пилит что-то другое. Начинается важный этап в жизни проекта - придумывают CoC, лепят радужные флаги, срачи в ишшуях, банят недовольных, вот это все @ Все, пиздец, проект сдох, забыли и забросили. Последний коммит год назад (убрали оскорбление меньшинств из комментария в коде). @ Всем уже похуй, переписывают следующее
>>2898883 >Руби Кстати довольно интересная штука для своего времени была, много на что повлиял и много чего подарил миру как сам руби, так и рельсы. Но всякие вкатуны даже не удосужились почитать о нем прежде чем писать сюда
>>2899111 В ядро раст затащили, а плюсы не затащили. Плюсовикам сосать Гугл потихоньку переписывает ведроид на расте - с каждым релизом всё больше В месе Rusticl уже практически стал официальной реализацией OpenCL
ну и так далее. А теперь перечисли системные языки без сборщика мусора, которые появились в последние 20, да даже 30 лет и могли бы похвастаться чем-то подобным.
>>2898883 >Руби Я в своё время (первых айфона и хипстеров) топил против руби, как ты сейчас против раста. Но там было отличие: руби был слишком ненамного лучше (а лучше ли?) пайтона и создавал ненужную конкуренцию в одной нише. Пайтон уже тогда был с кучей батареек, а руби ничем, кроме рельс, похвастаться и не мог. При этом руби не решал ни одной питон-специфичной проблемы, просто был чуть более модным.
Раст же на несколько голов лучше плюсов - и тулингом, и безопасностью, и макросами, и отсутствием null. Этим не могли похвастаться предыдущие убийцы сей, в вот раст может. Время пришло, Рим рушится на твоих глазах, центурион.
>>2899252 > Время пришло, Рим рушится на твоих глазах, центурион. Я родился слишком поздно для великих географических открытий. Я родился слишком рано для освоения космоса. Но! Я родился вовремя, чтобы своими глазами увидеть закат эпохи СИ.
>жидолобби и копрораты немного продавили язык >ряяя закат эпохи, конец Лол. Пока что у языка не будет альтернативного компилятора, который можно написать за пару недель, то о замене Си даже речи идти не может. То что есть сейчас - это анальнокорпоративное трансоподелие. Там, кстати, проект по формализации и стандарьизации раста для критических систем загнулся)
>>2899246 >В ядро затащили >Гугл потихоньку >уже практически
> RIIR! Анонсы по всему интернету!
<-- вы находитесь здесь
Ну показывай уже, не стесняйся - что там полностью переписали на руст, и мы этим пользуемся каждый день. Пока вижу только вскукареки и пуки каждый год. И каждый год одно и то же
> Пока что у языка не будет альтернативного компилятора, который можно написать за пару недель Нахуй не нужон. Делаешь под свою архитектуру бекенд для llvm, описываешь в target'е и кросскомпилишь для нее свой хеловорд > Там, кстати, проект по формализации и стандарьизации раста для критических систем загнулся) Пруфы что загнулся сейчас здесь, в одной с тобой комнате?
>>2899316 >Нахуй не нужон НИНУЖНА. Классика, да. Язык который претендует на замену фундаментального ЯП определенно должен быть под контролем корпов и разноцветными фашистами.
>Пруфы что загнулся сейчас здесь, в одной с тобой комнате? Ну когда коммерческий проект открывает код и прекращает разработку, то это со мной в комнате или нет?
>>2899299 >полностью А тебе зачем полностью? Большие проекты, типа blender/inkscape/chrome, не один десяток лет пилятся, там ебанёшься всё полностью переписывать. Хватает того, что сейчас всё больше новых проектов с нуля пишется на расте, а что-то и переписывается потихоньку. Вон, в пиндосских банках до сих пор код с КОБОЛа переписать не могут - говорит ли это о том, что КОБОЛ охуенней раста? Нет. Говорит ли это о том, что он охуенней плюсов? Да, так как в логике плюсодебила именно это и является критерием охуенности.
Вообще, само то, что у раста охуенно сделан FFI и он заточен на то, чтобы на него переписывали, это одна из киллер-фич.
>>2899323 > под контролем корпов и разноцветными фашистами. И rust и llvm под лицензией apache 2, форкай сколько угодно и развивай своей армией коммунистических монохромных традиционал-патриотов, делов-то. А самопальные компиляторы в нативный код после появления llvm - удел студентов и поехавших борщехлёбов.
> Ну когда коммерческий проект открывает код и прекращает разработку, то это со мной в комнате или нет? Все что хотели - влили в апстрим и опенсорснули, остальное пилят внутри конторы и посталяют за деньги. О полном прекращении разработки речи нет.
>>>Избавляемся от мерзкого дедовского легаси говна, переписываем все на руст >>Покажи что-то полностью переписанное >ебанёшься всё полностью переписывать
>>2899367 >И rust и llvm под лицензией apache 2, форкай сколько угодно и развивай своей армией коммунистических монохромных традиционал-патриотов, делов-то. А самопальные компиляторы в нативн Ты понимаешь, что даже внутри растосообщества случился раскол между шизами и создали форк под названием crab? Язык полностью подзалупен и управляется корпами, которые current things тебе в новости про обновления компилятора пихают. Плюс llvm не все фичи раста позволяет реализовать, ну это так, к слову.
>>2899383 >форк под названием crab Ещё более маргинальная хрень, чем был libav в своё время. Без корпов, увы, никуда. Корпы не будут доверять тому, чем не управляют. В этом плане расту нехватает своего Линуса Торвальдса, который бы вёл чёткую линию и не давал корпам превратить проект в такое же болото, в которые вырождаются все их корповские поделия.
Во всяком случае, мы живём в интересные времена. Чую, к тому моменту, когда допилят альтернативу заболоченному расту, скажем, условный vale, какой-нибудь GPT 5~6 можно будет попросить переписать все растовские крейты на эту самую альтернативу (и, более того, впоследствии апдейтить их таким же образом).
> Ты понимаешь, что даже внутри растосообщества случился раскол между шизами и создали форк под названием crab? Вот видишь, захотели и создали, молодцы же. Не самый большой скандал в опенсорсах btw
> Язык полностью подзалупен и управляется корпами, которые current things тебе в новости про обновления компилятора пихают. О божечки, неужели корпы забороли гениальных одиночек? Да и хуй с ними, ведь это значит, что раст нужен не только энтузиастам, но и бизнесу.
> Плюс llvm не все фичи раста позволяет реализовать, ну это так, к слову. И это все равно больше, чем у всех вместе взятых компиляторов си, и управляемых корпами, и самопальных
>>2899390 А, ну то есть ты понимаешь, что в 90-е переписывая на кресты, получили еще большую кучу говнокода - но уже и на си и на си++.
А теперь к этому добавился зоопарк из скриптового софта, сортов джавы и веба.
Тогда загадка - почему ты не понимаешь, что все это останется и никто ничего особо не перепишет.
Максимум что будет - это появится еще какой-то софт на еще одной экзотической херне. И буквально через несколько лет история повторится, на поехавших рустовиков будут смотреть как сейчас на каких-нибудь рубистов. А может и хуже, вы кроме того что нетакусики, еще и душните своей повесточкой
>>2899481 Короче, я сам загуглил. Как я понял, суть токова: Есть некий Жанхейд, матёрый сишник и представитель ЛГБТБЛМ, который, сокрушался, почему на конфах по расту нет чернокожих. В руководстве фонда-раст нашлось пара правачков с яйцами, которые пидорнули Жанхейда с роли главного докладчика. Жанхейд, разумеется, поняв, что ему там не рады со своими вскудахтами про нигеров, отказался выступать. После чего все пидоры и сочувствуюшие с рёвом и соплями сбежали из фонда.
Только я не понял, почему местный набигатор обвиняет раст в повесточке? Тут ситуация ровно наоборот.
>>2899453 >в 90-е переписывая на кресты, получили еще большую кучу говнокода - но уже и на си и на си++ Потому и говнокода, что плюсы от говна толком не избавились, только парадигмой новой поверх намазали. А тут тебе и говна нет, и тулинг замечательный.
>буквально через несколько лет история повторится Только, если новая херня будет настолько же лучше раста, насколько раст лучше плюсов. Если такая появится, я первый на неё переползу.
Хаять раст сейчас, это как хаять айфон в 2008 - кнопочное говно ещё шевелится, но всем уже всё понятно. "А потом выдумают телефон вообще без экрана, хи-хи-хи, ха-ха-ха".
Поясните, зачем нужен раст в принципе? Почему просто не юзать джаву везде? Вы скажете, жава жрёт память, но позвольте, пусть приложуха на спринге жрёт 300 мегов оперативки, да ради бога. Это константный расход, при постоянно дешевеющей и увеличивающейся памяти. Через 10 лет у нас будут по терабайту оперативки в устройствах, а джава будет сжирать всё те же 300 мегов. Но это же вообще капля. При этом мы получаем быстродействие, мультиплатформу, безопасность и язык полностью опенсорсный. Хочешь - пиши свою реализацию JVM и юзай. Где я неправ?
>>2899503 Это биомусор из мозиллы. Следи за руками: Мозилла, будучи на пике, в начале 2010-х выкатывает FirefoxOS, Rust и Servo. А потом случается такая нездоровая хуйня. Мозилла, как некоммерческий фоундейшн, получающий деньги, в том числе, от фондов, уже тогда немного зависела от пидорасов. И в 2014 году случился скандал - за недостаточную толерантность к жопотрахам из мозиллы попёрли основателя Брэндона Эйха. После этого мозилла окончательно оказалась во власти пидорасов и сделала ставку в своём развитии не на расширение пользовательской базы браузера, а на расширение штата пидорасов, за которых щедро донатят фонды. В итоге скатилась в то, что имеем, и я даже рад, что раст эвакуировали с этой тонущей залупы. Сейчас у меня есть надежда, что пришедшие корпы аккуратно вытеснят оставшихся выставочных пидорков, так как фонды уже не особо нужны корпы будут давать бабло за ехать, а не за шашечки.
>>2899503 Загуглил. Любопытно. Пикрелейтед. И я это двачую. Есть язык, а есть люди, ебанашки, которые постят повесточку и политоту в блоге. Ебанашки проживут свои 70 лет и вымрут. А язык вечен.
>>2899511 Гугли Concurrent modification exception Раст безопаснее даже джавы. Ну это помимо того, что многие алгоритмы на джаве тормознее в десятки раз.
>>2899511 Потому что это системный язык программирования, т.е. предполагается что на нём можно написать ОС или её компоненты. Джава требует виртуальной машины и не подходит для такой задачи.
>>2899511 > Поясните, зачем нужен раст в принципе? Ну как бы тебе на пальцах обеснить. Ну смотри. Все ездили на запорожцах, а потом внезапно на рынке появились мерсы, ауди, форды. И ты такой, владелец запорожца выходишь и говоришь: > Поясните, зачем нужен мерс в принципе? Почему просто не юзать запорожец везде? Вы скажете, запорожец жрёт бензин, но позвольте, пусть запор на МККП жрёт 300 литров бенза, да ради бога. Это константный расход, при постоянно кривых и ухабистых дорогах в моём селе. Через 10 лет у нас рассыпятся последние асфальтовые дороги, а запор будет сжирать всё те же 300 литров. Но это же вообще капля. При этом мы получаем проходимость, дырку для подлёдной рыбалки в днище, задний привод и отремонтировать можно хоть в чистом поле проволочкой и изолентой.
>>2899520 А что там выше чувак про ллвм писал? Хочу разобраться. >>2899367 > самопальные компиляторы в нативный код после появления llvm - удел студентов и поехавших борщехлёбов
>>2899527 "виртуальная машина" в llvm - это хайповое название для IR, который появляется после парсинга/синтаксического анализа исходников фронтендом. Когда бекенд компилит IR в машинные коды, там уже нет никакой виртуальной машины.
>>2899522 Так это как раз всякие растоманы и хотят ездить на условной механике и без электроники, чтоб машину чувствовать и можно в гараже было вручную перебрать. Вот хочется им работать сцеплением, иметь возможность влезть в говна и с раскачки выехать из них, под горочку машинку заглушить и сэкономить байтики бензинчик, потом гордиться этим. Я же предлагаю принять технический прогресс и ездить на автомате с кучей электроники и ассистентов.
>>2899543 Бред. Принцип заимствований - это автоматика невиданная доселе ни в одном языке. Это изменение в подходе к кодингу на принципиально ином уровне. Если продолжать аналогию с транспортом, раст предлагает электрический тесламобиль вместо мерса.
>>2899547 Чушь. Условно вы механическую коробку без синхронизаторов с двойным выжимом сцепления (язык си) хотите заменить той же механической коробкой только с синхронизатором. Тот же Столяров с ВМК говорит, что раст не нужен. А он умный дядька
>>2899548 Там где нужна скорость, а именно в умножениях матриц, там уже всё написано. И даже не на сишечке, а на фортране. Прикинь, весь современный мышелёрнинг держится на дедовских формулах в фортране, которые дёргаются из питона. Раст не нужен. Живите теперь с этим.
>>2899608 >Прикинь, весь современный мышелёрнинг держится на дедовских формулах в фортране Самое, блядь, смешное, что в C99 ввели т.н. VLA, чтобы бумерки могли перекатиться с фортрана, в итоге, где эти ваши VLA? Про раст вообще молчу.
>>2898883 Был свидетелем как в го накручивали звезды гитхабе между собой, но большая странность была это координация в выравнивании минусов на хабро-комментах. В ру говорящем топовом чате котлина, местные токсики низводили людей пассивной агрессией и лобызались только перед друг другом.
Так что да, это странно для технических грамотных людей, то фанатики, то завуалированное развлекающиеся быдло.
>>2899511 > Через 10 лет у нас будут по терабайту оперативки в устройствах Через 10 лет в абсолютном большинстве устройств будет ОЗУ столько же, сколько и сейчас - в районе пары килобайт. И раста там никогда не будет, поскольку он нафиг не нужен на устройствах, где не используется динамическая аллокация. А джава, кстати, на некоторых есть и будет в виде уродца Java Card.
>>2899623 >в C99 ввели т.н. VLA, чтобы бумерки могли перекатиться с фортрана Голой сишкой в около-HPC никто не пользуется. Кроме фортрана это питон, плюсы (и CUDA), потому что там все либы и софт.
>>2899514 Ну и нахуя в технические анонсы релизов пихать политоту? В чем смысл?
Вот представь, какой-нибудь clickhouse в анонсе релиза навалит кринжа про Израиль и гоев. Или там про вековую дружбу Чечни и ДНР. Зачем? Чтобы что?
Я бы после таких ходов постарался держаться от проекта подальше. Хуй знает что у них там в повесточных башках творится.
Щас они просто в бложек пишут недовольные. А потом что, начнут протестваре подсовывать по гео ай пи? Что-то нет доверия к настолько социально активным ебанашкам
>>2899766 Даунич, ты хоть понимаешь, что это такое? Например, прилетел у тебя из сишной либы пойнтер на что-то, что должно быть цветной картиной 64х64, разраб мамой клянётся. А там черно-белая и выход за границы. Вот в таком случае оборачиваешь свой код в ансейф, сжимаешь кулачки, анус и доверяешь сишному разрабу.
>>2899872 Память текла, это не обязательно ансейф, прикинь. В расте всего 3 способа потечь памятью, из них 2 прямо так и заявлены (leak и forget), третий - создать циклические ссылки через RC. Собственно он и есть единственный способ случайно добиться от безопасного (без ансейф) кода на расте чего-то вроде UB (если считать таковым прибитие проги по OOM).
>>2899892 Иии? Я же писал в предыдущем треде - тебя, долбоёба, должен волновать твой код. Те либы, которые ты используешь с 10к загрузок и выше, или написаны более умными людьми, или отсмотрены и оттестированы на 100 рядов. Если же либа непопулярная, rg unsafe crate_name в помощь.
>>2899904 > Ллвм, чел А у нас есть ллвм тред? Я чота всерьёз задумался о написании своего конпелятора (своего языка мечты, который похож на раст, но есть отличия). Вчера глянул материалов по нему, и выглядит всё не слишком сложно.
>>2899906 >Ну и это, учи мемы. Дедуль, я не знаю чего вы там в своих журналах публиковали, но сравнивать лисп и руби это как сравнивать молоток и отвертку.
Кстати, нашёл косвенное подтверждение своим словам о причинах успешного старта раста. Безопасный язык, который загнулся ровно тогда, когда начался раст http://cyclone.thelanguage.org/ от AT&T
В чём же дело, почему не взлетело? Да потому, что AT&T в начале 2000-х, это не мозилла в начале 2010-х, которая не просто родила из себя новый язык, но и заявила, что будет писать на нём свой новый браузер и даже показала этот самый браузер. Это был прям аргумент для старта посерьёзнее фич самого языка.
>>2899940 Бегло ознакомился. у него та же самая синтаксическая проблема, какая есть и у раста, и у си. Точки с запятой. Я искренне не понимаю, зачем в 2к23 точки с запятой в конце языкового токена? Мой язык мечты без точек с запятой. > import a >func main(str[] args) { >for i in args { > print("arg {i}") >}
>int func non_void() { >return 123 >}
Как-то так. Код со "скоупами" легко разбирается на токены без необходимости разделять их точками с запятой или \n-ами.
> import a func main(str[] args) { for i in args { print("arg {i}") } int func non_void() { return 123 }
>>2899892 >АНСЕЙФ Иногда для работы с сишным говном без него никак, а так не представлю нахуя его везде пихать. У меня на проекте который уже год пилю с уже большим объемом кода всего в паре местах std::mem::transmute чтобы из циферки в БД сделать enum не расписывая всё вручную и ужасная небезопасность заключается в том что если циферка будет неправильная, то будет показан неправильный вариант enum, пизда как опасно. Если ты пихаешь его везде это не значит все так делают
>>2900046 Это не наш ансейв виноватый, это ваш ансейв плохой. У тебя там стандартная либа на ансейвах написана. Самый быстрый веб-сервер настолько был пропитан ансейвами, что выплыло в драму, автор аж психанул и удалил репу. То есть, фанатики взяли и предъявили челу с продуктовым решением, что он слишком много юзает ансейвы, лол. Где вообще эта грань правильных и неправильных ансейвов. Сколько можно, а сколько уже много? А может уже один ансейв делает разработку не безопасной полностью?
Почему в шарпах даже не знают, что есть ансейв и работа с указателями, а в самом безопасном языке (даже безопаснее чем шарп, как говорят сами фанатики), ансейв является частью разработки?
>>2900163 >Матцу Приведи хоть цитату, что он делал копию лиспа. Возможно он что-то и взял вдохновившись лиспом, например те же блоки и то что любая конструкция что-то возвращает, но в остальном он больше похож на SmallTalk, но никак на лисп.
>>2900148 > Почему в шарпах даже не знают, что есть ансейв и работа с указателями, а в самом безопасном языке (даже безопаснее чем шарп, как говорят сами фанатики), ансейв является частью разработки? Те, кто выходил хоть немного за рамки крудошлепства, еще как знают. Любой ffi в сишарпе - горы unsafe. Stack-allocated массив в структуре - unsafe. Zero-copy parsing - снова unsafe. Alloc-free сетевой API - сплошной unsafe.
>>2899742 Погоди, а zig сильно проигрывает в скорости/безопасности? Я думал он в туже нишу целит что и Раст, просто менее хайповый. Сам зиг не глядел, но по отзывам сложилось такое ощущение.
>>2900148 >У тебя там стандартная либа на ансейвах написана. >Где вообще эта грань правильных и неправильных ансейвов Нигде, если нету формального доказательства, что программа безопасна, то привет.
>>2900346 Проблема только том, что то формальное доказательство, с которым носится каждый растер в инете не является доказательством реального языка раста. То есть, там тупо взяли условный срез с языка в вакууме и доказали что этот формальный кусок безопасен. То что, раст не дотягивает до этого формального языка, маркетологам уже было не важно, эффект достигнут, фанатики носятся и тыкают всех в "навучную" статью.
>>2900202 Гугли сам, мне лень, говорю честно. Алсо, в чём вообще бугурт-то? Ты же не будешь спорить, что скриптопараши от неосиляторов популярные динамические языки (питон/руби/жс) генеалогически восходят к лишпу и фактически прост раз за разом реализуют некоторый его сабсет с нескучным синтаксисом уже четверть века как добро пожаловать снова?
>>2900419 Ну какое-то доказательство лучше никакого, особенно, если это стдлиб какой-нибудь, проблема в том, что этим наверное полторы калеки занимаются, вот и выходит сейф по-пидорастовски это "либы, которые ты используешь с 10к загрузок и выше, или написаны более умными людьми, или отсмотрены и оттестированы на 100 рядов", а в остальных случаях долбоёбы бегают по гитхабу и выискивают ансейф блоки: РЯЯ АНСЕЙФ.
>>2900287 >Я думал он в туже нишу целит что и Раст, просто менее хайповый. Скорее си на стероидах: указатели, маллок, фри, деструкторов нет, есть дефер как в го, ООП нет, есть интерфейсы в виде обвязки вокруг указателей на функции, вместо препроцессора и макросов - метапрограммирование на самом зиге, встроенный парсер си, поэтому можно просто инклудить хидеры.
>>2900485 В догонку, помню был проект Rust Belt, они находили баги в стандартной библиотеке, ещё вроде шедулер для токио (не уверен, что именно для него) тоже формально верифицировали.
>>2900420 Дотнет не является сишарпом, это даже знаю я. Это общий фреймворк. А вот причина, по которой мягкие переписывают дотнет с плюсов, это показать что дотнет не просто язык, это продукт, который используют они сами и он пригоден даже для такой высокопроизводительной околосистемной херни, поэтому там ансейф будет не только в комментах. Это яркий контраст какому-нибудь котлину, где до сих пор их главная IDE на жабе, а на котлине какие-то полу утилиты, или раст, на котором не написана не один продукт, кроме крипты, у которой волатильность жизни ровна какашке в унитазе (да и зачастую там в перемешку плюсы).
Так что да, если для системщины юзать управляемый язык, то там будет многое на ансейвах и неуправляемых API. Поэтому можешь смело брать шарп или жабу, на них живут топ флагманы и это не просто синтаксис для попила бабла, разработчики буквально делят риски этой технологии с вами на своих продуктах (у жабы там другое, openjdk, но равносильно).
Я тебе говорил конкретно продукты пишущияся на шарпах и расте, но ты тролль, потому что юзаешь чирипикинг и спорить с малолетним фанатиком себе дороже. Но я знаю, что пока ты искал, что вкинуть, ты увидел какая жопа на расте с этими ансейвами.
>>2900562 Но ведь стандартная либа дотнета полностью написана на сишарпе, а стандартная либа раста - на расте. Как так получилось, что в прикладном сишарпе ансейфа больше, чем в системном расте?
А вот вам новый язык, вдохновленный Rust и Swift. Безопасный как раст, но удобный как свифт. Основная идея - все зло от ссылочных типов, поэтому ссылки будут только при передаче параметров и через специальную систему проекций (еще будут в поинтеры, но они будут внутри ансейф, поэтому можно). При поддержке Google и Adobe. Главный автор - голландский гендер-бендер Димитрий Дими Ракордон (оба на пиках). Ну и название придется по вкусу русскоязычным пользователям: https://www.hylo-lang.org/ Все как вы тут любите.
>>2900562 Погоди. Дотнет написан на дотнете на 80%, а раст написан на расте на 99.9%. Значит ли это, что мс меньше доверяет своей платформе, чем раст фаундейшон? Или что ты там высрать хотел, я так и не понял.
>>2900656 Хуита, Vale мне больше нравится. Другое дело, что эта хуита имет больше шансов хотя бы потому, что написана на swift, в отличие от vale, который на, пиздец-пиздец, с 2013 года со шкалы переписать не могут. В любом случае обоим желаю успеха.
>>2900684 Думаю, в будущем синтаксис можно будет наворачивать так же легко, как сейчас моды на графон в майнкрафте. Ты видишь код в виде лиспа, кто-то в виде сей, а у кого-то питон. Тем временем, внутри это псевдокод а-ля брейнфак.
>>2900679 А почему вы тогда с LLVM не перекатываетесь? Значит ли это, что растовики меньше доверяют софту на расте, чем софту на С++? Или что ты там высрать хотел, я так и не понял.
>>2900708 LLVM - это 20 лет оптимизаций компилятора под все архитектуры, наборы команд и модели процов. Что-то подобное с нуля сейчас вряд ли кто-то напишет за вменяемое время.
>>2900708 Раст не написан на llvm. Всё, что делает компилятор раста - выдаёт код для оптимизирующего компилятора. А этот компилятор может быть разный - llvm/gcc/cranelift. Раст написан на расте и транслирован в машинный код посредством llvm, это не значит, что он написан на llvm. С тем же успехом можно сказать, что swift написан на llvm. Это каким ебанатом надо быть, я поражаюсь.
>>2900735 > Всё, что делает компилятор раста - выдаёт код для оптимизирующего компилятора >транслирован в машинный код посредством llvm
Как же так. Элита программирования, лучшие специалисты планеты не могут сделать нормальный транслятор в машинный код. Пользуются говном на крестах. Бред какой-то.
Почему нельзя попросить растовиков из этого треда? Это же легко, на расте вообще все получается легко, быстро и качественно
>>2900768 > You may need to install the Visual Studio C++ Build tools when prompted to do so. Хотел переписать бэкенд копилятора раста на расте, но для установки раста нужно поставить 6гб билдер С++.
Да что же это твориться то?? Как тут побеждать С++, когда для раста нужно ставить сам С++.
>>2900785 >Действительно, какая разница где выходить за пределы массива Ну да, ведь проверка границ массива - уникальная фича раста. Люди до этого только в 2015 году додумались.
>>2900822 Когда РЯЯЯ АНСЕЙФ заложен при рождении, вообще если подкинуть расто-додикам этот тейк, то им же можно будет стэк переполнить, ну, мол, братан сегодня ты ищешь ансейф блоки на гитхабе, а теперь поищи их в llvm, который конпелирует растопарашу. Богатая идея.
>>2900822 >Хотел переписать бэкенд копилятора раста на расте, но для установки раста нужно поставить 6гб билдер С++. Странно, что не любящие корпов и трансов противники раста пользуются виндой, а не чем-то более свободным и традиционным, ну да ладно. Расту для формирования бинарей нужен линкер. На винде это link.exe из ms build tools, ld из msys2 или ldd из llvm. Разработчики rustup учли пожелания некоторых неопытных пользователей, и добавили самый простой способ установить линкер. 6Гб - цена невежества. Теперь даже ты сможешь собирать бинарники на винде.
>>2900881 >>2900768 Когда человек слишком тупой не, что для раста, даже для питона. Алё, мань, небезопасность llvm не ебёт никого, кроме разработчиков, а они потерпят. Погугли "llvm segfault" - это оно самое. Но на качестве выдаваемого кода это никак не сказывается - оно либо отработало, либо нет. Ещё тебе аналогия: какую-нибудь супер-современную хуйню могут делать на станках 30-летней давности просто потому, что их хватает, а новые стоят денежку и не радикально лучше при этом. Это не значит, что технологии 30-летней давности ого-го какие и надо везде только их и использовать, это луддизм ебаный. Для совсем тупенкого поясняю: llvm, это станок, его пока хватает, на качестве продукции (софта) его отсталость пока никак не сказывается. А вот плюсы и раст.. Ну, думай так, что это тоже такие станки, на том же конвейере, вот только качество продукции на выходе уже сильно разнится.
Растаны, посоветуйте крейт для линейной алгебры, чтобы там были векторы, не те которые Vec, а которые Vec2/Vec3. Всё утро гуглю безрезультатно. Я ожидаю примерно такой синтаксис: > let v = Vector2::new(100.0, 500.0); > let l = v.length(); // в результате получаем 509.9 > let n = v.nolmalized(); // в результате получаем (0.196116, 0.980581)
> let a = Vector2::new(3.0, 4.0); > let b = Vector2::new(4.0, 5.0); > let c = b - a; // в результате получаем (1, 1)
>>2901737 Слишком поздно. Надо было начинать лет 10 назад, глядишь, к сегодняшнему дню всё и согласовали, к 2025 первый безопасный конпелятор бы вышел. А кроме безопасности есть же ещё макросы и тулинг. Плюс надо куда-то девать null и ООП ебаное.
Мощный старик сейчас выйдет из кабинки, плюсисты с ложками смачно это всё схавают, но вряд ли это воодушевит кого-то со стороны.
>>2901834 >Слишком поздно. Не, нормально. Это тоже перемога в будущем, как у растанов, аля перепишем, скоро будет, напишем, завезут и т.д. Только Страусу и комитету доверия больше. Если начали, то закончат. Вы над чем-то серьезным вообще работаете? Если вам ТАК нужны обновления и новые фичи, то имхо, вы какую-то хуйню делаете.
>>2902000 Зашёл в плюсотред, увидел слово "фабрика", словил флешбек, триггернулся, проблевался, закрыл. Как же лампово всё ручками писать на ржавом, никаких фабрик фабрик фабрик фабрик фабрик фабрик фабрик.
>>2901737 В сипипи появиться оператор safe? safe { }
А если серьезно, то да, чаще прокси языки завозят в основной какие-то фичи и на этом их жизнь угасает. Тот же котлин и лум, те же нуллабл типы в других языках.
>>2902058 Отличие ржавого от плюсов вт том, что если на плюсах ты не следуешь паттернам, не делаешь зарядку, не кушаешь кашку по утрам, то рано или поздно твой код превратится в жуткую лапшу и происшествие с указателем становится лишь вопросом времени.
А на расте можно писать хоть вдупелину пьяным - оно или соберётся и будет работать, или не соберётся.
>>2902051 >Зашёл в плюсотред, увидел слово "фабрика", словил флешбек, триггернулся, проблевался, закрыл. Как же лампово всё ручками писать на ржавом, никаких фабрик фабрик фабрик фабрик фабрик У Си неоспоримое преимущстве нету этого говна плюсного и растопараши с трейтами и прочим ненужным говном, от которого блевать только тянет.
>>2902156 Когда я заплакал от боли, они стали ворчать, что разработанный "трейт" это нормально для раст программиста и таких плаксивых девственниц они не берут. Зря только волосы в синий красил.
>>2902064 На расте можно написать так, что потом в 40 функциях будешь фиксить лайфтаймы ручками. Язык не только замедляет разработку, так еще веселит в рефакторинге.
Все что не хватает си это просто тулинга и сахара, нахер никому ансейф не страшен, а вот эти макросы это тот еще адок.
>>2902197 >Все что не хватает си это просто тулинга и сахара, нахер никому ансейф не страшен На этом месте хочется рассказать историю, как я фиксил один баг в этом году.
Разрабатываю прошивку на си для одного устройства. Начиная с некоторого времени оно стало падать в hardfault. Это такое состояние на ARM процессорах, при котором он не может продолжить выполнять инструкции. По некоторым причинам у нас нет особой обработки такого состояния, только сброс содержимого регистров (coredump), после чего устройство зависает.
Исследование содержимого регистров после hardfault приводило к коду обработчика одного из прерываний, который в силу специфики устройства вызывается невероятно часто и написан абсолютно корректно. Дальнейший анализ осложнялся тем, что сценария воспроизведения не было, устройству было достаточно полежать на зарядке день-два. Ах да, и из средств отладки только логи и корки. В общем, я потратил пару-тройку недель, чтобы понять где была ошибка.
Как оказалось, один из чипов на устройстве мог повиснуть при обработке очередного запроса с вероятностью примерно 0.000000386. Код, обрабатывающий такую ситуацию по таймауту (он был! хотя я и не предполагал, что он понадобится) был написан с ошибкой. В случае успешного выполнения запроса обнулялась одна переменная, а при зависании этого не происходило. При этом эта переменная несколько раз инкрементировалась и затем использовалась для индексации в одном массиве при подготовке нового запроса. Поэтому когда чип зависал и переставал отвечать на запросы, эта переменная быстренько улетала в космос, при этом корраптилась вся память ниже этого массива. Рано или поздно дело доходило до таблицы прерываний и висло уже всё устройство.
Бага глупая и тривиальная, а вот искать её было очень "увлекательно". А всего-то нужно проверять границы массива принудительно, как в расте.
>>2902210 >был написан с ошибкой. А вот на расте написать логическую ошибку нельзя. Конечно же си виноват, что кроме инкримента переменную юзали еще для чего-то, а если такая потребность была, и переменная где-то там еще изменялась - проверять не надо было.
Понимаешь, проблема в компетентности программистов, такая же шляпа будет и на расте, только писать эта кодмонки будет раза в два еще дольше. Я еще уверен что в близь железной разработки, автопроверку индексов будут отключать как-то, ибо ресурсы не бесконечны.
>>2902525 Ну когда у тебя 100мбайт, ты можешь абстракций себе напечь, сладких таких и сметанкой обмазаться. А когда, у тебя, сынку, 1-2кбайта памяти, тут, увы, не разгуляться, придется долбиться без абстракций, сразу в железку, поэтому и эти ваши буржуйские, зиро-хер-асбтракшен в виде проверки индексев массива, могут быть роскошью.
А то, что Алёшенька глупенький еще и проверку гуляющего индекса не сделал, так это не страшно, научиться еще мальца, за то не будет с рефакторингом месяц епстись как Сережка из соседнего отдела, да и везде клонировать структуры, или чего хуже, в Rc сувать гадости свои.
>>2902386 >Ой, карочи проще самому реализовать. Пикрелейтед. Если тебе чисто вектора нужны. Если трансформации нужны, матрицы, кватернионы, лучше готовую брать. Но glam не советую. Хранить трансформацию в виде матрицы поворота и вектора смещения - не самая здравая идея.
>>2902386 Нормализацию лучше с проверкой делать, и ситуацию если длина меньше эпсилон, как-то обрабатывать: выдавать какой-то дефолтный вектор, например.
>>2902638 > Хранить трансформацию в виде матрицы поворота и вектора смещения - не самая здравая идея. А вот тут поподробнее. Я на двачах слышал ровно противоположное. Что матрица трансформации это на порядок более-лучшее решение, чем квартернионы, мало того что устраняют гимбал лок эйлеровских осей, так ещё и устраняют кукую-то траблу, которую порождают квартернионы.
Требую объяснений, сударь. швыряю перчатку в ебало
>>2902644 >А вот тут поподробнее. Матрица кроме ориентации и скейла хранит еще наклон осей (skew, оси могут быть не ортогональны), если ты например, трансформацию анимируешь, то надо на каждый чих матрицу править - ортонормировать, проверять что длина векторов единичная (если скейла нет, если есть - будет копиться ошибка), если матрица 4х4, очищать нижний ряд (0 0 0 1). Матрица может неожиданно стать вырожденной, тогда ее уже никак не поправить. Т.е. в матрице слишком много лишней информации для хранения ориентации. С кватернионом все проще - нормализовал и все. Плюс физика со скейлом (особенно неюниформным) совсем не дружит, т.е. для физики нужна будет отдельный вид трансформации без скейла. Ну и матрицы будут тормознее даже без проверок, например, инверсия трансформации с кватернионом гораздо проще и быстрее. Ну и сами кватернионы идеологически проще, если их понимаешь.
>>2902210 Для таких вещей лучше всего подходит неиронично Ада. Там типизированные рейнджи, индексы, проверки границ на уровне типов, есть изначально и под них все заточено. В расте до new type додумались додумались только несколько лет назад. В Аде, например, изначально есть типизированные индексы для инстанса массива (так, что индекс подходит только к определенному объекту), и это там базовая база.
>>2902483 >А вот на расте написать логическую ошибку нельзя. Конечно же можно. Разница в том, сколько усилий придётся потратить на её поиск и исправление. В моём случае пришлось гадать и перебирать варианты, а на проверку каждого из них уходило пару дней. При панике по принудительной проверке искомое место было бы очевидно сразу.
Справедливости ради, стоит заметить, что программы на C/C++ можно компилировать с включенными санитайзерами (-fsanitize=...), которые в том числе могут отслеживать корректность обращения к памяти в рантайме. Однако, для разработки на микроконтроллерах это мало применимо (по крайней мере я не знаю как это делать), а на десктопе это даёт существенное замедление (очень хорошо заметно на задачах с литкода, они санитайзеры принудительно включают, и по моему опыту решения на C работают примерно раза в 4 медленнее решений на Rust).
Я всё это написал, потому что не согласен с утверждением про тулинг, сахар и ансейф.
>>2902689 Ну даже не знаю как прокомментировать. Хороший язык наверное. Жаль, что никому не интересен.
>>2898122 (OP) растобляди, какого хуя на пике легитимная операция? хули он без вопросов сравнивает None и Some? это ж классический джавапидорский NullPointerException, избавление от которого нам обещали
>>2902812 Это же синтаксический сахар. Он сравнивает два значения одного типа. Просто благодаря сахару они синтаксически кажутся разными типами. Ну это же база. Палишься.
>>2902798 >Жаль, что никому не интересен. Интересен, но жирным конторам. Там лицензия на одного разраба стоит пять килобаксов в год. Хотя есть и свободная версия. Но это не хипстерский язык, конечно, не shiny new thing.
>>2902815 я эксперта по расту вроде из себя не корчил какой толк тогда от этого None? вроде обещали, что None - это аналог null и даже круче типа если нихуя нет, а должно быть, то бьем тревогу а тут она спокойно с ним работает вместо того, чтобы паниковать
>>2899682 >поскольку он нафиг не нужен на устройствах, где не используется динамическая аллокация.
Получается что нужен. Это первое.
Второе. Раст делает это лучше чем другие ЯП. Быстрее, (основная фишка) корректно, и чаще проще чем все остальные мейнстрим языки без Сборщика мусора и виртуальной машины. + с более современным инструментарием чем Ada. Де-факто стандартизированные: автодок, билд система, менеджер пакетов.
>>2902829 >типа если нихуя нет, а должно быть, то бьем тревогу Нет, почему же? У тебя сам тип Option<f32> подразумевает возможность пустого значения, никакого >а должно быть дальше у тебя в коде должна быть ветка для варианта None, вот и всё. Например, дефолтное значение через unwrap_or(). Для должно есть Result<f32, Error>, где Error это любой тип, представляющий твоё видение ошибки, хоть строка. И то, это не чтобы сразу упасть, а чтобы обработать ситуацию соответствующим образом.
>>2902863 >получается, что тоже надо все руками проверять Нет, не тоже, и не всё. let a: Option<f32> = None; let b: f32 = 0.5; let x = a + b; //Не скомпилируется. Надо проверить a, а b у тебя заведомо нормален
Разница в том, что в зыках с null у тебя будет что-то вроде var a: f32 = null; var b: f32 = 0.5; var x = a + b; //Скомпилируется, но не факт, что результат работы кода будет тот, который ты ожидал. Если проверять, то всё - и a и b
>>2902848 >с более современным инструментарием чем Ada. Де-факто стандартизированные: автодок, билд система, менеджер пакетов. Раст и Ада в принципиально разных весовых категориях тут. У Ады SPARK, куча тулов для статического анализа и формальной верификации. Cargo - это просто несерьезно, там же реально васяны с is_even и left_pad как в pip и npm, один неловкий шаг - и у тебя куча левого говна в проекте. С нормальным подходом либы должны быть тоже формально верифицированы, с четким контролем версий и зависимостей, с воспроизводимыми билдами. У раста инфраструктура изначально под такое не заточена.
>>2902210 >А всего-то нужно проверять границы массива принудительно, как в расте. То есть раст вставляет бранч в обьектный код на каждый доступ к элементу массива?
Вот эта хуйня >В случае успешного выполнения запроса обнулялась одна переменная, а при зависании этого не происходило. При этом эта переменная несколько раз инкрементировалась и затем использовалась для индексации в одном массиве при подготовке нового запроса. Поэтому когда чип зависал и переставал отвечать на запросы, эта переменная быстренько улетала в космос, при этом корраптилась вся память ниже этого массива. Рано или поздно дело доходило до таблицы прерываний и висло уже всё устройство. Была бы через какой-нибудь ансейф в расте, но челик-писатель скорее всего задумался бы вставить проверку из-за асейф-шейминга кек.
>>2902927 >То есть раст вставляет бранч в обьектный код на каждый доступ к элементу массива? Раст вставляет, да, а вот llvm может выкинуть когда это безопасно. Например если функция создаёт массив на стеке, пробегается по всем элементам и разрушает его, тогда проверки будут удалены. Ну а если она получает его или индекс извне (мой случай), то проверки останутся. В прошлом треде разбирал это через дизассемблер простых примеров, посмотри если интересно. >Была бы через какой-нибудь ансейф в расте, но челик-писатель скорее всего задумался бы вставить проверку из-за асейф-шейминга кек. Этот челик я и мне было бы банально лень использовать какую-то там ансейф функцию для такого действия. Выигрыш в производительности был бы смехотворный. Точно так же лень было вставлять ассерты в каждой функции, где использовался этот массив и его индекс. >>2902930 >Из-за затенения переменных можно неделями локализовывать ошибку. Хз, возможно, продуктового опыта на расте у меня пока нет. >Паника нехера не дешевая абстракция. И вообще исключения в ембеддед зло. Полноценная паника не нужна, достаточно содержимого регистров в этот момент, а там пусть уходит в бесконечный цикл. Ну а так эмбед эмбеду рознь. В принципе для реализации исключений нужно только сгенерировать пару таблиц (extab и exidx для ARM), на 32-битном проце это 4 байта на каждую простую функцию. Да подлинковать код, который с этими таблицами работает. Производительность не затрагивается при этом, а места занимает совсем чуть-чуть больше. >На сях есть неплохие анализаторы кода, раз на программистах сэкономили. Конкретно мою ошибку не отловил ни один анализатор. Пробовал gcc, clang и PVS.
>>2903003 >было бы банально лень Я про то, чтобы из-за упрощения и чтобы не ебаться, делать как-то через ансейф. А вообще вроде в расте нету такой straightforward, прости Б-же, штуки как сишный массив, там же какие-то присяды вроде через какую-то залупу из стд либа, как у плюсодебилов.
Для обычной индексации применяются квадратные скобки как в любом другом сиподобном языке. При этом язык гарантирует, что ты не вылезешь за пределы массива. Чтобы несейфово что-то сделать с элементами нужно его к слайсу привести и вызвать get_unchecked_mut в блоке unsafe. Т.е. чтобы сделать небезопасно, надо как следует поебаться.
>>2902863 >получается, что тоже надо все руками проверять Так ты же сам свой f32 в опшен завернул, показав тем самым что он может быть None, а раз так то будь добр теперь держать оба варианта в голове в коде когда с этой переменной работаешь и соответственно делать проверки ну или .unwrap() иначе не скомпилируется
>>2903145 ожидание были такие, что это будет делать сам язык вот может мне из input'а прийти или f32 или нихуя и надо мне его сравнить с другим f32 вот приходит мне нихуя, а сравнение все равно работает
>>2903332 > Идиоматичная конструкция > get_ >>2903206 > set_ Раст тут не при чём. Сеттеры и геттеры это классика, это знать надо. Они идиоматичны глобально, для любого языка. set(key, value) get(key, default) - в расте второй параметр гета, дефолтное значение, переместили, а обработку таких ситуаций возложили на возвращаемое значение. Причём тут идиоматичность? Тут скорее вкусовщина.
>>2903792 Что ты сделал? Т.е. там был оператор (>) для float и None. Нафиг он нужен, прост интересно?
В одном яп который похож чем-то на раст # Some (1.) > None;; - : bool = true Но это с натяжкой понятно: type sometype = White | Black;; Black > White;; - : bool = true
Но # float > None;; Error: This expression should not be a constructor, the expected type is int -> float
>>2903332 >Идиоматичная конструкция для раста Это нарушение инкапсуляции. Конечно, для того примера это не важно, но раз это прям идиома, то это плохо.
Есть какая-то вечная пропасть между промышленным программированием и вот этими фантазерами новых языков, а ведь полиморфизм (хотя бы интерфейсный) и инкапсуляция это единственно что делают разработку в сотни человек менее болезненной.
>>2904348 ок. вернемся к тому с чего начали: где конкретно хранится состояние итератора? как он понимает на каком элементе находится? в next? так он каждый раз заного запускается
>>2904634 Они, кстати, пытались свой форк раста запилить, но потом поняли, что не потянут. Ещё такие мысли: ... с одной стороны, очень удобный для корпов язык, ибо контроль. На плюсах каждого васяна не проверишь, что он там понаписал, а тут поиск по unsafe + clippy дают 99% уверенности ... с другой стороны, как ни посмотришь на вакансию у корпов, так нужен пхд-олимпиадник, но вот раст, это же слишком сложно, поэтому пока осторожно
мысль вдогонку ...на покупку близзард мс потратила 7 ярдов, на покупку беседки 70 ярдов, а на раст пока что 11 лимонов. К вопросу о том, какие бабки вертятся в идустрии и какой % реинвестируется в инструменты.
>>2904561 И как это нарушает инкапсуляцию? Ты понимаешь, что если отдаёшь куда-то голый массив, то очевидно в него могут писать и поинтить на его внутренности (и клиент в свою очередь понимает, что поинтеры могут протухнуть)?
>>2904053 Нету тут нарушения для раста. Мутабельная ссылка может быть только одна, при этом если это ссылка на кусочек внутреннего представления некоторого сложного типа, то это правило распространяется на все данные целиком. Это безопаснее и эффективнее любых сетеров/гетеров в конвенциональных языках. Конечно никто не мешает написать сеттер, если необходимо добавить дополнительную обработку. В случае массива это не нужно, как и в случае многих других типов из стандартной библиотеки, которые представляют из себя обёртки вокруг сырых данных.
>>2904679 >>2905192 Бестолковая миддлота. Во первых я сразу написал, что для этого примера не имеет смысла, но плохо как идиома раста. Но у ограниченных сработал триггер в голове и начали объяснять мне то, что я сам подчеркнул.
Не люблю учить миддлоту, но инкапсуляция это не история о приватных переменных, это сокрытие бизнес логики внутри объекта или модуля. Будет у тебя контейнер, который сегодня отдает только ссылку, а завтра понадобиться помимо изменения значения изменить еще какое-то состояние внутри контейнера (кэш, хуешь, время записать, админа нахер послать, ивент пульнуть, лог дернуть итд). Так вот сеттер решает проблемы безболезненно для API и не поломает миллион чужого кода, а идиома раста сосет, потому что дергает кишки и самолично меняет, нарушая инкапсуляцию.
>>2905290 > инкапсуляция это > это сокрытие Инкапсуляция не сокрытие! Инкапсуляция - это независимость кода. Когда код решает задачу без стороннего кода. Инкапсулированный модуль можно легко вытащить из одного проекта и поместить в новый проект и при этом не потребуется тащить еще кучу модулей-зависимостей. Это инкапсуляция.
>>2905290 >Не люблю учить миддлоту, но инкапсуляция это не история о приватных переменных, это сокрытие бизнес логики внутри объекта или модуля. Ок, но какая бизнес логика может быть у контейнеров? Ещё раз, это идиоматично только в этом случае — обёртки вокруг сырых данных. Может я конечно не то слово подобрал, когда говорил про методы вида get_mu(). Да и у меня нет продуктового опыта на расте, поэтому может я ошибаюсь насчёт распространённости таких конструкций. Но в стандартной библиотеке это повсеместно, ссылку на документацию уже писал.
А хотя ты пример бизнес логики привёл, оказывается. Ну в принципе в стандартной библиотеке есть примеры и сеттеров, классика это варианты Cell, ну а таки их в целом много: https://doc.rust-lang.org/std/?search=set_ Хз, в принципе про новый трейт правильно анаончик написал, при необходимости добавить сопровождающий код им можно это очень легко сделать.
>>2905311 >>2905314 Дети ютуба. Кто-то пернул и понесло. Как кроме сокрытие одного от другого ты изолируешь еще данные? Поэтому инкапсуляция, это изоляция или сокрытие, что однохерственно.
Есть радиоприемник, внешний интерфейс в виде кнопок и кишки схем, само нутро. Вот это нутро будет инкапсуляцией, через внешнее управление. Но всегда сокрытие - изоляция. Когда код независит друг от друга, это вообще модульность.
Какая же каша в бошках. Видимо чем больше смехуечков в видео, тем правее оно будет?
Еще раз инкапсуляция это разделение на изолированную внутреннюю часть, через интерфейс взаимодействия API, но достигается это всегда сокрытием первого. То есть, сокрытие это частное инкапсуляции.
>>2905688 Ты лучше скажи как можно инкапсулировать, кроме как сокрытием?
Там какой-то хер когда-то ляпнул, пытаясь объяснить в рамках ООП, мол вот вам совокупность изолированной логики. "Не такие как все" ухватили это и начали умничать, не понимаю, что хер просто пытался так академично описать класс/объект, что это не просто сова на глобусе, а целая навучная инкапсуляция данных.
Это не как не отменяет понятия инкапсуляции в программирование - некая закрытая йоба из которой торчат ручки для управления. неожиданно это подходит и для обычных функций, но надо было продать ООП
>>2905760 > Ты лучше скажи как можно инкапсулировать, кроме как сокрытием? Еще раз. В видео всё подробно разложено на примерах. Но нет. Будем изъёбываться на двачах. Мы ж не зумеры, мы видосы не смотрим.
>>2905887 Возьми си-синтаксис и добавь к нему - лайфтаймы - дженерик-функции/структуры/енумы/контейнеры
так, чтобы это выглядело тебе по душе. Потом покажи нам.
А ещё есть лобстер, но у него питонический синтаксис. Вроде бы тоже боровчек и дженерики, но дженерики без указания типа - просто пишешь как на пике без типов, а конпелятор сам догадывается.
>>2905903 > питонический синтаксис А там можно на отступах соорудить скоуп (блок), возвращающий значение? Типа: > let x = 10; > let y = { x += 5; x }; Если да, то малацы, годно сделоли, батя одобряе.
>>2905903 Ля какие. Изобрели goto и хвастаются, что в большинстве языков это нот посибл. Канешна. За выход из внешней функции внутренним замыканием на собесах по хую линейкой стукают. Потому и нот посибл.
>>2905887 Так они и взяли си-синтаксис, из-за чего у раста уебищный синтаксис с кучей визуального мусора. Взять что-то нормальное (лисп-подобный или мл-подобный) они не могли, так как утята-сппшники бы не стали смотреть на раст, т.к. 95% разработчиков оценивают язык по синтаксису (и логотипу).
>>2905927 Это игрушечный язык для создания игрушек, типа Jai/Odin. Всё необходимое в поставке - поддержка GL, джойстика, звука, васма. Если выбирать - писать игрулю на питоне или на этом лобстере, я бы выбрал его. Ну, такую игрулю, 2D квест с элементами сурвайвл шутера, не более Как раз тот случай, когда не надо париться "а что будет с языком и моим проектом через 10 лет?" - повыпускать патчи годик и хватит. Даже если сам лобстер загнётся, можно использовать сгенеренные cpp файлы (конпеляция через плюсы) и пересобрать из них под что там будет в будущем.
>>2905954 Честно говоря, я уже битый час ломаю голову, как оно там работает. В документацию лезть не хочу. Ну вот например ген это аут-параметр, так? При этом это лямбда. Внутри тейка она записана в переменную Ф? И рекурсивно вызывает себя? Пока и++ сравняется с н? после чего вернёт войд? Не понимаю в чём тут фишка? Нет, ну я понимаю, что это ленивый генератор, который запускается только по требованию. и в реале туда можно засунуть тяжёлые алгоритмы, которые есть смысл лениво вызывать. Но всё равно, суть происходящего от меня ускользает.
Выше я написал, что они переизобрели гоу-ту, но это что-то иное.
Пацаны, насколько имеет смысл писать для десктопа на расте, ковырять винапи? Или нахер это не нужно... Меня почему-то тошнит от синтаксиса Си и плюсов, от раста конечно тоже не в восторге, но это меньшее из зол...
>>2905977 > 2024 > винапи Зачем? Вопрос без троллинга. Десктоп на сабже пишут, но без интерактивной разработки и с компиляцией по полчаса это боль. Хотя тебе будет норм, крестовикам не привыкать, бгг.
>>2905971 Он не сложный, он неудобный для больших проектов. Там даже пользовательские ошибки нудно писать руками без обертки макросов. Почему неудобство называют сложным я хз. Наверное чтобы отыграться на слабо, мол не хочешь писать бойлерплеты эти, значит фу, ты не осилил.
>>2906271 > писать бойлерплеты эти Но ведь... Но ведь именно для этого в язык сразу же завезли пакетный менеджер и коммунити-пакеты. Весь бойлерплейт будет постепенно написан и опубликован. И тебе нужно будет только ассетфлипнуть нужные крейты с удобным тебе бойлерплейтом и без задней мысли делать бизнес-логику.
>>2905977 >Пацаны, насколько имеет смысл писать для десктопа на расте, ковырять винапи? Если чисто под винду - бери шарп, там формочки удобнее всего лепить. Для кроссплатформы - Qt и c++. Другие варианты - боль. Для раста нормального гуя не будет никогда, будут или биндинги или кривые либы от васянов с минимум функционала.
>>2907002 > или биндинги Кстати, биндинги если уж брать, так dear imgui. Самый крутой гуй на сегодня. Просто посмотрите, какие фирмы на нём лепят формочки.
>>2907076 > так dear imgui. Самый крутой гуй на сегодня. Это как раз васянка. Т.е. нет RTL тектса, интернационализации, accesibility, использования особенностей системы вроде меню на маке и т.д. Подобное на расте и так есть.
>>2905290 >Так вот сеттер решает проблемы безболезненно для API и не поломает миллион чужого кода, а идиома раста сосет, потому что дергает кишки и самолично меняет, нарушая инкапсуляцию.
В Джаве ты можешь сохранить объект через сеттер и продолжить им пользоваться без оглядки на то, как, он может использоваться в кишках. Буквально ни разу не слышал, что это вызывает проблемы.
>>2907162 >А как же Compose Multiplatform на котлине Это же что-то вроде JavaFX и QtQuick. Для приложений в мобильном/браузерном стиле. Такое для десктопа обычно не очень подходит, потому что там нужны специфические компоненты, вроде навороченного TreeTable, нужна нормальная поддержка Drag'n'Drop, системного клипборда. Под виндой почти всегда нужна хоть минимальная интеграция с офисом (вроде сохранения отчета в docx или вставки рич текста из него же). Так-то джавовский свинг подходит почти для всего, но под него кодить очень больно.
>>2907710 >Не знает что это и высерает целую пасту У них на странице даже ссылки на доки нет, значит по-умолчанию говно какое-то. Тем более, что идея все еще на свинге работает.
>>2907815 Тогда просто начни. А что дальше? Ты же не миддлок какой-то, можешь открыть API посмотреть и даже в сорцы в редакторе пооткрывать. Накройняк пробежаться по Jetpack Compose, сравнить архитектуры, попробовать оттуда. Потом может статьи какие найдешь, ты же не миддлок и можешь дальше одной ссылке в гугле спуститься. Давай, ты сможешь, быть программистом это не сложно, просто изучай! https://habr.com/ru/articles/527586/ А там, быть может и гитхаб откроешь для себя https://github.com/JetBrains/compose-multiplatform-desktop-template
>>2907864 Я эту хрень, конечно не знаю, но мне хватило 5 минут пробежаться и понять что это декларативная шляпа на базе котлин (длс) и даже увлеченно проскролил ролик на ютуб.
Причем у меня сразу флешбеки как я по сорцам осваивал один из асинхронных вебсеверов и даже всплакнул, вспомнив какой на жабе был удобный тулинг в отладке, сидишь прям в реалтайме сорцы в отладке читаешь.
>>2907888 >Доков он в декларативной шляпе не увидел и испугался. Ссылка на документацию - обязательная часть, если ты программный продукт продаешь. Ссылка на гитхаб, ботай сам - это несерьезный подход, как будто опенсорц от хакера Васи, а не фирма мирового уровня. До такого даже индусы не опускаются.
>>2907981 Джуниор потерялся без доки, плак плак, не пугайте мальчика сорцами.
90% доков, это просто текст на отвали, по типу херак херак и вуаляк. Та же основная книга-дока по расту именно из той же серии, просто тур по языку, вместо погружения в новую парадигму.
>>2908045 О, а можно я покормлю этого? Можно? Можнооо? Новая парадигма в том, что после присвоения переменной она становится недействительна. Так программировать становится намного сложнее и интереснее. Как будто квест в игре разгадываешь. "Бляяя, опять боров чекер ругается! Да шош такое!"
>>2908309 не, я тот анон, что выше спрашивал про None < Some и итераторы
как я понимаю Rust - это тот же C++, но со свистоперделками (безопасная работа с памятью и т.д.) типа на C/C++ ты можешь выстрелить себе в ногу, а тут ты анально огорожен от этого
поэтому я и спросил про парадигмы - что там сильно иначе? ну если доебки borrow checker'а тянут на новую парадигму, то ок подумал, что вдруг там есть более фундаментальные отличия, поэтому и спросил
Чому не сделают нормальный красивый установщик как в джаве какой нить? Чому надо в консольке чета нажимать и доустанавлить какие то там visual studio c++? Да и чтоб обнова прям как на жабе выходила, чтоб в значках появлялась иконка крабика с обновой. Хочеца.. как же хочеца... Язык реально хорош..
>>2908534 Ну сам возьми да сделай. КТОООО ЯЯЯЯЯЯ!? САМ СДЕЛАТЬ КРАСИВЫЙ НОРМАЛЬНЫЙ УСТАНОВЩИК!?!?! Этот вопрос надо задавать непосредственно мейнтейнерам. Ты сейчас общаешься с пустотой, так как в треде нет ни одного человека из группы разработчиков раста, кто принимал бы решения делать или не делать фичу. У них на сайте есть адреса всех слак групп, почты, они непосредственно внедряют новые фичи. А мы обычные пользователи языка, не знаем почему так сделали и нам похуй.
>>2908825 Мы в треде прекрасно понимаем, разработчик чего залетает к нам в тред и толсто тралит, и чем он умеет пользоваться. Но, тактично умалчиваем, посмеиваясь.
>>2910583 Схуяли он раб, говноед? Каждый уважающий себя специалист должен держать свою область в чистоте и относиться с своей работе с уважением. Представь, что ты приходишь на сеанс к стоматологу, а он тебе начинает какую-то политоту прогонять? Кому это нахуй надо?
>>2910654 Почему дантист, а не сразу работник реанимации.. Т.е. никому нельзя ничего кроме работы, нужно работать несмторя ни на что при любых обстоятельствах. Политика только у рабов отдельно от жизни, политка, это не приятно, это же борьба. Люди используют те методы борьбы, которые могут. Агитация, это тоже один из методов. Раб этого не понимает, он послушен, политика где-то там, господин знает как лучше и не нужно рыпаться. Ну а кто не согласен, тот не правильный раб и другим рабам следует его наказать, так?
>>2910785 Поехавший, ты действительно хочешь чтобы каждый человек постоянно высказывал свою политическую позицию? Вышел по улицу, встретил дворника с женой - они тебе пояснили за Израиль и притеснения мусульман. Зашел в магазин, одна мерчендайзерка подошла и рассказала о том что Путин ей дал денег за тугосерю, великий политик. Второй опять рассказал про Израиль. На кассе спросили, за кого ты голосовал на предыдущих выборах, кассир_ке не понравилось что ты аполитично мямлишь, не пробила скидку. Охранник на выходе пожелал встретить Новый Год на развалинах Фашингтона. Водитель автобуса по громкой объявил что сегодня день памяти и скорби по Жириновскому и включил погромче его речь. Все встреченые на улице бабы сраки останавливают тебя чтобы рассказать про хорошую пенсию и про молодца Путина. Гопники подходят и спрашивают за какую ты партию епта, и где твой партийный знак отличия нах. Директор управляющей компании твоего дома член ЕР, поэтому везде установлены громкоговорители и по ним круглосуточно передают важные политические новости. Вечером музыка, засыпаешь под звуки патриотических песен. Мне кажется отлично будет
>>2910865 Ну вот, опять, тупой блять раб. По твоему выступать против массового убийства сопоставимо с тем, что ты написал? Ты даже не знаешь что такое политика и лезешь. Ай страшно... запретить!!
>>2911146 Короче, поясню. Есть только один способ добиться каких-то политических действий. И как бы тебе не нравилось, это массовое социальное требование и организованное дествие которое за этим следует. Которое подразумевает что люди иногда сопрят. Но не в таком виде как ты написал, но и это тоже способ, если это действует. Но обычно это по другому, но в том числе в блогах, газетах, исскуство и т.д., не может быть совсем не навязчиво. Да блин, ты посмотри на государство, оно действует очень навязчиво, ТВ, реклама, могут силой заставить, и ты молчишь, раб. А тут ты решил повозникать и придумал таких тупых историй, которых нет или почти нет, никто тебя не дергает на улице и силой никуда не тащит.
>>2911146 Я понимаю, что малолетнему трансхохлу и борцуну с системой тяжело осилить такое понятие как этика, но у людей с ICQ выше хлебушка она есть, в том числе рабочая. Попробуй припиздовать на аниме сходку и спросить у них почему они политической агитацией не занимаются. Тебя, скорее всего, обоссут или в лучшем случае пошлют на хуй, и будут правы, потому что люди пришли обсудить ОПРЕДЕЛЕННОЕ множество тем, а не заниматься копротивлением. Также политические игры - очень сложная, грязная и мутная тема, с которой приличные люди не всегда хотят возиться. И только ты тут в агрессивной манере можешь всех рассудить, укзать кто раб, а кто нет. Да и еще, возможно тебе не приходило этого в голову, но людям может быть похуй на массовые убийства и current thing, понимаешь? Теперь будем отменять людей из-за их моральных устроев? А не дохуя ли ты на себя взял? Легче тебе мозги выбить, как и всем истеричным крикунам из ЛГБТпедолобби. Вот скажи мне, нахуя мне политика в ченджлогах компилятора? Это как агитка в тех.паспорте машины или высказывание на пачке молока.
>>2911392 Да это ещё не так страшно. Давайте лучше обсудим, зачем ::? Неужели их хвалёный компилятор не может отличить компонент::неймспейса от компонента.типа? 1995 год - Delphi мог, 2023 год - Rust не смог.
>>2911497 > Чтобы парсить легче. В чём лёгкость-то? Все языковые конструкции прекрасно различимы без отдельных символов. Если стоит слово for, то за ним ожидается выражение-итератор и блок кода. Если есть символ = значит справа ожидается выражение. Не вижу проблем с этим.
Кто нибудь писал бэк на расте? Есть какой нибудь устоявшийся джентльменский набор? (Фреймворк, коннектор для бд, орм, либы для брокеров) Мимо питонодебил, интересует что то по типу FastAPI + SQLAlchemy + pika под раст
>>2911676 >бэк на расте? Зачем? 90% твоих тормозов будет в БД и i/o, остальное добивается кэшами. Именно поэтому в нулевые люди стали пересаживаться с си на перл и пхп, потому что львиная доля тормозов была не в скриптах.
>>2911986 >Поясни плиз за nanoserde? Ой бля, это вообще никакой особой роли не играет. Чтобы почувствовать разницу между serde_json и nanoserde, нужно сериализовать/десериализовать json'ы по 500 мегабайт минимум. От того что ты пол-килобайта данных засериализуешь, ёпта ты сэкономишь может 1 наносекунду. От этого ты никому погоды не сделаешь. Я бы вообще не заморачивался, если только ты не работаешь с embedded и там каждый килобайт памяти на счету. Или если ты прям вообще жёсткий минималист и у тебя навязчивая параноидальная мания оптимизации. Тогда ладно.
>>2912527 поясните по пику плиз void * - это просто указатель на какую-то область памяти без привязки к типу данных, которые там находятся. так? а что значит empty? это какое-то ключевое слово? или имя переменной?
Хруст девелопмент би лайк >клонируешь проект с гитхаба >запускаешь карго билд >качаются сотни зависимостей >одна из зависимостей - сишный тулчейн >компилируется сишный тулчейн >сишный тулчейн компилирует код на сишке С каждым днем мы все дальше от бога...
>>2914234 Я в раст не за системщиной пришёл. Мне наобещали скорость. Я планировал пилить скрипты на медленном питоноподобном скриптовом языке, который при этом запускается мгновенно без компиляции и за это я плачу медленностью. А потом я планировал переписывать критичные к скорости скрипты на быстрый компилируемый язык. Мне предложили раст. Я не хотел си++. Боялся си++.
Но знаете, что я вам скажу? Изучив раст я внезапно начал понимать си++. А моя изначальная скриптовая среда, которая с медленными скриптами, она на крестах написана, и крестами идеально дополняется.
>>2914252 Попробуй лобстер. ✓Питонический скриптоподобный синтаксис. ✓Безопасный. Есть боров-чекер с автоматическим подсчётом ссылок. ✓Можно сразу запускать без компиляции. ✓Можно компилировать в плюсовый код.
>>2914575 Блять, мистика какая-то. Я точно так и гуглил, и мне выдавало не сам язык, а какой-то дизайн паттерн штоле. Блять, теперь загуглил - выдаёт язык. Что за мандела у меня тут творится? Ну да ладно. Спасибо. Пойду почитаю.
В билд-системах отсталых языков программирования 1. ты пишешь на непонятном скриптовом языке, который надо учить. 2. у каждого проекта своя билд-система
>>2911208 Я его тоже могу понять. Рядом город который на 50% разрушен самоходными артиллерийскими установками и прочими градами. Позиция "моя хата с краю" работает до тех пор пока до тебя не доберутся раскулачиватели20ХХ. Вот он и изливает свои опасения и боль в такой форме, в надежде что это поможет. никогда не помогало, есть только выгода.. там, на уровне властей мира сего, в момент принятия решений
>>2914974 >каждого проекта своя билд-система С одной стороны это плохо, а с другой заебись, ибо появляется свобода выбора из говен. Тебе не придется мириться с косяками партийной системы, а можно будет взять ту, которая тебе подходит.
>>2914974 Надо быть полным уёбком, чтобы на языке для определённых задач писать и макросы (м4), и билд скрипты (cmake, makefile), и скрипты общего назначения (баш, схема, тикль, питон, твоя мамка).
Прошёл тестовое на блокчейн, господи это просто другой мир. Какие-то SPL-токены, минтинг, SOL'ы, лампорты... Епаааать. После бекенда это как будто НЛО, придётся заново учиться. Я-то думал, что там просто поменял библиотеку и пересел на блокчейн. А там не, нихуя. И хороших курсов-то особо нету...
>>2914455 >✓Можно сразу запускать без компиляции. Разве это не была фишка GO на релизе что у него компилятор был практически мгновенный и можно было использовать го как скриптовой язык?
>>2915621 Интересно, это рост доли или по абсолютным показателям? Если рост доли, то норм, а если по абсолютным, то, получается, что те, которые выросли меньше, чем на 27%, в относительном выражении не выросли, а просели.
>>2916563 Хуй ты в жопу себе выключил, даун. Тут автоматическое управление памятью без сборщика мусора, как в расте/свифте. Вот носятся с говном своим, не знают, куды пристроить. Да закопайте, ёпты.
>>2916569 >автоматическое управление памятью Ещё со времён C+ не понимаю - людям чтоб, блядь, так трудно delete сделать когда больше не нужна им хуёвина их??? Ещё блядь указатели запретите мол СЛОЖНАААА
>>2916588 Вдобавок там ещё и работа с nil лучше сделана, чем в этом го сраном. Вообще, прикольный язык для маленьких проектов/на поиграться. Заточен на разработку игр (батарейки внутри языка), но никто не запрещает сделать что-то кроме.
На втором пике - стреляюще-летающий треугольник и практически весь код для него. Есть lsp для вскода, что для экзотического языка уже достижение.
>>2917087 Да, это одна из фич. Вообще, это питон, хачкель и раст в одном, пускай маленьком, но флаконе, с заточкой под игры. В этом плане у него проблема с позиционированием - это детский язых для взрослых дядь, знакомых с хэви функциональщиной.
>>2917154 >>2915698 Ладно полоски, у них там протухший груви выше позиций джавы, го, шарпа и млять самого объемного по репам - жопоскрипта. Явно лепил бездарь далекий от тенденций в айти, но зачем мягкие так стали активно пиарить раст?
>>2917224 > зачем мягкие так стали активно пиарить раст? Он удобен и безопасен. Корпам важно чтобы кодомакаки как можно быстрее тяп-ляпали в продакшен. Раст со своей боров-принудиловкой выглядит как идеальный продукт для этого. Джуны не смогут себе стрелять в ногу. Мидлы смогут ансейфом. А сеньоры будут пиздить джунов за одно только упоминание ансейфа, а мидлов будут штрафовать за ансейф, если мидл не сможет убедительно доказать, что вот тут ансейф нужен.
По сравнению с си, где по умолчанию всё мутабельно и всё ансейфно - это просто как небо и земля.
>>2917295 Большая часть сишных ошибок, это код некомпетентных макак-студентов, поэтому, для прикладных задач с головой хватает управляемых языков, а там где плюсы нужны сейчас, надо реально ручками управлять, поэтому раст он не пришей к звезде рукав для рынка и именно поэтому так медленно популяризируется.
Нахер вы повторяете мантры евангелистов, достала одна и та же глупость за эту безопасность и звездежом про нулевые абстракции, есть тут ли реальные программисты? Есть ли реальные догадки почему мягкие так к расту решили пристроиться?
>>2917330 > есть тут ли реальные программисты? Нет. Здесь только комнатные джуны, которым не перезвонили. УХАДИ. > почему мягкие так к расту решили пристроиться? Я уже описал почему. Если у тебя не хватает знаний, чтобы это понять - твоя проблема.
Еще раз повторю. Майки выбрали раст не по техническим, а по организационно-комерческим причинам. Настоящие программисты™ не смогут тебе ответить на этот вопрос. Потому что вопрос лежит в сфере знаний настоящих банкиров™.
>>2917330 >почему мягкие так к расту решили пристроиться потому же, почему и гугл всё больше нового кода андроида на нём пишет. Корпы давно в курсе, что те олимпиадники с кучей сертификатов, которых они принимают на работу - зачастую те ещё долбоёбы. Собственно, это видно по качеству продукции. А раст - это а. уже не долбоёб (куча вакансий, где раст упоминается, но кодить надо на чём-то другом) б. худо бедно защита от того, например, что новый говнокодер не сломает ничего критичного в коде старого
>Большая часть сишных ошибок, это код некомпетентных макак-студентов поэтому, для прикладных задач с головой хватает управляемых языков Ну, а теперь сам ответь на вопрос - а что ж оно всё сегфолтит и сегфолтит? Переписали бы на управляемые языки, или брали бы на работу только одних сеньоров - анон с двача уже давно всё решил. Иди к мелкомягким в топы, поясни, как надо. Главное, дверь с ноги открывай, а то всерёз не воспримут.
>>2917330 >а там где плюсы нужны сейчас, надо реально ручками управлять Ну, скажем, разработка игр. Сейчас 2 пути: безопасно на # и опасно на ++ (посмотри обзоры игр - "всего пару раз вылетела" как комплимент). Раст тут удачно вклинивается между # и ++, по скорости ближе к ++. Да и любая другая задача уровня "разработать шуструю приложуху", где сейчас используются ++.
>>2917368 >Ну, а теперь сам ответь на вопрос - а что ж оно всё сегфолтит и сегфолтит? Потому что бизнес не хочет за это платить. Качественный код стоит очень дорого, а специалисты еще дороже. Эту проблему решают управляемые языки. Поэтому буквально бизнесу невыгодно оплачивать все эти сигфолты и раст никак не родит ни новых спецов из вчерашних питонистов и не сделает код качественнее чем это сделала бы жаба или шарп или го. Но он реально очень сильно замедляет разработку в сравнение с управляемыми языками.
>>2917391 Ты в рептилоидов под кроватью тоже веришь, мань? Тебе ж показали: раст растёт быстрее, чем пользовательская база гитхаба. То есть, новых репозиториев всё больше появляется на расте. Давай подумаем вместе: 1. Агрессивный маркетинг. 2. Фейковые репозитории.
>>2915349 Сложно выбрать лучшее, когда ничего не знаешь. Я вот тоже из бейсика и паскаля выбирал паскаль. А потом из бейсика, паскаля и плюсов выбирал плюсы.
>>2917330 >Нахер вы повторяете мантры евангелистов, достала одна и та же глупость за эту безопасность и звездежом про нулевые абстракции, есть тут ли реальные программисты? Есть ли реальные догадки почему мягкие так к расту решили пристроиться? Потому что манагеры рулят, мантра про т.н. безопастность пидераста хорошо продаётся людям с iq воробушкаманагера.
>>2917330 > Большая часть сишных ошибок, это код некомпетентных макак-студентов, Да-да, горы CVE, эксплуатируемых через buffer overflow и прочие проебы с указателями и памятью, в ядре linux/windows, драйверах, браузерах, БД, всяких sudo/coreutils - это все некомпетентные макаки-студенты понаписали, а другие студенты-макаки на ревью проглядели.
А потом корпы и трансы дали Линусу Торвальдсу денег на нативный пиар, шоб раст в ядро затащил, - надо же как-то агрессивный маркетинг делать
>>2917857 Но только в ряя-unsafe блоках, которых мало, которые легко ищутся и которым уделяют особое внимание на ревью. А си-плюсовый код - один сплошной ряя-unsafe.
>>2917927 >ряя-unsafe блоках В си-параше таких мест будет меньше, потому что см. диаграмму выше. >уделяют особое внимание на ревью Как выше сказаны было >>2917841 >А си-плюсовый код - один сплошной ряя-unsafe. Всё что нужно знать о растопидорашках.
>>2918152 Раст тоже в девопсе, или что? Если это было бы о девопсе, то го там улетел бы на луну. А если бы о контребьютинге, то улетел бы js и петухон с их обилием реп.
Абсолютно маня график по всем сторонам. И эта наивная попытка натягивать раст на глобус.
>>2918340 Если изучишь раст, сможешь лампово сидеть с нами в этом итт треде. А если изучишь шарп, придётся сидеть в том неуютном треде с теми кодомакаками. Загрустишь там, пойдёшь по чужим тредам толсто набрасывать, тебя отовсюду будут гнать ссаными тряпками, так и будешь бегать по доске неприкаянный.
>>2918340 > просто убедите почему ваш инструмент лучше чем другой Слыхал про такую штуку как шахматные задачи? Когда шахматисты расставляют несколько фигур на доске и предлагают друг другу сделать мат в два хода.
Так вот. В мире айти раст - это такая шахматная задача. Сделай приложение на расте с боровчеком вместо гц и опциями вместо нуля, с кортежными энумами и типажами вместо ООП. Раст для тех, кто устал от %язык_нейм% и хочет чего-то новенького.
>>2918158 > то го Того, речь об индусах. Миллион разрабов туда, миллион сюда. В этом году пара индусских галер решили девопсить на груви - вот и скачок. Вон, тип с го на раст переписывает, юзая только стандартную либу, даже без карго, на одном rustc https://www.twitch.tv/videos/1965033761
Блин, весёлый язык. Ни разу не конкурент расту, но тоже безопасный. Одно жаль - дока у него почти никакая. Детей учить самое то. На видео кружок с лучами и код для него. Банзай, ёптыть
>>2899940 https://vale.dev/comparisons > Javascript is like a soft autumn breeze, easy and refreshing. > Programming in Rust feels like an addictive puzzle game! прикольный проект с интересными (пока-что нереализованными) идеями, но я с недавнего времени пилю дизайн своего языка, и скажу что со стороны у этой вали есть пробелы с дизайном то есть он выглядит лучше си и раста, конечно, но первый он пока заменить не может, а второй набил больше фанбазу и, пусть и через анальные потуги, статически может больше, а поэтому валя только может предложить трейдофф в целом, конечно все три говно. как всегда. >>2900287 зиг - смена шильдиков на сях, посмотрел мельком презентацию на ютабе и охуел с того как мало изменено
>>2898122 (OP) >inb4 столяров, царь хех все аноны с лора сюда сдристнули, да и хорошо, тут хоть без анальных мочераторов, но и пятизвездочных не потролить конечно
>>2920430 >пилю дизайн своего языка Сейчас пилить дизайн языка, это то же самое, что в 2005 пилить дизайн своего кнопочного телефона. В том плане, что сейчас ассортимент языков примерно тот же, что в 2005 кнопочных телефонов, но такое ощущение, что вот-вот сама концепция поменяется радикально.
>>2920441 Согласен, каждый новый язык как штамповка. Если бы думал что у меня выйдет очередной штамп - нахуй бы мне оно надо, но набираются идеи год за годом, некоторый из которых весьма как раз радикальны, поэтому в этом есть интерес для меня. Вырабатывается своя философия. Рассказывать особо не хочу -- во первых все пока довольно мутно, во вторых не охота ни с кем спорить, просто тихо слежу за новыми языками, изучаю старые, пизжу и внедряю какие-то стоящие идеи из них. Пока-что могу сказать что задизайнить все без эксперементов на железе нихуя не выйдет, буду со временем пилить мелкие прототипы что бы подробнее знать как работает железо. > но такое ощущение, что вот-вот сама концепция поменяется радикально. Ну сама по себе она не поменятся, только если кто-то придет и поменят (и я надеюсь ты щас не об жпт 4, я до сих пор рофлю с бурлений говн на этот счет вот только полгода назад) >поменяется радикально. Еще стопорит индустрию тупо то что дизайн компов застрял в 70х, и с этим трудно бороться.
>>2920441 > такое ощущение, что вот-вот сама концепция поменяется радикально Для LLVM запилят удобный ГУЙ и каждый школьник сможет запилить свой язык. Таким образом все программы будут по сути написаны на IR который ты на лету восстанавливаешь в свой любимый язык и удобно читаешь, несмотря на то, что изначально тот код был написан на каком-то языке, который ты ни разу не видел, и транслирован в IR.
>>2920526 Если последним аргументом у тебя кложа в функции ее можно вызвать сразу через "{}":
А с контекстом у тебя передается объект, например аллакатор можно вызвать только в контексте кложи только так. memScoped { val arg = alloc<IntVar>() val result = readValue(42L, arg.ptr) }
>>2920935 Почти разобрался. Как понял, компилятор хочет приводить последний экспрешн тернарного оператора (тут это "" типа const char[1]) ко второму, тут это yolo типа String. если написать yolo ? (const char звездочка)yolo : "" то все норм, потому что самому компилятору приводить уже не надо.
Непонятным остается вопрос. Почему он дважды освобождает yolo? Ведь он как будто тут вообще не при чем. Типа привести последний экспрешн не удалось, но освободить что-нибудь да надо...
>>2920939 В общем, посмотри на котлин DSL, это не какая-то магия и кодегенерация, это прям синтаксис котлина. Конечно они сперли вдохновились у груви, но у них это все на статик типах. Если бы я делал синтаксис, то вдохновился бы такими лямбдами.
>>2921265 Только скачал DCPL пока что. Еще год назад и подумать не мог что пиление языка это что-то чем захочу заниматься, и только с недавнего времени захотелось поизучать языковую теорию, вещи вроде plt redex, поближе понять как работает железо и.т.д. Неспеша буду почитывать всякую литературу. >dcpl и pfpl и tapl? Я нашел https://github.com/steshaw/plt но как понял то что ты перечислил - топ из топа, возьму на заметку.
>>2898122 (OP) есть более лаконичные способы узнать, что число Some(f32) входит в диапазон, не создавая новые трейты/методы? может в стандартной либе есть что-то еще?
>>2921566 Думаешь, книга, обобщающая и систематизирующая всякие штуки из языков программирования, у Брендана Эйка или Гвидо Ван Россума вышла бы лучше?
>>2922830 хуй знает, я серьезно спрашивал я писал хуйню типа пика, пока не узнал, что можно просто писать enum_name as Integer, чтобы получить дефолный индекс, или вообще самому присваивать индекcы прямо в объявлении enum'a (A = 10, B=20, C=25, и т.д.)
поэтому и спросил - может тут есть тоже способы попроще, чтобы не писать if x > min && x < max {}
ну и пользуясь случаем порекомендую анонам книжку Easy Rust - кратко, сжато и по-делу, очень простой английский https://dhghomon.github.io/easy_rust/
Публикую пример тестового на Rust. Может кому-то пригодиться. Само задание звучит так:
Задача: написать алгоритм, принимающий на вход строку разделенную пробелами, и длину строки в символах. Необходимо разбить исходный текст на строки и выравнять по указанной длине строки с помощью пробелов. Расстояние между словами нужно заполнять равным количеством пробелов, если же это не возможно, то добавляем еще по пробелу между словами слева направо. Если в строке помещается только 1 слово, то дополнить строку пробелами справа. Результат вернуть в виде единой строки, где полученный список равных по ширине строк склеен с помощью символа перевода строки.
Реализовать максимально производительное решение при сохранении читабельности кода, такого чтобы его можно было использовать в продакшене и поддерживать в дальнейшем.
Моё решение: https://pastebin.com/rCPk3C3X Я прислал буквально на следующий же день. Они ДВЕ НЕДЕЛИ его проверяли и сказали пикрелейтед, мол всё плохо - нет поддержки utf8, много аллокаций и вообще мол unwrap() используешь. Хотя я только в одном месте его написал. В общем как-то так.
>>2923314 Они изначально прислали в таком виде, там уже были тесты. Я подумал, ну ок. Если уже есть тесты, значит надо чтобы они прошли и дело в шляпе. Оказывается неееет, это засчитали как недочёт. Кто бы знал что они обратят на это внимание.
>>2923366 Неплохо, ну видишь, они сразу скажут - а чё так много unwrap()? А чё комментариев нет? А зачем ты слова сохраняешь в большой вектор? Ну и всё в таком духе.
>>2923371 Вообще, такое задание hard кста, удивительно предполагает формат живого общения. Тогда можно хоть ответить, что все unwrap() гарантировано будут успешными, а вектор на производительность никак не влияет. Хотя, я бы сейчас действительно переделал без unwrap(), лол.
Проверяется это задание полчаса от силы, так что сдаётся мне истинная причина отказа вовсе не в нём.
>>2923303 >Задача: написать алгоритм, принимающий на вход строку разделенную пробелами, и длину строки в символах. Необходимо разбить исходный текст на строки и выравнять по указанной длине строки с помощью пробелов. Расстояние между словами нужно заполнять равным количеством пробелов, если же это не возможно, то добавляем еще по пробелу между словами слева направо. Если в строке помещается только 1 слово, то дополнить строку пробелами справа. Результат вернуть в виде единой строки, где полученный список равных по ширине строк склеен с помощью символа перевода строки. А чё сделать-то надо?
>>2923400 Жру говно программирую на сях уже лет 20, как-то привык к этой нагрузке. В расте их не хватает, когда используешь итераторы активно. Хочется написать красивый однострочник, а получается ебала на пол-экрана.
>>2923403 Тогда как никто другой должен ненавидеть непонятные однострочники конструирующие ядерный реактор и запускающие терраформирование Марса. И комментарий в стиле "хелпер функшн" Пример из STL
>>2923408 Возможно. Однако касаемо раста, по факту любой if-else в нём — это выражение с тернарным оператором. Вот только иногда его хочется записать компактнее.
>>2923382 Лол, да в этом и суть. Чтобы просто ЗАПИСАТЬСЯ НА ИНТЕРВЬЮ нужно сначала выполнить тестовое. То есть они даже не будут общаться, если не выполнишь задание. В моё время было по-другому: вначале общались, а потом если есть сомнение брать или не брать, давали тестовое. Сейчас найм стабильно идёт в 3 этапа. Хз, с чем связано. Может слишком много кандидатов? Я уже постил другое тестовое >>2915728 там была та же история - вначале дали тестовое, а потом пригласили на собеседование. Я так подозреваю, сейчас везде такая история.