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

trikadin 21.09.2015 17:13

ТОТ_САМЫЙ, спокойнее выражайся, и дискуссия будет конструктивнее.

FINoM, спокойно, держим руку на пульсе)

FINoM 28.09.2015 10:04

Make ES6, Not Coffee

ТОТ_САМЫЙ 28.09.2015 15:06

FINoM, Я могу назвать около 20 преимуществ кофи над es6. Я Думаю в этом сомнений нет. НО назови ХОТЬ ОДНО преимущество ES6 над кофи?

Erolast 28.09.2015 17:45

Цитата:

назови ХОТЬ ОДНО преимущество ES6 над кофи?
Нативная система модулей.

Цитата:

Я могу назвать около 20 преимуществ кофи над es6
Вперед.

ТОТ_САМЫЙ 28.09.2015 18:35

Цитата:

Сообщение от Erolast
Нативная система модулей.

Если кофескрипт компилится в яваскрипт то и у него она есть. Какие же вы ребят умные все тут я поражаюсь...


Цитата:

Сообщение от Erolast
Вперед

Когда вот так мне на яваскрипте напишешь, тогда и звони:

addModulePath = (type, path)->
  (modules[type] or= []).push(path)


var addModulePath;

addModulePath = function(type, path) {
  var base;
  return ((base = modules)[type] || (base[type] = [])).push(path);
};


или хотя бы так:
number = 4
alert 'ololo' if 3 < number < 9


var number;

number = 4;

if ((3 < number && number < 9)) {
  alert('ololo');
}



ну или ХОТЯЯЯЯЯ БЫ так:
alert User?.name ? 'Ашот'


var ref;

alert((ref = typeof User !== "undefined" && User !== null ? User.name : void 0) != null ? ref : 'Ашот');

Erolast 28.09.2015 18:44

Цитата:

Если кофескрипт компилится в яваскрипт то и у него она есть.
Покажи.

Цитата:

вот так мне на яваскрипте напишешь
Что? Зачем? :blink:

На...
let addModulePath = (type, path) => (modules[type] || (modules[type] = [])).push(path);


Хотя читаемость ужасна. Я бы сделал так:
function addModulePath(type, path) {
    if (!type in modules) {
        modules[type] = [];
    }
    
    modules[type].push(path);
}

Erolast 28.09.2015 18:46

Цитата:

Что? Зачем?
А, или это те самые преимущества? Окей, давай еще 17.

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

Цитата:

Сообщение от Erolast
Хотя читаемость ужасна.

Читаемость прекрасна, как разговорный английский практически. Ты просто не привык. Это как ты всегда едлал q = q+1
а потом ввели оператор q++ и ты такой "читаемость ужасна"

а во вторых

if (!(type in modules)) {
        modules[type] = [];
    }
}


А если тебе нужно этот массим получить в переменную а потом с ним играться?

modules = @modules[type] or = []
modules.push()
modules.length


в ЯС это будет вот такой ужос:

if(!this.modules[type]){
  this.modules[type] = []
}

modules = this.modules[type]
modules.push()
modules.length


или даже такой:

modules = this.modules[type] || (this.modules[type] = [])
modules.push()
modules.length


В общем я не буду учавствовать в дискуссии на тему сравнения синтаксиса кофескрипта и яваскрипта. Каждому дураку очевидно что это небо и земля и что яваскрипт не сравнится с кофескриптом. Если у тебя есть какие-то сомнения то погугли про кофескрипт.

п.с. это каким надо быть не грамотным чтобы начать ДОКАЗЫВАТЬ ЧТО у кофескрипта НЕ лучше синтаксис)!! ЭТО ЖЕ ЖЕСТЬ)!!! ЕГО И СДЕЕЕЛАЛИ потому что лучше синтаксис!! Его ДЛЯ ЛУЧШЕГО СИНТАКСИСА И ИЗОБРЕЛИ МЛЯТЬ)!!!! Как можно не знать таких вещей?


ЧТО же до модулей?

Cat = require 'modules/Cat'

module.exports = ->
  new Cat


Я чет не врубаю, ты не знал что так можно писать? на node вообще штоле не писал?

ТОТ_САМЫЙ 28.09.2015 20:07

Иными словами я тебе привожу пример сахара а ты говоришь мне "НУ И ЧТО ЭТО МОЖНО И БЕЗ САХАРА ДЕЛАТЬ ТАК ЧТО САХАР НЕ СЧИТАЕТСЯ" логкиа у тебя есть нет?


Я ТЕБЕ И ПРИВОЖУ ЧТО МОЖНО ПИСАТЬ
НЕ ВОТ ТАК this.modules[type] || (this.modules[type] = [])
А ВОТ ТАК @modules[type] ||= []


Ты будешь сильно удивлен но я даже 5% фишек кофескрипта не назвал)

ТОТ_САМЫЙ 28.09.2015 20:12

я уж молчу про это:

name = User?.getFullName?(My?.name) ? defaultName


против:

var name, ref;
name = (ref = typeof User !== "undefined" && User !== null ? typeof User.getFullName === "function" ? User.getFullName(typeof My !== "undefined" && My !== null ? My.name : void 0) : void 0 : void 0) != null ? ref : defaultName;


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