CoffeeScript или простой JavaScript?

Когда обычному программисту ASP.net на C# (с очень плохим знанием JavaScript, кроме написания сценариев с некоторыми эффектами hide() show()) придется перейти от создания приложений ASP.net WebForms к приложению RIA JavaScript (например, клиент-серверная архитектура).

Что, вероятно, будет меньше боли для него

  • Выучить CoffeeScript и использовать его для "кодирования JavaScript"??
  • Правильно выучить JavaScript и использовать его напрямую?

Я думаю о

  • Правильная отладка
  • Синтаксис кодирования
  • ...

У кого-нибудь есть опыт в подобном сценарии??

5 ответов

Решение

В последние дни мы обсуждали эту тему в чате Stackru Javascript Chat. Общий вывод состоял в том, что CoffeeScript - хороший инструмент, который может создавать "нормальный" код JavaScript. Однако, если вы знаете, что делаете, вы, вероятно, захотите написать код непосредственно в javascript без языка "более высокого уровня", который частично компилируется до него.

Я не очень разбираюсь в CoffeeScript, поэтому, если я скажу что-то не так, я буду счастлив, когда меня исправят. Например, я не могу сказать, как CoffeeScript реагирует на ECMAscript3 на 5 (может быть, даже на 6) различий. CoffeeScript автоматически создает резервный код для каждого или просто создает код ES3?

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

TL;DR: Лучшее, что можно сделать, это изучить JavaScript.

Книги:

Режущие углы:

Если вы хотите срезать углы / иметь мертвые строки, чтобы попасть, посмотрите на Script# или другие C# -> JS компиляторы.

На CoffeeScript:

Однако я не согласен с @jAndy по частям. Я считаю, что CoffeeScript достаточно стабилен для использования.

Вы можете узнать, из чего не требуется знание JavaScript.

Если вам нравится coffeescript, используйте его. Я предпочитаю синтаксис JavaScript, поэтому я использую это.

Изучение РИА:

Я лично считаю, что CoffeeScript против JS - это вопрос предпочтений, вам все равно придется изучать HTML/CSS/DOM.

В разработке RIA гораздо больше, чем просто знание JavaScript.

Проблемы с CoffeeScript:

Однако существует большая проблема с неисследованием JavaScript, отладка coffeescript означает отладку автоматически сгенерированного JavaScript, и это будет проблемой, если у вас нет знаний.

Персональная рекомендация: изучите ES5. Отладка без знания JS - это кошмар.

JavaScript не плохой язык:

Некоторые люди думают, что JS - ужасный язык, причинами этого являются посредственные реализации ES3. Но EcmaScript5 - твердый и прекрасный язык. Люди путают соответствие браузера и ошибки браузера с языком. Лично я хотел бы сказать, что изучение ES5 лучше, чем изучение CS

Я являюсь автором CoffeeScript: Ускоренная разработка JavaScript, которая только выходит в печати. Подход, который я использовал при написании этой книги, в отличие от Smooth CoffeeScript, о котором упоминали другие в этой теме, заключается в том, что я пытаюсь научить читателей как CoffeeScript, так и JavaScript. Мое мнение о том "Что я должен узнать?" Вопрос всегда был: вы не должны изучать CoffeeScript без изучения JavaScript.

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

Хорошей новостью является то, что эти два языка очень, очень близки друг к другу. CoffeeScript не имеет собственной стандартной библиотеки; не модифицирует прототипы; и вывод в том же порядке, что и ввод (за исключением очень незначительных исключений, таких как возможность записи f() if x вместо if x then f()). Так что, если у вас уже есть немного знаний JavaScript - если вы один из многих разработчиков, которые не совсем понимают, что this значит, или как работает наследование прототипов - тогда я думаю, что вы должны начать изучать CoffeeScript. По пути вы станете лучшим JavaScripter.

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

CoffeeScript обеспечивает более короткий синтаксис, немного синтетического сахара и помогает избежать нескольких ловушек JavaScript - например, 0 == "".

Вот и все. Ничего более. Никаких удивительных, умопомрачительных концепций, никаких радикально разных подходов. Если вы хороший javascripter, вы можете, скажем, повысить свою эффективность на 10-15%, используя coffeescript. Вам всегда нужно будет компилировать исходники, но это не имеет большого значения. Посмотрите, например, на создателей портлетов, они компилируют источники каждый раз, когда хотят увидеть изменения. И мир все еще вращается:) С некоторыми умными подходами вы не будете чувствовать себя неловко.

Но, тем не менее, лучше начать с javascript. Coffeescript хорош, но до признания его в качестве стандарта производства очень далеко. Я даже могу представить себе ситуацию, когда разработка кофеинскриптов будет прекращена. Это может вызвать некоторые (не большие, но раздражающие) проблемы, если к этому моменту у вас будет большое происхождение кода coffeescript.

Кроме того, кодирование в coffescript не избавит вас от обязанности изучать много разных вещей - о DOM, о событиях, об основных объектах и ​​так далее. Я повторяю, это так, ваааа, лучше изучать JavaScript. И затем, когда у вас уже будет некоторый опыт работы с javascripter, вам решать, нужно ли вам использовать какой-либо конкретный компилятор js или нет. Вы знаете, это как курение. Это твой выбор, но ты должен быть взрослым)))

Я бы посоветовал людям начать писать кофе пораньше. в любом случае вы должны скомпилировать его в js, чтобы увидеть, что вы пишете, компилирует, и, поскольку большинство ответов на ваши вопросы будут в javascript, вы, естественно, изучите и то и другое одновременно. и использовать этот инструмент: http://js2coffee.org/. Попытка использовать coffeescript с нуля сделает вас лучшим javascripter, я вижу, что многие серверные разработчики переходят на javascript, и они пишут действительно плохой код, скорее всего, они тоже не писали отличный внутренний код, но тем не менее, если бы они писали coffeescript, они бы очистили свой код и, естественно, начали бы писать свой код лучше.

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

думает обо всех деньгах, которые люди заработали, прыгая на C# рано, RoR рано, JQuery рано… есть большая часть пользователей jQuery, которые никогда не удосуживаются научиться писать свой собственный плагин, который невероятно прост, и включать только других, или их идея повторного использования кода - копирование и вставка.

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

Короче говоря, изучение javascript будет неизбежным, если вы попытаетесь подтолкнуть то, что вы можете сделать в качестве разработчика, с coffeescript, чтобы помочь вашим коллегам, борющимся за одинаковые рабочие места.

Другие вопросы по тегам