Дмитрий Беляев @bingo347
Разработчик Rust
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity
Specialization
Backend Developer, Fullstack Developer
Lead
Разработчик Rust
assert одинаково работает и в релизе и в дебаге, а если использовать debug_assert - на то он и дебаг
Это очень субъективный показатель, имхо. Я на достаточно хорошем уровне знаю как Rust так и Node.js + TypeScript и одну и ту же задачу сделаю на обоих за примерно одинаковое время, на Rust даже быстрее будет, хотя и больше текста набрать придется (ИИ в помощь) но за отладкой просижу в разы меньше.
Но скажи мне тоже самое сделать на Python или на C++, которые я знаю значительно хуже и времени у меня уйдет заметно больше. Но понятно, что тот кто много на плюсах пишет на них и быстрее реализует все.
А насчет асинхронного кода, не понял в чем проблемы? Все с ним прекрасно в Rust.
Переполнение не является UB в rust.
В debug паникует, в release переполняет, все конкретно определено.
Ну и есть методы, с еще более конкретным поведением: checked_*, overflowing_*, wrapping_*
А можно пример UB в Rust без использования unsafe?
Svelte может себе такое позволить, так как если Вы это не используете, этого не будет в бандле
Насчет роутера, почему то в React никого не смущает, что людям нравятся разные роутеры с разной архитектурой. Vue тут скорее исключение, что есть 1 вариант и костыли вокруг него, чтоб эмулировать другие подходы к роутеру.
Загляните сюда, здесь лишь малая толика отборного, из всего того, что есть:
github.com/TheComputerM/awesome-svelte
Отсюда и мифы, что typescript от чего то там спасет. Но вот от кривых рук писателей библиотек он не спасает… Как и не делает ни малейшей попытки спасти от кривых рук пользователей библиотек у которых нет ts…
Если Вы уж так уверены, что там точно нет ни одного undefined/null, то на ts добавится всего 2 символа:
Хотя гораздо безопаснее все же написать так:
В Вашем варианте foo я понятия не имею, что за строку она от меня хочет, но стоит написать вот так: и все стало гораздо понятнее, хотя foo по прежнему не очень удачное имя…
И да, по-нормальному было бы вообще так: но убогая структурная система типов тайпскрипта не дает это выразить нормально
1. Можно просто собрать несколько удачных решений в одном месте, хорошо так присыпать пиаром — и все, готов продукт которые будет нравиться многим.
2. Распиаренность и наличие преданных фанатов не означает, что продукт лучше других.
Писать js прямо в шаблоне? — Было до него, шаблонизатор ejs, хоть и строковый, но позволял писать в шаблоне любой js, даже обычные циклы и if'ы
Компонентный подход? — Ну в принципе он давно известен в разработке UI, и даже в вебе он уже был в angular.js, в Elm, а может и еще где
Хм, может VirtualDOM? — Ан нет, Elm был как минимум на год раньше с этой идеей. И с идеей, что компонент — это просто функция, которая возвращает вьюшку. Притом это все было весьма достойно для универской курсовой, коей являлся Elm, но уж никак не для либы агресивно впариваемой большой корпорацией.
Что-то еще? А ничего больше в самом реакт и нет собственно. Просто распиаренный шаблонизатор с поддержкой компонентов и работающий на таком костыле как VirtualDOM.
В Svelte императивный подход заключается в манипулировании нативным DOM с помощью небольших функций-хелперов из модуля svelte/internal
Никто не мешает сделать руками так:
Да не спорю, это совсем не но на то оно и выхлоп компилятора, работающий напрямую с нативным DOM
Просто это Вам попросту не нужно, все что обычно в vue решается самописной render функцией, в svelte гораздо проще сделать с помощью use:action
Согласитесь, никто ведь не пишет в wasm файлы напрямую, то же касается elf и exe.
Хотя признаюсь, я в свое время писал руками числодробилку на asm.js, но asm.js тоже вполне человекопонятный, да и вызвано это было скорее тем, что emscripten в то время для абсолютно аналогичной функции на C генерил в 3 раза больше кода asm.js, чем я написал руками.