En büyük fark, kullanıcı arayüzünün tasarımıdır. İyi bir GUI bir uygulama yapabilir veya bozabilir. Mac hayranları, ortalama Mac OS X uygulamasının güzel tasarlanmış GUI'lerine dikkat çekiyorlardı ve bir noktaları var, ancak bu bir teknoloji sorunu değil - bir tasarım / ethos / kullanılabilirlik sorunu.
Kullanıcı, giriş istediğiniz veya çıkışa söylediğiniz konsol programından farklı olarak, istediği herhangi bir şeyi istediği zaman istediği zaman yapabilir. İş akışı Sihirbazı stilini uygulamadığınız sürece, umduğunuz sırayı izleyeceklerini varsayamazsınız.
Daha önce de belirtildiği gibi, etkinlikler bunun büyük bir rol oynamaktadır ve sonuncusuna hizmet ederken birden fazla olayın gerçekleşmesini sağlayabilirsiniz, böylece 'mevcut olaya' dayalı olarak eyaletinizi gerçekten inşa edemezsiniz. Farklı olaylarda bağlamı korumak için kapaklar veya benzer bir mekanizma kullanın. Bir konsol uygulamasında, FSM'niz genellikle 'girdi alma, işlem girdisi, güncelleme çıktısı' döngüsünde bağımsızdır. GUI programlamasında aynı tür bir yapı yoktur - 'ana', yeniden giriş yapan olay odaklı bir şeydir, genellikle çok büyük bir switch () ifadesidir.
Farklı ekran boyutları / çözünürlükleri göz önünde bulundurmanız ve GUI'nin 800x600'den kullanıcıların ekranına kadar yeniden boyutlandırmasına izin vermeniz gerekir.
Fare, klavye, dokunma, vb. Gibi farklı giriş stratejilerini göz önünde bulundurmanız gerekir. Bazı teknolojiler ücretsizdir (Fare tekerleği kaydırma), diğerleri ise bazı entegrasyon çalışmaları gerektirir (Mürekkep).
Erişilebilirlik - Bir GUI, görme, işitme, motor becerileri veya bilişsel becerileri kısıtlı olan daha az yetenekli kullanıcılar için çok daha uygundur. Bir 'ding' gürültüsü, konsoldaki şifreli bir hata mesajıyla karşılaştırıldığında güzel ve açıktır.
Uluslararasılaştırma - Konsol uygulamanızın yalnızca ABD / ANSI olduğunu varsayıyorum, ancak GUI'ye girdiğinizde, kodlamayı değiştirmeden diğer dilleri ve bölgeleri hedefleyebilecek dil / kaynak paketlerine sahip olabilirsiniz. Başlat. Örneğin, kodda sabit kodlanmış dil dizeleri yoktur - her şey kaynak aramalarıdır.
Uygulama teknolojisi için çok daha fazla seçeneğiniz var - web tabanlı, çeşitli GUI kitleri, Flash / WPF, vb.
Renk ve animasyon kullanımı. Konsol programları genellikle tek renklidir ve fazla canlandırılmaz. Birçok modern GUI çerçevesi, temalı widget'lar sağlar ve animasyon efektlerini genellikle ücretsiz olarak taşır / boyutlandır / göster / gizle.
Grafik. Konsol uygulamaları bazen diyagramlar için ASCII sanatını kullanır, ancak bir GUI uygulaması size tam grafik yeteneği sağlar. Güzel sanat da büyük bir fark yaratabilir.