Никита @akihayase
Разработчик
Information
- Rating
- Does not participate
- Location
- Канск, Красноярский край, Россия
- Date of birth
- Registered
- Activity
Specialization
Frontend Developer, Fullstack Developer
Middle
From 120,000 ₽
Git
Python
MongoDB
SQL
JavaScript
Vue.js
Nuxt.js
Ничего страшного в этом нет, это же всего лишь обложка статьи
Nim генерирует один цельный JS файл.
Большое спасибо за замечания, отредактировал статью.
В начале статьи я указывал ссылку на предыдущую статью. В ней описан как
HappyX
, так иKarax
(тоже Nim фреймворк), также приводится сравнение сVue.js
.Как я могу судить - Nim не придерживается каких-то спецификаций и генерирует объёмный код, так что здесь я согласен.
Nim это язык, на котором как раз написан Happyx, другие фреймворки помимо Happyx и Karax либо не обновляются, либо очень редко обновляются.
Если можете - дайте пожалуйста несколько советов по улучшению статьи ?
Не знаком с mypy, но выглядит интересно, спасибо за комментарий.
Nim использует различные оптимизации при компиляции на таргет языки, поэтому соотношение по скорости там будет весьма маленькое, либо его вообще не будет.
Конечно можно.
Возьмем в пример C-функцию printf:
А затем скомпилируем и вызовем printf на стороне Python :)
Неправильно написал, поправил)
возможно у с++ какие-то оптимизации, которые с не делает, да и надо глубже в сам Nim копать, точно сказать не могу.
Отчасти согласен с вами, однако есть две вещи, которые позволяет Nim:
1. Делать JS вставки напрямую в код, который выйдет после компиляции
2. Взаимодействовать с JS напрямую через стандартную библиотеку jsffi, таким образом позволяя разработчику обращаться к любому JS объекту - вызывать функцию/метод, обращаться к переменной и так далее.
Таким образом, вы можете использовать JavaScript, при этом остаетесь на Nim :)
UPD:
Далеко ходить не надо, ниже пример из официальной документации по JSFFI:
изюминка заключается в том, что вы можете разрабатывать одностраничные сайты не на JS, а на Nim :)
Как я писал выше - обработка запросов происходит в С
RequestModelBase на данный момент сыроват, может в built-in типы и типы, унаследованные от него самого же. поддерживает пока что только JSON.
https://web-frameworks-benchmark.netlify.app/result
Над поддержкой асинхронных функций я работаю, но это кажется для меня немного сложным, ибо вызов всех функций происходит из С
Работаю один, поэтому прогресс медленный: https://hapticx.github.io/happyx/#/guide/
На стороне Nim это - поддержка SSR/SPA; DSL; компоненты, популярные в остальных фреймворка фичи из коробки (генерация документации, built-in UI и т.д.). Касательно Python - привязки пока что действительно сыроваты, но я работаю над этим :)
Ключевая особенность заключается как раз в том, что это привязки на Python. А выглядит использование Happyx как "Flask и множество других фреймворком" не случайно, а чтобы людям было удобно переходить на него.
В дальнейшем планирую добавить поддержку SPA, как и в оригинале. Ну и переносить остальные функции.
касательно логики бекенда и фронтенда - да, я не спорю, она разнится. Однако здесь Вы можете писать клиентскую часть как на бекенде, так и на фронтенде, так как Ním компилируется как в C, так и в JS.
Здесь Вы получаете прирост к скорости самой разработки, так как не нужно "переключать" свой мозг на другой синтаксис, возможно другие языковые парадигмы.
Да, прямо во view. А также в компонентах. В статье приведены примеры типа HelloWorld
хорошо, как бы Вы описали хороший код на Nim?
касательно CSS - просто берете и пишите голый CSS