Показать сообщение отдельно
  #8 (permalink)  
Старый 17.11.2013, 15:35
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от 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_
В целом понимаю о чем идет речь, но можно простой ненадуманный пример с "динамизмом" и без "динамизма"?
Наверно он имел ввиду, что предпочитает императивный стиль объектно-ориентированному с высоким уровнем абстракции

Последний раз редактировалось monolithed, 17.11.2013 в 15:44.
Ответить с цитированием