Наскільки ризиковано використовувати Coffeescript, не знаючи Javascript? [зачинено]


15

Я досить досвідчений програміст, який намагається навчитися розробці веб-сторінок. Я намагаюся розробити веб-додаток на стороні клієнта, який використовує svg або канву для графіки. Я вирішив, що хочу написати код заявки в Coffeescript. Я не знаю ні Javascript, ні Coffeescript.

Наскільки потрібно знати Javascript для веб-розробки Coffeescript? Чи, можливо, я стикаюся з якоюсь проблемою, яка вимагає від мене розуміння Javascript? Чи можу я щасливо працювати з API Javascript від Coffeescript?

Редагувати : Я легко міг би засвоїти основи Javascript за тиждень. Мене більше турбує те, що у Javascript здається багато прихованих гострих країв. В дивному художній мові питання про StackOverflow Javascript є одним з найбільш поширених мов. Він має незвичайну модель об'єкта та класу. Він має не очевидні правила визначення імені. Я вважаю, що мені потрібно більше тижня, щоб я справді знав мову.

Я буду працювати над невеликим простим проектом для вивчення веб-розробки. Чи краще мені використовувати Javascript або Coffeescript? Я думаю, що в перспективі я віддаю перевагу Coffeescript, але я хочу почати з Javascript, якщо для цього мені потрібно буде глибоке розуміння Javascript, щоб використовувати Coffeescript.


Майте на увазі, що CoffeeScript просто компілюється в JavaScript. Хоча CS полегшує управління деякими нюансами JavaScript, він не переживає їх; його все ще підпорядковується все той же функціонал і химерність. Наприклад, classключове слово в CS не робить нічого магічного; він просто використовує нативні механізми успадкування прототипів JavaScripts. З цієї причини я б рекомендував мати принаймні додаткові знання про деякі більш чіткі "функції" JavaScripts.
Мішель Тіллі

2
CS - це не чарівна срібна куля, яка полегшує все, це JS з іншим синтаксисом. Незалежно від того, пишете ви JS чи CS - це стиль.
Райнос

Відповіді:


12

Я думаю, це не було б абсолютно необхідним, але ви будете здавати блокпости в довгостроковій перспективі, якщо цього не зробите.

Вам потрібно зрозуміти, що відбувається під кришкою, і на що компілюється компілятор CoffeeScript, оскільки це потрібно для інтерпретації браузерів (якщо ми говоримо про використання CoffeeScript у середовищі браузера). Це означає, що це також те, що вам потрібно буде налагоджувати , особливо враховуючи, що CoffeeScript є досить недавнім, і ми все ще можемо натрапити на деякі грубі краї та помилки в його механізмі транскрипції. Крім того, якщо ви не використовуєте для налагодження жодних інструментів налагодження, вам доведеться перейти через створений код JavaScript для налагодження за допомогою Firebug або Chrome Dev Tools або вашої консолі JS на вибір. У деяких випадках ви зможете побачити, як помилка JS безпосередньо стосується вихідного твердження CoffeeScript. В інших, оскільки транскрипція нетривіальна,

Прийміть це так: ви можете дуже добре розробити програмне забезпечення на Java та C #, не робивши жодної розробки на низькому рівні. Тим не менш, у тебе буде дуже погано розуміти, що відбувається і чому ти стикаєшся з вузькими місцями та проблемами пам’яті, якщо ти не маєш поняття і не в змозі скласти здогад про здогадки про те, що для цих мов потрібно виконувати у фоновому режимі, і яку частину здогадок вони можуть викрутити, тому що вони просто не можуть відтворити чудеса.

Крім того, якщо ви вивчите JavaScript, ви зрозумієте, наскільки це неймовірно складніше, ніж це спочатку здається, і ви ще більше оціните CoffeeScript за його короткий і чистий синтаксис :)


1
Або ви будете дратуватися на CoffeeScript за те, що він не є JavaScript;). ES5 - чудова мова.
Райнос

@Raynos: помада на свині, ще свиня; Туксидо на козлі, ще козел тощо ... :) Я погоджуюся, що ECMAScript насправді дуже цікава мова, як тільки ти це познайомиш, але це має занадто багато невідповідностей, пасток і підводних каменів, які роблять це тягарем для обох нових учнів і навіть для просунутих програмістів. І все-таки це наша сучасна веб-мова lingua franca, яка з часом вдосконалюється та дозріває. Мені подобається ідея CoffeeScript, оскільки вона приховує деякі набридливі речі ECMAScript, майже так само, як використання язиків для Java (або навіть мови на вершині) робить її нестерпною.
haylem

2
Мех, вам просто потрібно прочитати добрі частини і ваше добро. Підводних каменів не так важко уникнути.
Райнос

@Raynos: Але, на жаль, я намагаюся знайти передових розробників JS, які найму. Дійсно хороших знайти досить важко.
haylem

О, я згоден, спільнота JS насичена посередними розробниками. Я не знаю, де ви повинні їх знайти. Я знаю тільки кілька хороших розробників з кімнати JS chat.SO . Я здогадуюсь самим фактом, що немає хороших розробників JS, JS повинен бути важким. Я просто думаю, що ніхто не перешкоджає цьому правильно вчитися.
Райнос

4

Ви запитаєте:

Чи, можливо, я стикаюся з якоюсь проблемою, яка вимагає від мене розуміння Javascript?

Я можу сказати однозначно, так. Взагалі, якщо ви робите щось цікаве, в якийсь момент вам, принаймні, потрібно буде зрозуміти, що відбувається на рівнях нижче вас. (Іноді Google + cut + paste може врятувати вас, але ви не хочете бути таким хлопцем.)

Будь-який "досить досвідчений програміст", а потім вибирати нову мову не повинен займати вас дуже довго. JavaScript - досить проста мова. Все, що складно з цим, відбувається із середовища, яке він виконує: а саме декілька різних веб-браузерів з різними ідеями, як робити справи.

Багато інформації про те, як ви знайдете в Інтернеті, буде написано з урахуванням JavaScript, тому вам, мабуть, буде легший час, якщо ви навчитесь читати JavaScript та перекладете його на еквівалентний CoffeeScript.

Чесно кажучи, якщо ви навмисно не намагаєтеся залишатись необізнаними, ви, ймовірно, закінчите вивчати JavaScript як побічний ефект роботи в CoffeeScript. Тож просто почніть вже.


4

Оскільки " золотим правилом CoffeeScript є:" Це просто JavaScript " , я рекомендую принаймні базове ознайомлення з JavaScript. Зокрема, подивіться на маленьку книгу Дугласа Крокфорда , JavaScript: Хороші частини . Ви також можете подивитися власну чудову вступну презентацію Крокфорда .

CoffeeScript в основному поєднує хороші частини JavaScript в іншому пакеті: " CoffeeScript - це простий експериментальний роздум, щоб уявити мову, яка розкриває мінімальний синтаксис для красивої об'єктної моделі, що лежить в основі JavaScript. Вам не потрібно знати всі деталі, достатньо лише зрозуміти, що JavaScript сам по собі не є об'єктно-орієнтованою мовою на основі класу. У ньому взагалі немає занять. Натомість він використовує " прототипи ", і це робить деякі відмінності від інших мов ОО. Джеремі Ашкенас очистив деякі погані частини синтаксису JavaScript, додав деякі вдосконалення та зробив це трохи більше Python -esque.

У JavaScript є кілька відомих "gotchas", на які слід спостерігати. Інакше це чудова мова і сьогодні дуже поширена. Без нас, серед іншого, не було б AJAX або jQuery.

Успіхів вам з CoffeeScript!


Купуйте гарні деталі. Не будьте скупою!
Райнос

@Raynos - я. Я не! : D Але я видалив потенційно невідповідну пропозицію пошуку. Дякуємо, що вказали на це!
Джон Тоблер

3

Так. Це не кінець світу, якщо ви цього не зробите, але так.

Чому? Ну по-перше, JavaScript дуже легко вивчити. Буквально мені знадобилося 4 дні, щоб навчитися цьому (ну, більшість із них). Крім того, я вважаю, що це цінніше, ніж CoffeeScript. Я дійсно не думаю, що вам навіть потрібен CoffeScript. Але це все-таки хороший інструмент.


3
Я вивчав JavaScript роками, і досі не сказав би, що справді це знаю. Раз у раз я відкриваю про це речі, які мене дивують. Навчитися робити "Hello World" може бути просто, але навчитися прогнозувати поведінку неявних типів перетворення та закриття це не так.
Зак

@Zach Можливо, вас зацікавить книга JavaScript Просвіт . В одному з відгуків написано: "Насправді я дійсно не міг знайти нічого, чого не вистачає. Якщо ви коли-небудь замислювались, чому JSLint скаржиться на щось, першопричину, ймовірно, пояснюють десь у цій книзі".
Мішель Тіллі

1
@ Зах закриття не так вже й важко, перетворення типу - це біль. Велика проблема JS - це те, що роблять старіші версії IE.
Райнос

@Zach: Я знаю, що я не знаю всіх JavaScript. Я навіть не близько. Але я знаю, що ази та деякі проміжні речі дуже легко засвоїти.
Динамічний

0

Це залежить.

Якщо CoffeeScript абстрагує JavaScript достатньо, щоб вам не потрібно було його знати (наприклад, C # абстрагування проміжного мови), то так, ви можете робити все, що хочете робити в CoffeeScript, не вивчаючи JavaScript.

Але мій досвід підказує мені, що скільки б я не намагався втекти від JavaScript, якщо мова йде про клієнта, мені іноді дійсно потрібно забруднити руки та написати чистий JavaScript.

Так, ти маєш рацію. в той час як синтаксис JavaScript простий, і ви можете вивчити його слабко, але на це вам потрібні роки.

IMHO, як я бачу, CoffeeScript, недостатньо зрілий, щоб повністю завершити всі тонкощі JavaScript. Отже, я не ризикую не вчитися або працювати безпосередньо з JavaScript.


CoffeeScript - дуже тонка абстракція. Ви можете вивчити coffeescript безпосередньо, але налагодження складеного js буде болем. "забруднити руки та написати чистий JavaScript". JavaScript не забруднений.
Райнос

1
@Rayons, я не мав на увазі, що JavaScript брудний. :). Це добрий вираз, що означає, що вам слід потрапити до глибших шарів, що лежать нижче.
Saeed Neamati

це як сказати "Я займаюся ігровим програмуванням, найкраще забруднити руки і написати c ++" або "Я роблю якийсь AI, найкраще забруднити руки і написати LISP". Єдиний глибший базовий шар у браузері - NaCl
Raynos,

0

Документація coffeescript визначає coffescript в еквівалентному javascript. Якщо ви не розумієте JavaScript, ви також не зрозумієте coffeescript.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.