Javascript를 모르고 Coffeescript를 사용하는 것이 얼마나 위험합니까? [닫은]


15

나는 웹 개발을 배우려고 합리적으로 경험이 풍부한 프로그래머입니다. 그래픽에 svg 또는 canvas를 사용하는 클라이언트 측 웹 응용 프로그램을 개발하려고합니다. Coffeescript에 응용 프로그램 코드를 작성하기로 결정했습니다. Javascript 또는 Coffeescript를 모릅니다.

Coffeescript 웹 개발에 Javascript를 아는 방법은 무엇입니까? Javascript를 이해해야하는 약간의 문제가 발생할 가능성이 있습니까? Coffeescript의 Javascript API로 즐겁게 작업 할 수 있습니까?

편집 : 일주일 안에 Javascript의 기본 사항을 쉽게 배울 수 있습니다. Javascript에 숨겨진 날카로운 모서리가 많이있는 것 같습니다. 에서 이상한 언어 기능의 StackOverflow의 자바 스크립트에 대한 질문이 가장 일반적인 언어 중 하나입니다. 특이한 객체와 클래스 모델이 있습니다. 명백한 이름 범위 지정 규칙이 있습니다. 언어를 실제로 아는 데 일주일 이상이 걸립니다.

웹 개발을 배우기 위해 작은 간단한 프로젝트를 진행할 것입니다. Javascript 또는 Coffeescript를 사용하는 것이 더 좋을까요? 나는 장기적으로 Coffeescript를 선호한다고 생각하지만 Coffeescript를 사용하기 위해 Javascript에 대한 철저한 이해가 필요하다면 Javascript로 시작하겠습니다.


CoffeeScript는 단순히 JavaScript로 컴파일됩니다. CS를 사용하면 JavaScript의 뉘앙스를 쉽게 관리 할 수 ​​있지만 재현하지는 않습니다. 여전히 동일한 기능과 단점이 있습니다. 예를 들어 classCS 의 키워드는 마법 같은 일을하지 않습니다. 단순히 JavaScript 기본 프로토 타입 상속 메커니즘을 사용합니다. 이러한 이유로, 일부 JavaScript에 대한 보조 지식을 더 모호한 "기능"에 추가하는 것이 좋습니다.
Michelle Tilley

2
CS는 모든 것을 쉽게 만드는 마법의 은색 총알이 아니며 다른 구문을 가진 JS입니다. JS 또는 CS 작성 여부는 스타일 환경 설정입니다.
Raynos

답변:


12

꼭 필요한 것은 아니지만, 장기적으로는 장애물이 될 것입니다.

브라우저 환경에서 CoffeeScript를 사용하는 것에 대해 이야기 할 때 브라우저가 해석해야하기 때문에 후드에서 발생하는 상황과 CoffeeScript 컴파일러가 기록하는 내용을 이해해야합니다. 어떤 당신이해야합니다 것을 또한 의미합니다 디버그 특히 커피 스크립트는 비교적 최근의 고려, 우리는 여전히 전사 메커니즘의 일부 거친 가장자리 버그 건너 올 수 있습니다. 또한 디버깅을 위해 맞춤형 디버깅 도구를 사용하지 않는 경우 생성 된 JavaScript 코드를 건너 뛰어 Firebug 또는 Chrome Dev Tools 또는 선택한 JS 콘솔을 사용하여 디버깅해야합니다. 경우에 따라 JS 오류가 소스 CoffeeScript 문과 직접 ​​관련되는 방법을 볼 수 있습니다. 다른 경우에는 전사가 사소하지 않기 때문에

이 방법을 사용하면 저수준 개발을 수행하지 않고도 Java 및 C #에서 소프트웨어를 매우 잘 개발할 수 있습니다. 그러나 실마리가없고 백그라운드에서 이러한 언어의 런타임이 당신을 위해 무엇을해야하는지에 대한 교육적인 추측을 할 수 없다면 무슨 일이 일어나고 있는지, 왜 성능 병목 현상과 메모리 문제가 발생했는지 이해하는 데 시간이 많이 걸릴 것입니다. 그들은 단순히 기적을 풀 수 없기 때문에 추측의 어떤 부분을 망칠 수 있습니다.

또한 JavaScript를 배우면 원래보다 훨씬 어려울 수 있다는 사실을 알게 될 것입니다.


1
또는 JavaScript가 아닌 CoffeeScript에 짜증이 날 것입니다.). ES5는 사랑스러운 언어입니다.
Raynos

@Raynos : 돼지의 립스틱, 여전히 돼지; 염소, 여전히 염소 등의 턱시도 ... :) ECMAScript는 일단 알게되면 실제로 매우 흥미로운 언어이지만, 너무 많은 불일치와 함정과 함정이있어 두 가지 모두에 부담이됩니다. 새로운 학습자 및 고급 프로그래머를위한 것입니다. 아직도, 그것은 우리의 현대적인 웹 링구아 프랑카이며, 시간이 지남에 따라 개선되고 성숙하고 있습니다. CoffeeScript의 아이디어는 ECMAScript의 성가신 부분을 숨기므로 Java (또는 그 위에있는 언어)에 대한 일부 libs를 사용하여 견딜 수있게하는 것과 거의 같습니다.
haylem

2
Meh, 당신은 단지 좋은 부품과 좋은 것을 읽을 필요가 있습니다. 함정은 피하기 어렵지 않습니다.
Raynos

@Raynos : 그러나 불행히도 고급 JS 개발자를 고용하는 데 어려움을 겪고 있습니다. 정말 좋은 것은 찾기가 매우 어렵습니다.
haylem

아 동의합니다. JS 커뮤니티는 평범한 개발자들로 가득합니다. 나는 당신이 그들을 찾을 곳이 없습니다. 나는 JS chat.SO room 에서 몇몇 훌륭한 개발자만을 알고 있습니다 . 훌륭한 JS 개발자가 없다는 사실에 의해 JS가 어려워 야합니다. 나는 아무도 그것을 제대로 배우는 것을 귀찮게 생각하지 않습니다.
Raynos

4

물어:

Javascript를 이해해야하는 약간의 문제가 발생할 가능성이 있습니까?

나는 분명하게 말할 수있다. 일반적으로, 흥미로운 일을하고 있다면 어느 시점에서 최소한 아래 레벨에서 무슨 일이 일어나고 있는지 이해해야합니다. (때로는 Google + 잘라 내기 + 붙여 넣기로 저장할 수 있지만 그 사람이되고 싶지는 않습니다.)

"합리적으로 숙련 된 프로그래머"라면 새로운 언어를 선택하는 데 시간이 오래 걸리지 않습니다. JavaScript는 상당히 간단한 언어입니다. 어려운 점은 실행중인 환경, 즉 다른 아이디어를 가진 여러 가지 웹 브라우저가 작업을 수행하는 방법에서 비롯됩니다.

웹에서 찾을 수있는 많은 "방법"정보는 JavaScript를 염두에두고 작성되므로 JavaScript를 읽고 동등한 CoffeeScript로 변환하는 방법을 배우면 더 쉬운 시간을 가질 수 있습니다.

정직하게, 의도적으로 무지하려고하지 않는 한, 아마도 CoffeeScript 작업의 부작용으로 JavaScript를 배우게 될 것입니다. 이미 시작하십시오.


4

" 커피 스크립트의 황금률은 '그냥 자바 스크립트'입니다 ."최소한 JavaScript에 대해 기본적으로 알고있는 것이 좋습니다. 특히 Douglas Crockford 의 작은 책인 JavaScript : The Good Parts를 살펴보십시오 . 또한 Crockford의 훌륭한 소개 프레젠테이션을 볼 수도 있습니다.

CoffeeScript는 기본적으로 JavaScript의 좋은 부분을 다른 패키지로 포장합니다. " CoffeeScript는 JavaScript의 기초가되는 아름다운 객체 모델에 대한 최소한의 구문을 노출하는 언어를 상상하기위한 간단한 사고 실험입니다. "모든 세부 사항을 알 필요는 없습니다 . JavaScript 자체 는 클래스 기반 객체 지향 언어 가 아니라는 것을 이해하기에 충분합니다 . 수업이 전혀 없습니다. 대신 " prototypes "를 사용하며 다른 OO 언어와 약간의 차이가 있습니다. Jeremy Ashkenas 는 JavaScript 구문의 나쁜 부분을 정리하고 개선 사항을 추가했으며 조금 더 파이썬 처럼 만들었습니다.

JavaScript에는 잘 알려진 "gotchas"가 있습니다. 그렇지 않으면, 그것은 훌륭한 언어이며 오늘날 매우 일반적으로 사용됩니다. 우리는 무엇보다도 AJAX 또는 jQuery가 없을 것입니다.

CoffeeScript와 함께 행운을 빌어 요!


좋은 부품을 구입하십시오. cheapskate하지 마십시오!
Raynos

@ Raynos-내가 했어. 난 아니다! : D 그러나 잠재적으로 부적절한 검색 제안을 삭제했습니다. 지적 해 주셔서 감사합니다!
존 토 블러

3

예. 그렇지 않으면 세상의 끝이 아닙니다.

왜? 우선 JavaScript는 배우기 쉽습니다. 말 그대로 배우는 데 4 일이 걸렸습니다 (대부분의 경우). 또한 CoffeeScript보다 가치가 있다고 생각합니다. 나는 당신이 심지어 CoffeScript가 필요하다고 생각하지 않습니다. 그러나 여전히 좋은 도구입니다.


3
나는 몇 년 동안 JavaScript를 배워 왔지만 여전히 그것을 정말로 알고 있다고 말하지는 않을 것입니다. 때때로 나는 그것에 대해 놀라게하는 것들을 발견한다. "Hello World"를 수행하는 방법을 배우는 것은 쉽지만 암시 적 유형 변환 및 클로저의 동작을 예측하는 것은 쉽지 않습니다.
Zach

@Zach 당신은 책 JavaScript Enlightenment에 관심이있을 것이다 . 한 리뷰는 다음과 같이 읽습니다. "사실, 나는 실제로 누락 된 것을 찾을 수 없었습니다. JSLint가 왜 무언가에 대해 불평하는지 궁금하다면, 근본 원인이이 책 어딘가에 설명되어있을 것입니다."
Michelle Tilley

1
@Zach 클로저는 그렇게 어렵지 않습니다. 타입 변환은 고통입니다. JS의 큰 문제는 이전 버전의 IE가 무엇을하고 있는지 아는 것입니다.
Raynos

@ 자흐 : 나는 모든 자바 스크립트를 모른다는 것을 알고있다. 나는 심지어 가까이 있지 않습니다. 그러나 기본 사항과 중간 항목 중 일부는 배우기 매우 쉽다는 것을 알고 있습니다.
동적

0

때에 따라 다르지.

CoffeeScript가 JavaScript를 충분히 추상화하여 C # abstracting Intermediate Language와 같이 알 필요가 없다면 JavaScript를 배우지 않고도 CoffeeScript에서 원하는 모든 것을 할 수 있습니다.

그러나 내 경험에 따르면 JavaScript에서 얼마나 많이 도망 치려고해도 클라이언트와 관련하여 때로는 손을 더럽 히고 순수한 JavaScript를 작성해야합니다.

그래, 당신 말이 맞아. JavaScript 구문은 쉽지만 약한 언어로 배울 수는 있지만 마스터하는 데 몇 년이 걸립니다.

IMHO, CoffeeScript를 볼 때 모든 JavaScript 복잡성을 완전히 감쌀만큼 성숙하지는 않습니다. 따라서 JavaScript를 배우거나 직접 학습하지 않을 위험이 없습니다.


CoffeeScript는 매우 얇은 추상화입니다. coffeescript를 직접 배울 수는 있지만 컴파일 된 js를 디버깅하는 것은 쉽지 않습니다. "내 손을 더럽 히고 순수한 자바 스크립트를 작성하십시오". JavaScript가 더럽지 않습니다.
Raynos

1
@ Rayons, JavaScript가 더럽다는 것을 의미하지는 않았습니다. :). 이것은 일종의 표현이며 더 깊은 기본 레이어로 가야한다는 것을 의미합니다.
Saeed Neamati

"나는 게임 프로그래밍을하고 있는데, 내 손을 더럽 히고 c ++를 쓰십시오"또는 "AI를하고 있습니다. 손을 더럽 히고 LISP를 쓰십시오"라고 말하는 것과 같습니다. 우리가 브라우저에서 가지고있는 더 깊은 기본 레이어는 NaCl
Raynos

0

커피 스크립트 문서는 동등한 자바 스크립트로 coffescript를 정의합니다. 자바 스크립트를 이해하지 못하면 커피 스크립트도 이해하지 못합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.