Хм, для такой, как по мне, экзотики можно было собрать с переопределением `lua_number` в `int`.
> сравнение float'ов — боль
Хм, ну если в формулах не использовать дроби, то и сравнение как для целых работало. Я вот не уверен, что от скриптов стоит требовать большего.
> иногда очень не хватало простых человеческих битовых операций
Тут соглашусь, но не уверен, что луа вообще хороший вариант языка для активной возни с битами.
> их можно вынести в мини-библиотеку
Еще у luajit было нечто приличное — http://bitop.luajit.org — но это, конечно, не стандартный интерпретатор и не везде заработает.
В общем, мне наоборот один тип для чисел казался как раз ближе к минималистичному духу lua (где даже массивы и хэши в одну сущность слепили) и всегда думалось, что для скриптов этого вполне достаточно.
Бедный Клабник эту главу уже нцатый раз переписывает. Просто «время жизни» в ржавчине как монады в хаскелях — штука простая, но хрен ее просто так объяснишь)
Я когда вижу такие фразы, думаю что говорящий не слишком глубоко плюсы знает. Бездна тонкостей и грабель, требующих очень и очень большой самодисциплины. Да, заставить код на плюсах собираться и выдавать какой-то результат, наверное, часто проще, но вот написать хороший код — уже другой вопрос.
Макросы и так многострочные. Вышеописанное, наверное, или уже сейчас, или через какое-то время можно будет сделать при помощи плагинов компилятора. Но мне все это видится излишней магией.
Я не вижу, где бы такое утверждалось. Речь как раз о том, что «безопасность и _ювелирное_ обращение с памятью» не так уж и сильно нужны большинству программистов, по крайней мере по их представлениям.
> Что Rust действительно делает – так это отделяет наследование от полиморфизма…
> Хотите верьте, хотите – нет, но по крайней мере в Rust 1.6 нет вообще никаких специальных инструментов для наследования структур…
Я уже везде об этом успел поныть, но напишу таки еще раз — хочу это самое наследование реализаций, отделенное от полиморфизма. Как анонимные поля в Go или что в таком духе. Хаки с Deref это не полноценное решение, а вручную «пробрасывать» методы в структуру-обертку — боль.
А официальной активности на этом фронте (https://github.com/rust-lang/rfcs/issues/349) как-то совсем не видно, только парочка статей с размышлениями была, и то н-цать месяцев назад :(.
Это другое же, в ржавчине область видимости нормально ограничена блоками, просто не требуется предварительное объявление, потому что компиляторы уже н-цать десятилетий как не однопроходные.
Хм, для такой, как по мне, экзотики можно было собрать с переопределением `lua_number` в `int`.
> сравнение float'ов — боль
Хм, ну если в формулах не использовать дроби, то и сравнение как для целых работало. Я вот не уверен, что от скриптов стоит требовать большего.
> иногда очень не хватало простых человеческих битовых операций
Тут соглашусь, но не уверен, что луа вообще хороший вариант языка для активной возни с битами.
> их можно вынести в мини-библиотеку
Еще у luajit было нечто приличное — http://bitop.luajit.org — но это, конечно, не стандартный интерпретатор и не везде заработает.
В общем, мне наоборот один тип для чисел казался как раз ближе к минималистичному духу lua (где даже массивы и хэши в одну сущность слепили) и всегда думалось, что для скриптов этого вполне достаточно.
Хотя мне странно, что lua в этом списке, вот уж связанную с ним работу в игрострое точно не сложно найти.
После выхода 1.0 это уже совсем не так актуально. Собственно, большинство статей, написанных после середины 2015ого, вполне себе актуальны и полезны.
Я когда вижу такие фразы, думаю что говорящий не слишком глубоко плюсы знает. Бездна тонкостей и грабель, требующих очень и очень большой самодисциплины. Да, заставить код на плюсах собираться и выдавать какой-то результат, наверное, часто проще, но вот написать хороший код — уже другой вопрос.
И, кстати, почему «уже»?
кхм
Смотря как понимать «использованы» — сырые указатели можно брать и передавать где угодно, вот разыменовать можно только в `unsafe{}`.
> а если они там были объявлены, то они его и покинуть не смогут
Не, сырые указатели можно куда угодно передавать же, в том числе и из блока:
https://play.rust-lang.org/?gist=17f0da2b3d478e51e0b7&version=stable
Они же не зря в обязательном порядке со скобками вызываются :)
Нужны просто HKT и чертовы монады с `do` :).
Я не вижу, где бы такое утверждалось. Речь как раз о том, что «безопасность и _ювелирное_ обращение с памятью» не так уж и сильно нужны большинству программистов, по крайней мере по их представлениям.
> Хотите верьте, хотите – нет, но по крайней мере в Rust 1.6 нет вообще никаких специальных инструментов для наследования структур…
Я уже везде об этом успел поныть, но напишу таки еще раз — хочу это самое наследование реализаций, отделенное от полиморфизма. Как анонимные поля в Go или что в таком духе. Хаки с Deref это не полноценное решение, а вручную «пробрасывать» методы в структуру-обертку — боль.
А официальной активности на этом фронте (https://github.com/rust-lang/rfcs/issues/349) как-то совсем не видно, только парочка статей с размышлениями была, и то н-цать месяцев назад :(.
https://github.com/Manishearth/rust-clippy/wiki#shadow_unrelated