Сообщение от DjDiablo
|
Без строгой типизации, интерфейсов
|
Ее нет даже в С/С++ зачем она в JS?
Вот современный С++ код:
template <typename __type, typename ...__arguments>
inline std::unique_ptr<__type> make_unique_helper (std::true_type, __arguments &&...arguments) [[deprecated]]
{
using unique = typename std::remove_extent<__type>::type;
return std::unique_ptr<__type>(new unique[sizeof...(__arguments)] {
std::forward<__arguments>(arguments)...
});
}
;
Сейчас там в моде статическая аннотация типов с выводом на этапе компиляции:
template <typename __type>
auto fn(__type x, __type y) -> decltype(__type + __type) {
return x + y;
}
;
// decltype, указывает на то, что вывод типов должен происходить на на основании типов переданных аргументов
auto x = fn(1, 2); // 3
auto y = fn("1", "2"); // 12
std::cout << x << ', ' << y << std::end; // 3, 12
Сообщение от DjDiablo
|
Мне реально сейчас нехватает интерфейсов. Как уследить за парой десятков классов(конструкторов объектов) которые должны предоставить одинаковое api ? В JS остается только писать тест и проверят тестом все объекты, а вот интерфейс решил бы эту проблему за меня.
|
Я в JS крайне редко использую наследование, тем более множественное. Может стоит пересмотреть архитектуру?
Сообщение от DjDiablo
|
Ну и еще Dart позволяет создавать консольные и десктопные приложения (основанные на хромиум).
|
Уверен что таких поделок на JS куда больше
Сообщение от kobezzza
|
Вообще я довёл до автоматизма у себя практику написания JSDoc и с тех пор у меня нет больше проблем с отсутствием поддержки ИДЕ и каши в коде.
|
Согласен, с GCC аннотация типов вообще сказка
Сообщение от kobezzza
|
Вот CoffeScript другое дело, он просто добавил сахара, однако многие его плюшки добавились в ECMAScript 6
|
Глянь в сторону
LiveScript и
ClojureScript, или мой любимый
Rust
Сообщение от DjDiablo
|
Скинь ссылку плиз на транслятор ECMA6 который юзаешь.
|
К сожалению нет ни одного проекта который бы поддерживал все возможности ES6, вот по частям:
https://github.com/termi/es6-transpiler
http://facebook.github.io/regenerator/
http://square.github.io/es6-module-transpiler/
Сообщение от nerv_
|
В целом понимаю о чем идет речь, но можно простой ненадуманный пример с "динамизмом" и без "динамизма"?
|
Наверно он имел ввиду, что предпочитает императивный стиль объектно-ориентированному с высоким уровнем абстракции