محمد افاضاتی

دیده ها، شنیده ها و علاقه مندی های یک برنامه نویس
دوشنبه, ۱۷ مهر ۱۳۹۱، ۰۹:۵۷ ق.ظ

CoffeeScript

زبان کوچک CoffeeScript اخیراً بیشتر مطرح شده است. البته این مورد اینقدر بزرگ نبود که به عنوان یک فصل از مقاله js ی که در زنجان ارایه دادم مطرح شود ولی نبودش هم بی انصافی بود

CoffeeScript -> http://jashkenas.github.com/coffee-script/

این زبان در حقیقت در نهایت به javascript تبدیل می‌شود فقط اتفاقی که می‌افتد کد کوتاه تری را با این زبان باید بزنید به طور مثال شما دیگر چیزی رو declare نمی‌کنید یا کلاً از آکولاد استفاده نمی‌کنید و همه چیز با tab مشخص می‌شود

# Assignment:
number   = 42
opposite = true

# Conditions:
number = -42 if opposite
// result in js
if (opposite) {
    number = -42;
}

# Functions:
square = (x) -> x * x
// result in js
square = function(x) {
    return x * x;
};
# Arrays:
list = [1, 2, 3, 4, 5]

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

# Splats:
race = (winner, runners...) ->
  print winner, runners

# Existence:
alert "I knew it!" if elvis?

# Array comprehensions:
cubes = (math.cube num for num in list)


همانطور که در مثال‌ها مشاهده می‌شود کلاً همه چیز خیلی ساده‌تر می‌شود و در نتیجه خیلی راحت‌تر می‌توانید کد و بزنید
در کل مواردی مثل کلاس هم وجود دارد که در نهایت به صورت function تعریف می‌شود

 

class Animal
  constructor: (@name) ->

  move: (meters) ->
    alert @name + " moved #{meters}m."

class Snake extends Animal
  move: ->
    alert "Slithering..."
    super 5

بزرگترین مشکل CoffeeScript قسمت Debuging است چون کد اصلی به زبان دیگری طراحی شده است و شما مجبورید از کد نتیجه بفهمید کجای کدتان مشکل دارد
البته فایرفاکس قصد داردi در آینده debugger این زبان را هم اضافه کند. الان هم ابزار هایی مثل AceBug هست ولی در کل کار سختیست

 

پانوشت: ماکروسافت نیز چند وقت پیش زبان مشابهی را منتشر کرد به اسم TypeScript که نیاز همچین چیزهایی را بیشتر نشان می دهد (با تشکر از arashm)

پانوشت ۲: گویا بازار این چیزها خیلی داره داغ میشه LLJS : Low-Level JavaScript -> http://lljs.org/



نوشته شده توسط محمد افاضاتی
ساخت وبلاگ در بلاگ بیان، رسانه متخصصان و اهل قلم

محمد افاضاتی

دیده ها، شنیده ها و علاقه مندی های یک برنامه نویس
محمد افاضاتی
محمد افاضاتی برنامه نویس python php دیتابیس های postgresql mongodb و ...

رونوشتی از علاقه مندی هایم برای ماندگار تر شدن!

تبلیغات

طبقه بندی موضوعی

Feedburner RSS

Others

توییتر

CoffeeScript

دوشنبه, ۱۷ مهر ۱۳۹۱، ۰۹:۵۷ ق.ظ

زبان کوچک CoffeeScript اخیراً بیشتر مطرح شده است. البته این مورد اینقدر بزرگ نبود که به عنوان یک فصل از مقاله js ی که در زنجان ارایه دادم مطرح شود ولی نبودش هم بی انصافی بود

CoffeeScript -> http://jashkenas.github.com/coffee-script/

این زبان در حقیقت در نهایت به javascript تبدیل می‌شود فقط اتفاقی که می‌افتد کد کوتاه تری را با این زبان باید بزنید به طور مثال شما دیگر چیزی رو declare نمی‌کنید یا کلاً از آکولاد استفاده نمی‌کنید و همه چیز با tab مشخص می‌شود

# Assignment:
number   = 42
opposite = true

# Conditions:
number = -42 if opposite
// result in js
if (opposite) {
    number = -42;
}

# Functions:
square = (x) -> x * x
// result in js
square = function(x) {
    return x * x;
};
# Arrays:
list = [1, 2, 3, 4, 5]

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

# Splats:
race = (winner, runners...) ->
  print winner, runners

# Existence:
alert "I knew it!" if elvis?

# Array comprehensions:
cubes = (math.cube num for num in list)


همانطور که در مثال‌ها مشاهده می‌شود کلاً همه چیز خیلی ساده‌تر می‌شود و در نتیجه خیلی راحت‌تر می‌توانید کد و بزنید
در کل مواردی مثل کلاس هم وجود دارد که در نهایت به صورت function تعریف می‌شود

 

class Animal
  constructor: (@name) ->

  move: (meters) ->
    alert @name + " moved #{meters}m."

class Snake extends Animal
  move: ->
    alert "Slithering..."
    super 5

بزرگترین مشکل CoffeeScript قسمت Debuging است چون کد اصلی به زبان دیگری طراحی شده است و شما مجبورید از کد نتیجه بفهمید کجای کدتان مشکل دارد
البته فایرفاکس قصد داردi در آینده debugger این زبان را هم اضافه کند. الان هم ابزار هایی مثل AceBug هست ولی در کل کار سختیست

 

پانوشت: ماکروسافت نیز چند وقت پیش زبان مشابهی را منتشر کرد به اسم TypeScript که نیاز همچین چیزهایی را بیشتر نشان می دهد (با تشکر از arashm)

پانوشت ۲: گویا بازار این چیزها خیلی داره داغ میشه LLJS : Low-Level JavaScript -> http://lljs.org/

موافقین ۱ مخالفین ۰ ۹۱/۰۷/۱۷
محمد افاضاتی CoffeeScript AceBug

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی