আমি বেশিরভাগই সি / সি ++ প্রোগ্রামার, যার অর্থ আমার অভিজ্ঞতার বেশিরভাগটি প্রক্রিয়াগত এবং অবজেক্ট-ভিত্তিক দৃষ্টান্তগুলির সাথে। যাইহোক, অনেক সি ++ প্রোগ্রামার সচেতন, সি ++ বছরের পর বছর ধরে জোর দিয়ে একটি কার্যকরী-ইস্কুল স্টাইলে স্থানান্তরিত হয়েছে, অবশেষে সি ++ 0 এক্সের ল্যাম্বডাস এবং ক্লোজারগুলির সংযোজনে শেষ হয়েছে।
নির্বিশেষে, আমার সি ++ ব্যবহার করে একটি কার্যকরী শৈলীতে কোডিং করার যথেষ্ট অভিজ্ঞতা রয়েছে, তবে লিস্প, হাস্কেল ইত্যাদির মতো প্রকৃত কার্যকরী ভাষার সাথে আমার খুব কম অভিজ্ঞতা আছে
আমি সম্প্রতি এই ভাষাগুলি অধ্যয়ন শুরু করেছি, কারণ বিশুদ্ধভাবে কার্যকরী ভাষাগুলিতে "কোনও পার্শ্ব-প্রতিক্রিয়া" সম্পর্কে ধারণাটি আমাকে সর্বদা আগ্রহী করে তুলেছে, বিশেষত এর অ্যাপ্লিকেশনগুলির সাথে সম্মতি এবং বিতরণকৃত কম্পিউটারের ক্ষেত্রে ards
যাইহোক, একটি সি ++ পটভূমি থেকে এসে আমি বিভ্রান্ত হয়েছি যে এই "কোনও পার্শ্ব-প্রতিক্রিয়া" ফিলসফি অ্যাসিঙ্ক্রোনাস প্রোগ্রামিংয়ের সাথে কীভাবে কাজ করে। অ্যাসিঙ্ক্রোনাস প্রোগ্রামিংয়ের অর্থ আমি এমন কোনও ফ্রেমওয়ার্ক / এপিআই / কোডিং শৈলী যা ব্যবহারকারী-সরবরাহিত ইভেন্ট হ্যান্ডলারগুলিকে সংশ্লেষপূর্ণভাবে ঘটে যাওয়া ইভেন্টগুলি পরিচালনা করতে প্রেরণ করে (প্রোগ্রামের প্রবাহের বাইরে)) এর মধ্যে বুস্ট.এএসআইও, বা এমনকি সাদামাটা পুরানো সি এর মতো অ্যাসিনক্রোনাস লাইব্রেরি অন্তর্ভুক্ত রয়েছে includes সিগন্যাল হ্যান্ডলার বা জাভা জিইআইআই ইভেন্ট হ্যান্ডলারগুলি।
এই সমস্তগুলির মধ্যে একটি বিষয় সাধারণভাবে দেখা যায় যে অ্যাসিনক্রোনাস প্রোগ্রামিংয়ের প্রকৃতির পক্ষে পার্শ্ব-প্রতিক্রিয়া (রাষ্ট্র) তৈরি করা প্রয়োজন বলে মনে হয় যাতে প্রোগ্রামের মূল প্রবাহটি সচেতন হওয়ার জন্য যে কোনও অ্যাসিঙ্ক্রোনাস ইভেন্ট হ্যান্ডলার আহ্বান করা হয়েছে। সাধারণত, বুস্ট.এএসআইও-র মতো কাঠামোয় একটি ইভেন্ট হ্যান্ডলার একটি সামগ্রীর অবস্থার পরিবর্তন করে, যাতে ইভেন্টটির প্রভাব ইভেন্ট হ্যান্ডলার ফাংশনের লাইফ-টাইম ছাড়িয়ে প্রচারিত হয়। সত্যিই, একটি ইভেন্ট হ্যান্ডলার আর কী করতে পারে? এটি কল পয়েন্টের কোনও মান "ফেরত" দিতে পারে না, কারণ কোনও কল পয়েন্ট নেই। ইভেন্ট হ্যান্ডলারটি প্রোগ্রামের মূল প্রবাহের অংশ নয়, সুতরাং প্রকৃত প্রোগ্রামে এর কোনও প্রভাব ফেলতে পারে কেবল একমাত্র উপায় হ'ল কিছু পরিস্থিতি পরিবর্তন করা (বা অন্য longjmp
কোনও কার্যনির্বাহী স্থানে)।
সুতরাং দেখে মনে হয় যে অ্যাসিনক্রোনাস প্রোগ্রামিং সমস্তই অ্যাসিনক্রোনাস দ্বারা পার্শ্ব-প্রতিক্রিয়া তৈরির বিষয়ে। এটি কার্যকরী প্রোগ্রামিংয়ের লক্ষ্যগুলির সাথে সম্পূর্ণ মতবিরোধের মধ্যে বলে মনে হচ্ছে। ক্রিয়ামূলক ভাষায় এই দুটি দৃষ্টান্ত কীভাবে মিলিত হয় (বাস্তবে)?