Γραφικό περιβάλλον χρήστη

Γραφικό περιβάλλον χρήστη ή γραφική διασύνδεση/διεπαφή χρήστη (αγγλικά: Graphical User Interface, GUI ) καλείται στην πληροφορική ένα σύνολο εικονικών στοιχείων, τα οποία εμφανίζονται στην οθόνη μίας ψηφιακής συσκευής (π.χ. ηλεκτρονικού υπολογιστή) και χρησιμοποιούνται για να διευκολύνουν και να επιταχύνουν την αλληλεπίδραση μεταξύ του χρήστη και της συσκευής. Παρέχουν στον τελευταίο, μέσω εικόνων, ενδείξεις και «εργαλεία» προκειμένου αυτός, με απλές ενέργειες, να εκτελέσει συγκεκριμένες εργασίες. Για τον λόγο αυτό «αποδέχονται» «ενέργειες» του χρήστη και «αντιδρούν» ανάλογα στα συμβάντα που αυτός προκαλεί μέσω κάποιας συσκευής εισόδου (π.χ. πληκτρολόγιο, ποντίκι).

Τα περισσότερα σύγχρονα προγράμματα και λειτουργικά συστήματα υπολογιστών, προσφέρουν στους χρήστες τους κάποιο γραφικό περιβάλλον αποτελούμενο από μία ή περισσότερες εικονικές διεπαφές. Αυτός ο τρόπος αλληλεπίδρασης μεταξύ των χρηστών και του υπολογιστή προσεγγίζει την ανθρώπινη εμπειρία στο υπόλοιπο φυσικό περιβάλλον και συνεπώς ταιριάζει καλύτερα στην ανθρώπινη φύση. Το προσδοκώμενο αποτέλεσμα από την υιοθέτηση ενός σωστά σχεδιασμένου γραφικού περιβάλλοντος είναι να γίνει το περιβάλλον εργασίας στον υπολογιστή όμορφο, εύχρηστο και λειτουργικό. Πριν από την καθιέρωση των εικονικών διεπαφών η αλληλεπίδραση μεταξύ ενός χρήστη και ενός μικροϋπολογιστή γινόταν μέσω της γραμμής εντολών κάνοντας χρήση κάποιου κελύφους εντολών. Αυτό προϋπέθετε καλή γνώση των εντολών του συγκεκριμένου κελύφους και των κανόνων σύνταξής τους. Η γνώση αυτή μπορούσε να αποκτηθεί μόνο με την εξοικείωση με το συγκεκριμένο κέλυφος μετά από αρκετή εξάσκηση. Προφανώς, για τη χρήση κάποιου άλλου μικροϋπολογιστή ή κελύφους η διαδικασία εκμάθησης θα έπρεπε ως ένα βαθμό να επαναληφθεί. Το γεγονός αυτό έκανε τους μικροϋπολογιστές δύσχρηστους έως απρόσιτους για το ευρύ κοινό και συνεπαγόταν το να θεωρούνται οι χρήστες τους (και ως κάποιο βαθμό να είναι) άτομα με σχετικά υψηλή εξειδίκευση στον τομέα της πληροφορικής.

Ιστορία
Ο πρόδρομος των εικονικών διεπαφών/περιβαλλόντων δημιουργήθηκε στο Ίδρυμα Ερευνών του πανεπιστημίου Στάνφορντ (Stanford Research Institute), το οποίο ηγούνταν ο Ντάγκλας Έγκελμπαρτ (Douglas Engelbart). Εκεί αναπτύχθηκε η ιδέα της χρήσης «υπερσυνδέσμων» τοποθετημένων εντός κειμένων, προκειμένου για τη δημιουργία ενός δικτυακού συστήματος, τους οποίους επεξεργάζονταν με το ποντίκι. Η ιδέα της χρήσης των υπερσυνδέσμων αναπτύχθηκε περαιτέρω και επεκτάθηκε η εφαρμογή τους και εκτός κειμένων σε εικόνες από τους ερευνητές στο σύστημα PARC της Ζήροξ (Xerox). Οι ερευνητές προχώρησαν παραπέρα από τους υπερσυνδέσμους που βρίσκονταν μόνο εντός κειμένων και δημιούργησαν ένα εικονικό περιβάλλον ως το πρωταρχικό χρηστικό περιβάλλον για το λειτουργικό σύστημα του υπολογιστή Alto της Xerox. Τα περισσότερα σύγχρονα εικονικά περιβάλλοντα υπολογιστών γενικής χρήσης προέρχονται από αυτό το σύστημα. Ο Άιβαν Σάδερλαντ (Ivan Sutherland) ανέπτυξε το 1983 ένα σύστημα βασιζόμενο σε ένα δείκτη που ονομάστηκε Sketchpad. Χρησιμοποιούσε ένα φωτεινό-στυλό για να βοηθήσει τη δημιουργία και επεξεργασία των αντικειμένων στα σχέδια των μηχανικών.

Εικονικό περιβάλλον PARC 

Το PARC αποτελείται από εικονικά στοιχεία όπως «παράθυρα», «μενού», «κουμπιά ραδιοφώνου», «κουτί» ελέγχου και εικονίδια. Το περιβάλλον PARC χρησιμοποιούσε μία συσκευή κατάδειξης σε συνδυασμό με ένα πληκτρολόγιο. Αυτές οι πτυχές του συστήματος συνοψίζονται επιγραμματικά με το ακρωνύμιο WIMP (αγγλικά: Window, Icon, Menu, Pointer) το οποίο σημαίνει Παράθυρο, Εικονίδιο, Μενού και Δείκτης.

Εξέλιξη
	
Μετά από το PARC, το πρώτο πρότυπο διαχείρισης υπολογιστή με βάση το εικονικό περιβάλλον, ακολουθεί το 1981 το Xerox 8010 Star Information System το οποίο με τη σειρά του ακολουθήθηκε το 1983 από το Apple Lisa στο οποίο πρωτοεμφανίστηκε η γραμμή των μενού όπως επίσης και η ιδέα του  «κεντρικού ελέγχου» των παραθύρων, το 1984 από το Apple Macintosh 128K και το 1985 από τα Atari ST και Commodore Amiga.

Κάποια εικονικά περιβάλλοντα που μας είναι οικεία στους περισσότερους σήμερα είναι τα περιβάλλοντα για σταθερούς και φορητούς υπολογιστές, όπως τα Microsoft Windows, το Mac OS X και το X Window System, καθώς και αυτά για συσκευές χειρός (π.χ. κινητά τηλέφωνα) όπως το Symbian, το BlackBerry OS, το Android και το iOS της Apple.

Η Apple, η IBM και η Microsoft χρησιμοποίησαν πολλές ιδέες της Xerox για να δημιουργήσουν προϊόντα και οι προδιαγραφές για την κοινή πρόσβαση χρήστη (Common User Access) της IBM απετέλεσαν τη βάση των χρηστικών περιβαλλόντων όπως τα Microsoft Windows, το IBM OS/2 Presentation Manager καθώς και το κουτί εργαλείων και ο διαχειριστής παραθύρων (αγγλικά: window manager) του UnixMotif. Αυτές  οι ιδέες εξελίχθηκαν για να δημιουργήσουν το χρηστικό περιβάλλον που συναντάται στις σύγχρονες εκδοχές των Microsoft Windows, Mac OS X και σε ποικίλες επιφάνειες εργασιών (αγγλικά: desktop environments) σε λειτουργικά συστήματα τύπου Unix όπως το Linux. Έτσι τα πιο σύγχρονα εικονικά περιβάλλοντα παρουσιάζουν κοινά χαρακτηριστικά σε μεγάλο βαθμό.

Τα Μέρη ενός Εικονικού Χρηστικού Περιβάλλοντος

Ένα εικονικό περιβάλλον χρησιμοποιεί ένα συνδυασμό τεχνολογιών και συσκευών για να παράσχει ένα λειτουργικό πλαίσιο με το οποίο ο χρήστης αλληλεπιδρά για να συγκεντρώσει και να διαχειριστεί πληροφορίες.

Μια σειρά εικονογραφικών στοιχείων που δημιουργήθηκαν με βάση μία εικονογραφική γλώσσα προγραμματισμού (αγγλικά: visual language) εξελίχθηκαν για να αντιπροσωπεύσουν με ένα δομημένο και ευκολονόητο τρόπο την οργάνωση των πληροφοριών που αποθηκεύονται στους υπολογιστές. Αυτό διευκολύνει χρήστες με λίγες γνώσεις χρήσης υπολογιστών να χρησιμοποιήσουν το λογισμικό ενός υπολογιστή. Ο πιο συνηθισμένος συνδυασμός αυτών των στοιχείων συνοψίζεται από το σύστημα τύπου WIMP, ειδικά στους προσωπικούς υπολογιστές.

Το εύρος της αλληλεπίδρασης που προσφέρει ένα εικονικό περιβάλλον που εμφανίζεται πάνω στην οθόνη του υπολογιστή με τα χαρακτηριστικά WIMP βασίζεται στη χρήση μίας συσκευής εισόδου η οποία επιτρέπει τον έλεγχο της θέσης ενός δείκτη, επιτρέπει την παρουσίαση με οργανωμένο τρόπο τόσο των πληροφοριών όσο και των λειτουργιών ανάλογα τον τύπο, οργάνωση, ομάδα ή τη δομή τους εντός ξεχωριστών πλαισίων που αποκαλούνται «παράθυρα» και την αντιπροσώπευσή  τους με εικονίδια. Οι διαθέσιμες εντολές σε κάθε παράθυρο παρουσιάζονται οργανωμένα υπό τη μορφή «μενού». Ο χρήστης μπορεί να μετακινήσει το δείκτη στο εικονίδιο,  παράθυρο, μενού ή την εντολή από ένα μενού που τον ενδιαφέρει κάθε φορά. Κατ' αυτόν τον τρόπο μπορεί κατ' αρχήν να επιλέξει από τις εντολές που του παρουσιάζονται διαθέσιμες κάθε φορά. Επίσης μπορεί να επιλέξει από τις ενέργειες που είναι στη διάθεσή του από τα κουμπιά της συσκευής εισόδου κάθε φορά, π.χ. να εμφανίσει στο προσκήνιο το παράθυρο που τον ενδιαφέρει, να μετακινήσει ένα παράθυρο ή εικονίδιο, να αλλάξει το μέγεθός του, να ενεργοποιήσει ένα εικονίδιο κ.α.. Ένα πρόγραμμα-διαχειριστής παραθύρων (αγγλικά: window manager) διευκολύνει τις αλληλεπιδράσεις ανάμεσα στα παράθυρα, τα προγράμματα και το σύστημα παραθύρων (αγγλικά: windows system). Το σύστημα παραθύρων είναι το πρόγραμμα εκείνο του λειτουργικού συστήματος που διαχειρίζεται αυτόματα τις διάφορες εσωτερικές ή εξωτερικές συσκευές που απαρτίζουν τον υπολογιστή (υλικό) όπως οι συσκευές ενδείξεων, το υλικό γραφικών αλλά και την θέση του δείκτη.

Στους προσωπικούς υπολογιστές  όλα αυτά τα στοιχεία συνδυάζονται μέσω της «επιφάνειας εργασίας»  σκοπός της οποίας είναι η αναπαράσταση στην οθόνη ενός εικονικού περιβάλλοντος που προσομοιάζει την πραγματική επιφάνεια εργασίας ενός γραφείου. Έτσι στην επιφάνεια εργασίας μπορούν να αναπαρασταθούν μέσω εικονιδίων έγραφα, φάκελοι αλλά και προγράμματα και μπορούν να διευθετηθούν όπως ο χρήστης επιθυμεί.  Τα στοιχεία αυτά βέβαια είναι αποθηκευμένα στον υπολογιστή. Τα προγράμματα μπορεί να αντικαθιστούν εντός του εικονικού περιβάλλοντος τη λειτουργία διαφόρων πραγματικών εργαλείων όπως π.χ. ένα ρολόι/ημερολόγιο/ξυπνητήρι, ένα κάλαθο αχρήστων εγγράφων κλπ. ή να επιτρέπουν τον έλεγχο μιας πραγματικής συνδεδεμένης εξωτερικής συσκευής όπως π.χ. ένα εκτυπωτή, ένα σαρωτή, μία ψηφιακή φωτογραφική μηχανή ή οποιαδήποτε άλλη ψηφιακή συσκευή καταγραφής ή και αναμετάδοσης όπως ένα τηλέφωνο, ηχείο, φωτιστικό κλπ.

Εικονικά Περιβάλλοντα POST-WIMP

Μικρότερες κινητές συσκευές όπως τα  PDAs και smartphones κατά κανόνα χρησιμοποιούν τα στοιχεία με διάφορες ενωτικές μεταφορές, εξαιτίας περιορισμών στο χώρο και σε διαθέσιμες συσκευές εισαγωγής. Εφαρμογές για τις οποίες το WIMP δεν είναι κατάλληλο ίσως χρησιμοποιούν νεότερες τεχνικές αλληλεπίδρασης, οι οποίες είναι γνωστές σαν post-WIMP.

Όπως το 2011 κάποια λειτουργικά συστήματα που βασίζονται σε οθόνη αφής, όπως το iOS της Apple (iPhone) και το Android, χρησιμοποιούν τα GUI που ονομάζονται post-WIMP. Αυτά υποστηρίζουν είδη αλληλεπίδρασης που χρησιμοποιούν περισσότερα από ένα δάχτυλο στην επαφή με την οθόνη το οποίο επιτρέπει ενέργειες όπως χτύπημα και περιστροφή, τα οποία δεν μπορούν να υποστηριχθούν από ένα δείκτη και ποντίκι.

Τα Post-WIMP συμπεριλαμβάνουν διαχειριστές παραθύρων με δυνατότητες 3D compositing όπως το Compiz, το Desktop Window Manager και το LG3D. Κάποια post-WIMP περιβάλλοντα μπορεί να ταιριάζουν καλύτερα σε εφαρμογές οι οποίες συνδυάζουν 3D περιβάλλοντα, όπως το Google Earth.

Σχεδίαση Εικονικού Χρηστικού Περιβάλλοντος

Η οπτική σύνθεση και η χρονική συμπεριφορά του εικονικού περιβάλλοντος είναι το πιο σημαντικό μέρος του προγραμματισμού των εφαρμογών όταν πρόκειται για τον τομέα επικοινωνίας ανθρώπου υπολογιστή. Ο στόχος είναι η ενίσχυση της αποτελεσματικότητας και της ευκολίας της χρήσης τέτοιων εφαρμογών, θέτοντας τον ως βασικό σχεδιασμό του προγράμματος, γνωστό ως «χρηστικότητα» (αγγλικά: usability).

Η αλληλεπίδραση χρήστη – πληροφορίας γίνετε με τον χειρισμό των «οπτικών» αντικειμένων (widgets) τα οποία αντιδρούν ανάλογα με τα δεδομένα που τους δόθηκαν. Τα widget ενός καλοσχεδιασμένου GUI σχεδιάζονται με σκοπό να εκτελούν τις κατάλληλες ενέργειες ώστε ο χρήστης να παίρνει το κατάλληλο αποτέλεσμα.

Ένα Model-view-controller είναι μία δομή που κάνει το προγραμματισμό για GUI ευκολότερο. Σε αυτήν το περιβάλλον εργασίας είναι ανεξάρτητο αλλά και έμμεσα συνδεδεμένο με την λειτουργία της εφαρμογής. Έτσι ο χρήστης μπορεί να επιλέξει η να τροποποιήσει την εμφάνιση του GUI. Επίσης η δουλεία του προγραμματιστή γίνεται πιο εύκολη, γιατί μπορεί να προσαρμόσει έτσι πιο εύκολα τον σχεδιασμό του GUI στην συνεχώς εξελισσόμενες ανάγκες του χρήστη. Αν και όλα τα παραπάνω είναι αναγκαία, ο καλός σχεδιασμός του GUI εξαρτάται από τον χρήστη και όχι από το σύστημα και την αρχιτεκτονική του.

Τα widgets άλλοτε είναι μεγάλα σε μέγεθος, όπως είναι το πλαίσιο ή το παράθυρο μίας εφαρμογής ή ενός σχεδίου σχεδίου. Άλλοτε όμως είναι μικρά και χρησιμοποιούνται ως εργαλεία εισαγωγής με τα οποία μπορεί και αλληλεπιδρά ο χρήστης με τον υπολογιστή.
Εκτενέστερη έχει γίνει η χρήση του GUI στα τελευταίας γενιάς κινητά τηλέφωνα, γνωστά και ως smart phones (έξυπνα τηλέφωνα). Ειδικά τα τελευταία χρόνια που ως συσκευή εισόδου χρησιμοποιούνται οι οθόνες αφής.

Εικονικό Χρηστικό Περιβάλλον και Περιβάλλον Γραμμής Εντολών

Ένα χρηστικό περιβάλλον με βάση τη γραμμή εντολών απαιτεί τη γνώση πολλών εντολών, οι οποίες είναι συνδυασμός λέξεων και συμβόλων, πράγμα που είναι αρκετά δύσκολο, γιατί η αποτελεσματικότητα και η παραγωγικότητα εξαρτώνται καθαρά από το πόσες τέτοιες εντολές γνωρίζει ο χρήστης. Το να φτάσει ο χρήστης σε ένα υψηλό επίπεδο ικανότητας είναι αρκετά δύσκολο γιατί οι εντολές αυτές θέλουν αρκετό χρόνο για να τις μάθει και δεν είναι ευκολομνημόνευτες.

Αργότερα όταν εμφανίστηκε το Εικονικό Χρηστικό Περιβάλλον, έκανε την χρήση του υπολογιστή πιο εύκολη λόγο της χρήσης των WIMP. Τα WIMP υπερτερούν έναντι της γραμμής εντολών γιατί με τον συνδυασμό των πλήκτρων και του δείκτη μπορεί ο χρήστης να δουλεύει σε πολλά σημεία, ενώ στην γραμμή εντολών δουλεύει μόνο στο τρέχοντα κατάλογο. Στα σύγχρονα πλέον λειτουργικά συστήματα χρησιμοποιούνται και τα δύο περιβάλλοντα, αλλά το GUI λαμβάνει περισσότερη σημασία. Επίσης υπάρχουν και εφαρμογές που έχουν τον συνδυασμό και των δύο περιβαλλόντων. Συχνά η γραμμή εντολών χρησιμοποιείται από τους προγραμματιστές ώστε να μπορούν να επικεντρωθούν περισσότερο στον σκοπό της δουλείας τους και να μην χάνουν χρόνο στον σχεδιασμό των WIMP.

Τρισδίαστατο Εικονικό Χρηστικό Περιβάλλον

Για τις απλές οθόνες υπολογιστών η απεικόνιση σε τρεις διαστάσεις δεν είναι εφικτή, γιατί οι οθόνες δεν είναι δισδιάστατες. Ωστόσο η ψευδαίσθηση της τρίτης διάστασης (δηλαδή του βάθους) μπορεί να δημιουργηθεί τοποθετώντας το ένα αντικείμενο μπροστά από το άλλο. Έτσι η αλληλεπίδραση με αυτή είναι εφικτή. Επίσης η χρήση της σκίασης είναι αυτή που κάνει την τρισδιάστατη εικόνα να δείχνει πιο ρεαλιστική.

Τα γραφικά τριών διαστάσεων χρησιμοποιούνται κυρίως σε ταινίες του κινηματογράφου (π.χ. Άβαταρ), και σε παιχνίδια υπολογιστών. Όμως η χρήση τους δεν σταματά εκεί. Πολλές εταιρίες προσπάθησαν να δημιουργήσουν τρισδιάστατη επιφάνεια εργασίας, όπως η SUN με το Looking Glass Project. Επίσης χρησιμοποιείται και στην επιστήμη και την έρευνα, όπως η τρισδιάστατη εικόνα χρησιμοποιείται και για την παρουσίαση των αποτελεσμάτων ενός αξονικού τομογράφου.

Γραφικά κελύφη (γραφικά περιβάλλοντα) του Unix 
 GNOME
 KDE
 XFCE
 LXDE
 Cinnamon
 Enlightenment
 Unity
 Mate

Αρχιτεκτονική λογισμικού