The OpenNET Project / Index page

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



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

Оглавление

Увидел свет язык программирования Rust 1.13, opennews (?), 11-Ноя-16, (0) [смотреть все]

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


9. "Увидел свет язык программирования Rust 1.13"  –3 +/
Сообщение от neon1ks (ok), 12-Ноя-16, 01:01 
Я бы назвал это новостью об компиляторе Rust, чем о самом языке.

Отличие между C++ и Rust: в C++ в начале разрабатывается стандарт, а уже потом пишутся компиляторы. В Rust же в начале пишется компилятор, а уже в будущем возможно будет стандарт.

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

11. "Увидел свет язык программирования Rust 1.13"  +3 +/
Сообщение от Аноним (-), 12-Ноя-16, 01:55 
Языковс формальным процессом стандартизации мало. В этом плане с++ скорее исключение.

> в C++ в начале разрабатывается стандарт, а уже потом пишутся компиляторы

Нет. Во-первых, обычно первая реализация фичи появляется вместе с пропозалом. Иначе фичу скорее всего не примут в стандарт. Во-вторых, компиляторы реализуют будущий стандарт в процессе разработки. Да, на полную реализацию с++11 у компиляторов ушло значительное время уже после выхода стандарта. Но это потому что релиз был более чем мажорный. К моменту выхода с++14 и гцц, и шланг его практически уже реализовали.

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

31. "Увидел свет язык программирования Rust 1.13"  +4 +/
Сообщение от Аноним (-), 12-Ноя-16, 06:34 
в rust в начале пишется RFC. Но, в отличие от C++, RFC тут рассматриваются и принимаются непрерывно, а не раз в пару лет. Отсюда и гораздо более быстрый прогресс.
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

33. "Увидел свет язык программирования Rust 1.13"  +3 +/
Сообщение от Orduemail (ok), 12-Ноя-16, 08:36 
> Отличие между C++ и Rust: в C++ в начале разрабатывается стандарт, а уже потом пишутся компиляторы.

Ха-ха. Сначала был Страуструп, который писал компиляторы. И написав очередную версию компилятора он переиздавал свою книженцию. Сначала он релизил компилятор, потом переиздавал книженцию. А первый стандарт появился в 1998 году, то есть лет через пятнадцать после Си с классами.

Поэтому не надо тут сказок рассказывать о великом C++. Его десятилетиями вгоняли в сколько-нибудь вменяемую модель развития. Ему скорее стыдиться надо этого, и гордиться там нечем.

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

40. "Увидел свет язык программирования Rust 1.13"  +1 +/
Сообщение от QuAzI (ok), 12-Ноя-16, 10:37 
Если первопроходцам надо стыдиться, то вы вообще должны были от стыда умереть ещё в яслях.
Этих "передовых" языков типа Rust и Go появляется нынче каждый день вагон, все они обещают скорость сей и простоту питона, но по факту там под капотом везде try!(try!(try!(foo()).bar()).baz()) , от которого любой человек впервые видящий этот код, но имеющий нормальный опыт разработки на более распространённых языках охреневает "что это? нафига? что делает этот синтаксический сахар? зачем такая вложенность? зачем повторно бросать уже брошенное исключение?", потому что это шило нечитаемо. Если в этих поделках от С что-то и осталось, то только всякие замороченный указатели с переподвыпердом, но никак не "вменяемая модель развития".
Тот же самый "вогнанный в модель" Go спустя достаточно много лет пропихивания под капотом содержит весьма невнятные методы с односимвольными переменными, кучей ремарок TODO с бросанием исключений "unsupported" и весьма скудными комментами по коду. В каком нибудь Qt за такой говнокод расстрел с баном, а у хипстеров ничего, вполне мейнстрим.
Ответить | Правка | Наверх | Cообщить модератору

43. "Увидел свет язык программирования Rust 1.13"  –2 +/
Сообщение от Алексей (??), 12-Ноя-16, 11:18 
Ну с сей никто не уйдет как минимум потому что у него весьма обширная кодовая база. Ни один адекватный разработчик не станет переписывать быстрый отлаженный код, на менее эффективном Rust, тем белее в большом проекте. Ну а комментарии местных анонимов вообще не стоит принимать во внимание, их юношеский максимализм в связи с отсутствием серьезных проектов за плечами, позволяет им переписывать свои хелловорды на модные языки хоть каждый день...
Ответить | Правка | Наверх | Cообщить модератору

48. "Увидел свет язык программирования Rust 1.13"  +1 +/
Сообщение от Аноним (-), 12-Ноя-16, 11:44 
Ну в дропбоксе, мозилле, фейсбуке и даже в самсунге конечно работают только школьники, у которых единственная цель — покрасоваться в новостях. Особенно учитывая что двое из перечисленных переводят свои главные проекты на раст — вот выпердрёжники-то! Тормозить же будет от проверки при обращении по индексу массива! И ведь сохранисть старую кодобазу и писать на расте только новые хэловорды нельзя.

Ме кажется не стоит своё низкое культурное развитие приравнивать к сложности/нечитаемости/ненужности языка.

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

49. "Увидел свет язык программирования Rust 1.13"  –1 +/
Сообщение от DG94 (ok), 12-Ноя-16, 12:27 
Это крупные игроки они располагают приличным финансовым капиталом и могут позволить себе экспериментировать, MS вообще все подряд скупает и закапывает, просто потому что может.
Так что твой аргумент, не аргумент, вот когда linux kernel перепишут на Rust тогда и расскажешь мне о серьезном применении ржавого. Ну а насчет низкого культурного развития, это похоже на неудачный вброс импульсивного анона, ибо необоснованно вообще никак. Ну и о школьниках я ничего не писал, ибо не привык мыслить стереотипами.
Ответить | Правка | Наверх | Cообщить модератору

53. "Увидел свет язык программирования Rust 1.13"  –1 +/
Сообщение от Аноним (-), 12-Ноя-16, 13:42 
Что за мания переписывания? Кто-то предлагает завтра же выкинуть старый код из-за нового языка в проекте или что? Кто и зачем будет переписывать десятилетние нагромождения линукса?

Та же мозилла внедряет его частично — см. quantum. Но нет, видимо пока на нём не перепишут всё легаси двадцатилетней давности, это так, игрушка не для сириус продакшена.

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

61. "Увидел свет язык программирования Rust 1.13"  +1 +/
Сообщение от freehckemail (ok), 12-Ноя-16, 15:22 
> Ну в дропбоксе, мозилле, фейсбуке и даже в самсунге конечно работают только
> школьники, у которых единственная цель — покрасоваться в новостях.

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

> Особенно учитывая
> что двое из перечисленных переводят свои главные проекты на раст —
> вот выпердрёжники-то!

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

> Тормозить же будет от проверки при обращении по индексу массива!

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

> И ведь сохранисть старую кодобазу и писать на расте только новые хэловорды нельзя.

О. Обычно происходит так: сначала пишутся на новом языке только новые части. И некоторым API они начинают взаимодействовать со старым кодом. Потом оказывается, что старый код стоит между двумя новыми частями. Новые части регулярно ломают совместимость со старым кодом на старом языке, а все обвинения летят в старый код, и компания решает от этого старого кода избавляться: "ребята, перепишите старый код на вашем крутом новом языке, вы так хорошо себя зарекомендовали, и вообще такие молодцы"!

> Ме кажется не стоит своё низкое культурное развитие приравнивать к сложности/нечитаемости/ненужности языка.

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

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

Мало ли что они там пихнули? Я знаю компании, которые себе лисп в продакшен пихнули (ну тот самый, тормознутый, со скобочками). И неплохо выстрелили, что интересно.

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

69. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от . (?), 12-Ноя-16, 20:42 
А хороший блин пост получился! Это ж блин в гранит надо! :)
Молдца freehck!
Ответить | Правка | Наверх | Cообщить модератору

72. "Увидел свет язык программирования Rust 1.13"  +4 +/
Сообщение от 5kbps (ok), 12-Ноя-16, 21:19 
> При разработке собирать и тестировать с проверкой индексов, а при запуске на продакшене под большой нагрузкой - запускать версию без проверок

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

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

> Но PR уже идёт вовсю, как мы видим.

ЧСХ, ничто не мешает прикрутить тот же borrow checker к компилятору C/C++ и получить ту же самую безопасность (которую, к слову, никто так и не пруфанул научно: где статьи, доказательства, вот это всё?).
Рантаймовые проверки и вовсе можно реализовать средствами самого языка.

P.S. Причина взлёта Rust не в пиаре. Дело в том, что львиная доля потенциальных дыр в коде реально отлавливается. Это факт.

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

78. "Увидел свет язык программирования Rust 1.13"  +1 +/
Сообщение от freehckemail (ok), 12-Ноя-16, 23:43 
>> При разработке собирать и тестировать с проверкой индексов, а при запуске на продакшене под большой нагрузкой - запускать версию без проверок
> Это тупо. Ведь входные данные будут другими, следовательно никаких гарантий со стороны
> компилятора быть не может.

Ну не совсем. Бывают случаи, когда уместно сделать именно так.

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

Я замерял, из-за проверки индексов производительность падала на два порядка. Так что отключать подобные проверки смысл имеет большой.

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

Поддерживаю. За этим Вам прямая дорога в Ocaml. Системы типов мощнее Хиндли-Милнера ещё не придумали.

> P.S. Причина взлёта Rust не в пиаре. Дело в том, что львиная
> доля потенциальных дыр в коде реально отлавливается. Это факт.

Ну а кто ж спорит. Вполне может оказаться, что Rust после C - это рай. Но с другой стороны Scala после Java - это тоже рай, хотя синтаксис там ну ой...

Пока на языке не напишут некоторой критической массы кода, полезных open source проектов и т.д., я лично поостерегусь делать выводы о языке.

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

82. "Увидел свет язык программирования Rust 1.13"  +1 +/
Сообщение от 5kbps (ok), 13-Ноя-16, 00:02 
> Так что отключать подобные проверки смысл имеет большой.

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

> Вам прямая дорога в Ocaml

Haskell более по душе. Там тоже HM.

> Системы типов мощнее Хиндли-Милнера ещё не придумали.

http://www.idris-lang.org/

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

88. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от freehckemail (ok), 13-Ноя-16, 01:44 
>> Так что отключать подобные проверки смысл имеет большой.
> Ты не уловил посыл. В общем случае, если ты отключил проверки, то
> ошибки не исключаются. Ты не можешь конечным числом тестов на этапе
> разработки доказать их (ошибок) отсутствие.

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

>> Вам прямая дорога в Ocaml
> Haskell более по душе. Там тоже HM.

Ой, мы тут не подружимся. Я не воспринимаю Haskell: умолчательная ленивость - это слишком уж академично.

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

>> Системы типов мощнее Хиндли-Милнера ещё не придумали.
> http://www.idris-lang.org/

Ну хоть пару слов скажите в затравку. Моё время тоже не резиновое.

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

90. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от 5kbps (ok), 13-Ноя-16, 01:55 
> умолчательная ленивость - это слишком уж академично

Можно seq везде писать.

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

91. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от 5kbps (ok), 13-Ноя-16, 02:01 
> Ну хоть пару слов скажите в затравку. Моё время тоже не резиновое.

См. последний пример в Examples у них на сайте. Копипастой/переводом не занимаюсь.

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

92. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от 5kbps (ok), 13-Ноя-16, 02:49 
> И кстати там не чистый HM. Там его расширили классами типов. И
> если для HM есть строгая теория, доказывающая корректность этого разолвера, то
> вот для этого расширения мне не известны доказательства корректности. Если они
> есть, поправьте меня пожалуйста.

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

Иными словами, HM + классы типов - это подмножество HM.

ИМХО.

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

112. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от 0xd34df00d (??), 14-Ноя-16, 22:17 
> Я не воспринимаю Haskell: умолчательная ленивость - это слишком уж академично.

Зато на самом деле очень удобно, если научиться этим пользоваться (я пока умею не до конца, правда).

Ну и в ghc 8 запилили {-# LANGUAGE Strict #-}.

> И если для HM есть строгая теория, доказывающая корректность этого разолвера, то вот для этого расширения мне не известны доказательства корректности.

Вы именно о выводе типов? Если да, то в худшем случае вывод типов просто никогда не завершится (что возможно для rank-n polymorphism вообще, если я правильно помню, и для некоторых условий на несужающиеся инстансы типов, что включается расширением UndecidableInstances, в качестве частного случая).

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

86. "Увидел свет язык программирования Rust 1.13"  +1 +/
Сообщение от Аноним (-), 13-Ноя-16, 01:38 
Если уж прям так припёрло обращаться к массивам па значению, можно либо пойти посчитать всё на фортране (и работать будет гарантированно быстрее), либо воспользоваться ансейфом с методам get_unchecked и даже адресной арифметикой (для желающих разные версии дебага и релиза — оператор [] прекрасно перегружается). Ещё есть версия брать слайсы от массивов (баундчекинг будет срабатывать ровно 1 раз).

А отключать их нельзя по той причине, что все разговоры об этом сводятся к кейвордам "безопасность" и "hearthbleed".

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

57. "Увидел свет язык программирования Rust 1.13"  –1 +/
Сообщение от freehckemail (ok), 12-Ноя-16, 14:55 
> Ну с сей никто не уйдет как минимум потому что у него
> весьма обширная кодовая база. Ни один адекватный разработчик не станет переписывать
> быстрый отлаженный код, на менее эффективном Rust, тем белее в большом
> проекте.

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

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

60. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от Аноним (-), 12-Ноя-16, 15:09 
Сишный ABI прост как палка и просто прикручивается куда угодно.
Другое дело что чтобы комфортно работать с ним из другого языка со своими концепциями и стилем уже требуются дополнительные телодвижения.
Ответить | Правка | Наверх | Cообщить модератору

56. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от freehckemail (ok), 12-Ноя-16, 14:50 
> try!(try!(try!(foo()).bar()).baz())
> зачем такая вложенность?
> зачем повторно бросать уже брошенное исключение?

Кстати да, это интересный вопрос.
Обычно это делается так (пример на Ocaml)

try foo () |> bar |> baz
with exn -> exn_handler_code

И какая бы из функций конвеера ни бросила отсключение, его обработает exn_handler_code.

Поясните кто-нибудь, зачем тут вложенные try?

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

59. "Увидел свет язык программирования Rust 1.13"  +4 +/
Сообщение от Аноним (-), 12-Ноя-16, 15:05 
Потому что в расте и нету исключений. try! — это макрос для тех, кому лень на каждый вызов возвращающий Option/Result писать unwrap/unwrap_or или матчить руками. Для того оператор ? и ввели.
Ответить | Правка | Наверх | Cообщить модератору

80. "Увидел свет язык программирования Rust 1.13"  –3 +/
Сообщение от freehckemail (ok), 12-Ноя-16, 23:49 
> Потому что в расте и нету исключений. try! — это макрос для
> тех, кому лень на каждый вызов возвращающий Option/Result писать unwrap/unwrap_or или
> матчить руками. Для того оператор ? и ввели.

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

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

113. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от 0xd34df00d (??), 14-Ноя-16, 22:19 
Исключения какие-то. Тяжело без монадического Either :)
Ответить | Правка | Наверх | Cообщить модератору

55. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от Sergeyy (?), 12-Ноя-16, 14:48 
>> ...  в C++ в начале разрабатывается стандарт, а уже потом пишутся компиляторы. В Rust же ...

neon1ks, Вы ничего не перепутали?
В Цпп сложилась такая ситуация: множество компаний делают свои компиляторы языка C++, потом комитет по стандартизации собирает полезные новшества + заявки от участников комитета и прочих пользователей языка => появляется новая версия стандарта. См. [ https://ru.wikipedia.org/wiki/C%2B%2B#.D0.A0.D0.B0... ]

или, ещё лучше, см. сюда: [ https://isocpp.org/std/the-life-of-an-iso-proposal ].

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

65. "Увидел свет язык программирования Rust 1.13"  –1 +/
Сообщение от neon1ks (ok), 12-Ноя-16, 18:12 
Значит заблуждался.
Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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