CoffeeScript

logo.png
커피에 대해서는 커피 문서를 참조하십시오.


alert "Hello, World!" # alert 방식
document.write "Hello, world!" # 문서에 쓰는 방식.
console.log "Hello, world!" # 콘솔 방식

1 개요

공식 페이지
자바스크립트로 컴파일 되는 프로그래밍 언어. npm의 coffee-script 모듈을 통해 node.js에서도 사용할 수 있다. Backbone.js과 underscore.js 등을 만든 자바스크립트 진영의 유명한 개발자 Jeremy Ashkenas가 개발했다.

2 문법

number   = 42
opposite = true

  • Conditional Assignment

number = -42 if opposite

square = (x) -> x * x

  • YAML처럼 생긴 객체 리터럴을 지원한다.

math =
root:   Math.sqrt
square: square
cube:   (x) -> x * square x

  • Existential Operator[3]

alert "알았다!" if elvis?

  • List Comprehension

cubes = (math.cube num for num in list)

3 여담

  • Node.js에서 은근히 많이 쓰인다. 이유는 아무래도 npm의 커피스크립트 모듈 때문인듯..
  • 자바스크립트에 비해 문법이 간결하여 많은 개발자들의 사랑을 받았지만 서서히 저물고있는 중이다. 2016년 Stack Overflow 개발자 설문에서 저물고 있는 기술 3위를 차지했다.[4] 아무래도 최신 자바스크립트 문법을 지원하지 않고, 경쟁자인 TypeScript가 잘 나가고 있기 때문인듯 하다.
  1. 변수(Variable) 용어를 사용하지 않습니다.
  2. 커피스크립트에서 모든 함수는 이렇게 정의됩니다.
  3. null, undefined 체크와 함수 실행을 한 줄로 할 수 있다!
  4. 참고로 1위는 Windows Phone(...) 2위는 하스켈.