LINUX.ORG.RU

Rust 1.6

 ,


2

3

Команда разработчиков Rust рада представить первый в этом году релиз Rust — 1.6. Rust — это системный язык программирования, при разработке которого внимание сосредоточено на безопасности, скорости и параллелизме. Как обычно, вы можете установить Rust 1.6 с соответствующей страницы на официальном сайте, а также посмотреть примечания к выпуску на GitHub. Выпуск включает в себя около 1100 патчей и содержит ряд небольших улучшений, одно важное изменение, а также изменение на Crates.io.

Стабилизация libcore

Самым большим нововведением в 1.6 является стабилизация libcore. Стандартная библиотека Rust состоит из двух уровней: небольшая базовая библиотека libcore и полная стандартная библиотека libstd, которая построена на основе libcore. libcore является полностью платформонезависимой, и требует только горстку внешних функций. libstd строится на основе libcore, добавляя поддержку выделения памяти, операций ввода-вывода и параллелизма. При использовании Rust во встраиваемых средах и при написании операционных систем, разработчики часто избегают libstd, используя только libcore.

Стабилизация libcore являтся важным шагом к возможности писать самое низкоуровневое ПО, используя стабильный Rust. Это позволит развиваться экосистеме библиотек вокруг libcore, но приложения пока полностью не поддерживаются. Ожидайте изменения в этой области в будущих релизах.

Стабилизации библиотеки

Около 30 библиотечных функций и методов теперь являются стабильными в 1.6. Заметные улучшения включают в себя:

  • Семейство функций drain() для коллекций. Эти методы позволяют перемещать элементы из коллекций, сохраняя память, в которой они размещены, тем самым снижая выделение памяти в некоторых ситуациях.
  • Ряд реализаций типажа From для конвертирования между типами стандартной библиотеки, в основном между целочисленными типами и числами с плавающей точкой.
  • Наконец, Vec::extend_from_slice(), ранее известный как push_all(). Этот метод существенно быстрее, чем более общий метод extend().

Crates.io запрещает использование масок в версиях зависимостей

Если вы являетесь мейнтейнером контейнера на Crates.io, возможно вы видели следующее предупреждение:

новые контейнеры более не могут использовать маски при описании зависимостей.

Другими словами, это запрещено:

[dependencies]
regex = "*"

Вместо этого вы должны указать конкретную версию или диапазон версий, используя одну из опций: ^, ~, или =.

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

>>> Официальный анонс

★★★★★

Проверено: Klymedy ()
Последнее исправление: Klymedy (всего исправлений: 6)
Ответ на: комментарий от tailgunner

перейди на... Хром, хром, хром, хром или хром.

А на соседнем мониторе у меня thunderbird открыт, от которого мозилка недавно отказалась. Фактический труп.

И таки непонятно, почему ты пришел излить свою боль в тред о Rust, а не о Firefox.

Потому что мне наплевать на язык, таких каждый год мешок выходит, но мне не наплевать на софт, который этот очередной убийца С++ убьет. Да и с каких пор на ЛОРе надо оправдываться за вброс? Кыш.

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

мне не наплевать на софт, который этот очередной убийца С++ убьет

Шозабред. Над Rust работают всего несколько человек от Mozilla.

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

А над servo, ради которого всраст запиливался? А над переводом ФФ с геко на серво и поломкой совместимости? Громоптицу думаешь просто так выкинули? Ну не строй из себя дурака.

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

А над servo, ради которого всраст запиливался?

А Servo просто другой проект.

Впрочем, если ты знаешь, сколько людей работает над Servo и сколько над Firefox - поделись.

Ну не строй из себя дурака.

Ну приложи себе лед.

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

язык, таких каждый год мешок выходит

Было бы неплохо.

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

Кстати, когда на нём браузер уже сделают?

Никогда?

А вот растовый код в фаерфоксе обещают уже в этом году.

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

А на соседнем мониторе у меня thunderbird открыт, от которого мозилка недавно отказалась.

В июле 2012. И в январе 2016 этот «фактический труп» у тебя до сих пор открыт. Может, не труп, всё-таки?

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

Longer-term, we plan to incrementally replace components in Gecko with ones written in Rust and shared with Servo. We are still evaluating plans to ship Servo as a standalone product, and are focusing on the mobile and embedded spaces rather than a full desktop browser experience in the next two years.

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

А вот растовый код в фаерфоксе обещают уже в этом году.

ЕМНИП, первый компонент введен уже в прошлом году.

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

Community — реальность, которая с нами с середины 2012. Уже с этого времени сотрудники Mozilla Corporation (есть ещё Mozilla Foundation) не выполняют оплачиваемой разработки.

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

with ones written in Rust and shared with Servo

Gecko и Servo будут использовать одни и те же библиотеки, написанные на Rust. Это не то же самое, что перевод Firefox на Servo.

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

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

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

ЕМНИП, первый компонент введен уже в прошлом году.

Круто. А можешь в какой-нибудь пруф ткнуть? Я не то, чтобы «не верю», просто помню их твит о том, что это состоится в 2016, да и в роадмапе, ссылку на который тут приводили, тоже похожее говорится.

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

Longer-term, we plan to incrementally replace components in Gecko with ones written in Rust and shared with Servo
replace
replace

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

Но ты можешь продолжать маняврировать и утверждать что планов по переводу нет и мозилла затеяла серво с растом «ну чисто по приколу))0»

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

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

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

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

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

не пустили к изготовлению рабочего продукта

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

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

Переведу. В будущем мы планируем заменять компоненты в Gecko компонентами, написанными на Rust, общими с Servo.

Где тут написано, что FF переведут на Servo? Правильно, нигде.

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

Где тут написано, что FF переведут на Servo?

А где разница между утверждениями «все компоненты Servo попадут в Firefox» и «Firefox переведут на Servo»?

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

А где разница между утверждениями «все компоненты Servo попадут в Firefox» и «Firefox переведут на Servo»?

А где там «все»? Очевидно будет некоторый пересекающийся код. Мелкие компоненты, которые можно использовать там и там. Движок это во-первых рендеринг (HTML+CSS+SVG+..), во-вторых это JavaScript. Это не компонент и он практически не делится. Более того, по ссылке написана истинная судьба Servo:

Determine product opportunities for a standalone Servo browser or embeddable library (e.g., for Android).

Т.е. подумать над тем, можно ли выпустить браузер с движком Servo или библиотеку, например для андроида. Т.е. если Mozilla и выпустит браузер, то это будет отдельный продукт, а не FF. И, скорее всего, не для десктопа.

Я не спорю, может быть в далёком будущем сегодняшний FF заменят новым браузером от Mozilla, но планов таких я не вижу.

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

А где разница между утверждениями «все компоненты Servo попадут в Firefox» и «Firefox переведут на Servo»?

А где там «все»?

А сколько в процентах надо?

Движок это

А причем тут «движок», особенно в твоем понимании? Servo - это layout engine и перевод Firefox на него принципиально возможен.

во-первых рендеринг (HTML+CSS+SVG+..), во-вторых это JavaScript

В Servo нет своей реализации JavaScript.

Т.е. если Mozilla и выпустит браузер, то это будет отдельный продукт, а не FF. И, скорее всего, не для десктопа.

Никто точно не знает, что это будет. Но если в Firefox заменят Gecko на Servo, это будет именно «Firefox, переведенный на Servo», и неважно, какой лейбл на него прилепят.

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

Переведу. В будущем мы планируем заменять компоненты в Gecko компонентами, написанными на Rust, общими с Servo.

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

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

Самое печальное, что язык у них получается страшненький мягко говоря. И сложный, пожалуй сложнее C++. Почти не верится, что он может куда-то взлететь.

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

Ну перепишите те же компоненты с нуля на C++

  1. Ну перепишите те же компоненты с нуля на C++;
  2. Реализация совсем плоха;
  3. Перейти к 1 пункту.

Так вот, чтобы такого не получилось, нужен др. инструмент (aka Rust).

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

У других получается почему-то. Ну ладно, допустим, на C++ получается очень плохо, откуда уверенность что на Rust у них получится лучше?

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

Одному мне кажется, что это придурь? Ну перепишите те же компоненты с нуля на C++, если старая реализация совсем плоха.

Вроде бы Firefox и так на C++.

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

Проблема в том, что гугл делает действительно хороший браузер. FF был хорош, когда альтернативы ему были — кривущий IE и платная Opera. Сегодня Edge это отличный браузер; Chrome это отличный браузер. Оба частично открыты. Я не говорю, что FF это плохой браузер, но у него нет каких-то объективных преимуществ сегодня. И корпорации с сотнями миллиардов долларов за спиной тоже нет. Поэтому рынок он будет терять в любом случае, пока не останется с достаточно малой долей. Как ты ему предлагаешь не отставать от гугла, который свой браузер пихает прям со страницы самого популярного в мире сайта? Или от микрософта, чей браузер тупо стоит предустановленный.

А на каком языке переписывать какой-нибудь URL парсер — во всём этом не имеет никакого значения.

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

А на каком языке переписывать какой-нибудь URL парсер — во всём этом не имеет никакого значения.

Зачем же тогда велосипед изобретать, если не имеет? Вот тут не могу понять. Казалось бы квалификация разработчиков браузера должна быть достаточной, чтобы грамотно применять современный C++. Или это просто скучно им? Придумали себе игрушку?

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

У других получается почему-то. Ну ладно, допустим, на C++ получается очень плохо, откуда уверенность что на Rust у них получится лучше?

Они уже не первый день мучаются с С++. Думаю, они знают, что делают. Всяко это лучше, чем жрать кактус, и корчить довольную гримасу. Конкуренция в мире языков программирования — всем на руку.

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

откуда уверенность что на Rust у них получится лучше?

А у кого есть эта уверенность?

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

Сегодня Edge это отличный браузер; Chrome это отличный браузер. Оба частично открыты.

Сегодня Edge это отличный браузер-шпион; Chrome это отличный браузер-зонд. Оба частично открыты.

Исправил.

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

Зачем же тогда велосипед изобретать, если не имеет? Вот тут не могу понять. Казалось бы квалификация разработчиков браузера должна быть достаточной, чтобы грамотно применять современный C++. Или это просто скучно им? Придумали себе игрушку?

Что именно ты хочешь сказать?

Что грамотный современный C++ делает Rust ненужным? Очевидно с этой точкой зрения создатели Rust-а и поддерживающие их люди в Mozilla не согласятся. Они сделали свой выбор, создали язык, написали компилятор и планируют его развивать. В общем-то и Google сделал свой язык на замену C/C++ и Apple. Т.е. Mozilla тут не одинока в отрицании современного C++.

Что не имеет смысла переписывать что-то с C++ на Rust? В целом имеет смысл, чтобы применять Rust. Это идёт как следствие предыдущего пункта. Раз язык создали, на нём нужно писать, в том числе переписывать то, что давно хотелось переписать, например. Ты же не будешь утверждать, что в любой кусок кода надо вцепляться зубами и ни в коем случае не давать его переписывать. Если давно хочется, почему бы не переписать на Rust.

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

Сегодня Edge это отличный браузер-шпион; Chrome это отличный браузер-зонд. Оба частично открыты.

Упор на это вряд ли поможет в маркетинге в современном мире, где люди радостно отдают все свои личные данные всем, кому ни попадя.

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

В общем-то и Google сделал свой язык на замену C/C++ и Apple.

Ни Go, ни Swift не являются заменой Си++. Rust тоже не является, хотя он и ближе.

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

Упор на это вряд ли поможет в маркетинге в современном мире, где люди радостно отдают все свои личные данные всем, кому ни попадя.

Грустно как-то! Фейсбук отлично знает когда ты кушаешь и какаешь. При удалении личной инфы, она сохраняется на серверах, на длительный срок.

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

В общем-то и Google сделал свой язык на замену C/C++ и Apple. Т.е. Mozilla тут не одинока

Намекаешь, что мозилла собезъянничала, чтобы было все как у взрослых?

Раз язык создали, на нём нужно писать

Железный довод :)

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

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

Раз уж у тебя так душа болит за Thunderbird, может быть ты возглавишь разработку? Для этого даже не обязательно быть квалифицированным программистом. Программистов навалом, а вот организовать и мотивировать их некому. Глядишь, появится Entefeed Foundation, платиновые спонсоры, почёт в коммьюнити. Или расскажи про свои отговорки, вместе посмеёмся.

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

Ни Go, ни Swift не являются заменой Си++.

Заменой во всех сферах - нет. Но в отдельных нишах вполне могут потеснить.

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

Mozilla тут не одинока в отрицании современного C++

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

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

вместо того чтобы браузер и почтовый клиент делать занимаются отрицанием С+

Юмор в том, что они запилили внезапно! C++, только еще более сложный, уродливый и несовместимый с сишкой. То есть даже не на ноль себя помножили, а на минусовое значение. Теперь, когда компиляторы научились в новые стандарты, плюсовики только смеются и крутят пальцам у виска при упоминании хруста. Среди сишников тем более больных нет даже тыкать палочкой в это угребище.

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

Юмор в том, что они запилили внезапно! C++, только еще более сложный, уродливый и несовместимый с сишкой.

Все те сложности, что есть в расте, есть и в плюсах. Единственная разница состоит в том, что раст не даст тебе собрать кривую программу, в отличие от компилятора С++.

Среди сишников тем более больных нет даже тыкать палочкой в это угребище.

Сишники даже простейший полиморфизм не осилили, куда им до раста или до плюсов.

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

Единственная разница состоит в том, что раст не даст тебе собрать кривую программу, в отличие от компилятора С++.

Ага, не даст и все.

https://github.com/servo/servo/issues/6087

Сишники даже простейший полиморфизм не осилили, куда им до раста или до плюсов.

У сишников ровно такой же «полиморфизм», как в Rust и С++, просто им приходится больше руками делать.

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

раст не даст тебе собрать кривую программу

О, как все запущено. Канпелятор не просто всеведающий, а еще и безгрешный. Помолимся, братья!

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

Сишники даже простейший полиморфизм не осилили

Вот, кстати, практический пример полиморфизма в С:

https://www.sqlite.org/capi3ref.html#sqlite3_vfs

Чем не экземпляр класса с полями и виртуальными методами. Про всякие GObject и говорить не стоит.

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

ИИ наконец то изобрели, ура! И кто, жопоходцы из Мозиллы (не осилившие плюсы), ну надо же.

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

О, как все запущено. Канпелятор не просто всеведающий, а еще и безгрешный. Помолимся, братья!

Ну в данном случае, очевидно, имелась ввиду работа с памятью. Вот только там где не надо заморачиваться с ручным управлением, - есть GC и ARC. А в случае с Rust ты либо тупо пишешь unsafe код и забиваешь на безопасность, либо явно выбрал не тот язык.

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

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

А ты думаешь гугол им за что донатит?

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

Юмор в том, что они запилили внезапно! C++, только еще более сложный, уродливый и несовместимый с сишкой. То есть даже не на ноль себя помножили, а на минусовое значение.

Две дилды этому садомиту!!!

А еще там явно какой-то юношеский максимализм проглядывает: написать свой язык, свой пакетный менеджер, свою безопасную ОС, и чтоб ни с чем не совместимо было обязятельно!

Хотя нет, ffi там все таки есть...

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

там где не надо заморачиваться с ручным управлением, - есть GC и ARC. А в случае с Rust ты либо тупо пишешь unsafe код и забиваешь на безопасность, либо явно выбрал не тот язык.

А расскажи, чем тебя не устроили Rc и Arc из Rust.

tailgunner ★★★★★
()
Ответ на: комментарий от quantum-troll

Сказал анонимус, также не осиливший плюсы.

Телепаты в треде, всем одеть шапочки из фольги!

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

Также? То есть факт неосиляторства мозильников ты не оспариваешь? Вот засада, даже верные фаны чморят мозилоидов :-)

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

Ну это же элементарно, Ватсон. Ни один плюсовик, не являющийся сишником, что-то слышавшим про плюсы, в жизни не произнесёт нечто вроде «язык для расчесывания полиморфизма». Он скорее посетует, что убогая система типов не позволяет творить ему шаблонные непотребства (и будет отчасти прав).

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

Все те сложности, что есть в расте, есть и в плюсах.

Нет.

Единственная разница состоит в том, что раст не даст тебе собрать кривую программу, в отличие от компилятора С++.

Даст.

Тут кстати Александреску интевью давал, про раст там тоже есть: https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-...

shkolnick-kun ★★★★★
()
Ответ на: комментарий от quantum-troll

Ну ё-мае, опять ты со своим ад-хок полиморфизмом и static vs dynamic dispatch.

Как тесен мир все таки.

shkolnick-kun ★★★★★
()
Ответ на: комментарий от tailgunner

А расскажи, чем тебя не устроили Rc и Arc из Rust.

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

struct MutDnaSeqs<'a> { s: &'a mut [u8] }
fn mut_dna_seqs<'a>(s: &'a mut [u8]) -> MutDnaSeqs<'a> {
    MutDnaSeqs { s: s }
}
impl<'a> Iterator for MutDnaSeqs<'a> {
    type Item = &'a mut [u8];

    fn next(&mut self) -> Option<&'a mut [u8]> {
        let tmp = std::mem::replace(&mut self.s, &mut []);
        let tmp = match memchr(tmp, b'\n') {
            Some(i) => &mut tmp[i + 1 ..],
            None => return None,
        };
        let (seq, tmp) = match memchr(tmp, b'>') {
            Some(i) => tmp.split_at_mut(i),
            None => {
                let len = tmp.len();
                tmp.split_at_mut(len)
            }
        };
        self.s = tmp;
        Some(seq)
    }

некомфортно, при том, что код сам по себе простой. Конечно, это чисто субъективно.

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

ад-хок полиморфизмом

Почему именно ад-хок? В параметрический сишники также не умеют.

И еще раз даст.

Тебе не надоело постить древнюю ошибку, связанную с unsafe-кодом в стандартной библиотеке?

quantum-troll ★★★★★
()
Ответ на: комментарий от tailgunner

void *pAppData;

Окей.

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

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

читать готовый код, вроде такого

Когда я пытался читать этот код, я сдался после того, как увидел третье переопределение tmp. Конечно, можно поставить это в вину языку, а можно выпороть кодера.

Кстати, аннотации лайфтаймов кажутся лишними.

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

Вот, кстати, практический пример полиморфизма в С
void *pAppData;

Окей.

А это вообще не имеет отношения к теме.

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

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

Теперь еще и гуманитарий в треде.

Комплексы? Русский язык надо было в школе учить.

Надевают на себя, а на всех одевают.

рукалицо.ткст

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

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

Этот кодер написал код на Rust, а ты - нет.

Кстати, аннотации лайфтаймов кажутся лишними.

Кажутся, но не лишние.

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

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

Чушь. Именно потому ты придрался к опциональному полю.

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

раст не даст тебе собрать кривую программу, в отличие от компилятора С++.
Ага, не даст и все.
https://github.com/servo/servo/issues/6087

Помнится с хаскелем так же было. Тоже говорили некоторые, что мол если прога компилится, то не упадёт.

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

Этот кодер написал код на Rust, а ты - нет.

Это так. Но, с другой стороны, он написал плохой код, а я - нет.

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

Русский язык надо было в школе учить.

Розенталя переел? Одеть/надеть взаимозаменяемы в разговорном языке. Только школьная зубрилка может додуматься поправлять такие обороты. Еще ссылку на букварь приведи, блджад.

//другой хейтер хруста

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

Шапочки НАдевают.

Теперь еще и гуманитарий в треде. Надевают на себя, а на всех одевают.

Тебе должно быть стыдно.

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

void *pAppData;

Окей.

А это вообще не имеет отношения к теме.

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

Чушь.

Купи себе селедку и дури ей голову. Эта фигня с void * - она везде, где Си. Потому что по-другому просто невозможно.

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

Тебе должно быть стыдно.

Набежало гуманитариев, Пошли вон, нехрен тред засорять.

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

//другой хейтер хруста

Да пофиг, один или другой - вы все малограмотные.

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

Купи себе селедку и дури ей голову. Эта фигня с void * - она везде, где Си. Потому что по-другому просто невозможно.

Еще раз, это не имеет отношения к теме. Забудь про это поле. Ты можешь описать sqlite3_vfs без него? Да. Ты можешь создать экземпляр sqlite3_vfs и инициализировать его нужными функциями-методами? Да. Ты можешь передать его туда, где ждут sqlite3_vfs? Да. ты можешь его использовать без каста к void*? Да. Причем тут вообще void*?

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

Он не переопределяет переменную. Там `tmp`, `tmp` и `tmp` — разные переменные.

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

Забудь про это поле. Ты можешь описать sqlite3_vfs без него? Да.

...если эта VFS не будет ничего делать. Как только ей понадобится хранить специфические данные между вызовами - всё. Именно для этого и нужно это поле - автор sqlite это понимает.

Ты можешь [...] ?
Ты можешь [...] ?
Ты можешь [...] ?

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

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

Эта фигня с void * - она везде, где Си

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

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

почему он разрешает переопределить переменную?

В Rust область видимости переменной - от места ее определения до конца блока _или_ места определения другой переменной с таким именем. Самое странное design decision из всех решений в Rust, ИМХО.

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

Вполне себе полиморфизм без даже минимального контроля со стороны компилятора

/fixed

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

/fixed

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

Самое странное design decision из всех решений в Rust, ИМХО.

Такое иногда встречается в функциональных языках (например в эрланге или окамле).

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

иногда встречается в функциональных языках (например в эрланге или окамле).

Не припомню, чтобы встречал такое в Окамле. Корни решения понятны, но решение всё равно дурацкое.

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

...если эта VFS не будет ничего делать. Как только ей понадобится хранить специфические данные между вызовами - всё. Именно для этого и нужно это поле - автор sqlite это понимает.

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

struct sqlite3_vtab_cursor {
  sqlite3_vtab *pVtab;      /* Virtual table of this cursor */
  /* Virtual table implementations will typically add additional fields */
};

А в данном случае это поле используется самим sqlite, чтоб хранить указатель на указатель на функцию. Причем так сложно только потому-что они собирают с -pedantic под C90.

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

Да зачем такие извраты? Если уж очень припекло, берем плюсовые шаблоны и юзаем, вот и все. Будет сишка с дженериками. Хотя обычно это никому не надо. Фаны мощщщных язычков то ли не вкуривают в чем сила C/C++, то ли придуриваются.

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

нетривиальную VFS нельзя сделать без pAppData

Ты даже не знаешь для чего оно.

Ты врешь, потому что курсор можно!

На примере курсора я показал как делается то, что ты себе нафантазировал. А pAppData решает совсем другую задачу.

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

А каким образом это параметрический полиморфизм в _Си_?

Ну, в Си шаблонов нет бай дизайн, смысл спора был в возможности реализовать замену плюсовых шаблонов.

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

У тылгунера просто сработал триггер на *void: ужас-ужас, канпелятор не проверяет тип, мы все умрем.

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

Results for JoinGuard: No results :(

Ох уж эти пруфстеры.

То есть пофиксили методом выпиливания???

Круто, че! Представляю, как из Linux выпиливают поддержку ext4, из за косяков в ней...

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

То есть пофиксили методом выпиливания???

Ну а что ещё делают с некорректным API?

Представляю, как из Linux выпиливают поддержку ext4

Ну, если бы ext4 by design портила данные, вместо того, чтобы просто работать...

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

Ну, если бы ext4 by design портила данные, вместо того, чтобы просто работать

Так она портила. Более того разрабы хотели чисто ради ext4 добавить по крайней мере один системный вызов, на что Линус послал их в ДЭП.

shkolnick-kun ★★★★★
()
Ответ на: комментарий от tailgunner

Но если в Firefox заменят Gecko на Servo

Раньше соберется какая-нибудь группа фанов и запилят свой браузер чисто на расте, с серво в основе. Давно пора.

ЗЫ: удивительно, что майкросойт с гуглом до сих пор не запилили свой язык уровня раста. Пользовательских язычков (c#, go) навыпускали, а в ключевых проектах (chrome, edge, office) продолжают жрать кактус++. Жду вариацию D/Rust со вкусом гугла

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

Ага, все не в ногу, кроме прапорщика. Щас, подорвались мелкомягкие переписывать офис с нуля на новый язычок. Дурных немае. Над мозильниками весь мир хохочет.

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

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

Микрософт делает (делала?) M#.

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

ЗЫ

Не дождешься.

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

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

Корпоративное управление в действии XDXDXD

Майкрософтовская ОС на сишарпе, кстати, не взлетела...

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

Майкрософтовская ОС на сишарпе, кстати, не взлетела...

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

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

смысл спора был в возможности реализовать замену плюсовых шаблонов

Смысл еще в том, чтобы этим можно было пользоваться. Я JFF писал аналог std::vector на си - можно, ага, только пользоваться таким будут только мазохисты.

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

grammar nazi?

Одеть/надеть взаимозаменяемы в разговорном языке.

это какой-то очень неграмотный русский язык. По временам моей ранней юности (да, это таки давно, особенно если в рамках темы linux), использование слова надеть вместо одеть вызывало не у «зубрилок», а у «поцанчиков с райончика» вполне конкретное гы-гы на тему «на что, на что надеть?». Если с тех пор что-то изменилось, то такая нечувствительность к языку печальна.

be_nt_all ★★
()
Ответ на: комментарий от shkolnick-kun

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

Го то стал, а вот хруст ничем пока не стал. Системным - это бред, никогда этого не будет. Вообще ниши не просматривается. Кстати, Александреску очень точно охарактеризовал это поделие по твоей ссылке выше. Точнее и лаконичнее я не видел, зачет дядьке.

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

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

Я фантазировал о VFS, а ты показал курсор. Т.е. ничего ты не показал.

ты придрался к опциональному полю.

pAppData решает совсем другую задачу.

Окей, окей.

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

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

Microsoft пилит такой язык. Midori, вроде.

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

Ну, разработчики и пользователи CBLAS, например, пользуются...

shkolnick-kun ★★★★★
()
Ответ на: комментарий от tailgunner

Midori, вроде

Midori - это ось на M#. То и другое грозились открыть, но пока видимо пилят.

А M# - по описанию очень годная вещь. В сравнеии с Rust, там анонсировали какую-то продвинутую асинхронность (подозреваю что-то в духе хаскеля) и продвинутая обработка ошибок (контракты, редкие исключения).

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

свой пакетный менеджер

А ничего, что «свой пакетный менеджер» есть чуть ли не у каждого первого нового языка и у половины старых?

свою безопасную ОС

А это о чём?

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

А в случае с Rust ты либо тупо пишешь unsafe код и забиваешь на безопасность, либо явно выбрал не тот язык.

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

Ну и как по мне, то что unsafe явно видно - это всё-таки преимущество.

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

Ну и как по мне, то что unsafe явно видно - это всё-таки преимущество.

unsafe, кстати, запилили после смены ниши для Rust, пока это был язык для сети его там в помине не было.

shkolnick-kun ★★★★★
()
Ответ на: комментарий от tailgunner

Я фантазировал о VFS, а ты показал курсор. Т.е. ничего ты не показал.

Я тебе показал по твоим фантазиям. А конкретно про VFS:

The pAppData field of the sqlite3_vfs VFS objects are initialized to be pointers to the correct finder-function for that VFS.

Это в коде. А в ранних версиях было:

The pAppData pointer is unused by the SQLite core. The pointer is available to store auxiliary information that a VFS information might want to carry around. 

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

Кроме того, в том же sqlite3_vfs уже показано «наследование» - через iVersion и добавление новых полей.

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

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

Когда я пытался читать этот код, я сдался после того, как увидел третье переопределение tmp. Конечно, можно поставить это в вину языку, а можно выпороть кодера.

Забавно, когда я только-только услышал о расте (изначально, кстати, язык воспринял достаточно прохладно), то эта штука (возможность «переопределять») показалась очень дурацкой. Мол будет ошибки провоцировать и нафиг она вообще нужна - можно ведь и новое имя придумать. Но с тех пор мнение несколько пересмотрел, опять же поинтересовался опытом других языков. И теперь оно мне кажется вполне удобным. И в приведённом коде злоупотребления не вижу.

DarkEld3r ★★★★★
()
Ответ на: комментарий от quantum-troll

Такое иногда встречается в функциональных языках (например в эрланге или окамле).

Вроде, в скале и немерле такое тоже есть? Не такая и редкая штука, в общем.

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

Кто же так пишет? Не обязательно везде тыкать время жизни, компилятор и сам поймёт, а если нет, то сообщит об этом. Тот, кто написал это, явно не понял как надо писать на rust.

struct MutDnaSeqs<'a> {
    s: &'a mut [u8]
}

impl<'a> MutDnaSeqs<'a> {
    fn new(s: &mut [u8]) -> MutDnaSeqs {
	MutDnaSeqs { s: s }
    }
}

impl<'a> Iterator for MutDnaSeqs<'a> {
    type Item = &'a mut [u8];
    
    fn next(&mut self) -> Option<Self::Item> {
	let s = std::mem::replace(&mut self.s, &mut []);
	if let Some(i) = s.iter().position(|x| *x == b'\n').map(|i| i + 1) {
	    let j = s[i..].iter().position(|x| *x == b'>').unwrap_or(s.len() - i);
	    let (seq, tmp) = s[i..].split_at_mut(j);
	    self.s = tmp;
	    Some(seq)
	} else {
	    None
	}
    }
}
anonymous
()
Ответ на: комментарий от anonymous

Примечательно, что ЛОР не смог распарсить и упрошенную версию Бугага!

Это не упрощённая версия, просто не такая вырвиглазная. Всё дело в том, что для указания времён жизни используется «'».

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

Щас, подорвались мелкомягкие переписывать офис с нуля на новый язычок.

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

DarkEld3r ★★★★★
()
Ответ на: комментарий от shkolnick-kun

Майкрософтовская ОС на сишарпе, кстати, не взлетела...

Что значит «не взлетела»? Её что вообще «применять» пытались? Это же чисто исследовательский проект был?

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

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

А что он сказал? У него довольно обтекаемые и осторожные суждения. Оно и понятно ведь D не то чтобы сильно взлетел.

DarkEld3r ★★★★★
()
Ответ на: комментарий от shkolnick-kun

Ну и Redox уже какбы есть...

В курсе. Но разве это мозилла пилит?

DarkEld3r ★★★★★
()
Ответ на: комментарий от shkolnick-kun

Ну нету в крестах заморочек с владением и «одалживанием» переменных.

На уровне языка - нет. На уровне «логики программы», зачастую тоже есть.

DarkEld3r ★★★★★
()
Ответ на: комментарий от shkolnick-kun

unsafe, кстати, запилили после смены ниши для Rust, пока это был язык для сети его там в помине не было.

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

Во вторых, пруфы есть? Когда, по твоему, произошла «смена ниши» и в чём это проявилось? Насколько я вижу, упоминание unsafe ещё в 0.4 встречается. То есть задолго до того как Gc<T> выпилили.

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

Он сказал про сильные и слабые стороны разных языков.

Он сказал очевидную вещь о том, что создатели ЯП пытаются решить определенные проблемы, стоящие перед разработчиками.

Дело в том, что #memorysafety не есть наиболее часто встречающаяся и актуальная проблема для современного программиста, соответственно не стоит заморачиваться только на ней, ибо это приводит к определенной диспропорции, знаете ли.

Разработчики раста как раз сделали то чего не стоило делать, в результате раст выглядит как «качек с мощным торсом но на тонких ножках».

Наиболее выраженная «сильная сторона» раста, это пиар, а совсем не мощная система типов (которая кстати недостаточно мощна, ибо позволяет написать «безопасный код», с утечками памяти).

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

Разработка прекращена, исходники открыты, никто не пользуется...

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

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

Э, Midori оказывается уже свернули. Главный архитектор теперь хвалит Go и Rust, и участвует в cpp core guidelines.

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

А ты думаешь, что смена ниши начинается тогда, когда это объявлено публично?

Во вторых, пруфы есть? Когда, по твоему, произошла «смена ниши» и в чём это проявилось? Насколько я вижу, упоминание unsafe ещё в 0.4 встречается. То есть задолго до того как Gc<T> выпилили.

Ну прямых конечно нет, но...

At first I was like...

but then I...

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

Разработчики раста как раз сделали то чего не стоило делать

Время покажет.

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

Тем более, что и в С++ думают про лайфтамы, если ты не в курсе. Понятное дело, что в таком же виде они туда вряд ли попадут, но раз темой интересуются, значит с бесполезностью ты не прав.

Наиболее выраженная «сильная сторона» раста, это пиар

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

которая кстати недостаточно мощна, ибо позволяет написать «безопасный код», с утечками памяти).

И есть пример большей мощности решающей и проблему утечек? Иначе это аргумент ни о чём.

DarkEld3r ★★★★★
()
Ответ на: комментарий от shkolnick-kun

Аналогичная история с английской версией статьи.

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

Дело в том, что #memorysafety не есть наиболее часто встречающаяся и актуальная проблема для современного программиста, соответственно не стоит заморачиваться только на ней, ибо это приводит к определенной диспропорции, знаете ли.

Дело в том, что сделать крупное приложение, корректно работающее с памятью на мейнстримных языках невозможно. Причем это относится в том числе к языкам с GC и жирным рантаймом (прочитайте java memory model и, если осилите, подумайте как этим пользоваться в жизни). Мозилла же сделала язык, в котором большая часть ошибок при работе с памятью невозможна, при этом на нем все ещё можно что-то писать. Сейчас же занимается тем что делает так чтобы писать на этом языке было проще и доставляло меньше боли.

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

Следуя «логике разработчиков языка» следует ввести ряд новых анальных ограничений:

  • Запилить индексные типы для адресации элементов массивов.
  • Запилить для них такие же ограничения, как для различных видов указателей, причем проверять соблюдение «правил» придется рекурсивно...
  • Использовать для адресации массивов ТОЛЬКО индексные типы.
shkolnick-kun ★★★★★
()
Ответ на: комментарий от anonymous

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

Уж чья бы корова мычала, а он бы помолчал.

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

А ты думаешь, что смена ниши начинается тогда, когда это объявлено публично?

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

Ну и было интересно знаешь ли ты когда появился unsafe.

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

о Go говорят, по моим ощущениям, куда больше, что в общем-то закономерно.

На го еще и код пишут, и не только в стол. У раста пока один пиар с мозголомными хеловордами.

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

Следуя «логике разработчиков языка» следует ввести ряд новых анальных ограничений:

Зачем? Главное, что неправильный индекс не ведёт к UB, тем более, что в языке есть несколько способ работать с индексами.

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

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

А в ранних версиях было:

The pAppData pointer is unused by the SQLite core. The pointer is available to store auxiliary information that a VFS information might want to carry around.

Почти то же самое, что я сказал (если заменить второе «information» на «implementation», будет точно то же самое). С чем ты вообще споришь?

Потому ты откровенно облажался со своим «нетривиальную VFS нельзя сделать без pAppData»

Естественно, я говорил не о sqlite core.

Но как всегда будешь юлить и говорить «ой, все».

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

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

Мозилла же сделала язык, в котором большая часть ошибок при работе с памятью невозможна, при этом на нем все ещё можно что-то писать.

Валяюсь. Ну спасибо, хоть что-то можно. Тут Александреску точно просек: любой код на расте - это битва за memory safety. То есть еще более жесткий культ компилятора, чем у предшественников.

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

в приведённом коде злоупотребления не вижу.

Ты считаешь, что замечательный мнемонический идентификатор tmp, который в разных частях функции из 11 строк ссылается на 3 разных значения (двух разных типов, насколько я могу судить) - это нормально? Ну окей.

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

Ты считаешь, что замечательный мнемонический идентификатор tmp

Идентификаторы типа s мне тоже не особо нравятся. И если бы там вместо tmp было что-то типа a/b/c или val1/val2/val3 - было бы лучше? Возможно, если как следует вникнуть, то получится придумать более вменяемые названия.

Другое дело, что периодически попадается код типа:

const auto& value = get_value();
const auto& stringValue = value_to_string(value);
const auto& convertedValue = convert_value(value);
И вот тут ценности в том, что все переменные называются по своему вообще не вижу. Да, иногда восприятие кода можно улучшить, если давать правильные имена. Но чаще получается как в примере.

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

И почему это плохо?

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

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

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

О, да ты еще и по совку специалист.

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

И если бы там вместо tmp было что-то типа a/b/c или val1/val2/val3 - было бы лучше?

Я считаю, что было бы лучше, если бы язык не давал возможности шифровать код. И да, tmp, pos1, pos2 было бы лучше.

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

unsafe, кстати, запилили после смены ниши для Rust, пока это был язык для сети его там в помине не было.

Вот, заморочился и поискал: unsafe добавился Oct 12, 2011. То есть до версии языка 0.1, которая вышла 2012-01-20. Уже тогда ниша поменялась значит?..

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

Ты не киборг часом? :-)

А у тебя не синдром рассеянного внимания?

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

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

Когда-то и я так думал.

Кстати, вывод типов тебя не напрягает? А то ведь есть и противники auto - ведь так тоже код «шифруется».

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

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

Обычно статьи в педивикии пишут по информации с сайта проекта с некоторым отставанием по времени.

Первое упоминание о Раст, как о «системном языке» появляется в 2012году, что соответствует дате появления unsafe осенью 2011.

Такие дела.

shkolnick-kun ★★★★★
()
Ответ на: комментарий от DarkEld3r

Кстати, вывод типов тебя не напрягает?

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

tailgunner ★★★★★
()
Ответ на: комментарий от shkolnick-kun

Первое упоминание о Раст, как о «системном языке» появляется в 2012году

Не первое упоминание, а первое упоминание, которое ты смог найти. Вот интервью Грейдона, в котором он описывает историю: http://www.infoq.com/news/2012/08/Interview-Rust

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

Ты понимаешь, что упоминание на гитхабе != упоминанию в прессе?

И да, в том самом интервью написано:

Mozilla took an interest and set up a team to work on this language as a component of longer-term project to rebuild their browser stack around safer, more concurrent, easier technologies than C++. That larger project is called «servo». Mozilla is funding Rust development because of that.

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

Было это 2010 году, и только через джва года, ДЖВА, КАРЛ.

Появляется Rust, как системный язык! А с 2009 года Go уже существовал, как продукт выпускаемый Google, причем, в статье на педивикии написано:

Go originated as an experiment by Robert Griesemer, Rob Pike and Ken Thompson at Google, to design a new systems programming language,...

То есть изначально Go был системным, но потом ...

shkolnick-kun ★★★★★
()
Ответ на: комментарий от tailgunner

Да и работа будет происходить в IDE - думаю, она покажет выведенный тип.

Даёшь возможность хейтерам напомнить, что ИДЕ для раста особо и нет. Впрочем, даже в плюсовом мне это не всегда помогает (по крайней мере, в QtCreator).

DarkEld3r ★★★★★
()
Ответ на: комментарий от shkolnick-kun

Ты понимаешь, что упоминание на гитхабе != упоминанию в прессе?

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

и только через джва года, ДЖВА, КАРЛ.

Появляется Rust, как системный язык!

Не-а. Это всего лишь самое раннее упоминание, которое ты нашел.

То есть изначально Go был системным, но потом ...

Да пофиг на Go.

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

Даёшь возможность хейтерам напомнить, что ИДЕ для раста особо и нет

не надо

на виме надо писать

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

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

В интервью этого нет, само интервью дано в 2012 году, когда Rust уже позиционировали, как системный, именно по этому он говорит в настоящем времени о Ц.А.

Да пофиг на Go.

Ну и зря. Изменения таргетирования Rust и Go связаны c корпоративной стратегией «Корпорации добра»: дивизионы (и\или прокси-дивизионы) не должны конкурировать друг с другом.

Громоптицу уже практически закопали, перекинув разрабов на тот же Rust (зачем пользователю иметь возможность использовать любые почтовые сервисы через «толстый клиент», если можно использовать сервисы гугла через браузер).

В долгосрочной перспективе Google нужно подсадить всех, буквально, на свои продукты и сервисы, а значит и закопать Фурифокс.

Если Rust до не «взлетит» до закапывания фурифокса, его закопают вместе с ним и Мозиллой.

Именно поэтому Rust-евангелисты тралят на форумах Си-дерастов и Кресто-геев, а еще пишут в твиторах #rust #nogc #memorysafety.

shkolnick-kun ★★★★★
()
Ответ на: комментарий от tailgunner

разнежились ИДЕ теперь подавайте.

Щас у меня все на машинном языке писать будете. Нолики и единицы вам снится будут.

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

Не-а. Это всего лишь самое раннее упоминание, которое ты нашел.

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

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

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

Нужно больше неадеквата

А бугурт-ос спонсируется микрософтом, чтобы оттянуть разрабов от линукса.

anonymous
()
Ответ на: Нужно больше неадеквата от anonymous

О, отличная идея, напишу ка я письмо MS, на линукс они вряд ли буду покушаться (Ц.А. их HyperV же), но FreeRTOS может и захотят подвинуть XDXDXD

shkolnick-kun ★★★★★
()
Ответ на: комментарий от tailgunner

Почти то же самое, что я сказал (если заменить второе «information» на «implementation», будет точно то же самое). С чем ты вообще споришь?

Ты не умеешь читать? Я специально это процитировал, т.к. это уже неактуальное описание, которое удалили из документации.

Естественно, я говорил не о sqlite core.

struct my_vfs {
    sqlite3_vfs _;
    ...;
};

И расширяй как хочешь.

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

само интервью дано в 2012 году, когда Rust уже позиционировали, как системный, именно по этому он говорит в настоящем времени о Ц.А.

Ты интервью прочитай, а не на его дату посмотри.

Громоптицу уже практически закопали, перекинув разрабов на тот же Rust

А пару страниц назад анонимус сказал, что Mozilla не занимается Thunderbird с 2012 года. Кстати, не подскажешь фамилии перекинутых?

инсайд тащемта

Фейспалм например.

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

Я специально это процитировал, т.к. это уже неактуальное описание, которое удалили из документации.

Ты процитировал описание, которое было актуально много лет. А теперь sqlite сменил шило на мыло - void * на «типа наследование».

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

Ты интервью прочитай, а не на его дату посмотри.

Я читал.

А пару страниц назад анонимус сказал, что Mozilla не занимается Thunderbird с 2012 года.

Совпадение? Не думаю! Киселев.жпг

Кстати, не подскажешь фамилии перекинутых?

А тебе не кажется странным, то, что примерно в одного года выпускают первую альфаверсию Rust, в среде разрабов начинают говорить про системный язык, закапывают ГромоПтицу?

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

А тебе не кажется странным, то, что примерно в одного года выпускают первую альфаверсию Rust, в среде разрабов начинают говорить про системный язык, закапывают ГромоПтицу?

We need to go deeper. В год выпуска бутстрап-компилятора Rust происходит извержение Эйяфьядлайёкюдля, а в год выхода его альфы - конец света по майя. ЭТО НЕСПРОСТА!!!111

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

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

В моем списке из трех событий есть связь по ресурсам Мозиллы, например.

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

В моем списке из трех событий есть связь по ресурсам Мозиллы, например.

По каким ресурсам? Для разработки Rust Мозилла наняла Грейдона, появление нового оплачиваемого инженера было праздником едва ли не до начала 2015 года (дальше я перестал следить). При том, что денег у Мозиллы овердохрена.

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

появление нового оплачиваемого инженера было праздником едва ли не до начала 2015 года (дальше я перестал следить).

Странно, но тут явно больше одного активного разраба, причем где-то с 2011 года.

При том, что денег у Мозиллы овердохрена.

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

shkolnick-kun ★★★★★
()
Ответ на: комментарий от tailgunner

https://ru.wikipedia.org/wiki/Mozilla_Thunderbird

В июле 2012 Mozilla Foundation заявила, что прекращает дальнейшую разработку Thunderbird как «нецелевого проекта»

Ой, вот это да!, оказывается мои три события произощли в течение 1 месяца, ну надо же, какое совпадение!

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

появление нового оплачиваемого инженера было праздником едва ли не до начала 2015 года (дальше я перестал следить).

Странно, но тут явно больше одного активного разраба, причем где-то с 2011 года.

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

И эти деньги главным образом дает сообщество, а совсем не гугл.

Да хоть инопланетяне. После того, как деньги дали Мозилле, это деньги Мозиллы.

А скакунов на майданах бабушки пирожками кормят, ага.

Так ты еще и маданозабоченный. Это многое объясняет...

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

Нет, я озабочен, SURPRICEMOTHERFUCKER, будущим своих гипотетических детей, например.

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

shkolnick-kun ★★★★★
()
Ответ на: комментарий от tailgunner

Да хоть инопланетяне. После того, как деньги дали Мозилле, это деньги Мозиллы.

Лолище! Психология мелкого рашкованского мошенника: взял деньги и насрал дающему под дверь. Так дела не делаются, тылгунер. Финансирование всегда целевое, даже если замаскировано под донаты.

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

Так дела не делаются, тылгунер

Ахренеть, деловые люди на моем ЛОРе.

Финансирование всегда целевое, даже если замаскировано под донаты.

Ой вей, и этот мелкий поц что-то имеет против психологии рашкованских мошенников.

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

После того, как деньги дали Мозилле, это деньги Мозиллы.

Представим гипотетическую ситуацию:

1. Ты разрабатываешь несколько программных продуктов.

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

3. В один прекрасный момент эта самая корпорация говорит тебе: «Хватит заниматься продуктом А, займись продуктом Б, а то денег не дам!»

4. И тут ты такой гордый: «Чем хачу тем и занимаюся!!! Панятна!!!»

Странное поведение спонсируемого, не так ли?

shkolnick-kun ★★★★★
()
Ответ на: комментарий от tailgunner

Поздно уже.

Ну не могу я подолгу думать над расстановкой знаков препинания, темперамент не тот.

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

Представим гипотетическую ситуацию:

Давай ты подкрепишь свою гипотезу хоть какими-нибудь фактами. Например, количеством донатов Мозилле от Гугла, начиная с 2009 года (выпус Go) до настоящего времени; и перемещениях людей из команды Thunderbird в команду Rust.

Ну не могу я подолгу думать над расстановкой знаков препинания

Правильно писать слова тоже темперамент мешает? SURPRISE пишется через S.

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

4. И тут ты такой гордый: «Чем хачу тем и занимаюся!!! Панятна!!!»

а через 2 года мозилла отказывается продлевать соглашение с гуглом. совпадение? не думаю!

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

Кому то наверно нравится управлять памятью, а не решать задачу, мало ли.

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

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

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

Если пресс-релиз вышел 30 июня 2012, то собирались за несколько дней до этого, ну например 25 июня 2012.

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

Собствено основная функции BOD, - формирование «миссии», корпоративной стратегии, согласование стратегий дивизионов.

Так вот, в конце июня прошло заседание BOD, в июле закапывают ThunderBird, делают Rust системным, а в августе было это твое интервью...

Вот такие вот совпадения...

Причем фактов уже 4, и два из них сюда принес не я.

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

Куда уж релевантнее

Гораздо, гораздо релевантнее.

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

Заседания совета директоров происходят гораздо чаще.

Так вот, в конце июня прошло заседание BOD, в июле закапывают ThunderBird

И что? Совпадение по датам, как с концом света.

делают Rust системным,

Not this shit again.

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

в 2011 продлевали срок договора на 3 года, а в 2014 не продлили.

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

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

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

Ну то есть гораздо чаще, чем раз в год. Ппросто из любопытства - сколько их было в 2012?

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

Можно конечно смеяться над конспироложество

Но гораздо прикольнее в него верить - всё сразу становится понятно.

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

Забавно. К Мозиллке отношения не имеет скорее всего...

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

А че! Технично так закапывали! Qt тоже закопали вместе с ноклой. В том смысле, что стали регулярно появляться релизы, ломающие обратную совместимость...

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

Ой, вот это да!, оказывается мои три события произощли в течение 1 месяца,

А первого августа вышла восьмерочка ... вот это совпадение!

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

В том смысле, что стали регулярно появляться релизы, ломающие обратную совместимость...

А что, гтк2 и гтк3 уже вдруг стали совместимы o_O

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

о Go говорят, по моим ощущениям, куда больше

Наверное мы читаем разные новости. Как по мне, хайп вокруг go затих даже быстрее хайпа вокруг nodejs. Вот про rust даже на хабре проскакивает. А уж на лоре так вообще штаб-квартира его фанатов)

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

А уж на лоре так вообще штаб-квартира его фанатов)

А сколько из них пишет на Rust код? Хотя бы джастфофан?

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

Как по мне, хайп вокруг go затих даже быстрее хайпа вокруг nodejs.

На Go всё-таки (намного) активнее «реально используется» и это накладывает свой отпечаток. Чаще где-то проскакивает, больше статей и литературы.

Вот про rust даже на хабре проскакивает.

Ха. Gо - 192 публикации, раст - 69. И это про том, что расту частые «релизы» помогают количество новостей увеличить. Плюс несколько последних статей по расту - это какой-то детский сад. Про константы и про модули, например. Какой-то странный пересказ официальной документации.

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

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

Как по мне, хайп вокруг go затих даже быстрее хайпа вокруг nodejs.

Да пофиг, главное что на го и ноде пишут вовсю, а про раст пока одна болтовня, только чудовищные хелловорлды иногда проскакивают.

А уж на лоре так вообще штаб-квартира его фанатов

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

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

Уже два хейтера не могут в азы языка на котором разговаривают,совпадение? Не думаю:)

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