Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   CoffeeScript vs ES6 (https://javascript.ru/forum/offtopic/58349-coffeescript-vs-es6.html)

kobezzza 28.09.2015 22:28

Цитата:

kobezzza, кофескрипт это просто синтаксис, сахар, и набор сниппетов. По сути можно написать кофи версию которая будет транслироваться в тайпскрипт 2 например.
Это всё понятно, но готового к продакшену (да и вообще) решения нет. Поэтому это всё асбтрактно. Я лучше буду писать проект, а не инструменты для написания проекта :)

ТОТ_САМЫЙ 28.09.2015 22:37

Цитата:

Сообщение от kobezzza
Я лучше буду писать проект, а не инструменты для написания проекта

А у меня стабильно 2-7 дней в месяц уделяется на апгрейд инструментов, на юишку, плагины на галп вот теперь еще писать начал и.т.п. скоро какой нить кофескрипт to es6 напишу) как минимум я не вижу ни одной причины не сделать красивый синтаксис для геттеров и сеттеров в кофескрипте. Хотя авторы говорят бла бла бла это технически невозможно мы должны знать имя каждого свойства. Можно добавить типы в кофескрипт. Если не задан то не задан, если задан то идет статическая проверка. Ну или даже динамическая проверка.

func = (name:String, parent:Module)->



compile to:

var _typeCkeck = function(Class, inst){
 if(!(inst instanceof Class)) {
    throw TypeError('бла бла бла')
 }
}

var func = function(name, parent){
  _typeCkeck(String, name);
  _typeCkeck(Module, parent);

}


Я просто не уверен что представляю как сделать статическую проверку типов при том что могут приходить новые данные по аяксу например, или что скрипт наш может взаимодействовать с другими библиотеками в которых нет проверки типа. НО как минимум вот такую проверку сделать это офигенно, сахар, который полезен и для IDE для автокомплита, и собственно для разработчика. К тому же я сомневаюсь что вызов instanseof по нескольку раз на каждый вызов каждой функции замтено снизит производительность скрипта и будет являться узким горлышком бутылки. Это ни чем не отличается от того случая когда бы мы это руками писали. Кроме того указание типов не обязательно. Иными словами где хотим сделать проверку типа, пишем Type:argName и он все автоматом делает. Сниппет такой.

В принципе можно делать статическую проверку а там где я сомневаюсь делать динамическую проверку? Или как? ЧТО думаешь? п.с. ты прост тут единственный кто со мной может на уровне поговорить)

Кстати вот еще классную штуку придумал, мозжно чтобы он еще генерил комментарии для GCC в экстримальном сжатии)) классно же) чтобы что бы ты не писал он тебе варнинги не будет выдвавть. Потому что на этапе трансляции сам TypeCoffeescript выдаст варнинг) ну или идешка подсветит если научить.

kobezzza 28.09.2015 23:15

Цитата:

а там где я сомневаюсь делать динамическую проверку?
Нах она не нужна. От системы типов лично я жду стат анализ на этапе сборки и автокомплит в ИДЕ. Но мне кажется ты недооцениваешь задачу :)

ТОТ_САМЫЙ 28.09.2015 23:19

Цитата:

Сообщение от kobezzza
Но мне кажется ты недооцениваешь задачу

Мне кажется ты меня недооцениваешь), я умею писать парсеры и трансляторы и свои языки, я повторюсь что {{выражения}} в юишке это не яваскрипт выражения. Токены структуры и.т.п. Я даже подмывал написать язык для описания синтаксисов других языков, потому что мне лень опсиывать структуры каждый раз. Хочетс писать что то вроде


// описывам регулярками токины
AST.addToken('word', '[$\w]+') 
AST.addToken('dot', '.')

// описваем структуры выражениями где есть спецсимволы например [токен], капсом пишется имя структуры, * значит повторение 0 или больше раз и.т.п. все по аналогии с регулярками)

AST.addStructure('PROP', '[word]')
AST.addStructure('ACCESS', 'PROP([dot]PROP)*')


Ну типа того. Строить грамотное AST я умею, а потом транслировать его в что угодно тоже умею. А проверку типов сделать не трудно, вообще не трудно. Трудно когда даныне могут придти в скрипт ИЗВНЕ. Понимаешь? как мне тогда проверку статическую делать?

nerv_ 28.09.2015 23:26

Цитата:

Сообщение от ТОТ_САМЫЙ
Ты просто тупой

наконец-то, конструктивный диалог

вам еще не надоело тролля кормить? :)

Lemme 28.09.2015 23:27

nerv_, весело же :victory:

kobezzza 28.09.2015 23:30

ТОТ_САМЫЙ, ну дерзай :)

ТОТ_САМЫЙ 28.09.2015 23:31

Цитата:

Сообщение от nerv_
наконец-то, конструктивный диалог

ахах не ну правда, то что он тупой это я просто сказал а дальше аргументы по существу) он же тоже обозвал меня. вот если бы я просто сказал что он тупой и все тогда да, можно было бы постепать, а так есть аргументы как ад хоминем так и ад рем)

Lemme 28.09.2015 23:36

ТОТ_САМЫЙ, я тебя не обозвал, а задал вопрос, а ты утвердил. Разницу чувствуешь или тупой? (это вопрос, надеюсь ты понял? :D).

ТОТ_САМЫЙ 28.09.2015 23:37

Цитата:

Сообщение от Lemme
я тебя не обозвал, а задал вопрос, а ты утвердил.

В садике будешь такие отмазы одногруппникам говорить, авось и прокатит)


Часовой пояс GMT +3, время: 16:16.