मैंने व्यक्तिगत रूप से QP फ्रेमवर्क / लाइब्रेरी का उपयोग नहीं किया है, क्योंकि GPL लाइसेंस है। उस समय, मुझे नहीं लगा कि मेरे नियोक्ता QP का उपयोग करते हुए HSM (पदानुक्रमित राज्य मशीनों) के साथ प्रयोग करने के लिए मेरे लिए आटा तैयार करने के लिए तैयार थे। मुझे अपना स्वयं का कार्यान्वयन करना पड़ा जो कि QP के समान था जब मैं एक भयंकर राज्य मशीन का निर्माण कर रहा था, जो कि जॉबी के उदाहरण की तरह कोड की सैकड़ों पंक्तियों को लेती थी, लेकिन 1000 बार। पुरानी डिजाइन जिसे तंग लाइन पर चलने में सुविधाएँ प्राप्त करने के लिए उधार लिया गया था। बनाए रखने के लिए एक भयानक दर्द था। मैं कुछ और तोड़ने के डर से इसमें कुछ नया जोड़ने की कोशिश कर रहा था।
मैंने कोड को एक HSM में बदल दिया, जिसने सिस्टम को कैसे व्यवहार करना चाहिए, इस पर व्यक्तिगत रूप से बहुत अधिक समझ बनाई। मैंने जितनी कल्पना की थी, उससे कहीं बेहतर काम किया। इसे संशोधित करना और बनाए रखना इतना आसान था कि मैं कभी सपने देख सकता था। यहां तक कि मुझे सिस्टम में अप्रत्याशित व्यवहार के कारण, राज्य मशीन का लगभग फिर से उपयोग करना पड़ा। मेरे द्वारा बनाए गए ढांचे के साथ इसे तय करना इतना आसान था, और मुझे यकीन है कि यह क्यूपी में उतना आसान था। मेरे द्वारा बनाया गया फ्रेमवर्क लोकप्रिय हो गया और हमारे कोडबेस के अंदर कुछ अन्य जटिल स्टेट मशीनों में फैल गया।
मेरे पास एक मित्र था जो एक रोबोट में जावा का उपयोग करके क्वांटम फ्रेमवर्क को लागू करता था जो बहुत अच्छी तरह से काम करता था। यह कुछ इनपुट्स के आधार पर रोबोट के निर्णय लेने वाले एल्गोरिदम का हिस्सा था। यह स्वाभाविक रूप से फिट था, इसे देखते हुए इसे रोबोट की स्थिति के आधार पर निर्णय लेना था।
क्यूपी की सुंदरता के बारे में मैं समझता हूं कि राज्य मशीन के डिजाइन के लिए तैयार करने की क्षमता है जो आपके प्रोसेसर के लिए अनुकूलित है और अक्षम बायलरप्लेट कोड को छोड़ने वाले CASE टूल पर भरोसा नहीं करना है। लेकिन, यदि आप अपने डिजाइन का वर्णन करने के लिए राज्य मशीनों के जटिल सेट का उपयोग करते हैं, तो मैं केवल QP का उपयोग करूंगा।
यदि आप सभी के पास जॉबी के उदाहरण के रूप में कुछ सरल है, तो बस इसे ऐसे करें जैसे उसने समझाया था। लेकिन अगर आप अपनी स्टेट मशीन को हर तरह के "इफ" और स्टेटमेंट्स के साथ अलग-अलग स्थिति में लिपटे हुए और बढ़ते हुए पाते हैं ... तो हो सकता है कि यह QP जैसी किसी चीज को आजमाने के लिए HSM में तोड़ दे।