The OpenNET Project / Index page

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

Увидел свет язык программирования Rust 1.7

04.03.2016 10:13

Доступен релиз языка программирования Rust 1.7, развиваемого проектом Mozilla, обеспечивающего автоматическое управление памятью и предоставляющего средства для высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime. Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo, написанный на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).

В новом выпуске основное внимание было уделено стабилизации библиотек - около 40 функций и методов переведены в разряд стабильных. В том числе стабилизирован новый API, позволяющий использовать собственные алгоритмы хеширования в типе HashMap. Ранее допускалось использование только алгоритма SipHash, слишком медленного при использовании ключей небольшого размера. В Rust 1.7 разработчики могут подключить алгоритм FNV, что значительно ускорит работу с мелкими ключами, но приведёт к потере защиты от DoS-атак через подстановку большого числа значений, вызывающих коллизии.

Из других улучшений отмечается добавление вызова clone_from_slice() для эффективного копирования данных из одного слайса в другой, реализация порции методов проверки IP-адресов (например, Ipv4Addr::is_loopback или Ipv6Addr::is_multicast), различные улучшения в CString, новые операторы для числовых типов (например, i32::saturating_mul, i32::overflowing_add, i32::checked_rem). Сборочные скрипты улучшены для информирования пакетного менеджера Cargo о зависимостях. В команду "cargo rustc" добавлена возможность указания профилей, охватывающих используемые только при разработке зависимости, например, необходимые для проведения тестирования.

Напомним, что язык Rust сфокусирован на безопасной работе с памятью и обеспечении высокого параллелизма выполнения заданий. При этом Rust обходится без использования сборщика мусора или runtime, что делает возможным создания на Rust библиотек, которые могут выступать в роли прозрачной замены библиотекам для языка Си. Для распространения библиотек на языке Rust, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки в один клик. Для размещения библиотек введён в строй репозиторий crates.io.

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

  1. Главная ссылка к новости (http://blog.rust-lang.org/2016...)
  2. OpenNews: Релиз языка программирования Rust 1.6, развиваемого проектом Mozilla
  3. OpenNews: Релиз языка программирования Rust 1.5, развиваемого проектом Mozilla
  4. OpenNews: На 2016 год запланировано задействование в Firefox кода на языке Rust и движка Servo
  5. OpenNews: Релиз языка программирования Rust 1.4, развиваемого проектом Mozilla
  6. OpenNews: Представлена операционная система Redox, написанная на языке Rust
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/43985-rust
Ключевые слова: rust
Поддержать дальнейшую публикацию новостей на OpenNET.


Обсуждение (67) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, LU (?), 10:47, 04/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >1.7
    >основное внимание было уделено стабилизации библиотек
     
     
  • 2.2, Аноним (-), 11:03, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И..? в отличии от Go релизы выходят в 6 недельном цыкле.
    И имеется ввиду стабилизация ранее "нестабильных конструкций", изменения которых никто не гарантировал.

    Хороший подход при обкатке новых решений.

     
     
  • 3.42, GrNa (?), 15:38, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    "цикле"
     
     
  • 4.62, A.Stahl (ok), 20:33, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >в отличии... ввиду...

    Неужели кроме "цыкла" ничего не насторожило?

     
  • 3.51, Аноним32 (?), 16:40, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    если цель догнать по нумерации firefox то пойдёт, молодци
     
     
  • 4.67, Anonimchik (?), 23:45, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    "молодцы" :D
     
  • 4.91, Aleks Revo (ok), 18:42, 06/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Каким же образом? Более чем за полгода до второй версии даже не добрались ))
     

  • 1.3, A.Stahl (ok), 11:12, 04/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >DOM

    Make C not Rust! Rust go DOM!

     
     
  • 2.36, Andrey Mitrofanov (?), 15:11, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >>DOM
    >Rust go DOM!

    Ты и аглицкого не знаешь? :))  //Раст проигрывает вчистую русскому и английскому в новости про себя. Обсудим суахили -- это интересно!

    Rust проигрывает вчистую в этой теме
    Rust hupoteza kabisa katika mada hii
    錆は完全にこのトピックで失われます
    拉斯特将彻底本主题丢失
    કાટ સંપૂર્ણપણે આ વિષય ખોવાઈ જશે

     
     
  • 3.37, A.Stahl (ok), 15:19, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Извини, шутить ещё более плоско и очевидно, так чтобы даже ты понял, я не хочу.
    https://en.wikipedia.org/wiki/Make_love,_not_war
    https://en.wiktionary.org/wiki/Yankee_go_home
     
     
  • 4.40, Andrey Mitrofanov (?), 15:25, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Извини, шутить ещё более плоско и очевидно, так чтобы даже ты понял,
    > я не хочу.

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

    Rustie go DOMe

    а то go DOM без yourself-а не попадает в шаблон.

     
     
  • 5.41, Andrey Mitrofanov (?), 15:29, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Rustie go DOMe

    И то у меня сомнения насчёт, не Rusties ли или Rustees. Rusti не.

     
     
  • 6.43, GrNa (?), 15:39, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> Rustie go DOMe
    > И то у меня сомнения насчёт, не Rusties ли или Rustees. Rusti
    > не.

    Rustaceans)

     

  • 1.18, x0r (??), 12:19, 04/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    "напоминает C++, но существенно отличается в некоторых деталях реализации синтаксиса и семантики."
    ну почему чтобы пользоваться чем-то новым и хорошим я должен изучать новый синтаксис и портировать старый код?
    у меня есть личная жизнь. и я бы изучал, что-то поумнее нового синтаксиса.
    c++, java и c# взлетели возможно еще потому что синтаксис близок к C и всем знаком.
     
     
  • 2.19, Школьник (ok), 12:38, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Если ты знаешь синтаксис C++ и синтаксис Ruby, то синтаксис Rust не будет для тебя большой проблемой. А вообще, синтаксис языка не так уж и важен, гораздо важнее семантика. Перейти на язык с другим синтаксисом - не такая большая проблема по сравнению с переходом на язык с другой семантикой.
     
     
  • 3.25, fail (?), 13:11, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ...
    >> c++, java и c# взлетели возможно еще потому что синтаксис близок к C и всем знаком.
    > Если ты знаешь синтаксис C++ и синтаксис Ruby, то синтаксис Rust не
    > будет для тебя большой проблемой. А вообще, синтаксис языка не так
    > уж и важен, гораздо важнее семантика. Перейти на язык с другим
    > синтаксисом - не такая большая проблема по сравнению с переходом на
    > язык с другой семантикой.

    Только "лишнее" время тратить - чтобы напрягаться лишний раз и т.д. - нафикк..
    ИМО, камрад пару постами раньше - правильно все изложил.
    Все "фичи" - уничтожили синтаксисом (не подходящим для целевой аудитории) - imo, будет rust "барахтаться" в своей маргинальной нише.


     
     
  • 4.64, Вареник (?), 21:39, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Совершенно верно.

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

    А серьезные люди так и не придут, потому что преимуществ перед грамотным использованием boost, STL, Qt - накаких. За прямыми конкурентами (Swift, Go) - стоят деньги, среды разработки, библиотеки, нормальная документация.

    А перед Java, Scala, Kotlin, С# - Rust это вырвиглазные головоломки, без преимуществ по скорости, т.к. проверки сьедают преимущества от нативности, без фреймворка, без среды.

    А для души есть D.

     
     
  • 5.65, Аноним (-), 22:42, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Кому как.
    На работе Ява, "для души" и интереса пока Rust. На Rust-форумах так же есть европейцы джависты которые пишут на Ruste.

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

     
     
  • 6.69, fail_ (?), 11:04, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Угу, наживное ядовито ухмыляясь , где-то год-другой назад зазывали на проект - н... большой текст свёрнут, показать
     
     
  • 7.73, Аноним (-), 12:39, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Между версиями 0.9 и текущей 1.7 огромная разница:

    * Производительность увеличилась в разы.
    * В дистрибутивах linux уже есть пакеты Rust и его собственного пакет-менеджера - cargo.
    * Количество приложений в репозитории (~4300) уже позволяет найти что-то готовое.
    * Сообщения компилятора о том что не так во многом более понятны и зачастую идут с описанием что требуется изменить.

     
     
  • 8.76, fail_ (?), 14:09, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    без тени сарказма, это понятно, даже по цифрам, надо приводить цифры, и по конкр... большой текст свёрнут, показать
     
  • 5.71, Аноним (-), 11:39, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, грамотное использование защищает от ошибок в с++, поэтому с этой точки зрения нет никакого смысла переходить на Rust. Но есть другой момент, который в c++ так и не решен: http://www.gamedev.ru/flame/forum/?id=156989
    Со временем ПО на Rust обойдет по производительности с++, и с этим пока вроде как ничего не планируется делать
     
     
  • 6.87, Roo2AT7d (ok), 14:15, 06/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > http://www.gamedev.ru/flame/forum/?id=156989

    Тем временем растоманы предлагают использовать вектор.

     
     
  • 7.88, Аноним (-), 15:11, 06/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И? В Rust нет этой проблемы
     
  • 5.74, Аноним (-), 12:53, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    А кто будет проверять что использование boost, STL грамотное? например для мультипоточного приложения?

    Самый опытный сотрудник? или статические анализаторы за 5k долларов? а если и они что-то пропустят, что делать?

     
     
  • 6.75, Аноним (-), 13:18, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Зачем проверять? Просто пиши грамотно и не будет никаких проблем, вот и всё. Если пишешь неграмотно, возникают ошибки, - это твои проблемы, а не проблемы языка. Как было сказано, Qt, boost, stl и с++11 уже предоставили возможность писать полностью безопасный код в плане работы с памятью и вообще, а пользоваться этим или нет - личное дело каждого программиста.
     
     
  • 7.77, Аноним (-), 14:46, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    это опять же проблема человеческой ошибки, и тот факт что софт её не словит - уж... большой текст свёрнут, показать
     
     
  • 8.81, Аноним (-), 16:22, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    цифры можно привести, по поводу мощности множеств ОЧЕНЬ большая юзербаза ... текст свёрнут, показать
     
     
  • 9.82, Аноним (-), 16:59, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    тут поясню что сравнивал аудиторию разработчиков статических анализаторов, многи... текст свёрнут, показать
     
  • 7.93, omnomnimous (?), 10:03, 07/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем проверять? Просто пиши грамотно и не будет никаких проблем, вот и

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

     
     
  • 8.97, Аноним (-), 01:45, 08/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    у Вас какое-то явно идеалистическое представление о жабе , правильности и эн... текст свёрнут, показать
     
     
  • 9.98, omnomnimous (?), 10:37, 08/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Скажем так, жаба хотя бы пытается, это если сравнивать с тем же це Нисколько её... текст свёрнут, показать
     
  • 5.80, Аноним (-), 15:51, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >т.к. проверки сьедают преимущества от нативности, без фреймворка, без среды.

    какие такие проверки?

     
  • 5.92, omnomnimous (?), 09:58, 07/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Rust это вырвиглазные головоломки,

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

    пруф?
    > проверки сьедают преимущества от нативности

    какие проверки? На этапе компиляции-то? Что они у тебя отЬели, болезный наш?
    > А для души есть D.

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

     
  • 2.22, Аноним (-), 12:57, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И чем же похожи? Код портировать придётся всё равно. Ведь даже C# или Java не содержит некоторых конструкций из C типа указателей.
     
  • 2.30, АнонимХ (ok), 13:35, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ерунда, это только кажется. Один вечер почитать мануал - сразу все понятно становится (синтаксис). Это вам не перл.

    Как программист вообще может бояться синтаксиса? Ведь абстракции предметной области переложенные в код - это тоже, своего рода, особый синтаксис, с этим и приходится работать.

    Раст - это вам не питон-пхп. Он, действительно, близок к С по духу, как оказывается, хоть я и был по-началу скептически настроен. В отличие от Go, например.

     
     
  • 3.53, Ivan_83 (ok), 16:58, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Есть хх тыщ строк кода.
    Кому и зачем их переписывать на русте?
     
     
  • 4.54, Растанимус (?), 17:19, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Никому и незачем. На Rust можно писать новый функционал в виде отдельной библиотеки, благо он прекрасно линкуется с существующими наработками.
     
  • 2.34, Клыкастый (ok), 14:24, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > ну почему чтобы пользоваться чем-то новым и хорошим я должен изучать новый
    > синтаксис и портировать старый код?

    потому что если у нового и хорошего всё тоже самое - это не настолько новое и возможно не сильно-то хорошее?


     
     
  • 3.86, Аноним (-), 20:54, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> ну почему чтобы пользоваться чем-то новым и хорошим я должен изучать новый
    >> синтаксис и портировать старый код?
    > потому что если у нового и хорошего всё тоже самое - это
    > не настолько новое и возможно не сильно-то хорошее?

    Как бы на пальцах объяснить:
    представьте лево- и право- стороннеe движение - вроде и ПДД простые, и навыки - а профи все-таки будут сильно материться...

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

     
  • 2.44, Ordu (ok), 15:42, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > почему чтобы пользоваться чем-то новым и хорошим я должен изучать новый синтаксис и портировать старый код?

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

     

  • 1.24, ALex_hha (ok), 13:06, 04/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Увидеть свет может только что-то одушевлённое. ПО — это неодушевлённое.

    идиомы, оксюмороны - нее, не слышал? :D

     
  • 1.29, Z777 (?), 13:34, 04/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    > обеспечивающего автоматическое управление памятью и ..., при этом обходясь без использования сборщика мусора и runtime.

    Взаимоисключающие параграфы.

     
     
  • 2.33, Клыкастый (ok), 14:18, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    только при условии, что GC - единственный способ автоматического управления памятью
     
  • 2.47, Нимано (?), 16:15, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    200 лет назад, сеть открытые берестяные рассылки Ну, вон берем тот же Си, уре... большой текст свёрнут, показать
     
     
  • 3.66, Crazy Alex (ok), 23:31, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если впрямую - скорее получаем что-то вроде свифта
     
     
  • 4.89, Аноним (-), 16:02, 06/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Если впрямую - скорее получаем что-то вроде свифта

    Для виндохипстеров из мозиллы js то слишком сложный, а ты про что-то еще.

     
  • 3.68, Z777 (?), 10:20, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > прикручиваем анализатор времени жизни переменной, который в нужных местах вставляет фри

    Этот ваш анализатор и есть GC.
    И да, без рантайма все это будет сферический конь в вакууме делать?

     
     
  • 4.70, fail_ (?), 11:18, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> прикручиваем анализатор времени жизни переменной, который в нужных местах вставляет фри
    > Этот ваш анализатор и есть GC.

    Неверно, попытаюсь изложить свое мнение,
    грубо говоря - компилер сам расстaвляет malloc/free (new/delete) во время компиляции.


     
     
  • 5.72, Z777 (?), 12:32, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > во время компиляции.

    Понял, классная штука.

     
  • 4.79, Нимано (?), 15:36, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Этот ваш анализатор и есть GC.

    К компилятору, а не рантайму – поэтому и "вставляет free"  а не "делает free".
    А то ведь и разработчика можно так вот двусмысленно "Сборщиком Мусора" обозвать )

    Тут проблема скорее в том, что просто расставить free маловато будет, нужно еще не допустить "use after free" и т.д. на уровне языка. Да и некоторые ограничения все равно будут "by design" (возможно, типа хитрых циклических конструктов).

    В общем, сама по себе идея интересная.

    > без рантайма все это будет сферический конь в вакууме делать?

    Гм, у вас malloc/free уже без рантайма работает? )

     
  • 3.94, omnomnimous (?), 10:08, 07/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > 200 лет назад, сеть "открытые берестяные рассылки":
    > приделываем владения

    Ещё вот это не забудь приделать
    https://doc.rust-lang.org/book/traits.html
    фактически он и получится.

     

  • 1.38, Александр (??), 15:21, 04/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Все стеснялся спросить: а в продакшне Rust уже используется где-нибудь, или он пока еще только готовится "выстрелить"?
     
     
  • 2.56, Аноним (-), 17:30, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Используется.
     

  • 1.59, Аноним (-), 19:46, 04/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Я уже 3 год слышу о браузере на движке Серво, который на Раст, но как его похупать?????
     
     
  • 2.61, omnomnom (?), 20:31, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Все, кто хотел, давно уже "похупали", делай выводы =)
     
  • 2.63, omnomnom (?), 20:36, 04/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И да, начать процесс стоит отсюда https://github.com/servo/servo
     

  • 1.78, Аноним_m (?), 15:23, 05/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Любой язык использующий препроцессор, макросы - синтаксически устарел. Устарел именно эргономически, не  по функционалу. Rust родился синтаксически устаревшим.
     
     
  • 2.83, Аноним (-), 17:07, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    чем, в плане эргономики, макросы мешают?
     
     
  • 3.84, Аноним_m (?), 17:19, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Резким снижением понимаемости кода. По сути применяя макросы каждый программер создаёт свой подъязык, подсинтаксис, который и сам вскоре забудет. Текст становится шифром. Макросы, препроцессор ещё оправданы как-то для ассемблеров, но никак не для ЯВУ и без того имеющих средства структурирования, свёртывания кода. Макросы в языках высокого уровня- инетность мышления, анахронизм.
     
     
  • 4.85, Аноним (-), 17:42, 05/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Тут я с Вами в чем-то согласен.
    Но в Rust пока макросы не столь всемогущи как C++, и потому компилятор даст только ограниченную возможность их использования/расширения.

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

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

     
  • 4.90, Аноним (-), 16:09, 06/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Резким снижением понимаемости кода. По сути применяя макросы каждый программер создаёт
    > свой подъязык, подсинтаксис, который и сам вскоре забудет.

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

     
  • 4.95, Аноним (-), 12:19, 07/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Очередной "я у мамы computer scientist".
     

  • 1.96, rihad2 (?), 15:07, 07/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нюансы работы с mut ссылками выглядят немного долбанутыми с непривычки.
     
  • 1.99, Аноним (-), 16:33, 08/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Исключений так и нет? Значит зaкaпывайте. Ублюдcкий try! на каждой строчке пусть oбeзьяны пишут.
     
     
  • 2.100, Аноним (-), 17:57, 08/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    а что вы предлагаете вместо "try!" ?

    https://doc.rust-lang.org/nightly/std/macro.try!.html
    он же по сути сокращает конструкцию match возвращая Result или Error и выступает аналогом try в той же джаве.


    или Вы хотите один раз написать "try" а все варианты catch писать на разные методы/функции:

        try {
            lines = Files.readAllLines(Paths.get("/to/my/file.txt"));
            SomeWorker.someWork(lines);
        }
        catch (IOException e) {
        }
        catch (SomeOtherException e) {
        }

     
  • 2.101, Аноним (-), 22:23, 08/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    в тему исключений, try и "?":
    https://www.reddit.com/r/rust/comments/49i43m/initial_implementation_of_the_op
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:
    При перепечатке указание ссылки на opennet.ru обязательно



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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