Τεχνολογία

Περίληψη

Η τεχνολογία διάδρασης είναι πλέον ευρέως διαθέσιμη σε κάποιες λίγες μορφές που καθιστούν δύσκολη την διάκριση ανάμεσα στην βασική τεχνολογία και στα στιγμιότυπα οργάνωσής της. Ο δημοφιλής επιτραπέζιος υπολογιστής για αρκετές δεκαετίες συνοδεύεται από ένα γραφικό περιβάλλον εργασίας, το οποίο από τους περισσότερους θεωρείται τεχνολογία, αλλά, όπως είδαμε στα προηγούμενα, είναι περισσότερο μια τεχνολογική μορφή, που κατασκευάστηκε σε ένα δεδομένο τεχνο-οικονομικό πλαίσιο. Παρόμοια, η τεχνολογία εμβύθισης των συστημάτων εικονικής πραγματικότητας μπορεί να χρησιμοποιηθεί για την επαύξηση της ανθρώπινης εμπειρίας προς κατευθύνσεις που δεν είναι απαραίτητα συμβατές με το φυσικό περιβάλλον. Στην πράξη όμως, τα περισσότερα συστήματα εικονικής πραγματικότητας χρησιμοποιούνται για να δημιουργήσουν προσομοιώσεις της φυσικής πραγματικότητας. Ιδιαίτερο ενδιαφέρον παρουσιάζει η τεχνολογία ανοιχτού κώδικα, ο οποίος επιτρέπει την μελέτη και ανάλογα με την άδεια χρήσης την προσαρμογή του αρχικού κώδικα για διαφορετικούς σκοπούς. Ο ανοιχτός κώδικας είναι μια σημαντική ιδιότητα στην τεχνολογία διάδρασης, αλλά δεν μπορεί να είναι ο σκοπός της, γιατί τότε τα νέα συστήματα διάδρασης μπορεί να είναι απλά αντίγραφα των μορφών διάδρασης από τα ήδη υπάρχοντα κλειστού κώδικα.

Οι κατασκευαστές που σχεδιάζουν προσεκτικά το λογισμικό τους, φτιάχνουν και το δικό τους υλικό. Alan Kay

Τεχνολογικά προϊόντα

Στην τεχνολογία λογισμικού υπάρχουν συνήθως πολλά επίπεδα αφαίρεσης που κάνουν δύσκολη την διάκριση ανάμεσα σε βασική τεχνολογία και τεχνολογικό προϊόν. Επίσης, συμβαίνει συχνά κάποια δημοφιλή προϊόντα να δίνουν το όνομα τους σε όλην την κατηγορία, όπως ακριβώς συμβαίνει σε πολλά καταναλωτικά προϊόντα. Για παράδειγμα, υπήρχε μια περίοδος που η οδοντόκρεμα λεγόταν kolynos και η χλωρίνη καθαρισμού λεγόταν kleenex. Αντίστοιχα, ο παγκόσμιος ιστός δεν είναι τεχνολογία, αλλά ένα δημοφιλές προϊόν της τεχνολογικής κατηγορίας των υπερμέσων. Το ίδιο ισχύει και για τις δημοφιλείς γλώσσες αντικειμενοστραφούς προγραμματισμού, όπως είναι η Java, η οποία δημιουργήθηκε για εξυπηρετήσει τις ανάγκες μιας εποχής, οπότε έχει πολλές ιδιότητες διαφορετικές από αυτές της Smalltalk, που ήταν η πρώτη γλώσσα του είδους είκοσι χρόνια νωρίτερα. Η διάκριση ανάμεσα σε τεχνολογία και προϊόν γίνεται ακόμη δυσκολότερη στην περίπτωση που πολλές διαφορετικές εταιρείες χρησιμοποιούν την ίδια έννοια, όπως για παράδειγμα τα αρχεία και τις εφαρμογές. Η συμφωνία χρήσης αρχείων και εφαρμογών σε προϊόντα διαφορετικών εταιρειών δημιουργεί την ψευδαίσθηση ότι αυτά είναι βασικές τεχνολογίες διάδρασης, αλλά στην πράξη είναι απλά δημοφιλείς και οικείες συμβάσεις για χρήστες που δεν θέλουν να κατανοήσουν άλλες κατευθύνσεις της τεχνολογίας διάδρασης.

Figure 1: Από τον 17ο αιώνα και μέχρι την δεκαετία του 1950 ο όρος υπολογιστής αναφέρεται σε έναν άνθρωπο που κάνει υπολογισμούς για να ετοιμάσει τριγωνομετρικούς και λογαριθμικούς πίνακες, οι οποίοι χρησιμοποιούνταν ευρέως στην ναυτική πλοήγηση. Με την εμφάνιση των πρώτων ηλεκτρονικών και λίγο μετά ψηφιακών υπολογιστών η χρήση του όρου άλλαξε για να αναφέρεται πλέον σε συσκευές και όχι σε ανθρώπους.

Η κατανόηση της τεχνολογίας απαιτεί αρχικά μια σημειωτική ανάλυση των βασικών λέξεων που χρησιμοποιούμε, γιατί υπάρχουν πολλά προϊόντα τα οποία θεωρούνται τεχνολογίες, αλλά δεν είναι. Για παράδειγμα, η χρήση της λέξης υπολογιστής για την περιγραφή των δημοφιλών επιτραπέζιων και κινητών συστημάτων είναι μια σχετικά πρόσφατη σύμβαση. Μέχρι και την δεκαετία του 1950, η λέξη υπολογιστής αναφέρεται με απόλυτη σαφήνεια σε μια ανθρώπινη δουλειά γραφείου, που αφορούσε τον υπολογισμό λογαριθμικών πινάκων για χρήση στον υπολογισμό της τροχιάς πυραύλων. Η εφεύρεση και διάδοση των πρώτων κεντρικών υπολογιστών λίγο αργότερα άλλαξε εντελώς το νόημα της λέξης, αφού την ίδια ακριβώς δουλειά, δηλαδή τον υπολογισμό των λογαριθμικών πινάκων, την έκαναν πλέον μηχανήματα. Την ίδια ακριβώς περίοδο, η εφεύρεση του τρανζίστορ επέτρεψε την κατασκευή μικρών φορητών ραδιοφώνων, τα όποια έμειναν γνωστά για μια γενιά ανθρώπων ως τρανζιστοράκια. Με το ίδιο σκεπτικό, θα μπορούσαμε να ονοματίσουμε τους λεγόμενους κινητούς και φορετούς υπολογιστές επίσης τρανζιστοράκια, αφού είναι γεμάτοι από αυτά. Ταυτόχρονα, η ονομασία έξυπνο τηλέφωνο και η συσχέτιση της με τις δημοφιλείς συσκευές Android και iOS αποτελεί μια μάλλον χειρότερη παρανόηση για μια κατηγορία προϊόντων που οι κατασκευαστές τους θέλουν να θεωρούνται έξυπνα, αλλά δεν είναι. Επομένως, το γεγονός ότι ένα κατασκεύασμα χρησιμοποιεί κάποιο υλικό ή λογισμικό για να κάνει κάποια λειτουργία δεν μπορεί να καθορίζει την ονομασία του, ούτε φυσικά μπορούμε να πιστεύουμε σε έξυπνους χαρακτηρισμούς από τον κατασκευαστή.

Figure 2: Το τρανζιστοράκι της δεκαετίας του 1950 ήταν συνώνυμο με την πρώτη πραγματικά φορητή και δημοφιλή εκδοχή του ραδιοφώνου με τρανζίστορ. Ταυτόχρονα ήταν και η πρώτη δημοφιλής εφαρμογή της εφεύρεσης του τρανζίστορ, το οποίο στην συνέχεια θα μπει σε πολλές συσκευές που μέχρι τότε δούλευαν με λυχνίες, όπως ο υπολογιστής. Εκτός από την χρήση τρανζίστορ, αυτό που είναι κοινό και στις δύο αυτές περιπτώσεις (τρανζιστοράκι, υπολογιστής) είναι πως τα ονομάζουμε με αναφορά στην εσωτερική τους λειτουργία και όχι αναφορικά με την χρήση τους, η οποία στην περίπτωση του υπολογιστή είναι ένα ανοιχτό θέμα.

Αν θέλουμε να έχουμε κατανόηση πέρα από τα συμφέροντα των κατασκευαστών και τις εμπορικές συγκυρίες, τότε η ονομασία μιας τεχνολογίας διάδρασης θα πρέπει να σχετίζεται άμεσα με την λειτουργία που πραγματικά κάνει. Για παράδειγμα, το σύστημα SwyftWare σχεδιάστηκε από τον Jef Raskin για να κάνει επεξεργασία κειμένου, που είναι μια από τις πιο δημοφιλείς χρήσεις για τον επιτραπέζιο υπολογισμό. Για αυτόν τον σκοπό, από την πλευρά του χρήστη, δεν έχει ούτε λειτουργικό σύστημα, ούτε σύστημα αρχείων, ούτε εφαρμογές, αφού όλα αυτά είναι απλά προϊόντα και όχι βασικές τεχνολογίες που είναι απαραίτητες για να έχουμε μια ποιοτική διάδραση με την επεξεργασία μικρών ή μεγάλων κειμένων και με ότι αυτή συνδέεται, όπως σημειώσεις και αλληλογραφία.

Το σύστημα αρχείων είναι η πιο δημοφιλής περίπτωση προϊόντος που οι περισσότεροι θεωρούν πως είναι τεχνολογία. Στην πραγματικότητα, η θεώρηση ενός συστήματος λογισμικού ως σύνολο αρχείων έγινε δημοφιλής με το σύστημα UNIX. Η σημασία των αρχείων ενδυναμώθηκε στην συνέχεια από την επιφάνεια εργασίας και τα έγγραφα που αναπαραστάθηκαν ως αρχεία. Τόσο το υλικό του συστήματος, όσο και το βασικό επίπεδο λογισμικού δεν έχουν αρχεία, τα οποία είναι ένα κατασκεύασμα που εξυπηρετεί καλά πολλούς σκοπούς, αλλά σίγουρα δεν είναι ο μόνος τρόπος οργάνωσης του λογισμικού. Για παράδειγμα, την ίδια περίοδο που οι μηχανικοί στα Bell Labs κατασκεύασαν το σύστημα αρχείων του UNIX, οι μηχανικοί στο Xerox PARC κατασκεύασαν μια εναλλακτική οργάνωση του λογισμικού που βασίζεται στα αντικείμενα, τα οποία ανταλλάσσουν μηνύματα. Επίσης, η επεξεργασία εγγράφων κειμένου στο SwyftWare δεν είχε αρχεία, όπως αρχεία δεν είχαν οι αρχικές εκδόσεις του λειτουργικού συστήματος iOS για τις κινητές συσκευές της Apple.

Αμέσως μετά τα αρχεία, το λειτουργικό σύστημα και οι εφαρμογές του επιτραπέζιου και κινητού υπολογισμού αποτελούν σημαντικά παραδείγματα προϊόντων, τα οποία όμως δεν είναι βασική τεχνολογία για το λογισμικό διάδρασης. Το λειτουργικό σύστημα παρέχει στον προγραμματιστή και στον απλό χρήση ένα ενιαίο περιβάλλον διάδρασης για πολλές διαφορετικές εφαρμογές. Το λειτουργικό σύστημα είναι μια ιδέα χρήσιμη για πολύ ακριβά μηχανήματα για τα οποία δεν γνωρίζουμε τις πιθανές εφαρμογές τους. Από την πλευρά του χρήστη, για μια δεδομένη λειτουργία, όπως η επεξεργασία κειμένου, το λογισμικό διάδρασης δεν χρειάζεται να έχει ενδιάμεσα επίπεδα ή αρχιτεκτονικές της πληροφορίας που εξυπηρετούν και άλλους σκοπούς. Ειδικά οι εφαρμογές, όπως τις γνωρίζουμε από τις δημοφιλείς γραφικές διεπαφές σε επιτραπέζια και κινητά συστήματα δημιουργούν ένα περιβάλλον χρήστη με έμφαση στην κατανάλωση παρά στην δημιουργία. Πράγματι, αν μια εφαρμογή δεν έχει μια λειτουργία, τότε ο χρήστης θα πρέπει να αγοράσει κάποια άλλη εφαρμογή που πιθανόν είναι πολύ παρόμοια με την αρχική. Επίσης, πολλές λειτουργίες παγιδεύονται σε μια εφαρμογή και δεν μπορούν να χρησιμποιηθούν σε άλλη ή να γίνει μια σύνθεση τους με τρόπο που να βολεύει. Για παράδειγμα, η γραμμή εντολών όπως έγινε αρχικά γνωστή με το Unix δεν περιέχει εφαρμογές, αλλά την δυνατότητα διασύνδεσης εντολών για την δημιουργία σύνθετων προγραμμάτων, που μπορούν να κάνουν ότι και μια εφαρμογή, χωρίς να παγιδεύονται σε ένα κλειστό κουτί. Από τις αρχές της δεκαετίας του 1980 ο Gary Kildall είχε διαπιστώσει ότι ακόμη και όταν υπάρχει ανάγκη για διακριτό λειτουργικό σύστημα και εφαρμογές, αυτά δεν θα πρέπει να φτιάχνονται από τον ίδιο κατασκευαστή, γιατί δημιουργείται σύγκρουση συμφερόντων.

Η γραφική διεπαφή των δημοφιλών επιτραπέζιων συστημάτων όπως είναι τα Windows, MacOS, GNOME, συνήθως αποτελείται από παράθυρα που αντιπροσωπεύουν εφαρμογές ή έγγραφα, καθώς επίσης και από μενού εργαλείων που εμφανίζονται ως εικονίδια. Όπως ακριβώς είδαμε και στις προηγούμενες περιπτώσεις προϊόντων παραπάνω, αυτή η τόσο δημοφιλής οργάνωση και η σημασιολογία των γραφικών στοιχείων είναι ένα ακόμη δημοφιλές προϊόν, το οποίο οι περισσότεροι θεωρούν ως τεχνολογία χωρίς εναλλακτικές. Πράγματι είναι πολύ δύσκολο να εντοπίσουμε εμπορικές εναλλακτικές καθώς η ευχρηστία αυτού του μοντέλου έχει επικρατήσει για πολλές δεκαετίες και οποιαδήποτε αλλαγή είναι τουλάχιστον τόσο δύσκολη όσο η οδήγηση από την αντίθετη κατεύθυνση. Η ευχρηστία αυτού του μοντέλου διάδρασης μπορεί να ερμηνευτεί τόσο από καθολική επικράτηση του, όσο και από την οικειότητα που έχει δημιουργηθεί, καθώς είναι το πιο απλό στην εκμάθηση, ειδικά για περιστασιακούς χρήστες. Τα εναλλακτικά συστήματα γραφικής διεπαφής που υπάρχουν βασίζονται περισσότερο στις προσαρμογές που θα κάνει ένας προγραμματιστής ή είναι λιγότερο εύχρηστα γιατί απευθύνονται σε συχνούς χρήστες μεγαλύτερης δεξιότητας. Για παράδειγμα τα συστήματα Xerox Cedar και Oberon δημιουργήθηκαν με έμπνευση το Alto, αλλά με χρήση δομημένης γλώσσας προγραμματισμού όπως είναι οι Mesa και η Pascal. Αυτά τα ερευνητικά συστήματα δίνουν κεντρικό ρόλο στα έγγραφα, τα οποία εμφανίζονται στα παράθυρα, ενώ η διάδραση γίνεται με σύνθεση εντολών όπως στο UNIX, οι οποίες επιτρέπουν τους υπερσυνδέσμους ανάμεσα στα έγγραφα καθώς και τον διαμοιρασμό τους με άλλους χρήστες. Ο παγκόσμιος ιστός και τα κοινωνικά δίκτυα είναι τα πιο πρόσφατα παραδείγματα προϊόντων, τα οποία όμως δεν αποτελούν βασικές τεχνολογίες.

Figure 3: Το αντίγραφο του Alto ακολουθεί πιστά την οθόνη εικονοστοιχείων σε μορφή πορτραίτου καθώς και την συσκευή εισόδου με το ποντίκι. Το Lilith χρησιμοποιήθηκε στο ΕΤΗ της Ζυρίχης για την διδασκαλία της κατασκευής λογισμικού με νέες τεχνολογίες που βασίζονται στην γλώσσα προγραμματισμού Modula.

Η τεχνολογία του αντικειμενοστραφούς προγραμματισμού έχει γίνει δημοφιλείς με γλώσσες προγραμματισμού όπως η Java και η C++, αλλά αυτές όχι μόνο είναι απλά προϊόντα, αλλά και έχουν συγκεκριμένες ιδιότητες που δεν ταιριάζουν με την αρχική σχεδίαση. Η αρχική σχεδίαση και υλοποίηση του αντικειμενοστραφούς προγραμματισμού από τον Άλαν Κέη ήταν εμπνευσμένη από την περιοχή της βιολογίας, τα κύταρα, και την πολύπλοκη κλίμακα των ζωντανών οργανισμών. Αντί να βασίζεται σε πολύπλοκες δομές δεδομένων, η Smalltalk βασίζεται σε πολύ απλές δομές που ανταλλάσσουν μηνύματα μεταξύ τους, έτσι ώστε να είναι εφικτή η δημιουργία κλίμακας από απλά δομικά στοιχεία. Για την δημιουργία πολύπλοκων συστημάτων δεν υπάρχει λόγος να έχουμε πολύπλοκες γλώσσες προγραμματισμού, αφού αρκεί να έχουμε ένα συμβολικό σύστημα που ταιριάζει στο πεδίο εφαρμογής. Για τον σκοπό αυτό, τα σύγχρονα συστήματα που βασίζονται στην φιλοσοφία της Smalltalk κατασκευάζονται με την σταδιακή υλοποίηση ενός μεταφραστή που είναι γραμμένος στην ίδια γλώσσα πρόγραμματισμού με αυτήν που μετατρέπει σε εκτελέσιμο. Με αυτόν τον τρόπο, οι προδιαγραφές του συστήματος είναι καθολικές ανάμεσα σε συστήματα με διαφορετικό υλικό. Τα παραπάνω δεν σημαίνουν ότι υπάρχει κάποια σωστή ή λάθος σχεδίαση, αλλά σίγουρα σημαίνει ότι πολλές τεχνολογικές ετικέτες θα πρέπει να χρησιμοποιούνται με περισσότερες εξηγήσεις σχετικά με το πεδίο ερφαρμογής και τους τυπικούς χρήστες έτσι ώστε να είναι διακριτό το πραγματικό τους νόημα.

Εξομοίωση και προσομοίωση

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

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

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

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

Η δημοφιλία της προσομοίωσης και η δυσκολία που παρουσιάζει η εξομοίωση έχουν οδηγήσει τις περισσότερες εφαρμογές του παραδοσιακού επιτραπέζιου υπολογισμού στην κατεύθυνση της προσομοίωσης του πραγματικού κόσμου. Για παράδειγμα, η γραφική διεπαφή στον επιτραπέζιο υπολογιστή είναι μια προσομοίωση της επιφάνειας εργασίας στον αληθινό χώρο του γραφείου. Αντίστοιχα, οι εφαρμογές επεξεργασίας εγγράφων είναι μια προσομοίωση των χάρτινων εγγράφων του αληθινού κόσμου. Στην πραγματικότητα όμως, ο υπολογιστής, με γραφικά ή χωρίς, δεν έχει κανένα περιορισμό για το πως θα είναι μια γραφική διεπαφή ή μια εφαρμογή επεξεργασιάς εγγράφων. Σίγουρα η προσομοίωση του αληθινού κόσμου στον κόσμο του υπολογιστή δημιουργεί μια αρχική αίσθηση ευχρηστίας μέσα από την οικειότητα. Επομένως, για τα μηχανήματα εκείνα που πρέπει να είναι εύχρηστα η προσομοίωση είναι μια χρήσιμη τεχνική, αλλά σίγουρα δεν είναι αντιπροσωπευτική των δυνατοτήτων που θέλουμε να έχουμε αν ο στόχος μας είναι η επαύξηση της ανθρώπινης νοημοσύνης.

Η πιο δημοφιλής μορφή και ταυτόχρονα ιδιάζουσα περίπτωση προσομοίωσης συναντάται στον κινητό υπολογισμό της δεκαετίας του 2010, όπου οι συσκευές διάδρασης μικραίνουν σε μέγεθος και προσομοιώνουν τις εφαρμογές του επιτραπέζιου υπολογισμού, αντί να ορίσουν νέα παραδείγματα συμβατά με το κινητό πλαίσιο χρήσης. Για παράδειγμα, τα πρώτα κινητά λειτουργικά συστήματα της Microsoft έχουν γραφικό περιβάλλον με κουμπί εκκίνησης, ενώ όλα τα συστήματα βασίζονται στην ιδέα των εφαρμογών για την οργάνωση του λογισμικού τους. Όπως έχουμε ήδη αναλύσει στην ενότητα των Μορφών, οι εφαρμογές λογισμικού είναι μια πολύ συγκεκριμένη μορφή οργάνωσης του λογισμικού, η οποία ωφελεί κυρίως την κυρίαρχη πλατφόρμα λειτουργικού συστήματος. Με άλλα λόγια, οι κατασκευαστές λογισμικού επέλεξαν, για άλλη μια φορά, να βελτιστοποιήσουν τα συμφέροντα τους, τα οποία παρουσιάζουν στους χρήστες ως οικειότητα και ευχρηστία. Στην πράξη όμως, αυτό που πραγματικά προσφέρουν στους τελικούς χρήστες είναι μια προσομοίωση ενός παραδείγματος του επιτραπέζιου υπολογισμού σε ένα νέο πλαίσιο χρήσης, το οποίο είναι πολύ διαφορετικό. Με αυτόν τον τρόπο, τα κινητά συστήματα είναι μια ακόμη χαμένη ευκαιρία, μετά τα επιτραπέζια, αφού παγιδεύονται στην θεώρηση της προσομοίωσης και δεν εξετάζουν καθόλου την εξομοίωση νέων συστήματων διάδρασης.

Η περίπτωση των συστημάτων διάδρασης ανοιχτού κώδικα είναι εξίσου ιδιάζουσα με αυτή του κινητού υπολογισμού γιατί προσομοιώνει το γραφικό περιβάλλον εργασίας και τις εφαρμογές των κυρίαρχων συστήματων. Για παράδειγμα, τα πιο δημοφιλή γραφικά περιβάλλοντα με επιφάνεια εργασίας όπως τα Gnome, KDE, είναι αντίγραφα των Windows, MacOS. Ταυτόχρονα, οι αντίστοιχες εφαρμογές γραφείου ανοιχτού κώδικα OpenOffice, LibreOffice είναι επίσης αντίγραφα των αντίστοιχων εφαρμογών Microsoft Office, Apple iWork. Ο ανοιχτός κώδικας σε επίπεδο εφαρμογής και περιβάλλοντος ήταν δεδομένος στο σύστημα Smalltalk του Alto, αλλά οι κατασκευαστές του είχαν κάνει πολλές ακόμη αρχιτεκτονικές επιλογές που αναλύουμε σε άλλα μέρη του κειμένου. Ακόμη και πέρα από τον χώρο της διάδρασης που διαπραγματευόμαστε εδώ, οι κατασκευαστές ανοιχτού λογισμικού φαίνονται παγιδευμένοι στην αναπαραγωγή της υπάρχουσας κατάστασης παρά στην καινοτομία. Πράγματι, ο κατασκευαστής του πυρήνα του Linux επέλεξε στις αρχές τις δεκαετίας του 1990 να φτιάξει μια εκδοχή ενός παραδοσιακού πυρήνα που υπάρχει από τις αρχές του 1970 και ταυτόχρονα να βρει καθολική ανταπόκριση από πολλές διαφορετικές ομάδες χρηστών. Σίγουρα η διάθεση του λογισμικού με ανοιχτού κώδικα έχει περισσότερα πλεονεκτήματα από το ίδιο με κλειστό κώδικα, αλλά αν η αρχιτεκτονική του και η διάδραση του είναι ίδια ακριβώς με αυτή του κλειστού κώδικα, τελικά το κίνημα του ανοιχτού κώδικα καταλήγει να εξυπηρετεί όχι μόνον τον εαυτό του, αλλά κυρίως τα συμφέροντα των κατασκευαστών κλειστού λογισμικού, οι οποίοι μπορούν πλέον να ετεροπροσδιορίζονται ως τεχνολογία, οπότε τελικά δεν εξυπηρετεί την πραγματική βελτίωση της ποιότητας του λογισμικού διάδρασης.

Figure 6: Το βιντεοπαιχνίδι Tennis for Two είναι μια σχετικά πιστή προσομοίωση του τένις για δύο παίκτες όπως αυτό φαίνεται από το πλάϊ σε πρόσοψη. Κατασκευάστηκε σε αναλογικό ηλεκτρονικό υπολογιστή και για την οπτικοποίηση του χρησιμοποιήθηκε ένα φασματοσκόπιο. Η επίδραση του ήταν καταλυτική αφού έδωσε την έμπνευση για το δημοφιλές Pong, ενώ για πολλές δεκαετίες μετά τα βιντεοπαιχνίδια προσομοίωσης αθλημάτων παραμένουν πολύ δημοφιλή.

Τόσο τα πρώτα, όσο και τα δημοφιλή βιντεοπαιχνίδια των επόμενων δεκαετιών συνήθως βασίζονται στην θεώρηση της προσομοίωσης. Για παράδειγμα, το βιντεοπαιχνίδι Tennis for two δημιουργήθηκε το 1958 για έναν αναλογικό υπολογιστή με οπτικοποίηση στην οθόνη ενός φασματοσκόπιου, όπου οι δύο παίκτες έπαιζαν τένις σε πρόσοψη. Μερικά χρόνια αργότερα, το δημοφιλές βιντεοπαιχνίδι Pong χρησιμοποιεί την οπτικοποίηση της κάτοψης. Επίσης, ένα από τα πρώτα δημοφιλή βιντεοπαιχνίδια την δεκαετία του 1960 σε μίνι-υπολογιστές είναι το Spacewar, στο οποίο οι παίκτες κάνουν μια αερομαχία στο διάστημα σε συνθήκες βαρύτητας γύρω από πλανητικό κέντρο. Αντίστοιχα, την δεκαετία του 1970, πολλοί προγραμματιστές αποκτούν την πρώτη τους επαφή με τον υπολογιστή με τον ευρέως διαθέσιμο κώδικα του βιντεοπαιχνιδιού Lunar Lander, όπου ο παίκτης προσπαθεί να προσγειώσει ένα διαστημόπλοιο στην σελήνη. Παρατηρούμε ότι και στις δύο περιπτώσεις εκτός από την προσομοίωση της φυσικής πραγματικότητας (π.χ., βαρύτητα) η θεματολογία των βιντεοπαιχνιδιών είναι έντονα επηρεασμένη από την τότε πολιτική και πολιτιστική πραγματικότητα ή από μια αθλητική και παιγνιώδη δραστηριότητα. Μετά την δεκαετία του 1970 εμφανίζονται καινοτόμα βιντεοπαιχνίδια, αλλά το παράδειγμα της προσομοίωσης παραμένει κυρίαρχο.

Figure 7: Το Pong αποτελεί μια βελτιωμένη εκδοχή του πρόσφατου τότε Table Tennis for Two, στο οποίο προσθέτει καλύτερη κίνηση και το κάνει διαθέσιμο αρχικά στις δημόσιες κονσόλες βιντεοπαιχνιδιών, αφού τότε δεν είχαν ακόμη δημιουργηθεί οι οικιακοί μικροϋπολογιστές. Παρά την απλότητα του, το λογισμικό αυτό έγινε πολύ δημοφιλές για όλην την δεκαετία του 1970 και αντιγράφηκε από πολλές εταιρείες που δημιουργήθηκαν με αυτό σαν αφορμή αλλά και ερασιτέχνες που ασχολήθηκαν με τον προγραμματισμό μετά από αυτήν την εμπειρία.

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

Figure 8: Ο εξομοιωτής σε ένα σύγχρονο γραφικό περιβάλλον μπορεί να εκτελέσει το λογισμικό για ένα παλιότερο γραφικό περιβάλλον, το οποίο με την σειρά του μπορεί να εκτελέσει έναν εξομοιωτή για ένα ακόμη παλιότερο σύστημα με γραμμή εντολών. Με αυτόν τον τρόπο, μπορούμε να εξομοιώσουμε ένα παλιότερο σύστημα ακόμη και αν δεν έχουμε εξομοιωτή για αυτό, αρκεί να έχουμε για μια σειρά από ενδιάμεσα συστήματα. Το ιδανικό είναι να εκμεταλευτούμε αυτήν την τεχνική για νέα συστήματα και όχι μόνο για αναβίωση των παλιότερων.

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

Figure 9: Η κατασκευή λογισμικού για ένα νέο υλικό υπολογιστή που δεν υπάρχει ακόμη μπορεί να ξεκινήσει με έναν διαθέσιμο υπολογιστή στον οποίο γίνεται εξομοίωση της αρχιτεκτονικής του νέου συστήματος. Με αυτόν τον τρόπο, ο διαθέσιμος Apple II χρησιμοποιήθηκε για την κατασκευή της γραφικής διεπαφής του Apple Lisa σε μια επαναληπτική διαδικασία που ξεκίνησε από τα διαθέσιμα εργαλεία τα οποία υποστήριζαν μόνο χαρακτήρες κειμένου σε μια μαύρη οθόνη.

Όσο εύκολο είναι να περιγράψουμε τα δημοφιλή συστήματα διάδρασης που βασίζονται στην θεώρηση της προσομοίωσης, άλλο τόσο δύσκολο είναι να περιγράψουμε εκείνα που βασίζονται στην εξομοίωση, αφού δεν έχουμε κρίσιμη μάζα γνώσης για αυτά. Ένα από τα λίγα γνωστά συστήματα διάδρασης που βασίζονται στην εξομοίωση περιγράφεται από τον Alan Kay στην κατασκευή του Alto. Το λογισμικό για το διαδραστικό προτότυπο του Alto που βασίζεται στην περιβάλλον προγραμματισμού Smalltalk κατασκευάστηκε με την εξομοίωση του πάνω σε έναν μίνι-υπολογιστή στις αρχές του 1970 και πολύ πριν οι ερευνητές του Xerox PARC κατασκευάσουν το πραγματικό υλικό του Alto. Εκείνος ο μίνι-υπολογιστής δούλευε με τηλέτυπο χωρίς οθόνη γραφικών και ποντίκι ενώ και η γλώσσα προγραμματισμού του ήταν πολύ διαφορετική από την Smalltalk, αλλά αυτά δεν εμπόδισαν τους κατασκευαστές του Alto να φανταστούν ένα διαδραστικό γραφικό περιβάλλον και να το εξομοιώσουν αρχικά πάνω σε ξένο υλικό, πριν τελικά το κατασκευάσουν και στην πραγματικότητα. Παρόμοια τεχνική εξομοίωσης χρησιμοποίησε και ο Bill Atkinson για την κατασκευή του λογισμικού διάδρασης για το Apple Lisa. Για τον σκοπό αυτό, χρησιμοποίησε μια επέκταση του δημοφιλούς εκείνη την εποχή Apple II για να κατασκευάσει σταδιακά με την γλώσσα PASCAL ένα γραφικό περιβάλλον που λίγο διαφέρει από αυτό των σύγχρονων επιτραπέζιων συστημάτων και όλα αυτά ενώ είχε μπροστά του μόνο έναν μικροϋπολογιστή με διάδραση σε γραμμή εντολών και χωρίς ποντίκι και παραθυρικό περιβάλλον.

Figure 10: Τα πρώτα παράθυρα στο γραφικό περιβάλλον κατασκευάζονται λίγο μετά την επίσκεψη της Apple στο Xerox PARC, οπότε υπάρχουν πολλές ομοιότητες στην μορφή και στην λειτουργία τους. Η επιλογή για λευκό υπόβαθρο στα παράθυρα του γραφικού περιβάλλοντος του Liza έγινε με κριτήριο την δυνατότητα για ομοιόμορφη προβολή και εκτύπωση τόσο του κειμένου, όσο και των εικόνων.

Αμέσως μετά τους πρωτοπόρους του δημιουργικού μετασχηματισμού του υπολογιστών σε μια νέα μορφή Douglas Engelbart και Ivan Sutherland, οι ερευνητές του Xerox PARC εφάρμοσαν την τεχνική της εξομοίωσης, έτσι ώστε να μπορούν να εργάζονται με το σύστημα που ήθελαν και όχι απλά με αυτό που είχαν διαθέσιμο. Πράγματι, η Xerox μόλις είχε αγοράσει την Scientific Data Systems και αγνόησε το αίτημα των ερευνητών του PARC για την αγορά του ανταγωνιστικού DEC PDP, το οποίο ήταν πολύ δημοφιλές ανάμεσα στους συναδέλφους ερευνητές σε άλλους οργανισμούς και στο δίκτυο ερευνητικής συνεργασίας ARPANET. Στην πράξη όμως αυτό δεν ήταν μεγάλο πρόβλημα, αφού με την τεχνική της εξομοίωσης οι ερευνητές του PARC δημιούργησαν το PDP με μικροκώδικα πάνω στο φυσικό μηχάνημα της SDS. Με τον ίδιο ακριβώς τρόπο, χρησιμοποίησαν το μηχάνημα Data General Nova για να αναπτύξουν το λογισμικό για το Alto, πολύ πριν έχουν στην διάθεση τους το υλικό της αρχική έκδοση του Alto. Παρόμοια ο Niklaus Wirth θα καταφέρει να εκτελέσει και να ενημερώσει είκοσι-πέντε χρόνια μετά την βάση για το αρχικό λογισμικό διάδρασης για το σύστημα Oberon με την δημιουργία ενός νέου υπολογιστή με την τεχνική των προγραμμάτων για FPGA, δηλαδή υλικό που επιτρέπει την εξομοίωση άλλου υλικού υπολογιστή. Για τους ερευνητές του PARC και τους συνεργάτες τους, η διάδραση με τους υπολογιστές σημαίνει κυρίως την κατασκευή ενός νέου υπολογιστή και του περιβάλλοντος ανάπτυξης που περιλαμβάνει τον μεταγλωτιστή και τον επεξεργαστή κειμένου, τα οποία αρχικά θα πρέπει να εξομοιωθούν στα πρώτα στάδια της ανάπτυξης πάνω σε ένα διαφορετικό από το τελικό φυσικό μηχάνημα. Η επιλογή της εξομοίωσης μπορεί να γίνει αρχιτεκτονική επιλογή, όπως στην περίπτωση της JAVA όπου ο κατασκευαστής φροντίζει για την εκτέλεση μόνο πάνω σε μια εικονική μηχανή και αφήνει την υλοποίηση του κατώτερου επιπέδου στους επιμέρους κατασκευαστές υλικού.

Figure 11: Το σύστημα Oberon βασίζεται στις ιδέες του Xerox Cedar και δίνει έμφαση στην εκπαιδευτική κοινότητα με στόχο ένας χρήστης να μπορεί να κατανοήσει την λειτουργία της διάδρασης πλήρως και χωρίς να γίνονται διακρίσεις ανάμεσα σε γλώσσα προγραμματισμού, λειτουργικό σύστημα, και εφαρμογές. Για αυτόν τον σκοπό, χρησιμοποιεί την γλώσσα προγραμματισμού Oberon στην οποία είναι γραμμένο όλο το σύστημα και η διάδραση βασίζεται σε έναν συνδυασμό γραφικής διεπαφής και γραμμής εντολώ.

Μοντελοποίηση και Αναλογία

Figure 12: O Altair θεωρείται ο πρώτος δημοφιλής μικροϋπολογιστής και ήταν διαθέσιμος σε οικονομικό κιτ το οποίο ο χρήστης συναρμολογούσε μόνος του και στην συνέχεια θα έπρεπε να αγοράσει και τα σχετικά περιφεριακά εισόδου και εξόδου, όπως ο τηλέτυπος για την είσοδο και έξοδο κειμένου, τα οποία κόστιζαν ακόμη περισσότερο. Ήταν όμως πολύ πιο προσιτός από τους μίνιϋπολογιστές εκείνης της εποχής και επιπλέον ήταν διαθέσιμοι με την επίσης προσιτή γλώσσα προγραμματισμού BASIC.

Η βασική τεχνολογία για την κατασκευή της διάδρασης παραμένει διαχρονικά ο προγραμματισμός ενός υπολογιστή. Ο προγραμματισμός με την σειρά του είναι μια σημαντική αλλά ξεχωριστή περίπτωση διάδρασης με τον υπολογιστή που έχει περάσει από πολλά στάδια και συνεχίζει να εξελίσεται. Οι πρώτοι κεντρικοί υπολογιστές όπως και ο πρώτος μικροϋπολογιστής Altair προγραμματίζονταν με τους φυσικούς διακόπτες, αλλά αυτό ήταν δύσκολο ειδικά για μεγάλα προγράμματα και σετ δεδομένων. Για αυτόν τον λόγο, ο προγραμματισμός των υπολογιστών ξεκίνησε να γίνεται με ασύγχρονο τρόπο μέσω της χρήσης διάτριτων καρτών σε σετ, ή ακόμη καλύτερα με την χρήση διάτρητης χαρτοταινίας. Η εγγραφή και ανάγνωση από διάτρητη χαρτοταινία ήταν πολύ οικονομική και τόσο δημοφιλής για να βρίσκεται ενσωματωμένη ακόμη και πάνω στα νέα μοντέλα συσκευής εισόδου και εξόδου που βασίζονταν στον τηλέτυπο, ο οποίος ήταν για πολλές δεκαετίες ο βασικός τρόπος συγγραφής προγραμμάτων υπολογιστή και επόμενως διάδρασης, αφού το πληκτρολόγιο και η διάτρητη χαρτοταινία ήταν τα συστήματα εισόδου, ενώ η χαρτοταινία πάλι και η εκτύπωση ήταν τα συστήματα εξόδου. Με αυτόν τον τρόπο, φτιάχτηκαν και τα πρώτα συστήματα διάδρασης σε πραγματικό χρόνο, όπως ήταν η LISP και το JOSS, αλλά η πλειοψηφία των συστημάτων λειτουργούσε ασύγχρονα με εργασίες δέσμης. Όλα αυτά τα ηλεκτρομηχανικά συστήματα εισόδου και εξόδου από τον υπολογιστή που βασίζονταν στο χάρτι θα αντικατασταθούν από τις ηλεκτρονικές και αργότερα ψηφιακές οθόνες και το ποντίκι την δεκαετία του 1980, αλλά ο προγραμματισμός του υπολογιστή θα παραμείνει μια διαδικασία που βασίζεται σε γραπτές γλώσσες κειμένου που εισάγονται με το πληκτρολόγιο.

Figure 13: Το σύστημα SmallStar επιτρέπει την δημιουργία νέου λογισμικού χωρίς την χρήση γλώσσας προγραμματισμού με κείμενο για την ροή εκτέλεσης. Για τον σκοπό αυτό, ο χρήστης κάνει εγγραφή της αλληλεπίδρασης με την διεπαφή και συμπληρώνει φόρμες όπου υπάρχει ασάφεια.

Οι γλώσσες προγραμματισμού με την ευρεία έννοια τους είναι οι δομικές τεχνολογίες για τα συστήματα διάδρασης, αφού με αυτές υλοποιούνται και καθορίζεται η ποιότητα των διαδραστικών συστημάτων. Οι γλώσσες προγραμματισμού που βασίζονται σε γραπτό κείμενο είναι ο βασικός τρόπος διάδρασης για όσους θέλουν να κατασκευάσουν ένα διαδραστικό σύστημα, ακόμη και αν αυτό χρησιμοποιεί μια άλλη συμβολική γλώσσα πέρα από το κείμενο για την αλληλεπίδραση με τον χρήστη. Για παράδειγμα, το UNIX κατασκευάστηκε με την γλώσσα προγραμματισμού C, αλλά οι χρήστες θα αλληλεπιδράσουν με ένα κέλυφος που παρέχει ένα σετ από βασικές εντολές που μπορούν να συνδυαστούν σε απλά προγράμματα. Αντίθετα, το σύστημα του Alto βασίζεται μόνο στην Smalltalk η οποία εκτός από γλώσσα προγραμματισμού καθορίζει και την συμπεριφορά του συστήματος διάδρασης συνολικά τόσο στην βάση του, όσο και στις τελικές εφαρμογές, ενώ στο UNIX αν θέλουμε μια νέα διαφορετική εντολή ή σημαντικές αλλαγές στο σύστημα, αυτό μπορεί να γίνει με την γλώσσα C. Το χάσμα ανάμεσα στην γλώσσα προγραμματισμού και στην διάδραση γίνεται ακόμη μεγαλύτερο κατά την μετάβαση στις γραφικές διεπαφές επιφάνειας εργασίας, όπου η διάδραση βασίζεται στον απευθείας χειρισμό αντικειμένων στην οθόνη. Για να γεφυρωθεί αυτό το χάσμα προγραμματισμού έχει αναπτυχθεί η τεχνική του προγραμματισμού με παραδείγματα, όπου ο προγραμματιστής αντί να περιγράφει στον υπολογιστή πως θα εκτελέσει μια λειτουργία, χρησιμοποιεί την διάδραση με απευθείας χειρισμό για να δείξει το αποτέλεσμα που θέλει. Η τεχνική του προγραμματισμού με παραδείγματα μπορεί θεωρητικά να δώσει τις δυνατότητες του προγραμματισμού σε χρήστες με μικρότερες δεξιότητες, αλλά στην πράξη δεν έχει αποδειχτεί χρήσιμη ούτε εκπαιδευτικά, ούτε στην αποτελεσματικότητα των νέων δημιουργιών, αφήνοντας έτσι όλο το βάρος στην ανάπτυξη δεξιοτήτων με τις γλώσσες προγραμματισμού ή ακόμη καλύτερα στην ανάπτυξη νέων γλωσσών προγραμματισμού.

Figure 14: Η εμπειρία της διάδρασης με το Alto εντυπωσίασε τόσο πολύ τον Niklaus Wirth που αποφάσισε να δημιουργήσει ένα παρόμοιο μηχάνημα με την ονομασία Lilith. Ακολούθησε μια λιγότερο δυναμική κατεύθυνση από αυτήν της Smalltalk, με την δημιουργία της γλώσσας προγραμματισμού Modula καθώς και με παράθυρα που δεν αλληλοεπικαλύπτονται.

Ανάμεσα στις πολλές τεχνολογίες λογισμικού για την κατασκευή νέων διαδραστικών συστημάτων, οι γλώσσες προγραμματισμού που επιτρέπουν τόσο την ανάπτυξη νέων συστημάτων όσο και την εξέλιξη της ίδιας της γλώσσας έχουν διαχρονική αποτελεσματικότητα, αλλά με μεγάλο κόστος στην εκμάθηση. Για παράδειγμα, η εκφραστική δύναμη της αρχικής γλώσσας Lisp επιτρέπει την συγγραφή του μεταγλωτιστή της στην ίδια την γλώσσα, μια επιλογή που δείχνει προς την κατεύθυνση της συνεχούς βελτίωσης της γλώσσας προγραμματισμού, η οποία δεν είναι πλέον κάτι στατικό. Αυτή η τεχνική χρησιμοποιήθηκε και κατά την δημιουργία του διαδραστικού περιβάλλοντος Smalltalk, η οποία εκτός από γλώσσα πρόγραμματισμού για τον χρήστη επιτρέπει και την μεταβολή του αρχικού συστήματος, δηλαδή και της ίδιας της γλώσσας. Παρόμοια τακτική ακολούθησαν και άλλοι κατασκευαστές για να δημιουργήσουν από την αρχή νέα διαδραστικά συστήματα, όπως είναι τα Lilith, Oberon, τα οποία υλοποιήθηκαν με τις Modula, Oberon, οι οποίες με την σειρά τους δεν ήταν εντελώς νέες αλλά επεκτάσεις της δομημένης και στατικής Pascal, ώστε να είναι συμβατή με το πλαίσιο ανάπτυξης του νέου διαδραστικού συστήματος. Η βασική διαφορά που έχουν αυτά τα συστήματα από το αρχικό Alto και την Smalltalk είναι ότι επιλέγουν μια δομημένη γλώσσα προγραμματισμού με στατικό ορισμό τύπων, παρότι και στις δύο περιπτώσεις αυτά τα συστήματα στόχευαν στο ίδιο κοινό, δηλαδή στην εκπαίδευση. Από αυτές τις προσπάθειες προκύπτει ότι οι ίδιες οι γλώσσες και τα περιβάλλοντα προγραμματισμού δεν είναι ποτέ τεχνολογίες, οι οποίες αναφέρονται κυρίως σε κάποιες σημαντικές ιδιότητες τους. Επίσης, προκύπτει η κατανόηση ότι η δεξιότητα χρήσης ενός ισχυρού και εκφραστικού συστήματος διαδραστικής κατασκευής και δημιουργίας είναι συνήθως αντιστρόφως ανάλογο με την ευκολία εκμάθησης του.

Figure 15: Το περιβάλλον προγραμματισμού JOSS δεν έκανε διάκριση ανάμεσα σε γλώσσα προγραμματισμού και λειτουργικό σύστημα και επηρέασε την έκδοση της BASIC για μικροϋπολογιστές της δεκαετίας του 1980, γιατί βασιζόταν σε μια σύγχρονη αλληλεπίδραση ανθρώπου και υπολογιστή, σε αντίθεση με τα συστήματα εκείνης της εποχής που βασίζονταν κυρίως σε εργασίες δέσμης. Επίσης, η JOSS δείχνει την κατανόηση της διάδρασης ως διαλογική επικοινωνία ανθρώπου-υπολογιστή και ταυτόχρονα αποτυπώνει τον ρόλο των συσκευών διάδρασης σε αυτόν τον διάλογο, που στην περίπτωση της ήταν ο τηλέτυπος.

Μια θεμελιώδης τεχνική που διατρέχει την δημιουργία όλων των καινοτόμων τεχνολογιών διάδρασης είναι ότι βασίζονται σε ένα μικρό σύνολο από αρχιτεκτονικές επιλογές περισσότερο ως αναλογία και λιγότερο ως προσομοίωση του πραγματικού κόσμου. Για παράδειγμα, η δημιουργία της Smalltalk και της ανταλλαγής μηνυμάτων ανάμεσα σε αντικείμενα είναι εμπνευσμένη από την λειτουργία του βιολογικού κυτάρου. Όπως δηλαδή ένα κύταρο αλληλεπιδρά δυναμικά και χωρίς κάποιο πλάνο και δομή με διπλανά του κύταρα, έτσι ακριβώς και τα αντικείμενα στην Smalltalk ανταλλάσσουν μηνύματα δημιουργώντας συνδέσμους δυναμικά κατά την εκτέλεση, ακόμη και αν αυτές οι διαδράσεις δεν είχαν αρχικά σχεδιαστεί. Αν και η αρχιτεκτονική για την κατασκευή της Smalltalk βασίζεται στην εξομοίωση, ένα από τα βασικά κίνητρα της δημιουργίας καθώς και ένα από τα πεδία εφαρμογής έχει να κάνει με την προσομοίωση του φυσικού κόσμου, έτσι ώστε οι προγραμματιστές να μπορούν να μελετήσουν την συμπεριφορά πολύπλοκων συστημάτων που θα μοντελοποιήσουν. Βλέπουμε δηλαδή ότι οι κατασκευαστές του Alto και της Smalltalk όχι μόνο δεν είναι αντίθετοι στην εξομοίωση, αλλά είναι πολύ θετικοί, αρκεί όμως αυτό να μην γίνεται εμπόδιο για την διαδικασία κατασκευής η οποία θα πρέπει να βασίζεται στην εξομοίωση ενός νέου καινοτόμου συστήματος. Μια αντίστοιχη αλλά πολύ διαφορετική αναλογία μπορούμε να εντοπίσουμε και στην περίπτωση του UNIX, όπου οι κατασκευαστές χρειάστηκε μαζί με το λειτουργικό σύστημα να δημιουργήσουν και την νέα γλώσσα προγραμματισμού C, η οποία σχεδιάστηκε έτσι ώστε να είναι κατάλληλη για την συνεχή βελτίωση αυτού του λειτουργικού συστήματος και του διαδραστικού κελύφους γραμμής εντολών, το οποίο απευθύνεται αρχικά σε εργαζόμενους τηλεφωνικών οργανισμών που πρέπει να διαχειριστούν δεδομένα σε αρχεία και να ετοιμάσουν τεκμηρίωση για τις τηλεπικοινωνιακές τεχνολογίες. Στην περίπτωση του UNIX, η αναλογία είναι ότι όλα τα δομικά στοιχεία του συστήματος είναι αρχεία, μια αναλογία που έφτασε στην ωρίμανση της με το επόμενο δημιούργημα των ερευνητών στα Bell Labs, το Plan9.

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

Στις προηγούμενες ενότητες είδαμε τον κεντρικό ρόλο του τηλέτυπου, ο οποίος μετασχηματίστηκε σταδιακά από ένα αυτόνομο τερματικό για την αποστολή μηνυμάτων στην βασική συσκευή διάδρασης για την κατασκευή πολλών καινοτόμων συστήματων όπως τα Sketchpad, NLS, UNIX, Smalltalk, JOSS, CPM, MS-BASIC. Ταυτόχρονα παρατηρούμε ότι ο ρόλος του τηλέτυπου στα ίδια αυτά συστήματα είχε πολύ διαφορετικό βαθμό επιροής στο τελικό τερματικό διάδρασης με τον χρήστη. Για παράδειγμα, η διάδραση στο τελικό σύστημα Sketchpad δεν περιλαμβάνει καθόλου στοιχεία ούτε από το περιβάλλον ανάπτυξης, αλλά ούτε και από τις συσκευές διάδρασης κατά την ανάπτυξη του. Στην πιο σύγχρονη εκδοχή του αυτό το σενάριο παρουσιάζεται στην περίπτωση ανάπτυξης κινητών εφαρμογών σε έναν επιτραπέζιο υπολογιστή, αλλά η διάδραση θα γίνει με διαφορετικά συστήματα εισόδου και εξόδου στο έξυπνο κινητό. Σε ένα ενδιάμεσο επίπεδο συναντάμε το σύστημα NLS καθώς και την Smalltalk όπου το κείμενο και η επεξεργασία του έχουν κεντρικό ρόλο, αλλά αυτό είναι μόνο ένα μικρό υποσύνολο από τις δυνατότητες του γραφικού περιβάλλοντος, αλλά και της συσκευής εισόδου ποντίκι που είναι κάτι νέο. Στο αντίθετο άκρο τα συστήματα JOSS, UNIX, όχι μόνο έχουν τον τηλέτυπο ως βασικό μοντέλο για την διάδραση με τον χρήστη, αλλά ϋοθετούν τον τηλέτυπο και ως συσκευή εισόδου και εξόδου για την διάδραση με τον τελικό χρήστη, όπου έχει κεντρικό ρόλο στο τερματικό γραμμής εντολών. Μια διαφορετική αναλογία αντί για τον τηλέτυπο μπορούμε να εντοπίσουμε στην τεχνολογία του εικονικού τερματικού εικονοστοιχείων VNC, το οποίο επιτρέπει την διάδραση με γραφική διεπαφή με έναν απομακρυσμένο υπολογιστή. Με αυτήν την τεχνολογία η διάδραση σε ένα τερματικό χρήστη ενορχηστρώνεται σε έναν απομακρυσμένο υπολογιστή, ο οποίος με την τεχνική της εξομοίωσης μπορεί να έχει όποια συμπεριφορά μπορούμε να φανταστούμε και να υλοποιήσουμε.

Βιβλιογραφία

  1. Nelson, Theodor H. POSSIPLEX: Movies, Intellect, Creative Control, My Computer Life and the Fight for Civilization: an Autobiography of Ted Nelson. Mindful Press, 2010.
  2. Lanier, Jaron. You Are Not a Gadget: A Manifesto. Vintage, 2010.
  3. Kay, Alan C. “The Early History of Smalltalk.” ACM SIGPLAN Notices, vol. 28, no. 3, ACM New York, NY, USA, 1993, pp. 69–95.
  4. Engelbart, Douglas C. Augmenting Human Intellect: A Conceptual Framework. SRI, Menlo Park, CA, 1962.
  5. Gildall, Gary. Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry. Unpublished, 1993.
  6. Roszak, Theodore. From Satori to Silicon Valley: San Francisco and the American Counterculture. Don’t Call It Frisco Press, 1986.
  7. Raskin, Jef. The Humane Interface: New Directions for Designing Interactive Systems. Addison-Wesley Professional, 2000.
  8. Bardini, Thierry. Bootstrapping: Douglas Engelbart, Coevolution, and the Origins of Personal Computing. Stanford University Press, 2000.
  9. Hiltzik, Michael. Dealers of Lightning: Xerox PARC and the Dawning of the Computer Age. 1999.
  10. Mumford, Lewis. Technics and Civilization. University of Chicago Press, 2010.
  11. Ihde, Don. Technics and Praxis: A Philosophy of Technology. Springer Science & Business Media, 2012.
  12. Wirth, Niklaus, and Jürg Gutknecht. Project Oberon. Addison-Wesley Reading, 1992.
  13. Shasha, Dennis, and Cathy Lazere. Out of Their Minds: the Lives and Discoveries of 15 Great Computer Scientists. Springer Science & Business Media, 1998.