LINUX.ORG.RU

История изменений

Исправление vertexua, (текущая версия) :

Почему задача стала что мне вдруг нужно компилировать на лету неизвестный код? Можем мне ещё укусить себя за локоть стоя на одной ноге? Хочешь как в лиспе - пиши на Лиспе.

У меня есть известный код в .rs. Там нету ни такого как в Java где я не думаю о памяти, но потом рантайм делает кульбиты, угадывает что я имел ввиду, делает mark and sweep, что-то перемещает в памяти. Там также нету такого как в Python, где мне в глотку пихают счётчик ссылок, хотя у меня один объект и одна ссылка на него в 80% кода. Там нету такого как в С, где я должен вызывать free сам. Там нету такого как в С++, где дожили до RAII, деструкторов, move semantics, к счастью, но во всем этом легаси мусорка и легко где-то накосячить в синтаксисе конструктора, вызвать не тот, куда-то впихнуть null, где-то сделать дважды delete.

Тут Rust - язык со строгим описанием типа владения к каждой переменной. Только для чтения или нет? Нужен многопоточный доступ или нет? Сколько владельцев? Укажите комбинацию вышеперечисленного и мы правильно вычислим где м когда сделать free и статически проставим это на этапе компиляции. И даже подскажем что какой-то режим оверкилл, вы указали, но ее используете его мощность.

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

Исправление vertexua, :

Почему задача стала что мне вдруг нужно компилировать на лету неизвестный код? Можем мне ещё укусить себя за локоть стоя на одной ноге? Хочешь как в лиспе - пиши на Лиспе.

У меня есть известный код в .rs. Там нету ни такого как в Java где я не думаю о памяти, но потом рантайм делает кульбиты, угадывает что я имел ввиду, делает mark and sweep, что-то перемещает в памяти. Там также нету такого как в Python, где мне в глотку пихают счётчик ссылок, хотя у меня один объект и одна ссылка на него в 80% кода. Там нету такого как в С, где я должен вызывать free сам. Там нету такого как в С++, где дожили до RAII, деструкторов, move semantics, к счастью, но во всем этом легаси мусорка и легко где-то накосячить в синтаксисе конструктора, вызвать не тот, куда-то впихнуть null, где-то сделать дважды delete.

Тут Rust - язык со строгим описанием типа владения к каждой переменной. Только для чтения или нет? Нужен многопоточный доступ или нет? Сколько владельцев? Укажите комбинацию вышеперечисленного и мы правильно вычислим где м когда сделать free и статически проставим это на этапе компиляции.

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

Исходная версия vertexua, :

Почему задача стала что мне вдруг нужно компилировать на лету неизвестный код? Можем мне ещё укусить себя за локоть стоя на одной ноге? Хочешь как в лиспе - пиши на Лиспе.

У меня есть известный код в .rs. Там нету ни такого как в Java где я не думаю о памяти, но потом рантайм делает кульбиты, угадывает что я имел ввиду, делает mark and sweep, что-то перемещает в памяти. Там также нету такого как в Python, где мне в глотку пихают счётчик ссылок, хотя у меня один объект и одна ссылка на него в 80% кода. Там нету такого как в С, где я должен вызывать free сам. Там нету такого как в С++, где дожили до RAII, деструкторов, move semantics, к счастью, но во всем этом легаси мусорка и легко где-то накосячить в синтаксисе конструктора, вызвать не тот, куда-то впихнуть null, где-то сделать дважды delete.

Тут Rust - язык со строгим описанием типа владения к каждой переменной. Только для чтения или нет? Нужен многопоточный доступ или нет? Сколько владельцев? Укажите комбинацию вышеперечисленного и мы правильно вычислим где м когда сделать free и статически проставим это на этапе компиляции.

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