LINUX.ORG.RU

Rust 1.34

 ,


3

8

Вышел релиз 1.34 языка системного программирования Rust, развиваемого проектом Mozilla.

Ключевое-долгожданное:

  • Начиная с этого выпуска, Cargo может поддерживать альтернативные реестры. (Эти реестры сосуществуют с crates.io, так что вы можете писать программы, которые зависят и от crates.io и от вашего реестра.)
  • Трейты TryFrom и TryInto были стабилизированы для поддержки ошибок при преобразовании типов.

>>> Полный анонс



Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 1)

Ответ на: комментарий от Miha

они не осилили даже стандартный С++.

Я бы это перезамороченное дерьмо даже не пытался осиливать.

Но мне пофиг. Какая свзязь между растом и фп?

anonymous
()
Ответ на: комментарий от anonymous

Может я не тебе отвечал про компиляторы на javascript, но ответ в том, что промышленные компиляторы с++ на с.

Miha
()
Ответ на: комментарий от Miha

Может я не тебе отвечал про компиляторы на javascript, но ответ в том, что промышленные компиляторы с++ на с.

Мне ты отвечал. Сначала спросил, можно ли на расте написать конпелятор. Я тебе ответил: да. Ты мне теперь зачем-то втираешь про фп.

Buffer overflow - переполнение буфера? При чем тут утечка памяти?

Не при чём, просто обосраться с памятью — это характерная сишная проблема. Способов обсирания не перечесть.

anonymous
()
Ответ на: комментарий от Miha

переполнение буфера? При чем тут утечка памяти?

снявши голову, по волосам не плачут

MyTrooName ★★★★★
()
Ответ на: комментарий от Miha

Что есть в промышленности - gcc, clang, icc? - они все написаны на С.

Не хочу вас расстраивать, но, как минимум, gcc и clang — это C++. GCC с недавних пор, clang изначально.

eao197 ★★★★★
()
Ответ на: комментарий от Deleted

разобрался с некоторым тормозным и глючным rust-мусором - оказывается библиотеки librsvg до версии 2.40 включительно были без него )

Deleted
()

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

anonymous
()
Ответ на: комментарий от dear_amomynous_v2_1

LLVM написан на плюсах, т.к. во время его написания был ровно один язык дающий максимальную производительность (с бесплатными абстракциями и без GC). Сейчас таких языков ровно 2. И всё чаще для новых проектов выбирают второй

Deleted
()

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

anonymous
()
Ответ на: комментарий от Deleted

Да хоть брэйнфаке. LLVM - не компилятор раста и IR из кода на расте получается ни разу не его силами. В остальном ты прав, раст неплохо так набирает популярность ;)

dear_amomynous_v2_1
()
Ответ на: комментарий от Miha

Шланг и гцц написаны на креста, а не на сях. В шланге так ваше 17й стандарт во все поля.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от anonymous

Обёртка над ассемблером, как и было задумано

Всё что можно сделать без Си лучше делать без Си

какой бредятины тут только не прочтёшь.

bonta ★★★★★
()
Ответ на: комментарий от bonta

Так не томите, скажите проект, который можно было сделать без С, но там использовали С? Проекты уровня «Смотрите: я отрендерил какашку на чистом С», не в счёт.

red75prim ★★★
()
Последнее исправление: red75prim (всего исправлений: 1)
Ответ на: комментарий от red75prim

На си вообще ничего не нужно делать кроме драйверов и ядер ос, для всего другого есть си++. Раст и прочее естественно не нужны.

bonta ★★★★★
()
Ответ на: комментарий от Miha

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

Barracuda72 ★★
()
Ответ на: комментарий от Barracuda72

его разрабатывают как язык для быстрого и безопасного написания эффективных прикладных программ

А го разве не для этого разрабатывают? На нем много что написано, даже серьезные серверные приложения.

на замену каким-нибудь жабам/сишарпам очень бы даже взлетел

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

Miha
()
Ответ на: комментарий от Miha

А го разве не для этого разрабатывают? На нем много что написано, даже серьезные серверные приложения.

Ну таки это все равно прикладные вещи, если смотреть со стороны ОС и прочего. Да, в этом плане он неплох.

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

Я не о существующей инфраструктуре, а об уровне задач. Rust совершенно не тянет на замену C/C++ в системщине, а вот как инструмент в нише, где для Java/C# не хватает ресурсов, а для C++ - мозгов/времени, он вполне даже ОК. Понятно, что сириуз бузинесс даже от Cobol кое-где отказываться не спешит, но это не повод начинать на нем новые проекты.

Barracuda72 ★★
()
Ответ на: комментарий от Miha

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

Это раз. Но даже без них, если не рассматривать весь инструментарий, библиотеки, сообщество, если только сравнить сами языки...

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

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

seiken ★★★★★
()
Ответ на: комментарий от seiken

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

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

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

Внезапно это то же самое старое доброе ООП, и trait как идее тоже сто лет в обед. И наследование там тоже есть, потому что моделью base -> derive наследование не ограничивается. И даже концепция владения (ownership) не уникальна для Раста. Единственная его отличительная фича - попытка почти полностью переложить контроль за этим самым владением объектами на плечи компилятора. Да, тут придется попривыкать немного, но если код не системный (там все плохо будет, это да) - никаких особых трудностей. Так что Rust это результат не революции, а эволюции.

Barracuda72 ★★
()
Ответ на: комментарий от anonymous

Не при чём, просто обосраться с памятью — это характерная сишная проблема. Способов обсирания не перечесть.

Это не сишная проблема, а проблема людей которые не освобождают память и плохо тестируют свой код. У С вообще никаких проблем нет.

anonymous
()
Ответ на: комментарий от Barracuda72

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

так я не с С++ сравнивал, а с ЯП со сборщиком мусора и привычным ООП, ответ на «на замену каким-нибудь жабам/сишарпам очень бы даже взлетел».

И даже концепция владения (ownership) не уникальна для Раста.

только если все эти вопросы владения и управления памятью второстепенны, эти фичи Раста тормоз в разработке.

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

...и на плечи разраба

Так что Rust это результат не революции, а эволюции.

Да прекрасно! Только при чем тут замена Джавы/Шарпа? Вообще, некорректно ЯП типа Раста сравнивать с ЯП с недетерминированными сборщиками мусора. А та же Джава тоже эволюционирует, и в этой ветке эволюции решаются проблемы Джава-подобных ЯП (типа NullPointerException), и эти новые ЯП называются не Раст.

seiken ★★★★★
()
Ответ на: комментарий от seiken

так я не с С++ сравнивал, а с ЯП со сборщиком мусора и привычным ООП, ответ на «на замену каким-нибудь жабам/сишарпам очень бы даже взлетел».

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

только если все эти вопросы владения и управления памятью второстепенны, эти фичи Раста тормоз в разработке.

Это несколько замедляет разработку на начальном этапе, да, потому что надо пошевелить мозгами и въехать, как оно работает. Взамен ты получаешь то, что я уже говорил - быстрый и нежручий код. Всегда есть какой-то компромисс, и тот вариант, который превалирует сейчас - плевать на качество кода, важнее наклепать говнеца побыстрее и побыстрее продать, а как оно будет работать нас не волнует - не лучший из них. ИМХО раст занимает здесь золотую середину и у него есть перспективы.

...и на плечи разраба

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

Да прекрасно! Только при чем тут замена Джавы/Шарпа? Вообще, некорректно ЯП типа Раста сравнивать с ЯП с недетерминированными сборщиками мусора.

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

А та же Джава тоже эволюционирует, и в этой ветке эволюции решаются проблемы Джава-подобных ЯП (типа NullPointerException), и эти новые ЯП называются не Раст.

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

Barracuda72 ★★
()
Ответ на: комментарий от Barracuda72

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

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

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

Лучший _для кого_? Это может быть с кодерской колокольни так видно, что инструменты диктуют качество кода. В реальности инструмент выбирается под приемлемый уровень рисков и качества результата, а не наоборот. Хоть математически докажи корректность всей системы - это будет всего лишь один из факторов при выборе, и зачастую не решающий.

seiken ★★★★★
()
Ответ на: комментарий от anonymous

Это не сишная проблема, а проблема людей которые не освобождают память и плохо тестируют свой код. У С вообще никаких проблем нет.

Какие могут быть проблемы у С, он же памятник яп. Это проблема пользователей программ, которые написаны на С вместо хорошего языка.

anonymous
()
Ответ на: комментарий от hbee

Люди не должны освобождать память. Не царское это дело.

Есть куча инструментов (языков) c GC, можно пользоваться и почувствовать себя человеком. Подчеркнут лишь тот факт, что это не проблема языка, а проблема того, кто на нем пишет.

anonymous
()
Ответ на: комментарий от anonymous

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

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

anonymous
()
Ответ на: комментарий от anonymous

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

У вас слишком кривые аналогии, поэтому для вас всё и выглядит так плохо. С всего лишь инструмент, как любой другой язык. Не нравится что-то, есть куча других. Но от того что в нем нужно самому следить за выделяемой памятью он хуже не становится, как и лучше в общем-то. Нельзя сказать что это проблема языка. Тут неподалеку есть тема где человек хапнув С, сетует что очень плохо со «строками» в С. Но ведь в нём нет строк ¯\_(ツ)_/¯.

anonymous
()
Ответ на: комментарий от anonymous

У языка {} никаких проблем нет. Писать/читать/понимать сложно - чини руки/глаза/голову, выполняется медленно/жрёт памяти гигабайты - купи железо мощнее. Все проблемы - это миф!

dear_amomynous_v2_1
()
Ответ на: комментарий от seiken

GC решает ровно одну проблему, связанную с владением, из многих

MyTrooName ★★★★★
()
Ответ на: комментарий от dear_amomynous_v2_1

У языка {} никаких проблем нет. Писать/читать/понимать сложно - чини руки/глаза/голову, выполняется медленно/жрёт памяти гигабайты - купи железо мощнее. Все проблемы - это миф!

Вы тоже утрируете, уходя в смехопанораму. Просто у каждого языка есть своя ниша использования, глупо ему приписывать какие-то «проблемы» когда вы пытаетесь его использовать вне его ниши.

anonymous
()
Ответ на: комментарий от anonymous

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

Ресторан — всего лишь место для приёма пищи.

Не нравится что-то, есть куча других.

Не нравится что-то, есть куча других.

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

Но от того, что в нём крысы по столу бегают, он хуще не становится. Ой...

У любого инструмента есть объективные недостатки, которые портят качество производимого им продукта. Проблемы с памятью — один из недостатков С.

anonymous
()
Ответ на: комментарий от anonymous

Ресторан — всего лишь место для приёма пищи.

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

MyTrooName ★★★★★
()
Ответ на: комментарий от MyTrooName

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

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

anonymous
()
Ответ на: комментарий от anonymous

у языка есть ниша

нет. ты потерял категорию времени и категорию изменчивости.

это было возражение на

глупо ему приписывать какие-то «проблемы» когда вы пытаетесь его использовать вне его ниши.

не теряй контекст, тут GC нет.

MyTrooName ★★★★★
()
Последнее исправление: MyTrooName (всего исправлений: 2)
Ответ на: комментарий от anonymous

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

Оголённые провода на инструменте - by design. Это вам не penis canis, а инструмент только для профессионалов. (На самом деле, в основном, ограничения железа начала 70-х прошлого века и вызванное ими желание иметь простой компилятор)

red75prim ★★★
()
Последнее исправление: red75prim (всего исправлений: 2)
Ответ на: комментарий от anonymous

Развивая тему кривой аналогии, она лучше не становится.

У любого инструмента есть объективные недостатки, которые портят качество производимого им продукта. Проблемы с памятью — один из недостатков С.

Вы хотели сказать субъективные, и как уже было написано это не «недостатки», а лишь особенности реализации. Если вы не умеете подбирать инструмент под задачу, это не недостаток инструмента, уж простите ¯\_(ツ)_/¯.

anonymous
()
Ответ на: комментарий от MyTrooName

нет. ты потерял категорию времени и категорию изменчивости.

Скорее, вы потеряли связность, в попытках оправдать написанное вами ранее.

anonymous
()
Ответ на: комментарий от anonymous

Вы хотели сказать субъективные, и как уже было написано это не «недостатки», а лишь особенности реализации.

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

Если вы не умеете подбирать инструмент под задачу, это не недостаток инструмента, уж простите ¯\_(ツ)_/¯.

Если инструмент откровенно херово решает задачу, для решения которой он предназначен — это объективный недостаток инструмента.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.