CoffeeScript একটি প্রোগ্রামিং ভাষা যা JavaScript-এর জন্য সংক্ষিপ্ত এবং পরিষ্কার সিনট্যাক্স প্রদান করে। এটি JavaScript-এ কম্পাইল হয় এবং কোড লেখার প্রক্রিয়াটি আরও সহজ এবং দ্রুত করতে সাহায্য করে। তবে ES6 (ECMAScript 2015) নতুন বৈশিষ্ট্য এবং ফিচার যোগ করার পর JavaScript-এ কোডিং আরও সহজ এবং শক্তিশালী হয়ে উঠেছে। নিচে CoffeeScript এর সংক্ষিপ্তসার দেওয়া হয়েছে এবং তার সঙ্গে ES6 এর সমতুল্য সিনট্যাক্স।
1. ভেরিয়েবল ডিক্লারেশন
CoffeeScript:
CoffeeScript-এ সরাসরি ভেরিয়েবল ডিক্লারেশন করা হয় এবং এটি JavaScript কোডে var, let, অথবা const ব্যবহারের প্রয়োজন ছাড়া রূপান্তরিত হয়।
name = "Alice"
age = 25
ES6 Equivalent:
ES6-এ আপনি let বা const ব্যবহার করে ব্লক স্কোপের ভেরিয়েবল ডিক্লারেশন করতে পারেন।
let name = "Alice";
const age = 25;
2. ফাংশন ডিক্লারেশন
CoffeeScript:
ফাংশন ডিক্লারেশন CoffeeScript-এ -> ব্যবহার করে করা হয়, যেখানে => অ্যারো ফাংশন হিসেবে কাজ করে।
add = (a, b) -> a + b
multiply = (a, b) => a * b
ES6 Equivalent:
ES6-এ ফাংশন ডিক্লারেশন function কিওয়ার্ড বা অ্যারো ফাংশন ব্যবহার করে করা হয়।
// সাধারণ ফাংশন
const add = function(a, b) {
return a + b;
};
// অ্যারো ফাংশন
const multiply = (a, b) => a * b;
3. ক্লাস (Class)
CoffeeScript:
CoffeeScript-এ ক্লাস ডিফাইন করতে class কিওয়ার্ড ব্যবহার করা হয়।
class Person
constructor: (@name, @age) ->
greet: -> console.log "Hello, #{@name}!"
ES6 Equivalent:
ES6-এ class কিওয়ার্ড ব্যবহার করা হয়, যা JavaScript-এ ইনহেরিটেন্স এবং মেথড ডেফিনিশন সহজ করে তোলে।
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, ${this.name}!`);
}
}
4. অ্যারে কম্প্রিহেনশন (Array Comprehension)
CoffeeScript:
CoffeeScript-এ অ্যারে কম্প্রিহেনশন খুব সহজ এবং সংক্ষিপ্ত।
squares = (x * x for x in [1..5])
console.log squares # [1, 4, 9, 16, 25]
ES6 Equivalent:
ES6-এ অ্যারে কম্প্রিহেনশন সরাসরি সমর্থিত নয়, তবে .map() মেথড ব্যবহার করে সমান কার্যকারিতা অর্জন করা যায়।
let squares = [1, 2, 3, 4, 5].map(x => x * x);
console.log(squares); // [1, 4, 9, 16, 25]
5. ডিফল্ট প্যারামিটার (Default Parameters)
CoffeeScript:
CoffeeScript-এ ফাংশনের প্যারামিটারগুলোর জন্য ডিফল্ট মান নির্ধারণ করা যায়।
greet = (name = "Guest") -> console.log "Hello, #{name}!"
greet() # "Hello, Guest!"
ES6 Equivalent:
ES6-এ ফাংশন প্যারামিটারগুলোর জন্য ডিফল্ট মান নির্ধারণ করা যায়।
const greet = (name = "Guest") => console.log(`Hello, ${name}!`);
greet(); // "Hello, Guest!"
6. ডেস্ট্রাকচারিং (Destructuring)
CoffeeScript:
CoffeeScript-এ অবজেক্ট বা অ্যারের ডেস্ট্রাকচারিং করা সহজ।
person = {name: "Alice", age: 30}
{name, age} = person
console.log name, age # "Alice", 30
ES6 Equivalent:
ES6-এ অ্যারে এবং অবজেক্ট ডেস্ট্রাকচারিং একইভাবে ব্যবহার করা হয়।
const person = {name: "Alice", age: 30};
const {name, age} = person;
console.log(name, age); // "Alice", 30
7. টেমপ্লেট স্ট্রিং (Template Strings)
CoffeeScript:
CoffeeScript-এ টেমপ্লেট স্ট্রিং #{} সিম্বল দিয়ে তৈরি করা হয়।
name = "Alice"
message = "Hello, #{name}!"
console.log message # "Hello, Alice!"
ES6 Equivalent:
ES6-এ টেমপ্লেট স্ট্রিং ${} সিম্বল ব্যবহার করা হয়।
let name = "Alice";
let message = `Hello, ${name}!`;
console.log(message); // "Hello, Alice!"
8. অ্যারে এবং অবজেক্টের মেথড (Array and Object Methods)
CoffeeScript:
CoffeeScript-এ অ্যারে এবং অবজেক্টের মেথড ব্যবহার করা সহজ এবং সংক্ষিপ্ত।
array = [1, 2, 3]
array.push(4) # অ্যারে তে নতুন উপাদান যোগ করা
ES6 Equivalent:
ES6-এ .push() মেথড একইভাবে ব্যবহার করা হয়।
let array = [1, 2, 3];
array.push(4); // অ্যারে তে নতুন উপাদান যোগ করা
সারাংশ
| বৈশিষ্ট্য | CoffeeScript | ES6 Equivalent |
|---|---|---|
| ভেরিয়েবল ডিক্লারেশন | সরাসরি ভেরিয়েবল ডিক্লারেশন | let, const বা var ব্যবহৃত |
| ফাংশন ডিক্লারেশন | -> (ফাংশন) / => (অ্যারো ফাংশন) | function / => (অ্যারো ফাংশন) |
| ক্লাস | class | class |
| অ্যারে কম্প্রিহেনশন | সরাসরি সমর্থিত | .map(), .filter(), .reduce() ব্যবহার করা হয় |
| ডিফল্ট প্যারামিটার | সরাসরি সমর্থিত | সরাসরি সমর্থিত |
| টেমপ্লেট স্ট্রিং | #{} ইন্টারপোলেশন | ${} ইন্টারপোলেশন |
| ডেস্ট্রাকচারিং | সহজ | সহজ |
CoffeeScript বনাম ES6+
- CoffeeScript: JavaScript কোড লেখার জন্য একটি সংক্ষিপ্ত ভাষা, যেখানে কোড কমাতে সাহায্য করা হয়। এটি JavaScript-এর সিনট্যাক্সকে আরও পরিষ্কার এবং সহজ করে তোলে।
- ES6+: আধুনিক JavaScript যা অনেক নতুন বৈশিষ্ট্য যোগ করেছে, যেমন ক্লাস, অ্যারো ফাংশন, টেমপ্লেট স্ট্রিং, ডিফল্ট প্যারামিটার ইত্যাদি।
উপসংহার: CoffeeScript JavaScript কোডিংকে আরও দ্রুত, সহজ এবং পরিষ্কার করতে সাহায্য করে, তবে ES6+ নতুন বৈশিষ্ট্য এবং উন্নতি সহ আরও শক্তিশালী ও আধুনিক JavaScript কোডিং পরিবেশ প্রদান করে।
Read more