The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Релиз языка программирования Rust 1.6, развиваемого проектом..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от opennews (ok) on 22-Янв-16, 14:32 
Состоялся (http://blog.rust-lang.org/2016/01/21/Rust-1.6.html) релиз языка программирования Rust 1.6 (http://www.rust-lang.org), развиваемого проектом Mozilla, обеспечивающего автоматическое управление памятью и предоставляющего средства для высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime. Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo (https://www.opennet.me/opennews/art.shtml?num=36576), написанный (https://github.com/servo/servo/) на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).


Новый выпуск примечателен переводом libcore в разряд стабильных. Стандартная библиотека функций Rust базируется на базовой библиотеке libcore, которая не зависит от платформ и самодостаточна. Поверх libcore построена расширенная библиотека libstd, через которую доступны функции работы с памятью, вводом/выводом и многопоточностью. В обособленном виде libcore может применяться в низкоуровневых компонентах операционных систем и во встраиваемых платформах. Стабилизация данной библиотеки позволяет низкоуровневые приложения, используя стабильный Rust. Кроме libcore в разряд стабильных также переведено около 30 расширенных библиотечных функций и методов libstd, таких как функции семейства drain() для работы с коллекциями,  From для преобразования типов и Vec::extend_from_slice().

Язык Rust развивается проектом Mozilla и сфокусирован на безопасной работе с памятью и обеспечении высокого параллелизма выполнения заданий. При этом Rust обходится без использования сборщика мусора или runtime, что делает возможным создания на Rust библиотек, которые могут выступать в роли прозрачной замены библиотекам для языка Си. Для распространения библиотек на языке  Rust, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo (http://blog.rust-lang.org/2014/11/20/Cargo.html), позволяющий получить нужные для программы библиотеки  в один клик. Для размещения библиотек введён в строй репозиторий crates.io (https://crates.io/).

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


URL: http://blog.rust-lang.org/2016/01/21/Rust-1.6.html
Новость: http://www.opennet.me/opennews/art.shtml?num=43716

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

Оглавление

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


1. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –10 +/
Сообщение от rshadow (ok) on 22-Янв-16, 14:32 
Мозилла в последнее время выкидывает все что не ФФ и не приносит бабло. Кода мозилла от него откажется?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +12 +/
Сообщение от amonimous on 22-Янв-16, 14:42 
Дык в будущем этот их ФФ и будет на расте
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

17. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +3 +/
Сообщение от Lester on 22-Янв-16, 16:03 
Возможно будет. Разработчики уже не говорят о ближайшей замене gecko на servo, речь идет о возможном постепенном внедрении частей на rust в gecko. А это, ИМХО, говорит о том, что они хотят зацепиться, чтоб их не забыли и не похоронили, если они не смогут в ближайшее время создать конкурентный аналог. Ну и кроме того, это говорит о том, что они явно недооценили сложность и объем задачи.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

28. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +2 +/
Сообщение от pkdr (ok) on 22-Янв-16, 18:05 
Вряд ли, учитывая то, что сейчас делают мозилловцы, они проведут статистическое исследование, узнают что на фаерфоксе сидит только треть пользователей браузеров и решат прекратить его пилить вообще, выпустят FireChromium.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

64. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +3 +/
Сообщение от D246ner on 23-Янв-16, 20:04 
Если не будет развивать его Mozilla, будут развивать его другие:
В Dropbox пишут новые сервисы на rust, будет кому поддерживать.
Создадут какую-нибудь Nonprofit Organization курирующую разработку, и существующую через взносы, и будут обеспечитвать ЗП разрабочикам языка.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –7 +/
Сообщение от Аноним (??) on 22-Янв-16, 14:34 
Некрасивый он и плохо читаемый. Наверно на него пересядут Си-шники.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –3 +/
Сообщение от Roo2AT7d (ok) on 22-Янв-16, 14:50 
Жрущим кактус не привыкать?
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

9. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +6 +/
Сообщение от Crazy Alex (ok) on 22-Янв-16, 15:11 
Для сишника там слишком много условностей и заморочек.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –4 +/
Сообщение от index.php on 22-Янв-16, 14:47 
Когда же наконец запилят один самый мощный язык программирования в котором будет один синтаксис? Сейчас не очень удобно запоминать C++, C#, Python, Ruby, Rust, Go, Swift, Java :'(
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –9 +/
Сообщение от Наркоман on 22-Янв-16, 14:53 
Swift чем не подходит?
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от index.php on 22-Янв-16, 15:02 
Нельзя делать сайты и клепать программы под Windows and Android или можно?
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

43. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –1 +/
Сообщение от броподрол on 22-Янв-16, 22:57 
Сайтики уже можно. Windows and Android скоро будет, в баг треке уже баг есть ждите.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

7. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +6 +/
Сообщение от Аноним (??) on 22-Янв-16, 15:01 
Пиши на Лиспе, в нем один синтаксис.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

10. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –2 +/
Сообщение от Crazy Alex (ok) on 22-Янв-16, 15:12 
Точнее, в нём вообще толком синтаксиса нет. Тем и плох.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

14. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +2 +/
Сообщение от rob pike on 22-Янв-16, 15:50 
Тем и хорош.
Односторонние медали встречаются нечасто.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

20. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от Crazy Alex (ok) on 22-Янв-16, 16:37 
Ну да. Но лисп для мейнстрима банально неудобен. Впрочем, как любое универсальное решение.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

26. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +4 +/
Сообщение от rob pike on 22-Янв-16, 17:50 
И каждый из прочитавших этот комментарий под словом "мейнстрим" понял что-то свое.
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

48. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от Crazy Alex (ok) on 23-Янв-16, 02:06 
Характеристика мейнстрима только одна - его МНОГО. И это заведомо исключает любой язык, для которого нет орды готовых специалистов и готовых частных решений. Я даже поверю, что на лиспе можно что-то быстро разработать - но на мейнстримных языках, скорее всего, это вообще не придётся разрабатывать - всё давно готово и есть те, кто умеет с этим работать - и в количествах.
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

51. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от angra (ok) on 23-Янв-16, 02:22 
Ну а теперь задумайся, откуда появляются "орды готовых специалистов и готовых частных решений". Даю две подсказки
1. Их не боженька создает.
2. js, java, C++, C#, PHP, Python, Perl во времена мейнстримности FORTRAN просто не существовали.
Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

66. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –1 +/
Сообщение от Crazy Alex (ok) on 24-Янв-16, 04:55 
Это как раз легко объяснить:

1) на языке простое делается просто,  а дальше - как повезёт. Это то, что произошло с со всеми скриптовыми из перечисленных. А дальше - снежным комом и в конкуренции с похжими языками - есть разработчики - значит, на языке пишут - и так далее, пока его не заменит что-то похожее, но более подходящее, как произошло с уходом массы с перла в пхп.

2) есть ниша, на которой приходится писать, и там есть много денег. Это произошло с C#, когда VS переганала на него всех в принудительном порядке.

3) Есть ниша, и в какой-то момент для неё есть только один подходящий язык. Так произошло с плюсами, когда понадобилось писать сложный софт, и это же произошло, когда появилась джава и J2EE как полная среда для энтерпрайза.

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

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

53. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –1 +/
Сообщение от rob pike on 23-Янв-16, 02:31 
А этого МНОГО - его одним куском много, или оно из множества небольших и разных мейнстримов состоит?
А в каждом из этих небольших и разных мейнстримов - наблюдается ли внутренняя однородность?
Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

67. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –1 +/
Сообщение от Crazy Alex (ok) on 24-Янв-16, 05:07 
За цифирками - к TIOBE или на сайты вакансий, но как бы очевидно, что сейчас всё, кроме совсем специфических областей перекрыто менее чем десятком языков, и лиспа там нигде и близко нет в макроскопических количествах.

Я вообще не понимаю, с чем тут спорить. Лиспу почти семьдесят лет, к анстоящему моменту никакого распространения он не получил. По-моему, этим его  характеристика как практически применимого языка полностью исчерпывается. Академические плюсы и эстетика - вопрос другой, но к практическим результатам они отношения не имеют. по этому поводу могу ещё отказ от MIT 6.001 припомнить.

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

15. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от freehck email(ok) on 22-Янв-16, 15:51 
Зато на нём можно легко и непринуждённо быстренько зафигачить себе DSL специально под нужную тебе задачу с нужным тебе синтаксисом. :)
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

18. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –4 +/
Сообщение от Crazy Alex (ok) on 22-Янв-16, 16:25 
Можно. Но этот DSL будет весьма слабо читаем.

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

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

30. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +2 +/
Сообщение от freehck email(ok) on 22-Янв-16, 19:00 
> Можно. Но этот DSL будет весьма слабо читаем.

Это уже зависит от Вас, и только от Вас.

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

Нет. Просто нет. Без лисповых макросов *проще* и *быстрее* это точно не будет.

Вот давеча понадобился DSL для одной программки на Ocaml, так оказалось проще встроить в него R5RS, чем писать на синтаксический анализатор на нём самом. Но Ocaml, конечно, не "современный интерпретируемый". Однако как написать такое на Perl, Ruby или Lua я даже не представляю.

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

Ну во-первых их вечно НЕ хватает. Во-вторых, как они по-вашему появляются-то?

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

40. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от QuAzI (ok) on 22-Янв-16, 22:02 
А сопровождать этот код потом будет полтора магиканца на пенсии? Где-то мы про такое недавно читали =)
FORTRAN учите, будете вообще неувольяемым =)
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

49. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –2 +/
Сообщение от Crazy Alex (ok) on 23-Янв-16, 02:17 
А дайте задачу - уверен, что найдётся пяток готовых решений для чего-то мейнстримного и по столько же модулей на питоне/перле, которые можно по-быстрому прикрутить.

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

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

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

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

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

54. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +3 +/
Сообщение от rob pike on 23-Янв-16, 03:21 
Вот вы сами построили strawmanа, и сами его успешно забороли с усердием, достойным лучшего применения.
Почему вы считаете что на Лиспе нормальный человек продолжает писать набор контейнеров, виджетов и сортировку списка - но непонятно зачем на таком предположении останавливаться и не пойти до конца - почему бы тогда не предположить что он еще и Лисп-машину самостоятельно перед этим себе делает из FPGA, а потом компилятор Лиспа для нее?
Есть quicklisp, есть еще много чего. С основными мейнстримовыми библиотеками бегло можно ознакомиться в http://eudoxia.me/article/common-lisp-sotu-2015/
А уж насчет узкой специализации физиков - расскажите об этом автору статьи "Графен" в Британике, порадуйте человека.
Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

68. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от Crazy Alex (ok) on 24-Янв-16, 05:22 
Потому что мне тут в сотый раз начали рассказывать о том, как лисп хорош для быстрого создания DSL.

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

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

И что не так с Кацнельсоном? Занимался ферромагнетиками, потом спрыгнул на графен, с которым и возится. Неплохое подтверждение как раз.

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

71. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от freehck email(ok) on 24-Янв-16, 15:15 
> Потому что мне тут в сотый раз начали рассказывать о том, как лисп хорош для быстрого создания DSL.

Ну что ж, я могу Вам только посочувствовать, что Вам 100 раз объясняют столь простую истину, а Вы никак не можете её понять. :)

Ну ладно. Так значит, Ваш тезис -- "лисп не хорош для быстрого создания DSL"?

> Мой тезис - быстро создавать DSL практически никогда не нужно.

Ах, теперь вот как? Так Вы собираетесь доказывать, что лисп не хорош для быстрого создания DSL через доказательство того, что DSL и не нужно создавать быстро. Неплохое начало, коллега. :)

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

Ну, быть может, хоть я и расставил бы приоритеты несколько иначе, всё это вполне возможно. Но тем не менее никаким образом не обосновывает тезис, что быстро разрабатывать DSL не нужно.

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

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

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

Не всегда технология развивается после теоретического обоснования. Часто (я бы сказал, в 90% случаев) бывает так, что архитектор видит, какой программа должна быть, и начинает её проектирование одновременно с разработкой ряда компонент. А в процессе разработки и всплывают подводные камни, которые не были ранее замечены. И тогда вносятся исправления в архитектуру. Порой весьма существенные, вплоть до принятия решения о полном переписывании программ. Об этом писали ещё Брукс и Реймонд, а уж им-то я думаю, Вы верите побольше моего. Если хотите, могу привести конкретные ссылки, мне не составит труда.

PS: я всё-таки хочу добавить к словам rob pike, что если в Вашем сообщении 99 верных утверждений, то это не делает верным и сотое тоже.

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

72. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от Michael Shigorin email(ok) on 24-Янв-16, 21:20 
> Ах, теперь вот как? Так Вы собираетесь доказывать, что лисп не хорош
> для быстрого создания DSL через доказательство того, что DSL и не
> нужно создавать быстро. Неплохое начало, коллега. :)

Вообще-то такого не прочёл -- скорее "неважно, потому что не требовалось/требуется".

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

Кстати, найдёте/сделаете -- подёргайте, заранее благодарю.

По части геометрии сразу вспомнил http://www.pacifict.com/Story/ и http://archives.seul.org/schoolforge/discuss/

По части зависимостей -- Вы ведь явно не про apt-cache dotty и дальше фильтрАми, так понимаю?

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

37. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от . on 22-Янв-16, 21:49 
>А если взять специализированный язык, которых сейчас хватает для любой области и на любой вкус - результат будет ещё лучше.

Ну тЭорЭтически - вот их то лишперы и делают :)

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

62. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –2 +/
Сообщение от Онаний Онаниевич on 23-Янв-16, 15:41 
Это Вы про JavaScript, Python и PHP чтоли? Более мусорных языков я в жизни не видел (bash не в счёт).
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

69. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от Crazy Alex (ok) on 24-Янв-16, 05:24 
Из этих - питон как DSL выглядит очень чистенько - определешь нужную библиотеку  -  и всё. Lua для того же часто используют.
Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

11. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от Аноним (??) on 22-Янв-16, 15:13 
... и всё. Только, #%$^, синтаксис, тебе этого должно хватить.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

12. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +5 +/
Сообщение от Аноним (??) on 22-Янв-16, 15:14 
Да тебе нужен 1С! Там всё понятно.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

13. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –2 +/
Сообщение от index.php on 22-Янв-16, 15:17 
МНЕ НУЖЕН УНИВЕРСАЛЬНЫЙ ЯЗЫК, а не 1C
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

21. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от Аноним (??) on 22-Янв-16, 16:42 
это была ирония же
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

23. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от омномномнимус on 22-Янв-16, 17:16 
PL/1
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

38. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от . on 22-Янв-16, 21:50 
> PL/1

Ха! Надо же чего вспомнили! :)

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

44. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от svicer (ok) on 22-Янв-16, 23:02 
Мамина сиська, это универсальный язык для вас?
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

16. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –1 +/
Сообщение от жабабыдлокодер (ok) on 22-Янв-16, 16:02 
Brainfuck же!
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

19. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от iLex on 22-Янв-16, 16:29 
Когда-то давно на роль такого языка претендовал C++. Всего каких-то 17 лет назад можно было выучить только его, и получить возможность писать код под любое железо того времени и под любую задачу.
А потом предметная область начала фрагментироваться, причём скорость фрагментирования всё возрастает. Кажется, в мире IT пресловутая сингулярность наступит с года на год, потому как уже сейчас языки, фреймворки и парадигмы плодятся с такой чудовищной скоростью, что даже если начинать учить их сразу после выхода, к моменту изучения они как раз успевают устареть.
Всё идёт к подходу "один проект - один язык", когда количество действующих языков сравняется с числом крупных проектов. И знания, полученные в одном проекте, для любого другого будут полностью бесполезными, т.к. станет практически невозможно найти два проекта, написанных на одном языке.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

22. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +5 +/
Сообщение от Aleksey (??) on 22-Янв-16, 16:45 
Это всё hype, его можно спокойно игнорировать, базовые знания по computer science уже годов с 70ых как не устаревают.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

24. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от Andrey Mitrofanov on 22-Янв-16, 17:30 
> Это всё hype, его можно спокойно игнорировать, базовые знания по computer science
> уже годов с 70ых как не устаревают.

Ога, небазовые вперемешку с не-знаниями переполняют аналы.

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

27. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от rob pike on 22-Янв-16, 17:56 
Начните с бенчмаркинга на Haswell классических структур данных и алгоритмов.


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

33. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от Michael Shigorin email(ok) on 22-Янв-16, 21:01 
> Начните с бенчмаркинга на Haswell классических структур данных и алгоритмов.

А что там?

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

47. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от rob pike on 23-Янв-16, 01:02 
Ну, например, можно обнаружить как хитрые списки, над которыми бились лучшие умы в computer science 1970-х, со своими O(1), сливают тупейшим массивам с их позорными O(N) на примерно всех разумных N.
Кнутов с Седжвиками и Корменами формально и не упрекнешь, они скажут что ничего конкретного про сами эти О и не обещали, и вообще это такие математические абстракции, к реальной жизни никак не относящиеся, а что все понаделали себе в головах интуциций про эти O - так это к понаделавшим. Тем не менее, контринтуитивным в реальной жизни для подавляющего большинства овладевших "принципами computer science из 1970-х" оно остается.
А реально влияющие (побольше чем N) вещи типа branch prediction, reference locality, cache awareness в computer science 1970-х описаны, как бы это помягче выразиться, не очень (хотя у IBM был работающий в IBM360 out-of-order еще до 1970-х).
Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

50. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от Crazy Alex (ok) on 23-Янв-16, 02:22 
А детальнее где глянуть? Что-то на практике я об такое не бился, ни на C, ни на плюсах. ни на перле, ни на джаваскрипте. Хотя оптимизировать всякое приходилось.
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

55. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от rob pike on 23-Янв-16, 04:42 
А начните вот с Мейерса http://www.aristeia.com/TalkNotes/ACCU2011_CPUCaches.pdf
Хотя там фактически только про кэш и оно уже довольно старое по нынешним временам, но в любом случае стереотипы периодически пересматривать - занятие полезное. Например, стереотипы про важность выравнивания данных после Haswell можно считать устаревшими, он достаточно умный чтоб в большинстве случаев сделать все правильно самостоятельно. Или вот CLHash ускорился почти в два раза на Skylake по сравнению с Haswell, а остальные хэши - не очень.
Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

58. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от Michael Shigorin email(ok) on 23-Янв-16, 13:43 
> Ну, например, можно обнаружить как хитрые списки, над которыми бились лучшие умы
> в computer science 1970-х, со своими O(1), сливают тупейшим массивам с
> их позорными O(N) на примерно всех разумных N.

О как, не слышал.

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

46. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от й on 23-Янв-16, 00:07 
да-да, особенно представления о многопоточных программах.
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

25. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +3 +/
Сообщение от Аноним (??) on 22-Янв-16, 17:31 
> Всего каких-то 17 лет назад можно было выучить только его, и получить возможность писать код под любое железо того времени и под любую задачу.

Сильно подозреваю, что 17 лет назад или ваши задачи были несколько специфичными или же это вообще рассуждения с высоты удобного дивана ) ), типа "главное – возможность! А результат ... ну подумаешь, придется переписать кусок на Си ..."

https://lkml.org/lkml/2004/1/20/20

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

52. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от Crazy Alex (ok) on 23-Янв-16, 02:29 
Насчёт c++ exceptions - он, как обычно, ничего не уточнил, так что не понять, насколько он прав.

Уж не знаю, что у него за требования к языку для писания ядра, но вот насчёт "hide things like memory allocations behind your back" - он либо гонит, либо имеет в виду что-то большее, чем аллоцирование в куче.

А вот за "object-oriented code in c without c++ crap" я очень хочу кого-то убить. Эта хрень адски плохо отлаживаается и ещё хуже модифицируется, так как единственный способ сделать ООП на сях (я имею в виду - как положено, с наследованием и полиморфизмом) - куча макросов, от которой тошнит, и не меньшая куча опасных преобразований типов.

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

61. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от rob pike on 23-Янв-16, 15:18 
Если бы Линус делал "как положено", у нас бы сейчас вместо ядра были EJB с RMI-IIOP и феминистками.
Так что спасибо ему огромное за то что он руководствуется здравым смыслом и плевать хотел на весь тот crap, который "положен",
Ответить | Правка | ^ к родителю #52 | Наверх | Cообщить модератору

32. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +2 +/
Сообщение от Michael Shigorin email(ok) on 22-Янв-16, 21:00 
> и под любую задачу

Чё-то не помню я тогда нашествия плюсатых cgi-шек (спрашивали ведь и "за сайты")...

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

45. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +2 +/
Сообщение от rob pike on 22-Янв-16, 23:30 
mod_perl вовремя появился. Сишные модули к апачу писали иногда, если надо было совсем быстро. Но редко, перл не сильно уступал в работе со строками, а ничего другого в вебе было не надо практически никогда.

Хотя базовое утверждение автора, конечно, полная чушь. 17 лет назад на одних FoxPro, Clarion, Paradox и Clipper было понаписано больше кода чем на Си и С++, с большим отрывом.

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

70. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от ПолковникВасечкин on 24-Янв-16, 10:55 
Давно запилили
https://ru.m.wikipedia.org/wiki/ДРАКОН
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

29. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –1 +/
Сообщение от Аноним (??) on 22-Янв-16, 18:33 
Согласно тому что они обещают нет сборщика мусора и нет ручного освобождения памяти. Я правильно понял?
Тогда может ли раст решить задачу и как:
Есть несколько массивов. В начале каждый из них имеет равный размер и содержит указатель(? или как там его называть) на объект. Потом некоторые элементы удаляются. Таким образом на некоторые объекты не остаётся ссылок ни в одном массиве и их надо удалить. Тут если не сборщик мусора, то перед удалением каждого объекта надо просматривать остальные массивы и проверять содержится ли в них указатель и если не содержится то удалять объект. Это единственный вариант который сразу приходит в голову. Но он крайне не эффективен при больших размерах массива и большом количестве массивов.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

31. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +4 +/
Сообщение от Аноним (??) on 22-Янв-16, 19:45 
Первый курс?
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

34. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –1 +/
Сообщение от Аноним (??) on 22-Янв-16, 21:10 
Чего первый курс? Вот почему когда задаёшь вопрос, то ответить не могут, упрекнуть в некомпетентности могут, минусовать могут?
Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

39. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от Аноним Аналитег on 22-Янв-16, 21:54 
Что ты там написал в первом сообщении вообще не понятно. В основной массе языков без GC используется подсчет ссылок, получаешь ссылку инкрементишь счетчик, как только выходишь из области видимости (scope) происходит декримент счетчика и если он 0 то объект удаляется. Как это работает когда ссылка должна быть передана за scope я не знаю, это все можно нагуглить словами rust memory model scope escape analysis.
У счетчиков есть проблема с циклическими ссылками, когда есть два, три или более объектов ссылающихся друг на друга (A->B->C->A), ничего не знаю про руст, но недавно прочел про swift, в нем можно декларировать слабые ссылки, кейворды я тебе накидал, гугли тему.
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

35. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от Анонимус2 on 22-Янв-16, 21:40 
Как раз сборщик мусора решает эту задачу почти как вы описали, т.е. неэффективно. А без сборщика это решается элементарными счетчиками
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

36. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от Аноним (??) on 22-Янв-16, 21:47 
Есть умный указатель. У него есть указатель и счётчик. Как только мы делаем a = b количество ссылок на a уменьшается, на b растёт. Как только количество ссылок станет равно 0 вызывается деструктор для объекта на который указывает указатель. По сути это и есть сборщик мусора. Который за одно и является счётчиком встречаемости объекта.
Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

41. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от Аноним Аналитег on 22-Янв-16, 22:25 
> По сути это и есть сборщик

Если бы это был сборщик мусора... подсчет ссылок использовался для управления памятью в больших приложениях с незапамятных времен. Просто когда у тебя один объект используется в трех разных местах, то без подсчета тяжело понять когда этот объект можно удалять. Но есть там проблемы с циклическими ссылками как я описал выше.
У GC проблема с вынужденными stop-the-world паузами потому никакого real-time на java не пишут и расход памяти. Зато jre решена проблема с фрагментацией памяти и создание нового объекта обходится вроде бы дешевле, за счет того, что памяти у системы ненужно запрашивать, т.к. CG уже запросил с запасом. Хотя и для "С" это не проблема, можно использовать для менеджмента памяти костыли от апача с бассейном и ведрами :)

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

73. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от freehck email(ok) on 26-Янв-16, 21:22 
А как, кстати, производится управление счётчиком "умного указателя" при многопоточной работе? Лочится на время присваивания?
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

74. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от Аноним Аналитег on 27-Янв-16, 23:34 
У меня нет достаточной компетенции для ответа на вопрос, я джава кодер, максимум доводилось заниматься портированием сишных приложений на джаву.
Ответить | Правка | ^ к родителю #73 | Наверх | Cообщить модератору

42. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от Аноним (??) on 22-Янв-16, 22:40 
> Таким образом на некоторые объекты не остаётся ссылок ни
> в одном массиве и их надо удалить.

И в чем, интересно, здесь будет профит от ручного освобождения памяти?
А так:
https://doc.rust-lang.org/stable/nomicon/destructors.html
https://doc.rust-lang.org/std/rc/

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

56. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от angra (ok) on 23-Янв-16, 06:20 
Массивы(есть еще tuple и vec) в rust иммутабельны. Так что такая "задача" там просто не возникнет. Также там есть несколько разных типов указателей, есть понятия ownership и lifetime, так что методы работы с ними весьма отличаются от привычных по С.
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

57. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от Аноним (??) on 23-Янв-16, 07:52 
в описанной ситуации rust позволит использовать только указатели с подсчетом ссылок (Rc или Arc). Попытка изменить объект при наличии указателей других типов приведет к ошибке компиляции
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

59. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –1 +/
Сообщение от 321 (??) on 23-Янв-16, 13:47 
>Rust библиотек, которые могут выступать в роли
>прозрачной замены библиотекам для языка Си.

ну, вот и хорошо. перепишите Линукс (ядро) уже на нём.

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

63. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +/
Сообщение от free_net_user on 23-Янв-16, 15:52 
Тут правда не линукс:
https://github.com/thepowersgang/rust-barebones-kernel
https://github.com/redox-os/redox
Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

60. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  +1 +/
Сообщение от free_net_user on 23-Янв-16, 15:12 
Рекомендую прочитать статью сотрудника Microsoft который вместе с Anders Hejlsberg работал над TypeScript:

http://www.jonathanturner.org/2016/01/rust-and-blub-paradox....

Особо интересно узнать мнение бывалых C++ ков.

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

65. "Релиз языка программирования Rust 1.6, развиваемого проектом..."  –1 +/
Сообщение от Аноним Аналитег on 23-Янв-16, 22:30 
+1 Отличная статья. Вопрос можно обобщить s/мнение бывалых C++ ков/мнение бывалых Blub программеров/g :)
Ответить | Правка | ^ к родителю #60 | Наверх | Cообщить модератору

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

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




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

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