CoffeeScript vs ES6
Есть хоть одно преимущество ES6 над Coffeescript? ответ: НЕТ!
Есть хоть одно преимущество Coffeescript над ES6? ответ: Сахар! На одной чаще весов 0, на другой 1. Coffeescript выиграл! :) |
Игра в весы? Весело.
Придет время, когда трансляторы для ES6 не понадобятся и что сделают люди, которые используют es6? Выключат транслятор и все будет круто. |
Я в ES6 ничего хорошего, кроме Proxy, Генераторов и Обещаний не вижу. Хотя и это все говенно реализовано, но лучше чем ничего. Тут хипстерочки постят постоянно какие-то фичи, но особо не впечатляет. Классы -- это вообще даунгрейд. Так и до жабы недалеко.
Coffescript сосет у обоих. Там даже нормальной объектной системы нет. Никогда с этим вонючим говном не связывался, и другим не советую. |
newtimebigtime, да чем тебе классы не угодили то? Единственное, чего не хватает, дак это приватных методов.
|
Lemme,
Возврат к классам -- это деградация. Когда появился первый прототипный язык -- self, о нем говорили, это тот же Smalltalk, только more Smalltalk. От него ответвились несколько языков, в числе которых JS. Прототипы концептуально проще, гибче и мощней. Это метаобъектная модель в чистейшем виде. Не хватает только множественного наследования. |
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
Lemme, newtimebigtime - это foo.
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Запишите туда модули, декраторы и полный контроль над областью видимости.
|
Цитата:
|
Цитата:
Аналог for of там есть. |
Цитата:
Цитата:
Т.е этот код 123byte class MyClass { constructor(myArg) { this.myProperty = myArg; } init() { console.log(this.myProperty); } } А если прогнать его через babel, то 1 012 bytes |
Цитата:
for (var i = 0; i < 5; i++){ //TODO } console.log(i); //5 for (let i = 0; i < 5; i++){ //TODO } console.log(i); // ReferenceError: i is not defined |
Цитата:
|
Lemme,
Я не понял, в чем заключается контроль? В первом случае, ты можешь продолжить итерацию с текущего состояния, а можешь обнулить переменную, можешь ее удалить -- все под твоим контролем. Во втором случае никакого контроля нет, ты не можешь ничего сделать, поведение предопределено. В чем контроль? |
Цитата:
|
newtimebigtime, другими словами, ты не можешь определить переменную для использования во внутренней функции:
function a() { var x = 1; function b() { var x = 2; } } Плюс, ты не можешь использовать let в циклах и условных блоках. |
newtimebigtime, в том, что я могу ограничить область видимости данной переменной для текущего блока (без танцев с бубном). И да, var никто не отменял.
|
FINoM,
Ты не можешь... ты не можешь... ты не можешь... То есть контроль заключается в том, что ты них*я не можешь? А когда х*й не можешь поднять, это контроль за х*м по этой логике? |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Одной штуки, конечно, не хватает в JS, которая есть в Кофе:
zip = lottery.drawWinner?().address?.zipcode Цитата:
|
Цитата:
|
Цитата:
|
newtimebigtime, нет, решил я, когда написал let вместо var. Но согласен - это не контроль, а
Цитата:
|
Цитата:
Object.prototype.$=function(slot){ var self = this if(slot in this && typeof this[slot] === "function") return function(){return self[slot].apply(self, arguments)} if(slot in this) return this[slot] return {value: undefined} } o={foo: {bar: 1}, bar: 1, baz: function(x){return x+this.bar}} console.log( o.$("foo").$("bar"), o.$("baz")(4), o.$("moo").$("foo") ) //1 5 { value: undefined } Вопросительный знак использовать не получится, но можно юзать другие идентификаторы. Синтаксис чуть другой, суть та же. МБ надо чуть допилить, толком не тестил. |
Цитата:
|
Цитата:
Цитата:
Короче, я говорю, никаких принципиально важных возможностей в этих хипстерских поделиях нет, таких, которые нельзя реализовать нативно. Все эти Вау, сводятся к мелким синтаксическим вещам, там скобочку не надо ставить, там стрелочка вместо function, короче детсад, даже экономией на спичках назвать трудно. |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
newtimebigtime, ты просто уперся в свое, а пробовать не хочешь "вдруг понравится, что я тогда делать буду?".
Все, кто юзают айфоны, говорят - фуфу вы все ходите с лопатами (4.7+ дюймов), а потом выходит iphone 6, 6+. О, это круто. Но.... Как же 4 дюйма??? Ты сейчас выглядишь как пользователь iphone 5 :D, который думает, что 4дюйма это невероятно круто. |
Цитата:
Читаемость кода улучшает дробежка на мелкие кусочки с явным API и желательно с документацией. К сожалению во многих проектах не всегда есть время на доки, а тем более юнит тесты. В таких условиях коффе код превращается в одну огромную регулярку с большей вероятностью чем js. Эхх я тут умничал думая что твое сообщение касалось сахарности кофе Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 23:25. |