forked from Epikoinonites/text
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ch08.txt
527 lines (461 loc) · 58.6 KB
/
ch08.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
# Τεχνολογία
![](kay-software.md){.epigraph}
![](abs-technology.md){.include}
## Τεχνολογικά προϊόντα
Στην τεχνολογία λογισμικού υπάρχουν συνήθως πολλά επίπεδα αφαίρεσης,
τα οποία κάνουν δύσκολη τη διάκριση ανάμεσα στη βασική τεχνολογία και στο τεχνολογικό προϊόν.
Επίσης, συμβαίνει συχνά κάποια δημοφιλή προϊόντα να δίνουν το όνομά τους σε όλη την κατηγορία,
όπως ακριβώς συμβαίνει σε πολλά καταναλωτικά προϊόντα. Για παράδειγμα,
υπήρχε μια περίοδος που η οδοντόκρεμα λεγόταν kolynos και η χλωρίνη καθαρισμού λεγόταν kleenex.
Αντίστοιχα, ο παγκόσμιος ιστός δεν είναι τεχνολογία,
αλλά ένα δημοφιλές προϊόν της τεχνολογικής κατηγορίας των υπερμέσων.
Φυσικά, ούτε τα Facebook, iPhone, Android, Windows, κτλ. είναι τεχνολογίες.
Το ίδιο ισχύει και για τις δημοφιλείς γλώσσες αντικειμενοστραφούς προγραμματισμού,
όπως είναι η Java, η οποία δημιουργήθηκε για να εξυπηρετήσει τις ανάγκες μιας εποχής
και, κυρίως, τις ανάγκες μιας εταιρείας που λειτουργούσε σε ένα δεδομένο πολιτισμικό πλαίσιο,
οπότε έχει πολλές ιδιότητες διαφορετικές από αυτές της Smalltalk,
^[@ingalls2020evolution]
που ήταν η πρώτη γλώσσα του είδους είκοσι χρόνια νωρίτερα.
^[@roszak1986satori]
Η διάκριση ανάμεσα σε τεχνολογία και προϊόν γίνεται ακόμη δυσκολότερη
στην περίπτωση που πολλές διαφορετικές εταιρείες χρησιμοποιούν την ίδια έννοια,
όπως για παράδειγμα τα αρχεία και τις εφαρμογές.
Η συμφωνία χρήσης αρχείων και εφαρμογών σε προϊόντα διαφορετικών εταιρειών
δημιουργεί την ψευδαίσθηση ότι αυτά είναι βασικές τεχνολογίες διάδρασης,
αλλά στην πράξη είναι απλά δημοφιλείς και οικείες συμβάσεις
για χρήστες που δεν θέλουν να κατανοήσουν άλλες κατευθύνσεις της τεχνολογίας διάδρασης.
^[fig:norton-commander]
^[fig:sugar-neighborhood]
![](norton-commander.md){.figure}
![](sugar-neighborhood.md){.figure}
Η κατανόηση της τεχνολογίας απαιτεί αρχικά μια σημειωτική ανάλυση
των βασικών λέξεων που χρησιμοποιούμε,
^[@mumford2010technics @ihde2012technics]
γιατί υπάρχουν πολλά προϊόντα τα οποία θεωρούνται τεχνολογίες, αλλά δεν είναι.
^[@nelson2010possiplex]
Αν θέλουμε να έχουμε κατανόηση πέρα από τα συμφέροντα των κατασκευαστών και τις εμπορικές συγκυρίες,
τότε η ονομασία μιας τεχνολογίας διάδρασης θα πρέπει να σχετίζεται άμεσα με την λειτουργία που πραγματικά κάνει.
Για παράδειγμα, το σύστημα SwyftWare σχεδιάστηκε από τον Jef Raskin για να κάνει επεξεργασία κειμένου,
που είναι μια από τις πιο δημοφιλείς χρήσεις για τον επιτραπέζιο υπολογισμό.
^[@raskin2000humane]
Για αυτόν τον σκοπό, από την πλευρά του χρήστη, δεν έχει ούτε λειτουργικό σύστημα
ούτε σύστημα αρχείων, ούτε εφαρμογές, αφού όλα αυτά είναι απλά προϊόντα και όχι βασικές τεχνολογίες,
που είναι απαραίτητες για να έχουμε μια ποιοτική διάδραση με την επεξεργασία μικρών ή μεγάλων κειμένων
και με ό,τι αυτή συνδέεται, όπως σημειώσεις και αλληλογραφία.
Το σύστημα αρχείων είναι η πιο δημοφιλής περίπτωση προϊόντος, το οποίο οι περισσότεροι θεωρούν πως είναι τεχνολογία.
Στην πραγματικότητα, η θεώρηση ενός συστήματος λογισμικού ως σύνολο αρχείων έγινε δημοφιλής με το σύστημα UNIX.
Η σημασία των αρχείων ενδυναμώθηκε στη συνέχεια από την γραφική επιφάνεια εργασίας και τα έγγραφα,
που αναπαραστάθηκαν ως αρχεία. Τόσο το υλικό του συστήματος όσο και το βασικό επίπεδο λογισμικού δεν έχουν αρχεία,
τα οποία είναι ένα κατασκεύασμα που εξυπηρετεί καλά πολλούς σκοπούς,
αλλά σίγουρα δεν είναι ο μόνος τρόπος οργάνωσης του λογισμικού. Για παράδειγμα,
την ίδια περίοδο που οι μηχανικοί στα Bell Labs κατασκεύασαν το σύστημα αρχείων του UNIX,
οι μηχανικοί στο Xerox PARC κατασκεύασαν μια εναλλακτική οργάνωση του λογισμικού,
που βασίζεται στα αντικείμενα, τα οποία ανταλλάσσουν μηνύματα. Επίσης,
η επεξεργασία εγγράφων κειμένου στο SwyftWare δεν είχε αρχεία,
όπως αρχεία δεν είχαν οι αρχικές εκδόσεις του λειτουργικού συστήματος iOS
για τις κινητές συσκευές της Apple.
Αμέσως μετά τα αρχεία, το λειτουργικό σύστημα και οι εφαρμογές του επιτραπέζιου και κινητού υπολογισμού
αποτελούν σημαντικά παραδείγματα προϊόντων, τα οποία, όμως, δεν είναι βασική τεχνολογία για το λογισμικό διάδρασης.
Το λειτουργικό σύστημα παρέχει στον προγραμματιστή και στον απλό χρήση ένα ενιαίο περιβάλλον διάδρασης
για πολλές διαφορετικές εφαρμογές. Το λειτουργικό σύστημα είναι μια ιδέα χρήσιμη για πολύ ακριβά μηχανήματα,
για τα οποία δεν γνωρίζουμε τις πιθανές εφαρμογές τους. Από την πλευρά του χρήστη, για μια δεδομένη λειτουργία,
όπως η επεξεργασία κειμένου, το λογισμικό διάδρασης δεν χρειάζεται να έχει ενδιάμεσα επίπεδα
ή αρχιτεκτονικές της πληροφορίας που εξυπηρετούν και άλλους σκοπούς. Ειδικά οι εφαρμογές,
όπως τις γνωρίζουμε από τις δημοφιλείς γραφικές διεπαφές σε επιτραπέζια και κινητά συστήματα,
δημιουργούν ένα περιβάλλον χρήστη με έμφαση στην κατανάλωση, παρά στη δημιουργία. Πράγματι,
αν μια εφαρμογή δεν έχει μια λειτουργία, τότε ο χρήστης θα πρέπει να αγοράσει κάποια άλλη εφαρμογή,
που πιθανόν είναι πολύ παρόμοια με την αρχική. Επίσης, πολλές λειτουργίες παγιδεύονται σε μια εφαρμογή
και δεν μπορούν να χρησιμοποιηθούν σε άλλη ή να γίνει μια σύνθεσή τους με τρόπο που να βολεύει. Για παράδειγμα,
η γραμμή εντολών, όπως έγινε αρχικά γνωστή με το Unix, δεν περιέχει εφαρμογές,
αλλά τη δυνατότητα διασύνδεσης εντολών για τη δημιουργία σύνθετων προγραμμάτων,
που μπορούν να κάνουν ό,τι και μια εφαρμογή, χωρίς να παγιδεύονται σε ένα κλειστό κουτί.
Από τις αρχές της δεκαετίας του 1980, ο Gary Gildall είχε διαπιστώσει
ότι, ακόμη και όταν υπάρχει ανάγκη για διακριτό λειτουργικό σύστημα και εφαρμογές,
αυτά δεν θα πρέπει να φτιάχνονται από τον ίδιο κατασκευαστή,
γιατί δημιουργείται σύγκρουση συμφερόντων.
^[@computer1993connections]
Η γραφική διεπαφή των δημοφιλών επιτραπέζιων συστημάτων, όπως είναι τα Windows, MacOS και GNOME,
συνήθως αποτελείται από παράθυρα που αντιπροσωπεύουν εφαρμογές ή έγγραφα,
καθώς, επίσης, και από μενού εργαλείων που εμφανίζονται ως εικονίδια.
Όπως ακριβώς είδαμε και στις προηγούμενες περιπτώσεις προϊόντων παραπάνω,
αυτή η τόσο δημοφιλής οργάνωση και η σημασιολογία των γραφικών στοιχείων είναι ένα ακόμη δημοφιλές προϊόν,
το οποίο οι περισσότεροι θεωρούν ως τεχνολογία χωρίς εναλλακτικές.
Πράγματι, είναι πολύ δύσκολο να εντοπίσουμε εμπορικές εναλλακτικές,
καθώς η ευχρηστία αυτού του μοντέλου έχει επικρατήσει για πολλές δεκαετίες
και οποιαδήποτε αλλαγή είναι τουλάχιστον τόσο δύσκολη όσο η οδήγηση από την αντίθετη κατεύθυνση.
Η ευχρηστία αυτού του μοντέλου διάδρασης μπορεί να ερμηνευτεί τόσο από την καθολική επικράτηση του
όσο και από την οικειότητα που έχει δημιουργηθεί, καθώς είναι το πιο απλό στην εκμάθηση,
ειδικά για περιστασιακούς χρήστες. Τα εναλλακτικά συστήματα γραφικής διεπαφής που υπάρχουν
βασίζονται περισσότερο στις προσαρμογές, τις οποίες θα κάνει ένας προγραμματιστής,
ή είναι λιγότερο εύχρηστα γιατί απευθύνονται σε συχνούς χρήστες μεγαλύτερης δεξιότητας.
Για παράδειγμα, τα συστήματα Xerox Cedar και Oberon δημιουργήθηκαν με έμπνευση το Alto,
αλλά με χρήση δομημένης γλώσσας προγραμματισμού, όπως είναι οι Mesa και η Pascal.
Αυτά τα ερευνητικά συστήματα δίνουν κεντρικό ρόλο στα έγγραφα, τα οποία εμφανίζονται στα παράθυρα,
ενώ η διάδραση γίνεται με σύνθεση εντολών όπως στο UNIX,
οι οποίες επιτρέπουν τους υπερσυνδέσμους ανάμεσα στα έγγραφα,
καθώς και τον διαμοιρασμό τους με άλλους χρήστες.
Ο παγκόσμιος ιστός, τα κοινωνικά δίκτυα και τα έξυπνα κινητά
είναι τα πιο πρόσφατα παραδείγματα προϊόντων,
τα οποία, όμως, δεν αποτελούν βασικές τεχνολογίες.
Η τεχνολογία του αντικειμενοστραφούς προγραμματισμού έχει γίνει δημοφιλείς
με γλώσσες προγραμματισμού όπως η Java και η C++, αλλά αυτές όχι μόνο είναι απλά προϊόντα,
αλλά και έχουν συγκεκριμένες ιδιότητες που δεν ταιριάζουν με την αρχική σχεδίαση.
Η αρχική σχεδίαση και υλοποίηση του αντικειμενοστραφούς προγραμματισμού από τον Άλαν Κέη,
ήταν εμπνευσμένη από την περιοχή της βιολογίας, τα κύτταρα και την πολύπλοκη κλίμακα των ζωντανών οργανισμών.
Αντί να βασίζεται σε πολύπλοκες δομές δεδομένων, η Smalltalk βασίζεται σε πολύ απλές δομές,
που ανταλλάσσουν μηνύματα μεταξύ τους, έτσι ώστε να είναι εφικτή η δημιουργία κλίμακας από απλά δομικά στοιχεία.
Για τη δημιουργία πολύπλοκων συστημάτων δεν υπάρχει λόγος να έχουμε πολύπλοκες γλώσσες προγραμματισμού,
αφού αρκεί να έχουμε ένα συμβολικό σύστημα, το οποίο ταιριάζει στο πεδίο εφαρμογής. Για τον σκοπό αυτό,
τα σύγχρονα συστήματα που βασίζονται στη φιλοσοφία της Smalltalk
κατασκευάζονται με τη σταδιακή υλοποίηση ενός μεταφραστή
που είναι γραμμένος στην ίδια γλώσσα πρόγραμματισμού με αυτήν του κώδικα που μετατρέπει σε εκτελέσιμο.
Με αυτόν τον τρόπο, οι προδιαγραφές του συστήματος είναι καθολικές ανάμεσα σε συστήματα με διαφορετικό υλικό.
Τα παραπάνω δεν σημαίνουν ότι υπάρχει κάποια σωστή ή λάθος σχεδίαση,
αλλά σίγουρα σημαίνει ότι πολλές τεχνολογικές ετικέτες
θα πρέπει να χρησιμοποιούνται με περισσότερες επεξηγήσεις σχετικά με το πεδίο ερφαρμογής
και τους τυπικούς χρήστες, έτσι ώστε να είναι διακριτό το πραγματικό τους νόημα.
Ταυτόχρονα, μπορούμε να εντοπίσουμε καινοτόμα συστήματα, όπως το Superpaint,
τα οποία δεν βασίζονται ούτε σε κάποιο λειτουργικό σύστημα ούτε σε κάποια γλώσσα προγραμματισμού.
Πράγματι, ένα σύστημα διάδρασης μπορεί να φτιαχτεί για έναν σημαντικό σκοπό,
όπως είναι η ψηφιακή επεξεργασία εικόνας, χωρίς τη φιλοδοξία να γίνει πλατφόρμα για κάτι άλλο.
## Εξομοίωση και προσομοίωση
![](paper-simulation.md){.figure}
![](magic-cap.md){.figure}
Η εξομοίωση και η προσομοίωση παρέχουν δύο σημαντικούς τρόπους θεώρησης
της λειτουργίας του υπολογισμού και των εφαρμογών του. Χρονολογικά,
η εξομοίωση είναι προγενέστερη της προσομοίωσης,
καθώς περιγράφεται από τον Alan Turing ως ένα χαρακτηριστικό της γενικής μηχανής υπολογισμού.
Η δυνατότητα της εξομοίωσης επιτρέπει σε ένα μηχάνημα
να εξομοιώνει τη λειτουργία κάποιου άλλου διαφορετικού μηχανήματος.
Υπάρχουν πολλές δημοφιλείς μηχανές εξομοίωσης για τους μικρο-υπολογιστές
και τις παιχνιδομηχανές της δεκαετίας του 1980,
αλλά η εξομοίωση δεν είναι δημοφιλής τρόπος σχεδίασης νέων συστημάτων διάδρασης.
Η προσομοίωση αναφέρεται στη δυνατότητα ενός μηχανήματος να υπολογίζει και να οπτικοποιεί
τη συμπεριφορά συστήματων, των οποίων τη λειτουργία δεν μπορεί να γνωρίζει επακριβώς,
όπως είναι τα πολύπλοκα φυσικά ή βιολογικά φαινόμενα. Για παράδειγμα,
οι πρώτοι υπολογιστές χρησιμοποιήθηκαν για τον υπολογισμό της τροχιάς ενός πυραύλου,
καθώς και για την πρόβλεψη του καιρού, ενώ οι πιο πρόσφατες εφαρμογές της προσομοίωσης
περιλαμβάνουν τη λειτουργία των βιολογικών κυττάρων, καθώς και των μικροσκοπικών σωματιδίων της ύλης.
Οι εφαρμογές της προσομοίωσης είναι από τις πιο πετυχημένες εμπορικά εφαρμογές των υπολογιστών,
αλλά αυτή η επιτυχία τους έχει επισκιάσει τη συμπληρωματική θεώρηση του υπολογισμού που βρίσκεται στην εξομοίωση.
Πράγματι, οι σύγχρονες προσομοιώσεις είναι τόσο εξελιγμένες σε συμπεριφορά,
που μοιάζουν πολύ με το αντίστοιχο φαινόμενο που προσομοιώνουν. Για παράδειγμα,
ένας προσομοιωτής πτήσης, από τον πιο απλό οικιακό μέχρι τον πιο εξελιγμένο,
που χρησιμοποιείται για την εκπαίδευση των πιλότων,
μοιάζει πάρα πολύ με τον χειρισμό ενός αληθινού αεροσκάφους.
H θεώρηση της εξομοίωσης δεν έχει γίνει ακόμη τόσο δημοφιλής όσο η προσομοίωση,
γιατί είναι πιο δύσκολη και απαιτεί δημιουργικότητα και φαντασία.
Η προσομοίωση ενός φυσικού φαινομένου απαιτεί από εμάς την παρατήρηση και την κατανόησή του,
αλλά η εξομοίωση ενός νέου μηχανήματος απαιτεί από εμάς να το σχεδιάσουμε
και κυρίως να φανταστούμε κάτι που δεν υπάρχει. Για παράδειγμα, πολλά βιντεοπαιχνίδια,
αν και αρχικά ο κλάδος τους ξεκίνησε επίσης ως προσομοίωση, παρουσιάζουν γραφικά και συμπεριφορές
που δεν βασίζονται σε προσομοίωση της πραγματικότητας.
Η δημοφιλία της προσομοίωσης και η δυσκολία που παρουσιάζει η εξομοίωση
έχουν οδηγήσει τις περισσότερες εφαρμογές του παραδοσιακού επιτραπέζιου υπολογισμού
στην κατεύθυνση της προσομοίωσης του πραγματικού κόσμου. Για παράδειγμα,
η γραφική διεπαφή στον επιτραπέζιο υπολογιστή είναι μια προσομοίωση
της επιφάνειας εργασίας στον αληθινό χώρο του γραφείου.
^[fig:paper-simulation]
^[fig:magic-cap]
Αντίστοιχα, οι εφαρμογές επεξεργασίας εγγράφων είναι μια προσομοίωση των χάρτινων εγγράφων του αληθινού κόσμου.
Στην πραγματικότητα όμως, ο υπολογιστής, με γραφικά ή χωρίς, δεν έχει κανέναν περιορισμό
για το πώς θα είναι μια γραφική διεπαφή ή μια εφαρμογή επεξεργασίας εγγράφων.
Σίγουρα, η προσομοίωση του αληθινού κόσμου στον κόσμο του υπολογιστή
δημιουργεί μια αρχική αίσθηση ευχρηστίας μέσα από την οικειότητα. Επομένως,
για τα μηχανήματα εκείνα που πρέπει να είναι εύχρηστα για ευκαιριακούς χρήστες,
η προσομοίωση είναι μια χρήσιμη τεχνική, αλλά δεν είναι αντιπροσωπευτική
των δυνατοτήτων που θέλουμε να έχουμε, αν ο στόχος μας είναι η επαύξηση της ανθρώπινης νοημοσύνης. Επιπλέον,
για κάποιες εφαρμογές διάδρασης σε πραγματικό χρόνο, όπως είναι η μουσική και η ζωγραφική,
η προσομοίωση τους στον συμβολικό χώρο του υπολογισμού
αφαιρεί δυνατότητες που βρίσκονται πέρα από τις ρητές γνώσεις μας,
αλλά ήταν προσβάσιμες στα αρχικά αναλογικά εργαλεία ήχου και χρώματος.
Η πιο δημοφιλής μορφή και ταυτόχρονα η πιο ιδιάζουσα περίπτωση προσομοίωσης
συναντάται στον κινητό υπολογισμό της δεκαετίας του 2010,
όπου οι συσκευές διάδρασης μικραίνουν σε μέγεθος
και προσομοιώνουν τις εφαρμογές του επιτραπέζιου υπολογισμού,
αντί να ορίσουν νέα παραδείγματα, συμβατά με το κινητό πλαίσιο χρήσης. Για παράδειγμα,
τα πρώτα κινητά λειτουργικά συστήματα της Microsoft έχουν γραφικό περιβάλλον με κουμπί εκκίνησης,
ενώ όλα τα συστήματα βασίζονται στην ιδέα των εφαρμογών για την οργάνωση του λογισμικού τους.
Όπως έχουμε ήδη αναλύσει στην ενότητα των Μορφών,
οι εφαρμογές λογισμικού είναι μια πολύ συγκεκριμένη μορφή οργάνωσης του λογισμικού,
η οποία ωφελεί, κυρίως, την κυρίαρχη πλατφόρμα ενός λειτουργικού συστήματος. Με άλλα λόγια,
οι κατασκευαστές λογισμικού επέλεξαν, για άλλη μια φορά, να βελτιστοποιήσουν τα συμφέροντά τους,
τα οποία παρουσιάζουν στους χρήστες ως οικειότητα και ευχρηστία. Στην πράξη όμως,
αυτό που πραγματικά προσφέρουν στους τελικούς χρήστες είναι μια προσομοίωση
ενός παραδείγματος του επιτραπέζιου υπολογισμού σε ένα νέο πλαίσιο χρήσης,
το οποίο είναι πολύ διαφορετικό. Με αυτόν τον τρόπο,
τα κινητά συστήματα είναι μια ακόμη χαμένη ευκαιρία, μετά τα επιτραπέζια,
αφού παγιδεύονται στη θεώρηση της προσομοίωσης
και δεν εξετάζουν καθόλου την εξομοίωση νέων συστημάτων διάδρασης.
![](ed-editor.md){.figure}
![](unix-tmg.md){.figure}
Η περίπτωση των συστημάτων διάδρασης ανοιχτού κώδικα είναι εξίσου ιδιάζουσα με αυτή του κινητού υπολογισμού,
γιατί προσομοιώνει το γραφικό περιβάλλον εργασίας και τις εφαρμογές των κυρίαρχων συστημάτων. Για παράδειγμα,
τα πιο δημοφιλή γραφικά περιβάλλοντα με επιφάνεια εργασίας όπως τα Gnome και KDE, είναι αντίγραφα των Windows και MacOS.
Ταυτόχρονα, οι αντίστοιχες εφαρμογές γραφείου ανοιχτού κώδικα OpenOffice και LibreOffice
είναι επίσης αντίγραφα των αντίστοιχων εφαρμογών Microsoft Office και Apple iWork.
Ο ανοιχτός κώδικας σε επίπεδο εφαρμογής και περιβάλλοντος ήταν δεδομένος στο σύστημα Smalltalk του Alto,
αλλά οι κατασκευαστές του είχαν κάνει πολλές ακόμη αρχιτεκτονικές επιλογές.
Ακόμη και πέρα από τον χώρο της διάδρασης που διαπραγματευόμαστε εδώ,
οι κατασκευαστές ανοιχτού λογισμικού φαίνονται παγιδευμένοι περισσότερο στην αναπαραγωγή της υπάρχουσας κατάστασης
παρά στην καινοτομία. Πράγματι, ο κατασκευαστής του πυρήνα του Linux επέλεξε στις αρχές τις δεκαετίας του 1990
να φτιάξει μια εκδοχή ενός παραδοσιακού πυρήνα που υπάρχει από τις αρχές του 1970
και ταυτόχρονα να βρει καθολική ανταπόκριση από πολλές διαφορετικές ομάδες χρηστών.
Σίγουρα η διάθεση του λογισμικού με ανοιχτό κώδικα έχει περισσότερα πλεονεκτήματα
από το ίδιο λογισμικό με κλειστό κώδικα, αλλά αν η αρχιτεκτονική του και η διάδρασή του
είναι ίδια ακριβώς με αυτή του κλειστού κώδικα,
τελικά το κίνημα του ανοιχτού κώδικα καταλήγει να εξυπηρετεί όχι μόνον τον εαυτό του,
αλλά, κυρίως, τα συμφέροντα των κατασκευαστών κλειστού λογισμικού,
οι οποίοι μπορούν πλέον να ετεροπροσδιορίζονται ως τεχνολογία.
Τελικά αυτό δεν εξυπηρετεί την πραγματική βελτίωση της ποιότητας του λογισμικού διάδρασης,
που μπορεί να γίνει μόνο με τους κατάλληλους εξομοιωτές για νέα συστήματα που δεν υπάρχουν,
καθώς και με εξομοίωση συστημάτων εισόδου και εξόδου δεδομένων.
^[fig:ed-editor]
^[fig:unix-tmg]
Τόσο τα πρώτα πειραματικά βιντεοπαιχνίδια
όσο και τα δημοφιλή προϊόντα των επόμενων δεκαετιών
συνήθως βασίζονται στη θεώρηση της προσομοίωσης.
Για παράδειγμα, το βιντεοπαιχνίδι Tennis for two
^[fig:tennis-for-two]
δημιουργήθηκε για έναν αναλογικό υπολογιστή
με οπτικοποίηση στην οθόνη ενός φασματοσκόπιου,
στον οποίο οι δύο παίκτες έπαιζαν τένις σε πρόσοψη.
Μερικά χρόνια αργότερα,
το δημοφιλές βιντεοπαιχνίδι Pong αντιγράφει το Table Tennis for Two
^[fig:magnavox-odyssey]
και χρησιμοποιεί την οπτικοποίηση της κάτοψης. Επίσης,
ένα από τα πρώτα δημοφιλή βιντεοπαιχνίδια τη δεκαετία του 1960
σε μινι-υπολογιστές είναι το Spacewar, στο οποίο οι παίκτες
κάνουν μια αερομαχία στο διάστημα
σε συνθήκες βαρύτητας γύρω από ένα πλανητικό κέντρο.
Αντίστοιχα, τη δεκαετία του 1970,
πολλοί προγραμματιστές αποκτούν την πρώτη τους επαφή
με τον υπολογιστή με τον ευρέως διαθέσιμο κώδικα
του βιντεοπαιχνιδιού Lunar Lander, όπου
ο παίκτης προσπαθεί να προσγειώσει ένα διαστημόπλοιο στη σελήνη.
Παρατηρούμε ότι και στις δύο περιπτώσεις,
εκτός από την προσομοίωση της φυσικής πραγματικότητας,
η θεματολογία των βιντεοπαιχνιδιών είναι έντονα επηρεασμένη
από την τότε πολιτική και πολιτιστική πραγματικότητα
ή από μια αθλητική και παιγνιώδη δραστηριότητα.
Μετά τη δεκαετία του 1970, εμφανίζονται,
πολύ δειλά και ως αφαιρετικοί μετασχηματισμοί των προηγούμενων,
τα πρώτα καινοτόμα βιντεοπαιχνίδια,
όπως ήταν τα Breakout και Space Invaders,
αλλά το παράδειγμα της προσομοίωσης παραμένει κυρίαρχο.
![](tennis-for-two.md){.figure}
![](magnavox-odyssey.md){.figure}
Τα βιντεοπαιχνίδια σε κονσόλες και σε μικρο-υπολογιστές των δεκαετιών του 1970 και 1980
απέκτησαν μια δεύτερη ζωή μακριά από το αρχικό υλικό τους με την τεχνολογία της εξομοίωσης, μετά το 2000.
Η βελτιωμένη επεξεργαστική ισχύς των επιτραπέζιων συστημάτων επέτρεψε την ανάπτυξη εξομοιωτών
που μπορούσαν να εκτελέσουν το παλαιότερο λογισμικό σε μια αντίστροφη κίνηση,
όπου τα διαθέσιμα συστήματα και η θεώρηση της εξομοίωσης δεν χρησιμοποιούνται για να μας πάνε παρακάτω,
αλλά πίσω στον χρόνο. Με αυτόν τον τρόπο, μια νέα γενιά χρηστών χρησιμοποιεί συστήματα που δεν υπάρχουν,
ενώ και πολλοί παλιότεροι ζουν στην πράξη τις αναμνήσεις τους. Σίγουρα, η εξομοίωση παλιών συστήματων,
τα οποία δεν είναι, πλέον, ευρέως διαθέσιμα, είναι μια άριστη πρακτική για να έχουμε πρόσβαση σε παλαιότερο λογισμικό,
ακόμη και για να αναπτύξουμε νέο λογισμικό για αυτό το δυσεύρετο, πλέον, υλικό. Ταυτόχρονα, όμως,
αυτή η κάπως οπισθοδρομική εφαρμογή της θεώρησης της εξομοίωσης επιβεβαιώνει
ότι τόσο οι κατασκευαστές όσο και η χρήστες έχουν μια έμφυτη τάση στην αναπαραγωγή της υπάρχουσας κατάστασης,
παρά στη δημιουργία καινοτομίας, ακόμη και όταν έχουν στη διάθεση τους τα κατάλληλα εργαλεία,
όπως είναι οι ισχυροί και δικτυωμένοι προσωπικοί υπολογιστές και η τεχνική της εξομοίωσης.
Πέρα από το γραφικό περιβάλλον και τα έγγραφα στον επιτραπέζιο υπολογισμό,
η μονοθεματική θεώρηση της προσομοίωσης είναι, επίσης, το κυρίαρχο παράδειγμα,
ακόμη και σε καινοτόμα συστήματα διάδρασης, όπως είναι η εικονική πραγματικότητα.
Η εικονική πραγματικότητα όπως περιγράφηκε αρχικά από τον Jaron Lanier
ήταν μια προσπάθεια εξομοίωσης ενός κόσμου που δεν υπάρχει.
Δεν είναι τυχαίο ότι ο δημιουργός και νονός της θεωρεί ατυχές το όνομα *εικονική πραγματικότητα*,
αφού δηλώνει μια προσομοίωση. Πράγματι, στις δικές του πειραματικές εφαρμογές εικονικής πραγματικότητας,
ο χαρακτήρας που ελέγχεται μπορεί να είναι ένα χταπόδι ή κάποιο άλλο δημιούργημα που δεν υπάρχει.
Ταυτόχρονα, η οπτικοποίηση και η συμπεριφορά του εικονικού κόσμου
δεν προσομοιώνει τον πραγματικό κόσμο της ανθρώπινης εμπειρίας, αλλά έναν κόσμο που δεν υπάρχει.
Ο στόχος της εξομοίωσης μιας δυνητικής πραγματικότητας είναι να εμπλουτίσει την ανθρώπινη εμπειρία
και να επαυξήσει την ανθρώπινη νοημοσύνη σε ευρύτερα πεδία,
στα οποία δεν υπάρχει απευθείας πρόσβαση μέσα από το φυσικό περιβάλλον.
^[@engelbart1962augmenting @lanier2010you]
Αντίθετα, οι περισσότερες εφαρμογές εικονικής πραγματικότητας
προσπαθούν να προσομοιώσουν την πραγματικότητα όσο πιο πιστά γίνεται,
τόσο στην εμφάνιση της με γραφικά όσο και στη συμπεριφορά του κόσμου και των χαρακτήρων.
Αν και τα συστήματα εικονικής πραγματικότητας είχαν μικρή εμβέλεια για πολλές δεκαετίες,
αποτελούν άλλη μια σημαντική χαμένη ευκαιρία για την εξερεύνηση της εξομοίωσης
ως βασικής θεώρησης κατασκευής νέων διαδραστικών συστημάτων.
![](lisa-bootstrapping.md){.figure}
![](emulators.md){.figure}
Μια ερμηνεία για την τάση προσομοίωσης ή την τάση εξομοίωσης του παρελθόντος μπορούμε να αντλήσουμε
από το γνωστικο πεδίο των μέσων επικοινωνίας.
Για παράδειγμα, στο παρελθόν, η εισαγωγή της τεχνολογίας της τηλεόρασης
θεωρήθηκε μια συνέχεια της τεχνολογίας του ραδιοφώνου. Οπότε,
η παραγωγή του περιεχομένου που θα φιλοξενούσε το νέο μέσο
θα ήταν μια γραμμική βελτίωση του περιεχομένου που υπήρχε στο ραδιόφωνο.
Με αυτό το σκεπτικό δεν ήταν καθόλου περίεργο
που η τηλεόραση αρχικά ορίστηκε ως *ραδιόφωνο με εικόνα*
και, με δεδομένο αυτόν τον σχετικά στενό ορισμό,
ήταν επόμενο το περιεχόμενο των εκπομπών τηλεόρασης, τα πρώτα χρόνια,
να μην ήταν κάτι παραπάνω από μια στατική εικόνα με ήχο.
^[@bolter2000remediation]
Μια ακόμη ερμηνεία για την ανάγκη να χρησιμοποιούμε μεταφορές από τον πραγματικό κόσμο,
τις οποίες τις προσαρμόζουμε στον ψηφιακό κόσμο των υπολογιστών, μπορούμε να αντλήσουμε
από το γνωστικό πεδίο της φιλοσοφίας. Πράγματι, είναι ευκολότερο να κατανοήσουμε κάτι νέο,
αν το χρησιμοποιήσουμε ως κάτι παλιότερο.
[lakoff2008metaphors]
Αυτές οι ιδέες αποτελούν την θεωρητική θεμελίωση δημοφιλών προϊόντων διάδρασης,
όπως είναι η γραφική επιφάνεια εργασίας και οι εφαρμογές τηλεδιάσκεψης με βίντεο.
Αν και παρέχουν ευχρηστία και οικειότητα, αυτές οι ιδέες δεν προσφέρουν υποστήριξη
για την κατασκευή μελλοντικών καινοτόμων συστημάτων διάδρασης.
Όσο εύκολο είναι να περιγράψουμε τα δημοφιλή συστήματα διάδρασης που βασίζονται στη θεώρηση της προσομοίωσης,
άλλο τόσο δύσκολο είναι να περιγράψουμε εκείνα που βασίζονται στην εξομοίωση,
^[fig:emulators]
αφού δεν έχουμε κρίσιμη μάζα γνώσης για αυτά.
^[@bardini2000bootstrapping]
Ένα από τα λίγα γνωστά συστήματα διάδρασης που βασίζονται στην εξομοίωση
περιγράφεται από τον Alan Kay στην κατασκευή του Alto.
Το λογισμικό για το λειτουργικό υπόδειγμα του Alto, το οποίο
βασίζεται στην περιβάλλον προγραμματισμού Smalltalk,
κατασκευάστηκε με την εξομοίωσή του πάνω σε έναν μινι-υπολογιστή στις αρχές του 1970
και πολύ πριν οι ερευνητές του Xerox PARC κατασκευάσουν το πραγματικό υλικό του Alto.
^[@hiltzik1999dealers]
Εκείνος ο μινι-υπολογιστής δούλευε με τηλέτυπο χωρίς οθόνη γραφικών και χωρίς ποντίκι,
ενώ και η γλώσσα προγραμματισμού του ήταν πολύ διαφορετική από τη Smalltalk,
αλλά αυτά δεν εμπόδισαν τους κατασκευαστές του Alto να φανταστούν ένα διαδραστικό γραφικό περιβάλλον
και να το εξομοιώσουν αρχικά πάνω σε ξένο υλικό, πριν τελικά το κατασκευάσουν και στην πραγματικότητα.
Παρόμοια τεχνική εξομοίωσης χρησιμοποίησε και ο Bill Atkinson
για την κατασκευή του λογισμικού διάδρασης για το Apple Lisa.
^[fig:lisa-bootstrapping]
Για τον σκοπό αυτό, χρησιμοποίησε μια επέκταση του δημοφιλούς εκείνη την εποχή Apple II
για να κατασκευάσει σταδιακά με την γλώσσα PASCAL ένα γραφικό περιβάλλον
που λίγο διαφέρει από αυτό των σύγχρονων επιτραπέζιων συστημάτων
και όλα αυτά ενώ είχε μπροστά του μόνο έναν μικρο-υπολογιστή με διάδραση σε γραμμή εντολών,
χωρίς ποντίκι και χωρίς παραθυρικό περιβάλλον. Επομένως, ένα βασικό συστατικό διάδρασης
που εμφανίζουν τα συστήματα, τα οποία έχουν κατεύθυνση την εξομοίωση
είναι ότι επιτρέπουν την κατασκευή νέων εργαλείων,
που δεν περιορίζονται από εσωτερικές παραδοχές και κανόνες,
όπως συνήθως συμβαίνει στα συστήματα προσομοίωσης.
![](nova.md){.figure}
![](altair-teletype.md){.figure}
Αμέσως μετά τους πρωτοπόρους Douglas Engelbart και Ivan Sutherland
του δημιουργικού μετασχηματισμού του υπολογιστών σε μια νέα μορφή,
οι ερευνητές του Xerox PARC εφάρμοσαν την τεχνική της εξομοίωσης,
έτσι ώστε να μπορούν να εργάζονται με το σύστημα που ήθελαν
και όχι απλά με αυτό που είχαν διαθέσιμο. Πράγματι,
η Xerox μόλις είχε αγοράσει την Scientific Data Systems (SDS)
και αγνόησε το αίτημα των ερευνητών του PARC για την αγορά του ανταγωνιστικού DEC PDP,
το οποίο ήταν πολύ δημοφιλές ανάμεσα στους συναδέλφους ερευνητές σε άλλους οργανισμούς
και στο δίκτυο ερευνητικής συνεργασίας ARPANET. Στην πράξη, όμως, αυτό δεν ήταν μεγάλο πρόβλημα,
αφού με την τεχνική της εξομοίωσης οι ερευνητές του PARC δημιούργησαν το PDP με μικροκώδικα
πάνω στο φυσικό μηχάνημα της SDS. Με τον ίδιο ακριβώς τρόπο,
χρησιμοποίησαν το μηχάνημα Data General Nova για να αναπτύξουν το λογισμικό για το Alto,
πολύ πριν έχουν στη διάθεση τους το υλικό της αρχικής έκδοσης του Alto.
Παρόμοια, ο Niklaus Wirth θα καταφέρει
να εκτελέσει και να ενημερώσει τη βάση για το αρχικό λογισμικό διάδρασης για το σύστημα Oberon
^[@wirth1992project]
είκοσι πέντε χρόνια μετά,
με τη δημιουργία ενός νέου υπολογιστή με την τεχνική των προγραμμάτων για FPGA,
δηλαδή υλικό που επιτρέπει την εξομοίωση άλλου υλικού υπολογιστή.
Για τους ερευνητές του PARC και τους συνεργάτες τους,
η διάδραση με τους υπολογιστές σημαίνει, κυρίως, την κατασκευή ενός νέου υπολογιστή
και του περιβάλλοντος ανάπτυξης, που περιλαμβάνει τον μεταγλωττιστή και τον επεξεργαστή κειμένου,
τα οποία αρχικά θα πρέπει να εξομοιωθούν στα πρώτα στάδια της ανάπτυξης
πάνω σε ένα διαφορετικό από το τελικό φυσικό μηχάνημα.
Η επιλογή της εξομοίωσης μπορεί να γίνει αρχιτεκτονική επιλογή,
όπως στην περίπτωση της JAVA, όπου ο κατασκευαστής φροντίζει για την εκτέλεση μόνο πάνω σε μια εικονική μηχανή
και αφήνει την υλοποίηση του κατώτερου επιπέδου στους επιμέρους κατασκευαστές υλικού.
^[fig:nova]
^[fig:altair-teletype]
## Μοντελοποίηση και Αναλογία
![](digital-desk.md){.figure}
![](mit-clearboard.md){.figure}
Η βασική τεχνολογία για την κατασκευή της διάδρασης παραμένει διαχρονικά ο προγραμματισμός ενός υπολογιστή.
Ο προγραμματισμός με τη σειρά του είναι μια σημαντική, αλλά ξεχωριστή περίπτωση διάδρασης με τον υπολογιστή,
ο οποίος έχει περάσει από πολλά στάδια και συνεχίζει να εξελίσσεται. Οι πρώτοι κεντρικοί υπολογιστές
όπως και ο πρώτος μικρο-υπολογιστής Altair προγραμματίζονταν με τους φυσικούς διακόπτες,
αλλά αυτό ήταν δύσκολο, ειδικά για μεγάλα προγράμματα και σετ δεδομένων. Για αυτόν τον λόγο,
ο προγραμματισμός των υπολογιστών ξεκίνησε να γίνεται με ασύγχρονο τρόπο
μέσω της χρήσης διάτριτων καρτών σε σετ ή ακόμη καλύτερα, με τη χρήση της διάτρητης χαρτοταινίας.
Η εγγραφή και η ανάγνωση από τη διάτρητη χαρτοταινία ήταν πολύ οικονομική
και τόσο δημοφιλής ώστε να βρίσκεται ενσωματωμένη ακόμη και πάνω στον τηλέτυπο,
ο οποίος ήταν για πολλές δεκαετίες ο βασικός τρόπος συγγραφής προγραμμάτων υπολογιστή
και, επόμενως, και διάδρασης, αφού το πληκτρολόγιο και η διάτρητη χαρτοταινία ήταν τα συστήματα εισόδου,
ενώ η χαρτοταινία και ο εκτυπωτής γραμμής ήταν τα συστήματα εξόδου. Με αυτόν τον τρόπο,
φτιάχτηκαν και τα πρώτα συστήματα διάδρασης σε πραγματικό χρόνο, όπως ήταν η LISP και το JOSS,
αλλά η πλειοψηφία των συστημάτων λειτουργούσε ασύγχρονα με εργασίες δέσμης.
Όλα αυτά τα ηλεκτρομηχανικά συστήματα εισόδου και εξόδου από τον υπολογιστή,
τα οποία βασίζονταν στο χάρτι, θα αντικατασταθούν από τις ηλεκτρονικές και, αργότερα, ψηφιακές οθόνες
και το ποντίκι, τη δεκαετία του 1980, αλλά ο προγραμματισμός του υπολογιστή θα παραμείνει μια διαδικασία
που βασίζεται σε γραπτές γλώσσες κειμένου που εισάγονται με το πληκτρολόγιο, γραμμή γραμμή,
όπως ακριβώς απαιτούσαν συσκευές εισόδου και εξόδου που ήταν πλέον παρωχημένες.
Ανάμεσα στις πολλές τεχνολογίες λογισμικού για την κατασκευή νέων διαδραστικών συστημάτων,
οι γλώσσες προγραμματισμού που επιτρέπουν τόσο την ανάπτυξη νέων συστημάτων
όσο και την εξέλιξη της ίδιας της γλώσσας έχουν διαχρονική αποτελεσματικότητα,
αλλά με μεγάλο κόστος για την εκμάθησή τους. Για παράδειγμα, η εκφραστική δύναμη της αρχικής γλώσσας Lisp
επιτρέπει την συγγραφή του μεταγλωττιστή της στην ίδια τη γλώσσα,
μια επιλογή που δείχνει προς την κατεύθυνση της συνεχούς βελτίωσης της γλώσσας προγραμματισμού,
η οποία δεν είναι πλέον κάτι στατικό.
Αυτή η τεχνική χρησιμοποιήθηκε και κατά τη δημιουργία του διαδραστικού περιβάλλοντος Smalltalk,
η οποία εκτός από γλώσσα προγραμματισμού για τον χρήστη επιτρέπει και τη μεταβολή του αρχικού συστήματος,
δηλαδή και της ίδιας της γλώσσας. Παρόμοια τακτική ακολούθησαν και άλλοι κατασκευαστές
για να δημιουργήσουν από την αρχή νέα διαδραστικά συστήματα, όπως είναι τα Lilith και Oberon,
τα οποία υλοποιήθηκαν με τις Modula και Oberon, οι οποίες με τη σειρά τους δεν ήταν εντελώς νέες,
αλλά επεκτάσεις της δομημένης και στατικής Pascal,
ώστε να είναι συμβατή με το πλαίσιο ανάπτυξης του νέου διαδραστικού συστήματος.
Η βασική διαφορά που έχουν αυτά τα συστήματα από το αρχικό Alto και τη Smalltalk
είναι ότι επιλέγουν μια δομημένη γλώσσα προγραμματισμού με στατικό ορισμό τύπων,
παρότι και στις δύο περιπτώσεις αυτά τα συστήματα στόχευαν στο ίδιο κοινό,
δηλαδή στην εκπαίδευση. Από αυτές τις προσπάθειες προκύπτει
ότι οι ίδιες οι γλώσσες και τα περιβάλλοντα προγραμματισμού δεν είναι ποτέ τεχνολογίες,
οι οποίες αναφέρονται κυρίως σε κάποιες σημαντικές ιδιότητές τους. Επίσης,
προκύπτει η κατανόηση ότι η δεξιότητα χρήσης
ενός ισχυρού και εκφραστικού συστήματος διαδραστικής κατασκευής και δημιουργίας
είναι συνήθως αντιστρόφως ανάλογο με την ευκολία εκμάθησής του.
![](terminal-emulator.md){.figure}
![](vnc.md){.figure}
Μια θεμελιώδης τεχνική που διατρέχει τη δημιουργία όλων των καινοτόμων τεχνολογιών διάδρασης
είναι ότι βασίζονται σε ένα μικρό σύνολο από αρχιτεκτονικές επιλογές,
περισσότερο ως αναλογία και λιγότερο ως προσομοίωση του πραγματικού κόσμου. Για παράδειγμα,
η δημιουργία της Smalltalk και της ανταλλαγής μηνυμάτων ανάμεσα σε αντικείμενα
είναι εμπνευσμένη από τη λειτουργία του βιολογικού κυττάρου.
Όπως δηλαδή ένα κύτταρο αλληλεπιδρά δυναμικά και χωρίς κάποιο πλάνο με διπλανά του κύτταρα,
έτσι ακριβώς και τα αντικείμενα στη Smalltalk ανταλλάσσουν μηνύματα
δημιουργώντας συνδέσμους δυναμικά κατά την εκτέλεση,
ακόμη και αν αυτές οι διαδράσεις δεν είχαν αρχικά σχεδιαστεί.
Αν και η αρχιτεκτονική για την κατασκευή της Smalltalk βασίζεται στην εξομοίωση,
ένα από τα βασικά κίνητρα της δημιουργίας, καθώς και ένα από τα πεδία εφαρμογής,
έχει να κάνει με την προσομοίωση του φυσικού κόσμου,
έτσι ώστε οι προγραμματιστές να μπορούν να μελετήσουν τη συμπεριφορά των πολύπλοκων συστημάτων
που θα μοντελοποιήσουν. Βλέπουμε, δηλαδή, ότι οι κατασκευαστές του Alto και της Smalltalk
όχι μόνο δεν είναι αντίθετοι στην προσομοίωση, αλλά είναι πολύ θετικοί,
αρκεί όμως αυτό να μην γίνεται εμπόδιο για τη διαδικασία κατασκευής,
η οποία θα πρέπει να βασίζεται στην εξομοίωση ενός νέου καινοτόμου συστήματος.
^[@kay1993early]
Μια αντίστοιχη αλλά πολύ διαφορετική αναλογία μπορούμε να εντοπίσουμε και στην περίπτωση του UNIX,
όπου οι κατασκευαστές χρειάστηκε μαζί με το λειτουργικό σύστημα
να δημιουργήσουν και τη νέα γλώσσα προγραμματισμού C,
η οποία σχεδιάστηκε έτσι ώστε να είναι κατάλληλη για τη συνεχή βελτίωση αυτού του λειτουργικού συστήματος
και του διαδραστικού κελύφους γραμμής εντολών,
το οποίο απευθύνεται αρχικά σε εργαζόμενους τηλεφωνικών οργανισμών
που πρέπει να διαχειριστούν δεδομένα σε αρχεία
και να ετοιμάσουν την τεκμηρίωση για τις τηλεπικοινωνιακές τεχνολογίες.
Στην περίπτωση του UNIX, η αναλογία είναι ότι όλα τα δομικά στοιχεία του συστήματος είναι αρχεία,
μια αναλογία που έφτασε στην ωρίμανσή της με το επόμενο δημιούργημα των ερευνητών στα Bell Labs, το Plan9.
Στις προηγούμενες ενότητες είδαμε τον κεντρικό ρόλο του τηλέτυπου, ο οποίος μετασχηματίστηκε σταδιακά
από ένα αυτόνομο τερματικό για την αποστολή μηνυμάτων στη βασική συσκευή διάδρασης
για την κατασκευή πολλών καινοτόμων συστημάτων, όπως τα Sketchpad, NLS, UNIX, Smalltalk, JOSS, CPM και MS-BASIC.
Ταυτόχρονα, παρατηρούμε ότι ο ρόλος του τηλέτυπου στα ίδια αυτά συστήματα
είχε πολύ διαφορετικό βαθμό επιρροής στο τελικό τερματικό διάδρασης με τον χρήστη. Για παράδειγμα,
η διάδραση στο τελικό σύστημα Sketchpad δεν περιλαμβάνει καθόλου στοιχεία ούτε από το περιβάλλον ανάπτυξης,
αλλά ούτε και από τις συσκευές διάδρασης κατά την ανάπτυξή του. Στην πιο σύγχρονη εκδοχή του,
αυτό το σενάριο παρουσιάζεται στην περίπτωση ανάπτυξης κινητών εφαρμογών σε έναν επιτραπέζιο υπολογιστή,
αλλά η διάδραση θα γίνει με διαφορετικά συστήματα εισόδου και εξόδου στο έξυπνο κινητό.
Σε ένα ενδιάμεσο επίπεδο συναντάμε το σύστημα NLS, καθώς και τη Smalltalk,
όπου το κείμενο και η επεξεργασία του έχουν κεντρικό ρόλο,
αλλά αυτό είναι μόνο ένα μικρό υποσύνολο από τις δυνατότητες του γραφικού περιβάλλοντος,
αλλά και της συσκευής εισόδου ποντίκι που είναι κάτι νέο. Στο αντίθετο άκρο,
τα συστήματα JOSS και UNIX, όχι μόνο έχουν τον τηλέτυπο ως βασικό μοντέλο για τη διάδραση,
αλλά υιοθετούν τον τηλέτυπο και ως συσκευή εισόδου και εξόδου για τη διάδραση με τον τελικό χρήστη,
όπου έχει κεντρικό ρόλο στο τερματικό γραμμής εντολών. Μια διαφορετική αναλογία,
αντί για τον τηλέτυπο μπορούμε να εντοπίσουμε στην τεχνολογία
του εικονικού τερματικού εικονοστοιχείων Virtual Network Computing (VNC),
το οποίο επιτρέπει τη διάδραση με γραφική διεπαφή με έναν απομακρυσμένο υπολογιστή.
Με αυτήν την τεχνολογία η διάδραση σε ένα τερματικό χρήστη ενορχηστρώνεται σε έναν απομακρυσμένο υπολογιστή,
ο οποίος με την τεχνική της εξομοίωσης μπορεί να έχει όποια συμπεριφορά μπορούμε να φανταστούμε και να υλοποιήσουμε.
^[fig:terminal-emulator]
^[fig:vnc]
![](extras-ch08.txt){.include}