Как стать автором
Обновить
66
0
Михаил Панков @mkpankov

Системный программист

Отправить сообщение
Не совсем так.

Вот план реализации Servo: github.com/servo/servo/wiki/Roadmap. Моё понимание таково: Servo пока просто не готов к боевому применению. Хотя некоторые сайты уже отрисовываются так же хорошо, как и в Gecko.

Насколько я помню, в целом Mozilla действует так: постепенно заменяют компоненты в Firefox на те, что используется в Servo, так что в конце они будут использовать одно и то же, а затем можно и движок заменить.
Тем не менее, макросы, меняющие поток управления — это действительно неожиданно и поэтому может быть плохо.

try! спасает только то, что он всего один, достаточно прост и быстро узнается в процессе изучения языка.
Best practices для Rust пока нет.

История успеха — это Servo. Он рисует страницы в 2 раза быстрее Gecko в одном потоке и ещё быстрее в многопоточном режиме.

А из коммерческих пользователей есть как минимум Maidsafe, Skylight, OpenDNS. У них в разных местах есть посты о том, почему они выбрали Раст.
Возможно, вы знаете, что этот сайт обновляется практически никогда. Я его видел полтора года назад — он выглядел так же. Поэтому я не уверен, что он соответствует действительности на данный момент.

Например, недавно появился mail sender — lettre.
Я с вами не спорю, но хочется уточнить один момент: проверки Rust в unsafe не отключаются. Есть ровно три вещи, которые разрешаются дополнительно только в unsafe: разыменование сырых указателей, вызов опасных функций, и доступ к изменяемым статическим данным. Есть довольно большой класс поведения, которое считается не определенным и которое недопустимо даже в unsafe, но есть и поведение, которое явно не считается небезопасным и называется вместо этого «нежелательным» (например, утечка памяти).
Нет, пока ещё нет.
Из других новостей: на 1.3 racer собирался 4:45 на моей машине, на 1.4 — 3:57. Один мой проект собирается теперь за 1:00 вместо 1:14. Примерно 20% ускорения в обоих случаях.

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

Я знаю про эту практику, но мне она не нравится. Маскировать переменные можно и в Си, однако обычно я этого избегаю, т.к. это вносит путаницу и обычно сигнализирует о чрезмерной вложенности или непродуманности имён.
Во-вторых, where — это не «задание краткого имени для длинного типа», это определение ограничений на дженериковую ти́повую переменную:

Разумеется. Спасибо. Подумал про одно, написал про другое.
А вы пробовали Emacs Prelude?
Не спасает. Фундаментальная проблема сервера Emacs для меня в том, что он слишком жёстко связан с окружающим миром. Изоляция процессов плохая. Заглючило sudo в tramp-mode и всё повисло? Убивай сервер. Запустил что-то слишком прожорливое или медленное? Сервер висит вместе с процессом. Короче, не 21-й век: асинхронности мало.
Да, где-то видел что это «лучшая библиотека разбора аргументов вообще, с которой приходилось работать» (по мнению одного из пользователей; мой вольный перевод).
Классно, спасибо.

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

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

INI — наверное, потому, что лично мне он более знаком и кажется менее навороченным, чем TOML.
Хе-хе, оказывается это NoScript спас меня от видео со звуком.
Пара обновлений, произошедших буквально за несколько последних часов:
  • В multirust добавили поддержку Windows через MinGW
  • Автор rust-ini выпилил единственную используемую нестабильную возможность, так что теперь данная библиотека работает на stable
Как всегда, способ установки прекрасен.
Не могу сказать, что разделяю ваши опасения по поводу его небезопасности. Тут даже sudo на весь скрипт не запрашивается — оно используется внутри, если нужно, и скрипт об этом предупреждает. Можно передать --prefix и тогда оно вообще не понадобится, просто придётся окружение трогать тогда.

Не распарсил. Так работает только на win или не работает только на win? Особенно, в контексте использования sh.
Спасибо, поправил.
Она есть, просто косячная.
String выбран, чтобы не возиться с временами жизни в прототипе и не пугать лишний раз новичков.
Уже написали несколько объяснений, но я попробую ещё раз, потому что про строки любят спрашивать :)

«Михаил» — это строковый литерал, это не «объект». Его нельзя изменять, например. Это «unboxed» значение, и to_string превращает его в boxed значение на куче.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность