सबसे बड़ा अंतर UI का डिज़ाइन है। एक अच्छा GUI किसी एप्लिकेशन को बना या तोड़ सकता है। मैक प्रशंसक औसत मैक ओएस एक्स ऐप के सुंदर रूप से डिज़ाइन किए गए जीयूआई पर ध्यान आकर्षित करेंगे और उन्हें एक बिंदु मिला है, लेकिन यह एक प्रौद्योगिकी मुद्दा नहीं है - यह एक डिजाइन / लोकाचार / प्रयोज्य मुद्दा है।
उपयोगकर्ता किसी भी समय किसी भी क्रम में कुछ भी कर सकते हैं, कंसोल प्रोग्राम के विपरीत जिसमें आप या तो इनपुट के लिए पूछ रहे हैं या उन्हें आउटपुट बता रहे हैं। जब तक आप वर्कफ़्लो विज़ार्ड-स्टाइल लागू नहीं करते, आप यह नहीं मान सकते कि वे आपके द्वारा अपेक्षित आदेश का पालन करेंगे।
जैसा कि पहले ही उल्लेख किया गया है, ईवेंट इसमें एक बड़ी भूमिका निभाते हैं, और आप अंतिम ईवेंट की सेवा करते समय कई ईवेंट प्राप्त कर सकते हैं, इसलिए आप वास्तव में 'वर्तमान ईवेंट' के आधार पर अपने राज्य का निर्माण नहीं कर सकते। विभिन्न घटनाओं में संदर्भ बनाए रखने के लिए क्लोजर या एक समान तंत्र का उपयोग करें। एक कंसोल ऐप में, आपका FSM आमतौर पर 'प्राप्त इनपुट, प्रोसेस इनपुट, अपडेट आउटपुट' लूप के चारों ओर स्व-निहित होता है। जीयूआई प्रोग्रामिंग में एक ही तरह की संरचना नहीं है - 'मुख्य' एक फिर से प्रवेश करने वाली घटना-चालित चीज़ है, अक्सर एक गिन्नॉर्मस स्विच () स्टेटमेंट।
आपको अलग-अलग स्क्रीन साइज़ / रिज़ॉल्यूशन पर विचार करने की ज़रूरत है और GUI को 800x600 तक के यूज़र्स मॉनिटर पर अधिकतम आकार देने की अनुमति देनी चाहिए।
आपको विभिन्न इनपुट रणनीतियों पर विचार करने की आवश्यकता है - माउस, कीबोर्ड, टच, आदि। कुछ प्रौद्योगिकियां मुफ्त (माउस-व्हील स्क्रॉलिंग) के लिए आती हैं, अन्य को कुछ एकीकरण कार्य (इंक) की आवश्यकता होती है।
पहुँच क्षमता - एक GUI कम सक्षम उपयोगकर्ताओं के लिए अधिक उपयुक्त है जिनके पास दृष्टि, श्रवण, मोटर कौशल या संज्ञानात्मक कौशल हैं। कंसोल पर एक गुप्त त्रुटि संदेश की तुलना में एक 'डिंग' शोर अच्छा और स्पष्ट है।
अंतर्राष्ट्रीयकरण - मैं आपके कंसोल ऐप को केवल यूएस / एएनएसआई मान रहा हूं, लेकिन जब आप जीयूआई में आते हैं, तो आपके पास भाषा / संसाधन पैकेज हो सकते हैं, जो कोडिंग में कोई बदलाव नहीं करने के साथ अन्य भाषाओं और क्षेत्रों को लक्षित कर सकते हैं, यदि आप इसके लिए तैयार हैं शुरू। उदाहरण के लिए, कोड में कोई हार्ड-कोडेड भाषा नहीं है - संसाधन लुकअप के रूप में सब कुछ।
कार्यान्वयन तकनीक के लिए आपके पास बहुत अधिक विकल्प हैं - वेब-आधारित, विभिन्न GUI किट, फ्लैश / WPF, आदि।
रंग और एनीमेशन का उपयोग। सांत्वना कार्यक्रम आम तौर पर मोनोक्रोमैटिक होते हैं और बहुत चेतन नहीं करते हैं। कई आधुनिक GUI चौखटे थीम्ड विगेट्स प्रदान करते हैं और अक्सर मुफ्त में मूव / साइज़ / शो / हिडन एनीमेशन इफ़ेक्ट्स होते हैं।
ग्राफिक्स। कंसोल एप्लिकेशन कभी-कभी आरेख के लिए ASCII कला का उपयोग करते हैं, लेकिन एक GUI ऐप आपको पूर्ण ग्राफ़िकल क्षमता देता है। लवली आर्ट बहुत बड़ा बदलाव ला सकती है।