2009-04-17 27 views
17

मेरे पास ACE, Boost और wxWidgets के साथ काफी मात्रा में अनुभव है। मैंने हाल ही में POCO पुस्तकालयों को पाया है। क्या किसी के पास उनके साथ कोई अनुभव है और प्रदर्शन और विश्वसनीयता के संबंध में वे एसीई, बूस्ट और wxwidgets की तुलना कैसे करते हैं?एसीई बनाम बूस्ट बनाम पोको बनाम WxWidgets

मुझे विशेष रूप से एसीई को पीओसीओ के साथ बदलने में दिलचस्पी है। मैं एक एक्स 64 लक्ष्य के साथ VS2008 के साथ संकलन करने के लिए एसीई प्राप्त करने में असमर्थ रहा हूं। मैं ज्यादातर ACE_Task का उपयोग करता हूं, इसलिए मुझे लगता है कि मैं उन लोगों को पॉको के धागे और संदेश कतारों से प्रतिस्थापित कर सकता हूं।

पीओसीओ के कुछ अन्य भाग जो मुझे रूचि देते हैं वे HTTPServer, HTTPClient, और स्तरित कॉन्फ़िगरेशन हैं। उन पुस्तकालयों बूस्ट और wxwidgets में पुस्तकालयों के समान हैं, लेकिन मैं wxwidgets के उपयोग को जीयूआई घटकों तक सीमित करने की कोशिश करता हूं और तुलनीय बूस्ट पुस्तकालय ... मुश्किल है।

मुझे किसी भी अनुभव में दिलचस्पी है जो कोई भी पॉको, अच्छा या बुरा के बारे में साझा कर सकता है।

+0

यदि आपको एसीई के साथ समस्या हो रही है, तो http://www.riverace.com/ पर स्टीव हस्टन से संपर्क करें - वह लंबे समय से एसीई पर काम कर रहा है। जब मैंने पिछली कंपनी में एसीई के साथ काम किया, तो मैंने उन समस्याओं के बारे में उनसे बात की जो हम कर रहे थे और वह अच्छा और बेहद सहायक था। हम अंततः उससे समर्थन खरीदने घायल हो गए और यह हर पैसा लायक था। –

+0

आपका शीर्षक भ्रामक है, जैसे कि आप सेब और संतरे की तुलना करने की कोशिश कर रहे हैं। मैं अभी भी नहीं प्राप्त कर सकता कि आप डब्ल्यूएक्स का उल्लेख क्यों करते हैं और बढ़ावा देते हैं? – mentat

+3

पीओसीओ और बूस्ट (जैसे साझा पॉइंटर्स, एएसओ, प्रोग्राम_ओप्शन) के बीच महत्वपूर्ण ओवरलैप है। इसी प्रकार, पीओसीओ और डब्ल्यूएक्सविड्ज काफी हद तक ओवरलैप करते हैं। –

उत्तर

17

मैंने पीओसीओ के कुछ हिस्सों का उपयोग बार-बार किया है और इसे बहुत अच्छा lib पाया है। मैंने काफी हद तक एसीई को कई साल पहले छोड़ दिया लेकिन पीओसीओ में कुछ समान पैटर्न शामिल हैं - कार्य, रिएक्टर, आदि। मुझे इसके साथ कोई समस्या नहीं है इसलिए मुझे यह मानना ​​है कि यह स्थिर है।

कुछ पहलुओं कि मुझे पसंद है:

  • यह एक बहुत अच्छी तरह से एकीकृत OOP पदानुक्रम है, इसलिए घटकों एक दूसरे के साथ अच्छी तरह से काम करते हैं। बूस्ट जैसे कुछ की तुलना में इसमें बहुत अधिक संयोजी अनुभव होता है जो कि टुकड़ा-भोजन है।

  • स्रोत कोड उपलब्ध है और बहुत स्पष्ट है। आपको यह समझने के लिए समय के बड़े ब्लॉक को समर्पित करने की आवश्यकता नहीं है कि यह क्या कर रहा है (एसीई, कम से कम आखिरी बार मैंने स्रोत को देखा) या टेम्पलेट विज़ार्ड (बूस्ट) बनें।

  • घटक मानक सी ++ के करीब चिपकते हैं। अपवाद std :: अपवाद से व्युत्पन्न होते हैं; उन्होंने अभी तक एक और-स्ट्रिंग क्लास, आदि को पुन: पेश नहीं किया है

  • यह आश्चर्यजनक व्यापक है। पहली नज़र में दिखाई देने से कहीं ज्यादा है।

नकारात्मक पक्ष यह है:

  • निजी प्राथमिकता का मामला है, लेकिन लेखकों सुंदर एक प्रति हैडर एक वर्ग फ़ाइल मॉडल के लिए बहुत कुछ छड़ी ताकि आप विभिन्न फ़ाइलों का एक बहुत सहित अंत।

  • सीमित दस्तावेज़ीकरण। अधिकतर डॉक्सिजन प्रकार एपीआई पेज और स्रोत उदाहरणों को इंगित करने वाले कुछ पीडीएफ। यह प्रयोग योग्य है लेकिन lib के आकार पर विचार करना प्रारंभ में मुश्किल है यदि आप घटकों का सबसे अच्छा उपयोग कर रहे हैं।

  • यदि इसके आसपास एक सक्रिय समुदाय बनाया गया है, तो मैंने इसे कभी नहीं पाया। पैकेज कुछ यूरोपीय आधारित कंपनी द्वारा बनाए रखा जाता है और उनके पास विकी थी लेकिन मुझे यह सक्रिय या उपयोगी नहीं मिला।

सभी चीजों को माना जाता है, नकारात्मकता काफी मामूली है। मुझे लगता है कि यह एक बहुत अच्छी पुस्तकालय है और निश्चित रूप से इसकी सिफारिश करेगा।

6

मैंने कभी भी एसीई का उपयोग नहीं किया है, लेकिन मैंने बूस्ट और पोको का उपयोग किया। मुझे वास्तव में पॉको की कोडिंग शैली पसंद है। पैकेज सुसंगत हैं और स्रोत कोड पढ़ने में आसान है। वे बढ़ावा देने की तरह पागल टेम्पलेट नहीं हैं। मेरे अनुभव में मैं बूस्ट - सीरियलाइजेशन पैकेज, पॉइंटर मैप कंटेनर इत्यादि का उपयोग करने के बारे में पढ़ने में घंटों खर्च करता हूं- और पॉको सामान का उपयोग करने के तरीके को पढ़ने में थोड़ा समय लगता है। मैं कहूंगा कि उनके पास अच्छी डिजाइन है और जहां आवश्यक हो वहां टेम्पलेट का उपयोग करें।

नकारात्मक पक्ष पर उनके पास एपीआई दस्तावेज है लेकिन उनके पास पैकेज का उपयोग करने के तरीके पर व्यापक दस्तावेज नहीं है। इसके लिए आप आमतौर पर उदाहरण स्रोत कोड, या उनके यूनिट परीक्षण स्रोत कोड देखते हैं।

मेरे पास Windows/Linux पर किसी भी स्पष्ट त्रुटियों के बिना HTTPServer काम कर रहा है।

तो इसे 1 सकारात्मक अनुभव के रूप में चॉक करें।

2

मेरे लिए ऐसा लगता है कि बूस्ट में नए सी ++ पुस्तकालयों के लिए सबसे अधिक कर्षण है और तथ्य यह है कि उनमें से कई आगामी सी ++ मानक में स्वीकार किए जाते हैं।

मैं एसीई का उपयोग करता हूं और खुद को बढ़ावा देता हूं और जिन कारणों से मैंने उन्हें चुना है वे हैं कि वे परिपक्व हैं (विशेष रूप से एसीई) में एक बड़ा मजबूत उपयोगकर्ता समुदाय है जो सुनिश्चित करता है कि उन्हें बनाए रखा जाएगा और बढ़ाया जाएगा और मुझे अच्छी गुणवत्ता वाले पेशेवर समर्थन मिल सकते हैं। हम अपने एसीई/टीएओ समर्थन के लिए Remedy IT का उपयोग करते हैं और अत्यधिक संतुष्ट हैं।

चूंकि एसीई बूस्ट की तुलना में बहुत पुरानी लाइब्रेरी है और इसके लक्ष्यों में से एक अधिक विदेशी (जैसे एम्बेडेड) प्लेटफ़ॉर्म का समर्थन करना है, तो यह बूस्ट के रूप में बहुत अधिक खून बहने वाली सी ++ तकनीक का उपयोग नहीं करता है। मैं एसीई और बूस्ट के मिश्रण का उपयोग कर रहा हूं और उस संयोजन से बहुत खुश हूं।

मुझे नहीं पता कि आप मैच में wxwidgets क्यों डालते हैं, क्योंकि यह ज्यादातर ग्राफिक्स यूआई लाइब्रेरी है। लेकिन अगर मुझे कुछ सी ++ यूआई परियोजनाएं करनी पड़ीं तो मैं QT के साथ जाऊंगा, अधिकांशतः क्योंकि यह भी व्यापक रूप से उपयोग की जाने वाली लाइब्रेरी है (सभी केडीई डेस्कटॉप क्यूटी के शीर्ष पर बनाया गया है) और इसलिए अच्छी तरह से बनाए रखा गया है और मुझे एक बड़ी पहुंच होगी प्रश्न और समर्थन के लिए उपयोगकर्ता आधार।

+1

wxwidgets फ़ाइल/सॉकेट इत्यादि के लिए अपनी स्वयं की स्ट्रिंग और संग्रह कक्षाओं के साथ-साथ क्रॉस प्लेटफार्म उपयोगिता वर्ग को परिभाषित करता है सी ++ कंपाइलर्स एसटीएल (या टेम्पलेट्स!) –

+0

का समर्थन करने से पहले यह विरासत है यह एक आम गलतफहमी है कि wxwidgets केवल जीयूआई सामान है, लेकिन इसके लिए बहुत कुछ है। –

+0

@ जेरे.जोन्स क्यूटी करता है, लेकिन इसका मतलब यह नहीं है कि मैं इसे गैर यूआई सामग्री के लिए उपयोग करूंगा :-) – lothar

संबंधित मुद्दे