বর্তমান ফাংশনাল রিঅ্যাকটিভ প্রোগ্রামিং বাস্তবায়নগুলির স্থিতি কী?


90

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

df/dt = c*f(t) + u(t)

যেখানে u(t)একরকম 'বুদ্ধিমান নিয়ন্ত্রণ' উপস্থাপন করে। এই সিস্টেমগুলি ফাংশনাল রিঅ্যাকটিভ প্রোগ্রামিং উপমাতে খুব সুন্দরভাবে ফিট করে দেখায়।

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

আমার প্রশ্ন হ'ল, আজ আরও উন্নত, এমনকি ব্যবহারিক অ্যাপ্লিকেশনগুলির জন্য আরও বেশি পরিপক্ক, আপ টু ডেট, দক্ষ রক্ষণাবেক্ষণ, পারফরম্যান্স-সুরের বিকল্প কী?

এই উইকি পৃষ্ঠাতে হাস্কেলের জন্য বেশ কয়েকটি বিকল্পের তালিকা রয়েছে তবে আমি নিম্নলিখিত বিষয়গুলি সম্পর্কে পরিষ্কার নই:

  1. এই প্রোগ্রামিং দৃষ্টান্তের অন্যতম উদ্ভাবক কনল এলিয়ট হ'ল "প্রতিক্রিয়াশীল" স্ট্যাটাসটি, যিনি (আমি এটি বুঝতে পেরেছি), এটি কিছুটা বাসি দেখায়। আমি তার কোডটি পছন্দ করি, তবে সম্ভবত আমার আরও অন্যান্য যুগোপযোগী বিকল্পগুলি চেষ্টা করা উচিত? সিনট্যাক্স / পারফরম্যান্স / রানটাইম-স্থিতিশীলতার ক্ষেত্রে তাদের মধ্যে প্রাথমিক পার্থক্য কী?

  2. ২০১১ সালে বিভাগের survey জরিপ থেকে উদ্ধৃতি দিতে , " ... এফআরপি বাস্তবায়নগুলি এখনও ডোমেনগুলিতে কার্যকরভাবে ব্যবহার করতে পারফরম্যান্সে যথেষ্ট দক্ষ বা অনুমানযোগ্য নয় যেগুলির জন্য বিলম্বের গ্যারান্টি প্রয়োজন ... "। এফআরপি 15 বছরেরও বেশি সময় ধরে রয়েছে এই সত্যটি প্রদান করে, সমীক্ষায় কিছু আকর্ষণীয় সম্ভাব্য অনুকূলকরণের পরামর্শ দেওয়া হয়েছে, আমি এই ধারণাটি পেয়েছি যে এই পারফরম্যান্স সমস্যাটি কমপক্ষে কয়েক বছরের মধ্যে সমাধান করতে খুব বা এমনকি অন্তর্নিহিতভাবে কঠিন হতে পারে। এটা কি সত্য?

  3. সমীক্ষার একই লেখক তার ব্লগে "সময় ফাঁস" সম্পর্কে কথা বলেছেন । সমস্যাটি কি এফআরপির সাথে অনন্য, বা খাঁটি, অ-কঠোর ভাষায় প্রোগ্রামিং করার সময় আমরা সাধারণত কিছু পাই? পর্যাপ্ত পারফরম্যান্ট না হলে আপনি কি সময়ের সাথে সাথে এফআরপি-ভিত্তিক সিস্টেমকে স্থিতিশীল করা খুব কঠিন বলে মনে করেছেন?

  4. এটি কি এখনও গবেষণা স্তরের প্রকল্প? উদ্ভিদ প্রকৌশলী, রোবোটিকস ইঞ্জিনিয়ার, আর্থিক প্রকৌশলী ইত্যাদির মতো লোকেরা কি আসলে তাদের ব্যবহার করছে (তাদের প্রয়োজনীয়তার সাথে মিলিত তীব্র ভাষায়)?

যদিও আমি ব্যক্তিগতভাবে একটি হাস্কেল বাস্তবায়ন পছন্দ করি তবে আমি অন্যান্য পরামর্শের জন্য উন্মুক্ত। উদাহরণস্বরূপ, এরলং বাস্তবায়নটি বিশেষত মজাদার হবে --- তখন বুদ্ধিমান, অভিযোজিত, স্ব-শিক্ষার সার্ভার প্রক্রিয়াটি পাওয়া খুব সহজ হবে!

উত্তর:


82

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

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

  • প্রতিক্রিয়াশীল-কলা traditionalতিহ্যবাহী এফআরপি দৃষ্টান্ত তৈরি করে। যদিও এটি ব্যবহারের পক্ষে ব্যবহারিক তবে এটি ক্লাসিক এফআরপি গবেষণার ভিত্তি হিসাবে কাজ করে। এর প্রধান ফোকাসটি ব্যবহারকারী ইন্টারফেসের উপর এবং ডাব্লুএক্সএক্সের জন্য একটি তৈরি ইন্টারফেস রয়েছে। স্টাইল: আবেদনকারী। প্রারম্ভিক লেখক এবং রক্ষণাবেক্ষণকারী: হেনরিচ এপেলফাস।

আপনার উভয়টি চেষ্টা করা উচিত, তবে আপনার প্রয়োগের উপর নির্ভর করে আপনি সম্ভবত এক বা অন্যটিকে আরও ভাল ফিট করতে পারেন।

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

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

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

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

আমি এখনই এফআরপি ব্যবহার করে কোনও বাণিজ্যিক বা অন্যথায় বৃহদায়তন প্রকল্পের কথা জানি। গ্রন্থাগারগুলি প্রস্তুত, তবে আমি মনে করি লোকেরা নেই - এখনও।


দুর্দান্ত উত্তর, ধন্যবাদ .. আপনার লাইব্রেরির উপরে কিছু শক্তিবৃদ্ধি শেখার অ্যালগরিদমগুলি প্রয়োগ করা একটি মজাদার অংশ হবে।
mनिश

4
উল্লেখযোগ্যভাবে, হাস্কেল ( নিক্কি এবং রোবট ) এ লেখা একটি সাম্প্রতিক ইন্ডি গেম এফআরপি ব্যবহার না করার সিদ্ধান্ত নিয়েছে ।
অ্যালেক্স আর

23

যদিও ইতিমধ্যে কিছু ভাল উত্তর রয়েছে, তবে আমি আপনার নির্দিষ্ট প্রশ্নের উত্তর দেওয়ার চেষ্টা করতে যাচ্ছি।

  1. প্রতিক্রিয়াশীল গুরুতর প্রকল্পগুলির জন্য কার্যকর নয়, সময় ফাঁসের সমস্যার কারণে। (দেখুন # 3) সর্বাধিক অনুরূপ ডিজাইনের বর্তমান লাইব্রেরিটি হ'ল প্রতিক্রিয়াশীল-কলা, যা অনুপ্রেরণা হিসাবে প্রতিক্রিয়াশীল হিসাবে এবং কনল এলিয়টের সাথে আলোচনার মাধ্যমে তৈরি হয়েছিল।

  2. যদিও হাস্কেল নিজেই হার্ড রিয়েল-টাইম অ্যাপ্লিকেশনগুলির জন্য অনুপযুক্ত, কিছু ক্ষেত্রে নরম রিয়েলটাইম অ্যাপ্লিকেশনগুলির জন্য হাস্কেল ব্যবহার করা সম্ভব। আমি বর্তমান গবেষণার সাথে পরিচিত নই, তবে আমি বিশ্বাস করি না যে এটি একটি অনিবার্য সমস্যা। আমার সন্দেহ হয় যে ইয়াম্পার মতো সিস্টেম, বা এটমের মতো কোড জেনারেশন সিস্টেমগুলি সম্ভবত এটি সমাধানের জন্য সেরা পদ্ধতির।

  3. একটি "টাইম লিক" স্যুইচযোগ্য এফআরপি-র নির্দিষ্ট সমস্যা। ফুটোটি ঘটে যখন কোনও সিস্টেম পুরানো জিনিসগুলি মুক্ত করতে অক্ষম হয় কারণ ভবিষ্যতে কোনও সময়ে যদি একটি স্যুইচ ঘটে থাকে তবে এটি তাদের প্রয়োজন হতে পারে। একটি মেমরি ফাঁস (যা বেশ তীব্র হতে পারে) ছাড়াও, এর আরেকটি পরিণতি হ'ল, যখন স্যুইচটি ঘটে, তখন সিস্টেমটি বিরতি দিতে হবে যখন বর্তমান অবস্থা উত্পন্ন করতে পুরানো অবজেক্টগুলির শৃঙ্খলা বিভ্রান্ত হয়।

অ-স্যুইচযোগ্য ফ্রিপ লাইব্রেরি যেমন ইয়াম্পা এবং প্রতিক্রিয়াশীল-কলা এর পুরানো সংস্করণগুলি সময় ফাঁস হয় না। স্যুইচিবল ফ্রিপ লাইব্রেরিগুলি সাধারণত দুটি স্কিমের মধ্যে একটি নিয়োগ করে: হয় তাদের একটি বিশেষ "ক্রিয়েশন মোনাড" থাকে যাতে এফআরপি মান তৈরি হয়, বা যেগুলি স্যুইচগুলি ঘটতে পারে তা সীমাবদ্ধ করতে তারা একটি "বার্ধক্য" টাইপ পরামিতি ব্যবহার করে। এ্যালরিয়া (এবং সম্ভবত নেটওয়্যার?) প্রাক্তনটি ব্যবহার করে, যেখানে সাম্প্রতিক প্রতিক্রিয়াশীল-কলা এবং আঙ্গুর ব্যবহার পরে রয়েছে।

"স্যুইচযোগ্য ফ্রিপ" দ্বারা, আমার অর্থ এমন একটি যা কনালের ফাংশন switcher :: Behavior a -> Event (Behavior a) -> Behavior aবা অভিন্ন শব্দার্থক শব্দ প্রয়োগ করে । এর মানে হল যে নেটওয়ার্কটি চালিত হওয়ার সাথে সাথে আকারটি গতিশীল পরিবর্তন করতে পারে।

এটি মোনাডিক ইন্টারফেস সম্পর্কে @ এর্টসের বক্তব্যটির সত্যই বিরোধিতা করে না: এটি প্রমাণিত হয়েছে যে Monadকোনও Eventসময়ের জন্য একটি উদাহরণ সরবরাহ করা সময় ফাঁস সম্ভব করে তোলে এবং উপরের দুটি পদ্ধতির সাথে সমতুল্য মোনাডের উদাহরণগুলি সংজ্ঞায়িত করা আর সম্ভব নয়।

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


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


4
@ হেইনরিচএফফেল্মাস: এটি একটি আকর্ষণীয় বিষয়। আমি সাধারণত তীর-ভিত্তিক লাইব্রেরিগুলিকে একইভাবে পরিবর্তনযোগ্য হিসাবে ভাবি না যেহেতু অ্যালিরিয়া / আঙ্গুর / বর্তমান-প্রতিক্রিয়াশীল-কলা। আমি মনে করি তাদের স্যুইচিং প্রতিক্রিয়াশীল-কলার পূর্ববর্তী সংস্করণগুলিতে যা প্রয়োজন ছিল তার অনেক কাছাকাছি। এটি কেবল একটি অন্তর অনুভূতি যদিও, আমি কী বোঝাতে চাইছি তা বর্ণনা করার জন্য আমি এটি যথেষ্ট চিন্তাও করি নি।
জন এল

4
@ ড্যানবার্টন ধন্যবাদ, আমি এই নামটি মনে করতে ব্যর্থ চেষ্টা করছি। আমি সম্মত যে সোডিয়ামকে একটি আধুনিক এফআরপি গ্রন্থাগার হিসাবে বিবেচনা করা উচিত, যদিও এটি প্রতিক্রিয়াশীল-কলা হিসাবে জনপ্রিয় নয়।
জন এল

যদিও আলোচনাটি অনুসরণ করা কিছুটা কঠিন, এটি মনে হচ্ছে যে নরম-রিয়েলটাইম সিস্টেমটি সত্যই সম্ভব, যদি জিসি সময়কে কোনওভাবে আবদ্ধ করা যায়। যাইহোক আপনার দুর্দান্ত উত্তরের জন্য ধন্যবাদ।
mनिश

20

আমি মনো এবং। নেট স্পেস এবং হ্যাস্কেল স্পেস থেকে একটি বেশ কয়েকটি আইটেমের তালিকা করতে যা আমি খুব বেশি আগে খুঁজে পাইনি। আমি হাস্কেল দিয়ে শুরু করব।

এলম - লিঙ্ক

এর সাইট অনুসারে এর বর্ণনা:

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

এটির নিজস্ব বৈকল্পিক এফআরপি রয়েছে । এর উদাহরণগুলির সাথে খেলে এটি বেশ পরিপক্ক বলে মনে হয়।

প্রতিক্রিয়াশীল এক্সটেনশনগুলি - লিঙ্ক

এর প্রথম পৃষ্ঠা থেকে বর্ণনা:

রিঅ্যাকটিভ এক্সটেনশনস (আরএক্স) পর্যবেক্ষণযোগ্য ক্রম এবং লিনকিউ-স্টাইলের ক্যোয়ারী অপারেটরগুলি ব্যবহার করে অ্যাসিনক্রোনাস এবং ইভেন্ট-ভিত্তিক প্রোগ্রামগুলি রচনা করার জন্য একটি গ্রন্থাগার। আরএক্স ব্যবহার করে, বিকাশকারীরা পর্যবেক্ষণযোগ্যগুলির সাথে অ্যাসিনক্রোনাস ডেটা স্ট্রিম উপস্থাপন করে, লিনকিউ অপারেটরগুলি ব্যবহার করে অ্যাসিঙ্ক্রোনাস ডেটা স্ট্রিমগুলি অনুসন্ধান করে এবং শিডিয়ুলারগুলি ব্যবহার করে অ্যাসিনক্রোনাস ডেটা স্ট্রিমগুলিতে একত্রে প্যারামিটারাইজ করে। সহজ কথায় বলতে গেলে, আরএক্স = পর্যবেক্ষণযোগ্য + লিনকি + শিডিউলার।

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

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

এর ওপেন সোর্সিং এর আইএল-টু-জেএস সংকলকের ওপেন সোর্সিং সহ এসেছে, সুতরাং এটি সম্ভবত জাভাস্ক্রিপ্ট বা এলমের সাথে ভালভাবে কাজ করতে পারে।

আপনি সম্ভবত এফ # / সি # / জেএস / হাস্কেলকে খুব সুন্দরভাবে একটি বার্তা ব্রোকার যেমন র‌্যাবিট এমকিউ এবং সোকসজেএস ব্যবহার করে একসাথে বাঁধতে পারেন।

ব্লিং ইউআই টুলকিট - লিঙ্ক

এর প্রথম পৃষ্ঠা থেকে বর্ণনা:

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

প্রশংসাসূচক LtU-নিবন্ধ

আমি এটি পরীক্ষা করেছি, তবে এটির সাথে কোনও ক্লায়েন্ট প্রকল্পের জন্য কাজ করা হয়নি। এটি দেখতে দুর্দান্ত লাগে, সুন্দর সি # অপারেটর ওভারলোডিং করে মানগুলির মধ্যে বাইন্ডিং তৈরি করে। এটি ইভেন্ট উত্স হিসাবে ডাব্লুপিএফ / এসএল / (উইনআরটি) এর নির্ভরতা বৈশিষ্ট্যগুলি ব্যবহার করে। এর 3 ডি অ্যানিমেশনগুলি যুক্তিসঙ্গত হার্ডওয়্যারে ভাল কাজ করে। আমি যদি ভিজুয়ালাইজেশনের প্রয়োজনে কোনও প্রকল্প শেষ করি তবে আমি এটি ব্যবহার করব; সম্ভবত এটি উইন্ডোজ 8 এ পোর্ট করে।

ReactiveUI - লিঙ্ক

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

মন্তব্য

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

স্পষ্টতই সি # এবং এফ # কঠোরভাবে মূল্যায়ন করা হয়, তাই সময়-ফাঁস এখানে কোনও সমস্যা নয়। জেএসের জন্য একই। যদিও এটি পুনরায় খেলতে সক্ষম বা ক্যাশেড পর্যবেক্ষণে সমস্যা হতে পারে।


দুর্দান্ত উত্তরের জন্য ধন্যবাদ। হাস্কেল এফআরপি বাস্তবায়নের জন্য আমি যে জিনিসগুলি পছন্দ করেছি তার একটি হ'ল তারা মনে হয় আমাকে নিয়ন্ত্রণ u(t)এবং সিমুলেশনগুলির জন্য কম্পিউটারগুলি পরিষ্কারভাবে ডিকুয়াল করার অনুমতি দেয় f(t)। এফ # বাস্তবায়নের ক্ষেত্রে কি এটি?
mनिश

আমার ধারণা আপনি বলতে পারেন যে এই দুটি ফাংশন অস্থায়ীভাবে ডিকোপলড, হ্যাঁ। তারা সম্ভবত যুক্তিযুক্তভাবে decoupled না যদিও। ;)
হেনরিক

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

আপনি কি বোঝাচ্ছেন যে সমস্ত কার্যকরী প্রতিক্রিয়াশীল প্রোগ্রামিং লাইব বাস্তবায়নের জন্য বিযুক্তির চেয়ে নিয়মিত সময় মডেল করা দরকার? আমি "প্রসেস বীজগণিত উইথ টাইমিং: রিয়েল টাইম এবং ডিস্রিপ্ট টাইম" নামে একটি কাগজ পেয়েছি - আপনি কী বলছেন তা বোঝার জন্য এটি কি ভাল সূচনা পয়েন্ট?
হেনরিক

আমি সব বলার দরকার বলছি না - কিছু করেন, কিছু করেন না। তবে যেগুলি কিছু নির্দিষ্ট কাজের জন্য আরও উপযুক্ত, এবং যেগুলি অন্যদের পক্ষে বেশি উপযুক্ত নয় ...
sclv
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.