Я достаточно опытный программист, пытающийся научиться веб-разработке. Я пытаюсь разработать клиентское веб-приложение, которое использует SVG или Canvas для графики. Я решил, что хотел бы написать код приложения в Coffeescript. Я не знаю ни Javascript, ни Coffeescript.
Насколько необходимо знание Javascript для веб-разработки Coffeescript? Могу ли я столкнуться с какой-то сложной проблемой, которая требует от меня понимания Javascript? Могу ли я счастливо работать с API Javascript от Coffeescript?
Редактировать : я мог бы легко выучить основы Javascript за неделю. Я больше обеспокоен тем, что у Javascript, похоже, много скрытых острых углов. В самом странном языковом вопросе о StackOverflow Javascript - один из самых распространенных языков. Имеет необычный объект и модель класса. У него есть неочевидные правила именования областей. Я считаю, что мне нужно больше недели, чтобы действительно знать язык.
Я собираюсь работать над небольшим простым проектом, чтобы изучить веб-разработку. Мне лучше использовать Javascript или Coffeescript? Я думаю, что в конечном итоге я предпочту Coffeescript, но я хочу начать с Javascript, если мне понадобится полное понимание Javascript для использования Coffeescript.
class
ключевое слово в CS не делает ничего волшебного; он просто использует нативные механизмы наследования прототипов JavaScripts. По этой причине я бы рекомендовал иметь хотя бы вспомогательные знания о некоторых неявных «функциях» JavaScripts.Ответы:
Я думаю, это не было бы абсолютно необходимо, но в долгосрочной перспективе вы столкнетесь с препятствиями, если не сделаете этого.
Вы должны понимать, что происходит под капотом и что транскрибирует компилятор CoffeeScript, поскольку именно это должны интерпретировать браузеры (если мы говорим об использовании CoffeeScript в среде браузера). Это означает, что это также то, что вам нужно для отладки , особенно с учетом того, что CoffeeScript является довольно новым, и мы все еще можем столкнуться с некоторыми грубыми углами и ошибками в его механизме транскрипции. Кроме того, если вы не используете для отладки какие-либо специальные средства отладки, вам придется перепрыгивать через сгенерированный код JavaScript для отладки с использованием Firebug или Chrome Dev Tools или выбранной вами консоли JS. В некоторых случаях вы сможете увидеть, как ошибка JS напрямую связана с исходным оператором CoffeeScript. В других, так как транскрипция нетривиальна,
Примите это так: вы можете очень хорошо разрабатывать программное обеспечение на Java и C #, даже не занимаясь разработкой низкого уровня. Тем не менее, вы очень плохо понимаете, что происходит и почему вы сталкиваетесь с узкими местами производительности и проблемами с памятью, если у вас нет подсказок и вы не можете сделать обоснованное предположение о том, что среды выполнения этих языков должны делать для вас в фоновом режиме, и какую часть догадок они могут испортить, потому что они просто не могут осуществить чудеса.
Кроме того, если вы изучите JavaScript, вы поймете, насколько он невероятно сложнее, чем кажется на первый взгляд, и еще больше оцените CoffeeScript за его лаконичный и чистый синтаксис :)
источник
Ты спрашиваешь:
Я могу сказать, однозначно, да. В общем, если вы делаете что-то интересное, в какой-то момент вам, по крайней мере, нужно будет понять, что происходит на уровнях ниже вас. (Иногда Google + Cut + Paste может спасти вас, но вы не хотите быть таким парнем.)
Любой «достаточно опытный программист», который затем освоит новый язык, не займет у вас много времени. JavaScript - довольно простой язык. Все, что с этим связано, происходит из среды, в которой он выполняется, а именно: из нескольких различных веб-браузеров с разными идеями, как это делать.
Большая часть информации «как», которую вы найдете в Интернете, будет написана с учетом JavaScript, поэтому вам, вероятно, будет легче, если вы научитесь читать JavaScript и переводить его в эквивалентный CoffeeScript.
Честно говоря, если вы сознательно не попытаетесь остаться в неведении, вы, вероятно, столкнетесь с изучением JavaScript как побочным эффектом работы в CoffeeScript. Так что просто начни уже.
источник
Потому что « золотое правило CoffeeScript:« Это просто JavaScript » », я рекомендую хотя бы базовое знакомство с JavaScript. В частности, взгляните на небольшую книгу Дугласа Крокфорда « JavaScript: хорошие части» . Вы также можете посмотреть собственную замечательную вступительную презентацию Крокфорда об этом.
CoffeeScript в основном оборачивает хорошие части JavaScript в другой пакет: « CoffeeScript - это простой мысленный эксперимент, чтобы представить язык, который предоставляет минимальный синтаксис для красивой объектной модели, лежащей в основе JavaScript». Вам не нужно знать все детали, достаточно понять, что JavaScript сам по себе не является объектно-ориентированным языком на основе классов. У него нет классов вообще. Вместо этого он использует « прототипы », и это делает некоторые отличия от других ОО-языков. Джереми Ашкенас исправил некоторые плохие части синтаксиса JavaScript, добавил некоторые улучшения и сделал его немного более подходящим для Python .
У JavaScript есть некоторые известные "ошибки", на которые стоит обратить внимание. В остальном, это отличный язык, и сегодня он широко используется. У нас не было бы AJAX или jQuery без всего прочего.
Удачи с вашим CoffeeScript!
источник
Да. Это не конец света, если вы этого не сделаете, но да.
Почему? Ну, во-первых, JavaScript действительно легко выучить. Мне буквально потребовалось 4 дня, чтобы выучить это (ну, большинство из них). Кроме того, я считаю, что это более ценно, чем CoffeeScript. Я действительно не думаю, что вам даже нужен CoffeScript. Но это все еще хороший инструмент.
источник
По-разному.
Если CoffeeScript достаточно абстрагирует JavaScript, так что вам не нужно его знать (например, C # абстрагирование промежуточного языка), тогда да, вы можете делать все, что вам нравится делать в CoffeeScript, не изучая JavaScript.
Но мой опыт подсказывает мне, что независимо от того, сколько я пытаюсь уйти от JavaScript, когда дело доходит до клиента, мне иногда действительно нужно пачкать руки и писать чистый JavaScript.
Да, ты прав. Хотя синтаксис JavaScript прост, и вы можете выучить его в слабом, но это займет у вас годы, чтобы освоить.
ИМХО, как я вижу CoffeeScript, он недостаточно зрел, чтобы полностью обернуть все тонкости JavaScript. Поэтому я не рискую не учиться и не работать напрямую с JavaScript.
источник
Документация coffeescript определяет coffescript в терминах эквивалентного javascript. Если вы не понимаете javascript, вы не поймете и coffeescript.
источник