Το λήμμα δεν περιέχει πηγές ή αυτές που περιέχει δεν επαρκούν. |
Στιγμιότυπο του παραθύρου AgentCubes.
| |
Γενικά | |
---|---|
Ημερ. Δημιουργίας | 1991 |
Είδος | Εκπαιδευτικό λογισμικό |
Διανομή | |
Λειτουργικά | |
Διαθέσιμο σε | Πολυγλωσσικό |
Ανάπτυξη | |
Κατάσταση | Ενεργή |
Σύνδεσμοι | |
Επίσημος ιστότοπος | |
http://www.agentsheets.com |
Το AgentSheets είναι ένα λογιστικό φύλλο (spreadsheet) βασισμένο σε πράκτορες λογισμικού (agents) που μπορεί να χρησιμοποιηθεί για να δημιουργηθούν αλληλεπιδραστικές προσομοιώσεις παρόμοιες με το SimCity, εποπτικά προγραμματιστικά περιβάλλοντα προσανατολισμένα σε συγκεκριμένα πεδία γνώσης, παιχνίδια, καθώς και κυψελικά αυτόματα. Συνδυασμένο με την εποπτική μέθοδο προγραμματισμού “Visual AgenTalk” την οποία ενσωματώνει, το AgentSheets είναι ένα ευέλικτο υπολογιστικό μέσο για μια ποικιλία από τελικούς χρήστες υπολογιστών, που κυμαίνεται από K-12 μαθητές (νηπιαγωγείου-δημοτικού) μέχρι επαγγελματίες. Πάνω από 100 εφαρμογές έχουν δημιουργηθεί με το περιβάλλον AgentSheets σε περιοχές που περιλαμβάνουν την εκπαίδευση, την τέχνη, την επιστήμη υπολογιστών και τη μηχανική.
Η εταιρεία AgentSheets και ο ιδρυτής της Alexander Repenning έχουν βραβευθεί και υποστηριχθεί από οργανισμούς και εταιρείες, όπως το MIT και η Apple, ενώ το 1998 χρηματοδοτήθηκε από το αμερικανικό ίδρυμα NSF (American National Science Foundation) με μια δωρεά 100.000 αμερικανικών δολαρίων για την εμπορική επέκταση του υπάρχοντος site ανταλλαγής agents (το καλούμενο Behavior Exchange).
Παλαιότερες εκδόσεις (π.χ. η 1.4b2) των AgentSheets για Apple MacOS (με επεξεργαστή της γενιάς PowerPC) και Mac/68K (με επεξεργαστή της γενιάς 68000) υπολογιστές ήταν ελεύθερα διαθέσιμες, αλλά έγινε εμπορικό προϊόν μετά την κυκλοφορία έκδοσης για Microsoft Windows. Η τελευταία είναι συμβατή με την έκδοση για Mac, δηλαδή μπορούν να τρέξουν σε αυτή οι διάφορες εφαρμογές και οι πράκτορες που έχουν δημιουργηθεί παλαιότερα σε Mac υπολογιστές. Τα διάφορα εγχειρίδια, όπως και άλλα ενδιαφέροντα κείμενα για την ερευνητική παιδαγωγική δουλειά που έχει γίνει με το περιβάλλον AgentSheets, έχουν μετατραπεί σε μορφή που μπορούν να χειριστούν τα Windows και υπάρχουν διαθέσιμα στον κόμβο τους στο Internet.
Οι Αgents οργανώνονται σε ένα πλέγμα που καλείται “agentsheet” (αντίστοιχα με το spreadsheet του Excel, μόνο που στα κελιά του πλέγματος κατοικούν agents). Η επικοινωνία μεταξύ των agents γίνεται είτε απευθείας είτε μέσω χωρικών σχέσεων που παρέχονται από το πλέγμα όπου κατοικούν. Ένας agent μπορεί να αναπαριστά ένα αλληλεπιδραστικό (που μπορεί δηλαδή να το χειριστεί ο χρήστης και αυτό να αντιδρά ανάλογα, πιθανώς τροποποιώντας την εμφάνιση του) ή και αυτόνομο δομικό αντικείμενο (component) που αναπαριστά κάποια οντότητα της εξομοίωσης, όπως για παράδειγμα διακόπτες, καλώδια και ηλεκτρικούς λαμπτήρες.
Στο AgentSheets, ένας agent είναι μια αυτόνομη διεργασία που έχει την ικανότητα να αντιλαμβάνεται και να ενεργεί μέσα στο περιβάλλον στο οποίο βρίσκεται. Το πεδίο «αντίληψης» (perceptions) ενός agent περιλαμβάνει πατήματα των πλήκτρων του ποντικιού, ηχητική είσοδο (από μικρόφωνο), άλλους agents, τιμές ιδιοτήτων, είσοδο από το πληκτρολόγιο, το περιεχόμενο web σελίδων και μηνύματα που έχει οριστεί κατά τον προγραμματισμό του να αναγνωρίζει. Οι ενέργειες που μπορεί να κάνει ένας agent περιλαμβάνουν μετεγκατάσταση/μετακίνηση του, (συνθετική) ομιλία, αποστολή μηνύματος σε άλλους agents, υπολογισμών τιμής κάποιων ιδιοτήτων, αλλαγή εμφάνισης (είτε δικής του είτε γειτονικών agents), εμφάνιση κάποιας web σελίδας και παίξιμο ενός ήχου.
Παρότι οι τεχνικές του εποπτικού (visual) προγραμματισμού έχουν χρησιμοποιηθεί τελευταία για να χαμηλώσουν το φράγμα μεταξύ των επαγγελματιών προγραμματιστών και των τελικών χρηστών, δεν είναι αρκετές για τη δημιουργία περιβαλλόντων προγραμματισμού που απευθύνονται στον τελικό χρήστη και που είναι ταυτόχρονα εύκολα προς χρήση και ισχυρά ως προς το αποτέλεσμα που παράγουν. Σύμφωνα με τους δημιουργούς του περιβάλλοντος AgentSheets, ένα προγραμματιστικό περιβάλλον που είναι εύκολο προς χρήση και πλούσιο σε εκφραστικότητα πρέπει να περιέχει μηχανισμούς που εμπλουτίζουν τη δυνατότητα του χρήστη να κατανοεί προγράμματα και τμήματα προγραμμάτων, να συνθέτει πολύπλοκα προγράμματα από απλούστερες στοιχειώδεις εντολές και, το πιο σημαντικό, να μοιράζεται εύκολα προγράμματα και τμήματα προγραμμάτων μέσα σε μια κοινότητα χρηστών. Παρότι διάφορα προγραμματιστικά περιβάλλοντα έχουν αντιμετωπίσει αυτές τις ανάγκες απομονωμένα, πιστεύουν πως είναι απαραίτητο να βρεθεί μια ομοιόμορφη μεθοδολογία χειρισμού ενός προγράμματος που να υποστηρίζει ταυτόχρονα την κατανόηση, τη σύνθεση και τον διαμοιρασμό μεταξύ χρηστών προγραμμάτων ή τμημάτων αυτών.
Η Visual AgentTalk είναι ένα βασισμένο σε κανόνες (rule-based) προγραμματιστικό περιβάλλον για το AgentSheets που απευθύνεται στον τελικό χρήστη (end user). Εισάγει μια νέα προσέγγιση στον προγραμματισμό από τον τελικό χρήστη, που ονομάζεται “Tactile Programming” (χειροπιαστός προγραμματισμός). Οι βασικές εντολές (primitives) και τα προγράμματα σε αυτή τη μέθοδο προγραμματισμού όχι μόνο έχουν πλούσιες οπτικές αναπαραστάσεις για να ενισχύουν την αναγνωσιμότητα του προγράμματος (οι εντολές είναι κουτιά που η μορφή τους απεικονίζει την ενέργεια που επιτελούν και τις παραμέτρους που καθορίζουν αυτή), αλλά έχουν και αλληλεπιδραστικά στοιχεία για να συνδράμουν στην συγγραφή και τροποποίηση ενός προγράμματος (οι παράμετροι είναι μενού με εικόνες που δείχνουν όλες τις δυνατές τιμές μιας παραμέτρου ώστε επιλέγοντας μια από αυτές να μην υπάρχει περίπτωση εισαγωγής άκυρης τιμής).
Γενικά, τα λεγόμενα “visual” (εποπτικά) προγραμματιστικά περιβάλλοντα χρησιμοποιούν την οπτικοποίηση (εξαιρουμένης της μορφής αναγνώσιμου κειμένου κώδικα που προϋπήρχε και στα παλαιότερα περιβάλλοντα) για να αναπαραστήσουν προγράμματα και προγραμματιστικές κατασκευές. Αυτές οι αναπαραστάσεις, εκτός και παρέχουν κάποια μορφή πληροφορίας στο χρήστη (feedback) κατά την εκτέλεση του προγράμματος, είναι στατικές αναπαραστάσεις του προγράμματος. Το να βλέπεις τέτοια προγράμματα σε ένα δυναμικό μέσο, όπως είναι ο υπολογιστής, λίγα προσφέρει στο να τα κάνει πιο κατανοήσιμα σε σχέση με το να βλέπεις τα ίδια προγράμματα σε ένα στατικό μέσο όπως είναι το χαρτί (να τα βλέπεις δηλαδή εκτυπωμένα). Ο «χειροπιαστός προγραμματισμός» επεκτείνει τα ήδη υπάρχοντα στον εποπτικό προγραμματισμό προσθέτοντας την αντίληψη μέσω του χειρισμού (perception by manipulation).
Στην μέθοδο αυτή προγραμματισμού, οι εποπτικές αναπαραστάσεις εμπλουτίζονται με μια πιο χειροπιαστή έννοια ανάγοντας τα τμήματα του προγράμματος στην τάξη εποπτικών δομικών στοιχείων που μπορούν να συρθούν και ριφθούν σε διαφορετικά περιβάλλοντα πέραν από έναν επεξεργαστή κώδικα (program editor). Η εφαρμογή προγραμματιστικών αντικειμένων με τη ρίψη τους σε διαφορετικές θέσεις-κόσμους ενεργοποιεί δυναμική οπτικοακουστική ανάδραση που δημιουργεί αντίληψη μέση του χειρισμού. Η δυνατότητα να εφαρμόζονται τα προγραμματιστικά αντικείμενα σε διαφορετικά πλαίσια μέσω του ίδιου τρόπου χειρισμού από το χρήστη (drag&drop) είναι η κύρια έγνοια του «χειροπιαστού προγραμματισμού» και παρέχει υποστήριξη για την κατανόηση, τη σύνθεση και την ανταλλαγή προγραμμάτων.
Ο προγραμματισμός με τη Visual AgenTalk επικεντρώνεται γύρω από την έννοια των αντικειμένων που μπορούν να μετακινούνται με ευελιξία μεταξύ τριών διαφορετικών κόσμων, του κόσμου της εφαρμογής (application world), του προγραμματιστικού κόσμου (programming world) και του κόσμου της συνεργασίας (collaboration world):
Ο «χειροπιαστός προγραμματισμός» βασίζεται στην δυνατότητα των τελικών χρηστών να διέρχονται εύκολα τα σύνορα μεταξύ των κόσμων της εφαρμογής, του προγραμματισμού και του μοιράσματος. Η φιλοσοφία του είναι η δημιουργία ενός προγραμματιστικού περιβάλλοντος που παίρνει υπόψη και τους τρεις αυτούς κόσμους και παρέχει μια ενοποιημένη αντιμετώπιση όσον αφορά την προσπέλαση τους. Έτσι διευκολύνει την σύνθεση, την κατανόηση και την ανταλλαγή προγραμμάτων μεταξύ των χρηστών:
Η διαδικασία προγραμματισμού στη VAT περιλαμβάνει την δημιουργία προγραμμάτων μέσω της σύνθεσης τους από αντικείμενα του προγραμματιστικού κόσμου. Παρόμοια με το εκπαιδευτικό περιβάλλον Boxer και το LiveWorld, η Visual AgenTalk εισάγει μια χωρική μεταφορά, όπου τα προγράμματα αναπαριστώνται ως κουτιά που μπορούν να μπουν το ένα μέσα στο άλλο (φωλιασμένα). Η σύνθεση πραγματοποιείται με την τοποθέτηση αντικείμενα του προγραμματιστικού κόσμου μέσα στα κουτιά αυτά, ενώ ένα προγραμματιστικό αντικείμενο μπορεί να λειτουργεί και αυτό ως κουτί, δεχόμενο μέσα του άλλα αντικείμενα. Υποστηρίζονται δυο διαφορετικές προσεγγίσεις για τη διαδικασία τοποθέτησης των αντικειμένων μέσα στα κουτιά, η απευθείας σύνθεση και η σύνθεση μέσω παραδείγματος.
Στην απευθείας σύνθεση (direct composition), οι χρήστες συνθέτουν προγράμματα επιλέγοντας εντολές από τις παλέτες συνθηκών (condition) και ενεργειών (action) και σύροντας τις μέσα σε κανόνες που περιέχονται σε ένα παράθυρο επεξεργασίας κανόνων (λειτουργεί και αυτό ως ένα κουτί - το πιο έξω κουτί που περιέχει όλα τα άλλα) της Visual AgenTalk. Ένα σύνολο κανόνων ερμηνεύεται από την κορυφή προς τα κάτω και αν ο μεταφραστής κανόνων βρει έναν κανόνα του οποίου όλες οι συνθήκες είναι αληθείς θα εκτελεστούν όλες οι ενέργειες αυτού, πάλι από πάνω προς τα κάτω (οι ενέργειες τοποθετούνται μέσα στο κουτί “then” ενός κανόνα “if-then” [εάν-τότε]). Η εκτέλεση ενός κανόνα συνεπάγεται και έξοδο από τη διαδικασία αναζήτησης αληθούς κανόνα, δηλαδή οι κανόνες που βρίσκονται παρακάτω από αυτόν που τελικά επαληθεύτηκε και εκτελέστηκε δεν ελέγχονται, ενώ με τον επόμενο κύκλο του μεταφραστή θα ξαναρχίσει η αναζήτηση αληθούς κανόνα από την κορυφή.
Στην σύνθεση μέσω παραδείγματος, η σύνθεση αντικειμένων του προγραμματιστικού κόσμου γίνεται μέσω του χειρισμού αντικειμένων του κόσμου της εφαρμογής. Για παράδειγμα, κρατώντας πατημένο ένα ειδικό πλήκτρο, χειριζόμαστε τα αντικείμενα που θέλουμε να προγραμματίσουμε, όπως κάνουμε και στο Office όταν καταγράφουμε μια μακροεντολή, δηλαδή δείχνουμε τι θέλουμε να κάνει ένα αντικείμενο. Μπορούμε να κάνουμε κλίκ σε έναν γειτονικό agent αυτού που προγραμματίζουμε τη συμπεριφορά, ώστε να προστεθεί στο πεδίο «εάν» του τρέχοντος «εάν-τότε» κανόνα η συνθήκη πως πρέπει να υπάρχει στην αντίστοιχη κατεύθυνση δίπλα στον δικό μας agent ο agent στον οποίο κάναμε κλικ. Διαγράφοντας στη συνέχεια τον διπλανό μας agent δείχνουμε στη Visual AgenTalk πως η πρέπει να βάλει στο πεδίο «τότε» του αντίστοιχου κανόνα την ενέργεια που διαγράφει το γειτονικό μας agent. Έτσι μπορεί να προγραμματιστεί ένας agent καρχαρίας που όταν συναντά ένα ψάρι το τρώει. Στη συνέχεια μπορούμε να προσθέσουμε και άλλες ενέργειες στο κουτί «τότε» του κανόνα αυτού, π.χ. να πάρουμε από την παλέτα “Action” την ενέργεια “Play Sound”, η οποία παίζει έναν ήχο και έχει ως παράμετρο ένα αναδυόμενο μενού με τους ήχους που έχουν εγκατασταθεί στο σύστημα, να τη σύρουμε πάνω από τον κανόνα if-then που αναφέρεται στην καταβρόχθιση του γειτονικού ψαριού και να τη ρίξουμε στο κουτί “then” του κανόνα αυτού. Την παράμετρο που έχει να κάνει με το ποιος ήχος θα παιχτεί όταν καταβροχθίζεται το ψάρι, μπορούμε να την ρυθμίσουμε από την αρχή, ενώ η ενέργεια βρίσκεται στην παλέτα ενεργειών (χρήσιμο αν πρόκειται να ρίξουμε ξανά την ίδια ενέργεια και σε άλλους κανόνες π.χ. για να παίζεται ο ίδιος ήχος όταν ο καρχαρίας μας καταβροχθίζει άλλα είδη ψαριών), ή να τη ρυθμίσουμε αφού εισαχθεί στον κανόνα εάν-τότε.
Η αντίληψη μέσω του εποπτικού χειρισμού των εντολών (perception by manipulation) επιτρέπει στους τελικούς χρήστες να ελέγχουν αποδοτικά την λειτουργικότητα μιας εντολής. Τα δομικά στοιχεία της γλώσσας, δηλαδή οι κανόνες (if-then: εάν ισχύουν οι X συνθήκες κάνε τις Y ενέργειες), οι ενέργειες (π.χ. μετακινήση του agent ή παίξιμο κάποιου ήχου), οι συνθήκες (π.χ. το αν ο τάδε agent βρίσκεται στο αριστερό μέρος του agent μας στο πλέγμα όπου κατοικούν και κινούνται), μπορούν να συρθούν με το ποντίκι και να ριφθούν πάνω σε κάποιον agent που βρίσκεται σε ένα worksheet (το φύλλο εργασίας που καλείται και agentsheet), οποιαδήποτε στιγμή κατά τη διάρκεια μιας εξομοίωσης, αλλά και όσο αυτή είναι σταματημένη. Το γλωσσικό στοιχείο που ρίχνουμε σε έναν agent εκτελείται και παρέχει οπτικοακουστική πληροφορία (feedback) υποδεικνύοντας εάν οι συνθήκες είναι αληθείς ή ψευδείς και παρουσιάζοντας τις συνέπειες των εκτελούμενων ενεργειών.
Για παράδειγμα, παίρνοντας την ενέργεια “Play Sound” από την παλέτα ή από κάποιο πρόγραμμα και ρίχνοντας τη πάνω σε έναν agent μέσα σε ένα agentsheet, θα παιχθεί ο ήχος που φέρει και απεικονίζει ως παράμετρο η εντολή αυτή. Αντίστοιχα αν πάρουμε την συνθήκη See έχοντας ρυθμίσει την πρώτη παράμετρό της να είναι το δεξί κατευθυντήριο βελάκι και τη δεύτερη να είναι κάποια συγκεκριμένη μορφή ενός Χ agent, τότε ρίχνοντας την πάνω σε έναν agent, αυτός θα μας απαντήσει σε ένα πλαίσιο διαλόγου αν βλέπει στα δεξιά του τον X agent για τον οποίο τον ρωτήσαμε, δηλαδή αν η συνθήκη είναι αληθής ή ψευδής. Αν ρίψουμε έναν ολόκληρο κανόνα if-then σε έναν agent, τον βλέπουμε να εκτελείται, αφού αλλάζει χρώμα το κουτί συνθηκών του ενώ ελέγχεται και στη συνέχεια το κουτί των ενεργειών εάν οι συνθήκες ήταν αληθείς και οι ενέργειες εκτελεστούν. Αντίθετα, αν κάποια από τις συνθήκες ήταν ψευδής (πρέπει να είναι όλες οι συνθήκες αληθείς στο αντίστοιχο κουτί του κανόνα για να εκτελεστούν οι ενέργειες που φέρει), ακούγεται σχετικός ήχος και εμφανίζεται ποια ήταν η ψευδής συνθήκη (και αυτές ελέγχονται μέσα στο κουτί συνθηκών με φορά από πάνω προς τα κάτω, ενώ και οι ενέργειες εκτελούνται με τη σειρά που έχουν από πάνω προς τα κάτω μέσα στο αντίστοιχο κουτί - και τα δυο αυτά κουτιά είναι μέσα σε ένα μεγαλύτερο κουτί που αποτελεί τον κανόνα).
Ο «χειροπιαστός προγραμματισμός» του AgentSheets υποστηρίζει τη μετάβαση από τον μοναχικό στον κοινωνικό προγραμματισμό. Ολόκληρες εξομοιώσεις, μεμονωμένοι agents, γλωσσικοί κανόνες και νέες στοιχειώσεις εντολές (συνθήκες/ενέργειες) μπορούν να επαναχρησιμοποιηθούν και να μοιρασθούν μέσα στα πλαίσια της κοινότητας των χρηστών του AgentSheets, με χρήση του Internet και συγκεκριμένα του World Wide Web ως MIME types (ένας τύπος δεδομένων που χρησιμοποιείται από τους web browsers, όπως ο Internet Explorer και το Netscape Navigator, για να αντιστοιχούν τα multimedia δεδομένα ανάλογα με τον τύπο τους σε εφαρμογές που κατανοούν τη δομή τους και μπορούν να τα χειριστούν). Δεν χρειάζεται κάποιο plug-in πρόγραμμα για το web browser, αλλά υπάρχει δυνατότητα απ´ευθείας μεταφοράς από τη web σελίδα στην τοπικά εγκατεστημένη (στο μηχάνημα του χρήστη) εφαρμογή των AgentSheets, είτε μέσω drag&drop, είτε με κλικ στο αντίστοιχο αντικείμενο, οπότε και γίνεται αυτόματη μεταφορά του στο κατάλληλο σημείο στο περιβάλλον των AgentSheets (π.χ. ένας agent που φέρνουμε από μια web σελίδα εμφανίζεται στην παλέτα του τρέχοντος project που έχουμε ανοικτό).
Ristretto είναι το όνομα μιας πολύ πρόσφατης τεχνολογικής προσθήκης στο περιβάλλον των AgentSheets, που επιτρέπει στους τελικούς χρήστες να μετατρέψουν εργασίες (projects) που έχουν υλοποιηθεί σε AgentSheets, απευθείας σε Java applets (μικροεφαρμογές που μπορούν να κατεβαίνουν από ένα παροχέα web σελίδων και να τρέχουν μέσα σε μια web σελίδα αλληλεπιδρώντας με το χρήστη). Ετσι πλέον μπορεί κάποιος, χωρίς την ανάγκη να μάθει και καταλάβει τις έννοιες και τον προγραμματισμό στη γλώσσα Java, πατώντας ένα απλό κουμπί, να δημιουργήσει αλληλεπιδραστικές εξομοιώσεις που ανταγωνίζονται το SimCity και μπορούν εύκολα να εισαχθούν στις προσωπικές web σελίδες του ή σε συλλογές εξομοιώσεων που διατηρεί η κοινότητα των AgentSheets στο Internet. Τα Java applets που δημιουργεί το Ristretto μπορούν να χρησιμοποιηθούν μέσω του World Wide Web (WWW) από μια πληθώρα διαφορετικών μηχανών, συμπεριλαμβανομένων των PC/Windows, του Macintosh και Unix υπολογιστών.
Όπως χαρακτηριστικά αναφέρουν οι δημιουργοί του, το Ristretto είναι ένας espresso που φτιάχνεται με λιγότερο (το μισό) νερό απ´ότι χρειάζεται για να φτιάξει κανείς έναν κανονικό espresso (η «κουλτούρα» της Java περιλαμβάνει μεταξύ άλλων και το εικονίδιο ενός φλιτζανιού καφέ, αφού το όνομα της το πήρε από την ομώνυμη μάρκα καφέ που συνηθίζουν να πίνουν οι αρχικοί εμπνευστές/προγραμματιστές της).
Η δημιουργία και δημοσιοποίηση μιας εφαρμογής Java με το Ristretto έχει τρία βήματα:
To Ristretto αποτελείται από δύο είδη μεταγλωττιστών, τον resource compiler (μεταγλωττιστής αρχείων δεδομένων) που μετατρέπει απευθείας εικόνες και ήχους που έχουν δημιουργήσει οι τελικοί χρήστες σε τύπους αρχείων που είναι συμβατά με τη Java (π.χ. εικόνες .gif, .jpg), και τον behavior compiler (μεταγλωττιστής συμπεριφορών) που, με ταχύτητα της τάξης των 10000 και άνω γραμμών κώδικα το δευτερόλεπτο, μεταφράζει την Visual AgenTalk γλώσσα απευθείας σε εκτελέσιμο κώδικα Java (Java byte codes). Επειδή το Ristretto βγάζει Java bytecode και όχι πηγαίο Java κώδικα, ο κώδικας που δημιουργεί δεν χρειάζεται περαιτέρω μεταγλώττιση με κάποιον Java compiler, αλλά είναι άμεσα εκτελέσιμος από κάποια Java Virtual Machine όπως αυτή που ενσωματώνει ο Internet Explorer ή το Netscape Navigator.
Η ευκολία στον προγραμματισμό που δίνει η Visual AgenTalk, συνδυασμένη με τη διάφανη χρήση της τεχνολογίας ενός Java compiler επιτρέπει πλέον και στους τελικούς χρήστες, πέραν των επαγγελματιών προγραμματιστών, να δημιουργήσουν τις δικές τους αλληλεπιδραστικές εξομοιώσεις και παιχνίδια για το Internet μέσα σε μερικά λεπτά.
Η παραδοσιακή, υποστηριζόμενη από τον υπολογιστή, διαδικασία σχεδίασης είναι κυρίαρχα μια ιδιωτική προσπάθεια. Η ιδέα υποστήριξης της συνεργασίας υπάρχει εδώ και αρκετό καιρό, αλλά μέχρι πρόσφατα, πριν την εκρηκτική ανάπτυξη της δικτυακής υποδομής, δεν υπήρχαν αρκετά ισχυρές τεχνολογίες διαθέσιμες για την υλοποίηση τέτοιων ιδεών. Με την εφεύρεση του World Wide Web ως το πανταχού παρόν μέσο, τα μοντέλα και περιβάλλοντα σχεδιασμού-προγραμματισμού πρέπει να τροποποιηθούν ώστε να παίρνουν υπόψη τη νέα δυναμική.
Καθώς οι υπολογιστές διασυνδέθηκαν και οι μηχανισμοί επικοινωνίας έγιναν όλο και πιο εξειδικευμένοι, μια μετάβαση προς την κοινωνική συνεργατική σχεδίαση έγινε δυνατή και άλλαξε τον τρόπο που η γνώση μπορεί να ανταλλαχθεί και επαναχρησιμοποιηθεί.
Η βασική ιδέα της κονστρακτιβιστικής/δομησιακής μάθησης (constructionism) είναι η κατασκευή γνωσιακών αναπαραστάσεων κατά την κατασκευή «τεχνικών» ή «έντεχνων» αντικειμένων. Η μάθηση συντελείται στο πλαίσιο όπου η γνώση είναι σχετική. Αρα παρέχει κίνητρο. Η αποδόμηση (breakdown) βοηθά στον εντοπισμό λάθος θεωρήσεων σχετικά με το υποκείμενο μοντέλο. Η χρήση κατασκευών που άλλοι χρήστες δημιούργησαν και η εξέταση λύσεων που βρήκαν για τα προβλήματα τους, μπορεί να επάγει μια νέα κοινή μεταξύ των χρηστών κατανόηση του χώρου ενός προβλήματος.
Πάνω σε αυτές τις ιδέες βασίστηκε η σχεδίαση και δημιουργία ενός μηχανισμού με τον όποιο οι χρήστες του AgentSheets μπορούν να δημοσιοποιήσουν τη συμπεριφορά (behavior) κάποιου agent και τις διαφορετικές απεικονίσεις-μορφές αυτού. Οταν είμαστε σε κατάσταση σχεδίασης (μενού Gallery/Views), μπορούμε να επιλέξουμε κάποιον agent από την παλέτα με τους agents (Galery) και μέσω του μενού “Web/ Upload Agent” να τον μεταφέρουμε σε ένα κοινό αποθετήριο (repository), απ’όπου και μπορούν άλλοι χρήστες των AgentSheets να τον κατεβάσουν, χρησιμοποιήσουν, τροποποιήσουν και πιθανώς επαναδημοσιοποιήσουν με τη σειρά τους ως νέα, δικιά τους, βελτιωμένη/τροποποιημένη έκδοση του αρχικού agent. Η εμφάνιση αυτού του αποθετηρίου που ονομάζεται “Behavior Exchange”, γίνεται από το μενού Web, μέσω της επιλογής “Browse Behavior Exchange”, η οποία ανοίγει τον τρέχοντα web browser σε δυναμικές web σελίδες που δημιουργούνται από το μηχάνημα που διατηρεί τη βάση δεδομένων του αποθετηρίου με τους agents. Το πιο ενδιαφέρον χαρακτηριστικό, πέραν της αναμενόμενης οργάνωσης των agents ανά θεματική περιοχή, είναι η δυνατότητα εισαγωγής ενός agent απευθείας στην παλέτα του τρέχοντος ανοικτού project με απλό κλικ πάνω σε αυτόν (για να γίνεται αυτό πρέπει πρώτα να ρυθμιστεί ο web browser ώστε να δίνει στο AgentSheets να χειριστεί τα αρχεία με κατάληξη .agent - οδηγίες γι’αυτό υπάρχουν στον κόμβο του Behavior Exchange και έχουν να κάνουν με την ρύθμιση του AgentSheets ως βοηθητικής (“File Helper”) εφαρμογής για το χειρισμό του MIME τύπου application/agent.
Οι σχεδιαζόμενες επεκτάσεις του κόμβου αυτού έχουν να κάνουν με την προσθήκη μιας μηχανής αναζήτησης agents, αφού όσο αυξάνεται το πλήθος των agents που υπάρχουν εκεί δυσκολεύει η αναζήτηση των επιθυμητών προς χρήση σε κάποια συγκεκριμένη προσομοίωση/πείραμα που θέλουμε να κάνουμε, αλλά και με την δυνατότητα ανταλλαγής με όμοιο τρόπο όπως και με την ανταλλαγή agents, των υπόλοιπων στοιχείων των AgentSheets, δηλαδή ολόκληρες εξομοιώσεις μαζί με τους agents που περιλαμβάνουν, κανόνες, ενέργειες και συνθήκες αλλά και νέες εντολές που δημιουργούν οι πιο πεπειραμένοι χρήστες με την γλώσσα OPUS που ενσωματώνει το AgentSheets.
Οι αντικειμενοστρεφείς γλώσσες απέδειξαν πως είναι μια ισχυρή μέθοδος προγραμματισμού για την υπερπήδηση των προβλημάτων που έχουν σχέση με την κατασκευή λογισμικού. Θέματα όπως η γρήγορη πρωτοτυποποίηση, η γρήγορη υλοποίηση, η ευκολία συντήρησης και τροποποποίησης υποστηρίζονται αρκετά καλά σε συστήματα που παρέχουν χρηστικά περιβάλλοντα υψηλού βαθμού αλληλεπίδρασης. Η προγραμματιστική γλώσσα Common Lisp είναι ιδανική πλατφόρμα για να χτίσει κανείς επάνω της αντικειμενοστρεφή εργαλεία, επειδή το περιβάλλον της υποστηρίζει την αυξητική ανάπτυξη λογισμικού.
Η OPUS είναι ένα αντικειμενοστρεφές σύστημα βασισμένο στην Common Lisp και επηρεασμένο από τη Smalltalk. Αποτελείται από ένα συμπαγή πυρήνα (kernel) που είναι εύκολα μεταφέρσιμος σε διαφορετικά περιβάλλοντα Common Lisp. Σε αντίθεση με τα περισσότερα αντικειμενοστρεφή περιβάλλοντα που βασίζονται στη Lisp, η OPUS αντιμετωπίζει τις κλάσεις ως πραγματικά αντικείμενα, δηλαδή οι κλάσεις έχουν τις δικές τους μεθόδους και μεταβλητές. Αντί να εκμεταλλεύεται πολλές διαφορετικές απόψεις με ένα υβριδικό τρόπο, η OPUS εισάγει λίγες έννοιες και τις εφαρμόζει ομοιόμορφα παντού.
Ολες οι εντολές (συνθήκες και ενέργειες) που μπορεί να αντιληφθεί ένας agent είναι προγραμματισμένα στη γλώσσα OPUS που ενσωματώνει το AgentSheet (διάλεκτος της Lisp) και μπορεί να δημιουργηθούν και ενσωματωθούν στο περιβάλλον και νέες εντολές από τον χρήστη αν έχει οικειότητα με τη Lisp, αλλιώς μπορεί να κατεβάσει και τοποθετήσει στον κατάλογο “Extensions” του AgentSheets τα προγράμματα επέκτασης του AgentSheets που έχουν δημιουργήσει άλλοι χρήστες ή η ομάδα που δημιούργησε και συνεχίζει να βελτιώνει το περιβάλλον αυτό.