Perbedaan terbesar adalah desain UI. GUI yang baik dapat membuat atau merusak aplikasi. Penggemar Mac akan menarik perhatian ke GUI yang dirancang dengan indah dari rata-rata aplikasi Mac OS X dan mereka ada benarnya, tapi ini bukan masalah teknologi - ini masalah desain / etos / kegunaan.
Pengguna dapat melakukan apa saja yang mereka inginkan dalam urutan apa pun kapan saja, tidak seperti program konsol di mana Anda meminta input atau memberi tahu mereka hasilnya. Anda tidak dapat berasumsi bahwa mereka akan mengikuti perintah yang Anda harapkan, kecuali jika Anda menerapkan alur kerja Wizard-stylee.
Seperti yang telah disebutkan, acara memainkan peran besar dalam hal ini, dan Anda bisa mendapatkan banyak acara terjadi saat Anda sedang melayani yang terakhir, sehingga Anda tidak dapat benar-benar membangun negara Anda berdasarkan 'acara saat ini'. Gunakan penutupan atau mekanisme serupa untuk mempertahankan konteks di berbagai peristiwa. Dalam aplikasi konsol, FSM Anda biasanya lengkap di sekitar loop 'dapatkan input, proses input, perbarui output'. Tidak ada jenis struktur yang sama dalam pemrograman GUI - 'utama' adalah hal yang didorong oleh peristiwa, sering kali pernyataan saklar ginormous ().
Anda perlu mempertimbangkan ukuran / resolusi layar yang berbeda dan memungkinkan GUI untuk mengubah ukuran dari 800x600 hingga maksimum monitor pengguna.
Anda perlu mempertimbangkan berbagai strategi input - mouse, keyboard, sentuh, dll. Beberapa teknologi datang secara gratis (menggulir-roda mouse), yang lain memerlukan beberapa pekerjaan integrasi (Tinta).
Aksesibilitas - GUI jauh lebih cocok untuk pengguna yang kurang mampu yang memiliki keterbatasan penglihatan, pendengaran, keterampilan motorik atau keterampilan kognitif. Suara 'ding' bagus dan jelas dibandingkan dengan pesan kesalahan samar di konsol.
Internasionalisasi - saya mengasumsikan aplikasi konsol Anda hanya AS / ANSI, tetapi ketika Anda masuk ke GUI, Anda dapat memiliki paket bahasa / sumber daya yang dapat menargetkan bahasa dan wilayah lain tanpa perubahan pada pengkodean, jika Anda menyiapkannya dari Mulailah. Misalnya, tidak ada string bahasa yang dikodekan dalam kode - semuanya sebagai pencarian sumber daya.
Anda memiliki lebih banyak opsi untuk teknologi implementasi - berbasis web, berbagai kit GUI, Flash / WPF, dll.
Penggunaan warna dan animasi. Program konsol umumnya monokromatik dan tidak bernyawa banyak. Banyak kerangka kerja GUI modern menyediakan widget bertema dan memiliki efek animasi bergerak / ukuran / pertunjukan / sembunyikan, seringkali gratis.
Grafik. Aplikasi konsol terkadang menggunakan seni ASCII untuk diagram, tetapi aplikasi GUI memberi Anda kemampuan grafis penuh. Seni yang indah dapat membuat perbedaan besar juga.