Почему Coffeescript вместо Javascript? [закрыто]


24

Я думаю, что создание языка, который компилируется на другой язык, кажется плохой идеей с самого начала, вместо того, чтобы правильно изучать javascript с самого начала. Посмотрите на Дуглас Крокфордс Хорошие запчасти, и тогда вы зацепили. И JavaScript не сложен - писать хороший код сложно, независимо от языка! Если вы пишете дерьмовый код на javascript, то вы, вероятно, напишите дрянной код на coffeescript или lattescript, или каков будет вкус дня. И сказать, что синтаксис coffeescript прекрасен, проходит мимо меня. Мне нравятся мои фигурные скобки и синтаксис C - и я бы предпочел работать на таком языке (извините, VB!). И больше игрушек, языков и рамок для того, чтобы делать одно и то же снова и снова, для меня больше не похоже на прогресс!


5
Итак, компиляция Java для байт-кода и C #, VB.NET и других языков .NET, компилирование в IL - тоже плохие идеи?
Одед

10
Разница в том, что люди обычно не программируют напрямую в байт-коде и IL (если я не ошибаюсь), тогда как программирование на Javascript является обычным явлением, поэтому его удивление / вопрос.
wildpeaks

14
этот «вопрос» содержит три восклицательных знака и никаких вопросительных знаков
ажеглов

Если вам нравится кодировать в IL, то я ошибаюсь. Я только думаю, что javascript достаточно на это есть. И когда он перейдет на ECMAScript 5 и строгий режим будет реализован в браузерах, тогда это будет еще лучше. Но я не говорю, что делать что-то еще совершенно неправильно. Я хочу обсудить плюсы и минусы, почему вы бы предпочли что-то другое, чем JS.
Марко

3
___ отстой, я прав?
TRiG

Ответы:


21

CoffeeScript - это в основном другой синтаксис поверх JavaScript.

Если вы понимаете JavaScript и действительно понимаете JavaScript, то вы можете использовать CoffeeScript, если вы говорите, предпочитаете пробелы и ->

Я считаю, что разница между JS и CS такая же, как спор о

if (thing)
{
  // code
}

if (thing) {
  // code
}

(последний лучше. Любой, кто делает первый, должен быть застрелен).

В любом случае, основная проблема coffeescript заключается в том, чтобы люди заходили в него (в основном с рельсов), а затем писали coffeescript, не зная javascript.

Поэтому у coffeescript есть все те же недостатки, что и у jQuery. Они просто плохие точки зрения для плохих программистов, которые пишут больше плохого JavaScript. Нам действительно нужно как-то решать качество кода.


8
offopic : the latter is better. Anyone who does the former should get shot- это зависит от языка - мне нравится первый стиль, но он не совместим с JS, который является моим основным языком;)
c69

1
it depends on the language.Я думаю, что он имел в виду в отношении JavaScript.
Вардхаман Дешпанде

1
Есть также вещи, которые вы просто не можете сделать в CoffeeScript. Вы значительно меньше контролируете создание объектов и тому подобное.
Эрик Реппен

Просто добавив к комментарию c69, форматирование первым способом может привести к актуальным проблемам: encosia.com/…
Buzzology 20.12.12

1
(последний лучше. Любой, кто делает первый, должен быть застрелен) - Докажи это! Экстремизм просто плох, независимо от того, кто, когда и где.
hrishikeshp19

13

Существует неправильное представление о JavaScript как о «игрушечном» языке. Это заставляет людей воспринимать это как нечто, с чем можно поиграть, а не использовать для чего-то существенного. Добавьте это к низкому барьеру для входа (т. Е. У вас уже есть браузер и текстовый редактор, так что вы можете начать писать JavaScript), и вы получите массу людей, которые не понимают язык, пишущий огромное количество кода, и потаскать имя «JavaScript».

Там является более высоким (абсолютным) количеством плохих JS , чем другие языки из - за эту повышенную видимость. Вредные привычки становятся обычным явлением, поскольку плохой код распространяется по всей сети, и люди просматривают источники на страницах, которые не проверялись на предмет точности или надлежащей практики, а JavaScript в результате приводит к дурному имени из-за этого.

По этим причинам люди чувствуют необходимость создавать более привычные (более «настоящие») языки, которые переходят на JavaScript. Они хотят комфорта классического ОО, статической типизации и других функций, которые появляются на других языках. Они видят чудовищности, созданные неопытными программистами, использующими JS, и думают, что это должно быть результатом "фундаментальных недостатков" (по словам Google) в языке.

</ Декламация>

В любом случае, используйте то, что вы хотите. Я буду придерживаться своих объектных литералов, динамической типизации и прототипов OO, спасибо.


2
Эй, но не дротик решит все наши проблемы! (</
sarcasm

Бог с ним! (Не дартс комментарий!)
Марко

Это 2018 год, и JavaScript поддался давлению class: - /
ankush981

4

Я думаю, что преимущество (отказ от ответственности: я не использовал CoffeeScript, кроме игры с примером на веб-сайте), заключается в том, что он делает JavaScript немного более интуитивным для толпы, которой он занимается: то есть для людей из Ruby / Python.

Лично я не вижу необходимости в CoffeeScript, так как мне нравится синтаксис JavaScript. Однако я вижу, как это может быть полезно.


1
Да, я думаю, что синтаксис ruby ​​/ python кажется мне подозрительным, потому что я в основном программировал на языках C-стиля, таких как Javascript, C #, PHP, actionscript и java.
Марко

4
Он выглядит хорошо для меня в основном ( за исключением ->и =>синтаксиса) , так как я использовал Ruby / Python немного, но я думаю , что мы не должны пытаться спрятаться JavaScript из - за того , как вездесущий это. Да, некоторые из них неуклюжи, но изучение «чистого» JavaScript - это IMO - лучшая окупаемость инвестиций благодаря распространению «чистого» JavaScript в дикой природе.
Уэйн Молина

0

Нравится ли вам синтаксис или нет, но дело в том, что CofeeScript заботится о некоторых раздражающих бородавках JavaScript. Конечно, до сих пор неясно, стоит ли вводить новый язык и справляться с этапом компиляции.


6
«Раздражающих бородавок JavaScript» у CoffeeScript нет, он просто дает сахар и синтаксис. Я могу избежать бородавок сам, и я делаю.
Рейнос
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.