ক্লোজার - একটি আধুনিক ফাংশনাল ল্যাঙ্গুয়েজ

স্বয়ংক্রিয় কন্ট্রিবিউটরের তালিকা
(প্রথম ৫ জন)

Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.

-- Eric S Raymond in How to Become A Hacker

স্বাগতম

১৯৫০ সালের দিকে কম্পিউটিং জগতে শুরু হয় একটি রেভলিউশন যাকে আমরা লিস্প হিসেবে চিনি। লিস্প বিষয়ক বক্তব্য খুঁজতে গেলে নাম পাওয়া যাবে নামী দামি সব প্রোগ্রামারদের। এডগার ডাইজক্সট্রা, পিটার নরভিগ, পল গ্রাহাম, অ্যাল্যান পারলিস, রিচারড স্টলম্যান তাঁদের মধ্যে উল্লেখযোগ্য। সেই অর্ধ শতাব্দী আগেই এটি নিয়ে আসে গারবেজ কালেকশন, ডি এস এল, ইন্টার‍্যাক্টিভ প্রোগ্রামিং, ডাইন্যামিক টাইপিং, ল্যাম্বডা ক্যালকুলাসের মত বিষয় যা মেইন্সট্রিমে আসে ২/৩ দশক পর। ফাংশনাল প্রোগ্রামিঙ্গের সম্ভ্রান্ত পরিবারের এই প্রোগ্রামিং ল্যাঙ্গুয়েজ বহু প্রোগ্রামারদের কৌশলকে করেছে নিপুণ ও এর দ্বারা প্রভাবিত হয়েছে বর্তমানের প্রায় সমস্ত ল্যাঙ্গুয়েজ। কিন্তু লিস্প নিজে কোন ল্যাঙ্গুয়েজ ঠিক না, বরং একটি ল্যাঙ্গুয়েজ পরিবার যা কিছু বিশেষত্ব বহন করে, আর প্রতি দশকে হয় এই পরিবারের কোন না কোন ল্যাঙ্গুয়েজের আবির্ভাব।

আসুন মাল্টীকোরের এই যুগে, যেখানে কঙ্কারেন্সি, থ্রেডিং ও রিয়েল টাইম হয়ে উঠেছে প্রোগ্রামিঙের বহুল আলোচিত টপিক, আর সেই অর্ধ শতাব্দীর আগেকার সেই ফাংশনাল প্রোগ্রামিংকে ভাবা হচ্ছে এই কঙ্কারেন্সি সমস্যা মোকাবেলা করার বাহন। ঠিক এই সময়ে হল সেই লিস্পের আধুনিকতম পুনর্জন্ম ক্লোজারের মধ্য দিয়ে। ক্লোজার লিস্পের সকল শক্তিকে উত্তরাধিকারসূত্রে পেয়েছে আর তার সাথে যুক্ত করেছে জাভা প্ল্যাটফরমের প্র্যাক্টিকালিটিকে । আর ফাংশনাল প্রোগ্রামিং তো রয়েছেই যা আপনার চিন্তাধারা ও কোডশিলতাকে করবে বৈচিত্র্যময়, উন্নততর। আর জাভার বিপুল ভাণ্ডার থাকছে আপনার ফরমায়েশ খাটার জন্য। কঙ্কারেন্সি, থ্রেডিং, প্যারালেলিজম, ফাংশনাল প্রোগ্রামিং, মেটা প্রোগ্রামিং আসবে আপনার হাতের নাগালে আর তাও খুব কম সময়ে যদি আপনি ক্লোজারকে আত্মস্থ করতে পারেন। গ্যারান্টি সহকারে বলা যায়, আপনি যেই ল্যাঙ্গুয়েজের প্রোগ্রামারই হন না কেন, ক্লোজার ও এর প্রোগ্রামিং স্টাইল আপনার স্কিলকে করবে আরও তীক্ষ্ণ।

এই বইটি লিখা হচ্ছে ক্লোজারকে নিয়ে। আপনাকে লিস্প ও ফাংশনাল প্রোগ্রামিঙের সাথে পরিচয় করিয়ে দেওয়ার জন্য আমাদের এই প্রয়াস। ক্লোজারের ল্যাঙ্গুয়েজগত আদ্যপান্ত স্টেপ বাই স্টেপ আলোচনা করা হবে এখানে। বিশেষভাবে ফাংশনাল প্রোগ্রামিং ও কঙ্কারেন্সিকে প্রাধান্য দেওয়া হবে। সর্বোপরি চেষ্টা হবে থিওরি ও প্র্যাক্টিকালিটির মাঝে সমন্বয় সাধনে যা খুব ভাল করেই পারে ক্লোজার। ওয়েব অ্যাপ্লিকেশান হোক, স্ক্রেপিং হোক, হোক ডাটা এনালাইসিস, অথবা হতে পারে প্রোগ্রামিং প্রব্লেম সল্ভিং, সব কিছুই ভিন্ন, সুন্দরভাবে করা যায় ক্লোজারের মাধ্যমে, আরও সুচারুভাবে, এবং এই বইটির মাধ্যমে আমাদের চেষ্টা থাকবে আপনাকে সেই ভিন্ন, সুন্দর, ও সুচারু দৃষ্টিভঙ্গির সাথে পরিচয় করিয়ে দেওয়া। ক্লোজার ও লিস্পের সুন্দরতম জগতে আপনাকে স্বাগতম।

টার্গেট পাঠকগণ

আমরা ভাবতে পছন্দ করি যে আপনি যে কোন ব্যাকগ্রাউন্ডের হন না কেন, আপনি এই বইটি পড়ে লাভবান হবেন। কিন্তু আপনি সবচেয়ে উপকৃত হবেন যদি আপনার প্রোগ্রামিং এক্সপিরিয়েন্স থাকে (ফাংশনাল না হলেও চলবে)। ক্লোজার আপনাকে ভিন্ন ধারার একটি প্রোগ্রামিং পন্থা দেখাবে যা আপনার বর্তমান স্কিলকে আরও সবল করবে যদিও আপনি আপনার কর্মক্ষেত্রে ক্লোজার ব্যবহার না করেন। সর্বোপরি আপনি যদি নতুন কিছু শিখতে ও প্রয়োগ করতে ভালবাসেন, এই বইটি আপনার জন্য।

বইটি পড়ার সবচেয়ে ভাল উপায়

এই বইটি চারটি পর্বে বিভক্ত । আর প্রতিটি পর্বে রয়েছে কিছু চ্যাপ্টার। সবচেয়ে ভাল ফল পাবেন যদি ক্রমানুযায়ী চ্যাপ্টারগুলো পড়তে পারেন। প্রতিটি চ্যাপ্টার অবজেক্টিভ ও মোটিভেশন দিয়ে শুরু হবে টপিক স্পেসিফিক আলোচনা শেষে প্র্যাক্টিকাল উদাহরণ দিয়ে শেষ হবে। প্রতিটি কোড ওপেন সোর্স থাকবে (তা তো বটেই)।

"Lisp is a language for doing what you've been told is impossible."

-- Kent Pitman

ওপেন সোর্স

এই বইটি মূলত স্বেচ্ছাশ্রমে লেখা এবং বইটি সম্পূর্ন ওপেন সোর্স । এখানে তাই আপনিও অবদান রাখতে পারেন লেখক হিসেবে । আপনার কন্ট্রিবিউশান গৃহীত হলে অবদানকারীদের তালিকায় আপনার নাম যোগ করে দেওয়া হবে ।

এটি মূলত একটি গিটহাব রিপোজিটোরি যেখানে এই বইয়ের আর্টিকেল গুলো মার্কডাউন ফরম্যাটে লেখা হচ্ছে। রিপোজটরিটি ফর্ক করে পুল রিকুয়েস্ট পাঠানোর মাধ্যমে আপনারাও অবদান রাখতে পারেন ।

Join the chat at https://gitter.im/howtocode-com-bd/clojure.howtocode.com.bd

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.