На что бы заменить Python?

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

Плюсы

В качестве главного плюса этого выбора выступает простота самого языка и, как следствие, требованию к уровню разработчика необходимого для вхождения в проект очень низкие.
Динамическая природа языка способствует экспериментам в REPL и облегчает поиск оптимального решения.
Язык очень емкий, что сильно сокращает объем код и позволяет в пару строк написать очень не тривиальные для многих других языков вещи.
Огромное количество библиотек на все случаи жизни позволяет сосредоточиться на задаче, а не инструменте.
Ряд отличных IDE, например PyCharm, сильно облегчают разработку. Continue reading

Kaleidoscope на Rust

Существует довольно известное руководство, посвященное процессу разработки нового языка программирования с использованием LLVM в качестве back-end под названием Kaleidoscope. Руководство очень грамотно доносит то, с какими трудностями можно столкнуться в процессе разработки нового языка и как с ними справится. Для любого разработчика, у которого внезапно мелькнула в голове шальная мысль “хочу свой язык” к прочтению обязательно.
Так вот, на прошлой неделе в сообществе Rust промелькнула интересная ссылка на тот же Kaleidoscope, но написанный не на C++, а на Rust.

Callbacks, closures и модель памяти Rust

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

В Rust имеются два вида замыканий: стековые и уникальные и указатели на функции. В некоторых случаях замыкания взаимозаменяемы и совместимы с указатели на функции, в некоторых нет. Поведение данных замыканий идентично поведению стековых данных и данных адресуемых посредствам уникальных указателей. Так как весь этот набор выглядит довольно обширным, то мне кажется что лучше всего разбираться на примерах. Continue reading

Модель памяти Rust, видео.

Обзорное выступление с рассказом о модели памяти Rust от ее автора Николоса Мастакиса. Вскользь сравнивается с моделью памяти C++. Достаточно интересное выступление для людей не имеющих какого-то опыта с Rust и оценивающих пригодность языка для решения своих задачь.

Rust в ядре OSX

Как-то в дискуссии на РСДН-е проскользнула мысль о том, что одной из ключевых сфер применения Rust может оказаться разработка не User-mode приложений, а драйверов. Вот и результат небольшого эксперимента:

17/12/13 23:43:23,000 kernel[0]: hello from rust

Continue reading

Mill CPU

К регистровой и стековой машине мы привыкли давно… А это – интереснеейшее видео о Mill CPU архитектуре. Очень рекомендую к просмотру всем, кому интересна организация процессоров и виртуальных машин.

О двух интересных проектах

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