LINUX.ORG.RU

Релиз CoffeeScript 2

 , ,


0

1

CoffeeScript — язык программирования, который транслируется в JavaScript. Синтаксис CoffeeScript вдохновлен языками Ruby и Python. Автор языка Джереми Эшкинас (Jeremy Ashkenas) также известен созданием библиотек Underscore и Backbone.

Новый релиз языка направлен на сокращение разрыва между CoffeeScript и современным JavaScript (ES6, ES7). Так => и class транслируются соответственно в => и class. При этом. если в целевом рантайме та или иная возможность JS не поддерживается, может потребоваться дополнительная трансляция итогового JS.

Новое и измененное в версии 2:

  • модули: import / export;
  • классы: class Animal;
  • асинхронные функции: await someFunction();
  • стрелочные функции: =>;
  • параметры функции по умолчанию: (options = {}) ->;
  • оставшиеся параметры функции: (items...) ->;
  • деструктурирующее присваивание: [first, second] = items, {length} = items;
  • оператор расширения: {options..., force: yes}, {force, otherOptions...} = options;
  • шаблонные строки: "Hello, #{user}!";
  • тегированные шаблонные строки: html"<strong>coffee</strong>";
  • оператор for...of: for n from generatorFunction().

Примечательна поддержка JSX прямо в языке:

renderStarRating = ({ rating, maxStars }) ->
  <aside title={"Rating: #{rating} of #{maxStars} stars"}>
    {for wholeStar in [0...Math.floor(rating)]
      <Star className="wholeStar" key={wholeStar} />}
    {if rating % 1 isnt 0
      <Star className="halfStar" />}
    {for emptyStar in [Math.ceil(rating)...maxStars]
      <Star className="emptyStar" key={emptyStar} />}
  </aside>

Релиз обратно несовместим с версиями 1.X. Помимо прочего. некоторые возможности ECMAscript не были реализованы, например let и const.

>>> Подробности



Проверено: Shaman007 ()
Последнее исправление: cetjs2 (всего исправлений: 3)

Ответ на: комментарий от anonymous

Меня кормили C с параноей по освобождению памяти.
А такие как ты не следят за указателями - типа, как можно сковывать себя, ведь хак буффера - так мощно и гибко!

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

Это все от нищеты такие фобии. Конечно будешь трястись над указателями имея 640 кб памяти. Оттуда же и священная корова статической типизации: экономим каждый такт, каждый байтик! Ну и пусть код будет засран бойлерплейтом и копипастой, пограммист же копейки у нас стоит, чай руки не отсохнут. То ли дело ЭВМ, тут инвестиции в сотни тыщ, не хухры-мухры.

anonymous
()
Ответ на: комментарий от Shadow

Все бы это было не так смешно, если б не контекст встраиваемого скриптового язычка, из которого при всем старании типолюбов никакой эффективности и безопасности особо не выжмешь. Но нет, дауны тянут свои привычные статические костыли, еще и гордятся. Ты хоть смотрел в какую парашу твой типобезопасный код транслируется? Или тебе насрать как оно работает, лишь бы привычные костылики имелись?

anonymous
()
Ответ на: комментарий от anonymous

В какую парашу, если не секрет? Что flow, что ts при трансляции в итоге просто убирают аннотации типов, интерфейсов и прочее, в исполнении кода не участвуют.

Дело не столько в эффективности, сколько в предсказуемости API, удобстве разработки и рефакторинга.

hobermallow
() автор топика
Ответ на: комментарий от hobermallow

Что flow, что ts при трансляции в итоге просто убирают аннотации типов, интерфейсов и прочее

О чем и речь. На выходе обфусцированная параша. На входе раздутый негибкий код. Чего добились? Дали подгузники убогим сисярпникам, которые лажают в каждой строчке без живительных пинков канпелятора. Т.е. быдлокода прибавилось в сотни раз. Раньше у этих дебилов просто сразу бы все ломалось, а теперь оно как то даже работает. Потом легенды складывают про чудовищные тормоза и жор жабаскрипта.

anonymous
()
Ответ на: комментарий от hobermallow

TS ещё всё в локальный контекст замыкает, что улучшает работу с памятью.

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

Дядь, какой в попу рефакторинг, если тут каждые полгода меняются фреймворки. Да и сам язык бесконечно меняется в угоду ламерюгам. Уже понатащили столько говнища, слов нет. Весь рефакторинг в жоэс - выкинуть всена и переписать на новомодной херне. Разве что ты как настоящий джедай пишешь на ES3 и кладешь болт на хипстоту. Но это в индустрии не канает.

anonymous
()
Ответ на: комментарий от anonymous

Лол. У тебя глубокая травма детства от многочасовых попыток скомпилировать статически типизированную программу helloworld.pas.

Два смузи этому бедному страдальцу!

dzidzitop ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.