jump to navigation

Η γοητεία του Unix programming Αύγουστος 5, 2007

Posted by PPKP in Έτσι, γουβέτσι, κοκορέτσι, Τεχνολογία.
trackback

Έχω καιρό να ασχοληθώ, το ομολογώ. Πλέον έχω μετακινηθεί 3 layers παραπάνω και αφήνω τη δουλειά στα διάφορα stacks — άσε που σπανίως πλέον γράφω κώδικα, προς μεγάλη μου λύπη.

Όμως όπως καθόμουν σήμερα το πρωί στον καναπέ μου και ρέμβαζα τη βιβλιοθήκη μου :-), έπεσε το μάτι μου στις βίβλους του μακαρίτη Richard Stevens. Θυμάμαι τον καιρό που πολλοί από εμάς ξενυχτούσαν διαβάζοντας αυτά τα βιβλία, αδυνατούσαν να κοιμηθούν έχοντας βρει τη λύση στο πρόβλημα που τους παίδευε εδώ και μέρες, και τελικά αποφάσιζαν ότι ο ύπνος έχει μικρότερη σημασία από εκείνη τη συνάρτηση που μόλις έγραψαν στο μυαλό τους και έπρεπε να αποτυπώσουν in silico. Θυμάμαι τον πρωτόγονο ενθουσιασμό ανακαλύπτοντας τη setsockopt και το SO_REUSEADDR option, ή την tcsetattr και το TCSANOW option. Θυμάμαι το πάθος με το οποίο άλλος έφτιαχνε terminal emulators, άλλος το δικό του shell, άλλος τον δικό του chat server, ή ακόμα (primitive, προφανώς) databases. Η χρηστική αξία του κάθε τέτοιου έργου ήταν βεβαίως πολύ μικρή, η ακαδημαϊκή αξία όμως τεράστια. Θεωρώ ότι αυτή η διαδικασία, που ξεκινούσε από τον ενθουσιασμό αυτής της κλίκας με όλα αυτά τα APIs και το τι μπορούσες να κάνεις, με έμαθε σε μεγάλο βαθμό να σκέφτομαι ως μηχανικός — πολύ περισσότερο από τους συντελεστές Lagrange.

Ποτέ δεν κατάλαβα από που ξεκινούσε όλο αυτό το μεράκι και γιατί τα sockets, η read (2) και η write (2) ασκούσαν σε όλους μας τέτοια γοητεία. Ξέρω όμως στα σίγουρα ότι είναι το πιο αγαπημένο κομμάτι της τεχνικής μου καριέρας. Τους χαιρετισμούς μου σε όλους τους συνοδοιπόρους εκείνου του υπέροχου ταξιδιού — ξέρετε ποιοι είστε.

Advertisements

Σχόλια»

1. thanos - Αύγουστος 5, 2007

Κάποιοι ασχολούνται ακόμα με αυτά, αλλά ΚΑΙ με 3+ επίπεδα παραπάνω (μέχρι NSF proposals) ΚΑΙ 2 παρακάτω.

Το PhD στα systems είναι ουσιάστικά τίτλος «τα κάνει όλα και συμφέρει» 🙂

2. Παράφωνος - Αύγουστος 6, 2007
3. adamo - Αύγουστος 20, 2007

1. Είναι κρίμα που δεν γράφεις πια κώδικα
2. Κι εμένα το Δημόσιο προσπάθησε να με τραβήξει σε διάφορες γραφειοκρατικές διαδικασίες, αλλά σιγά σιγά το τελευταίο εξάμηνο γυρίζω «πίσω».
3. «άλλος τον δικό του chat server» TTBOMK, τον chat server τον έγραφε ο ΠΠΚΠ (ΟΚ και δυο άλλοι) 🙂

«Ποτέ δεν κατάλαβα από που ξεκινούσε όλο αυτό το μεράκι και γιατί τα sockets, η read (2) και η write (2) ασκούσαν σε όλους μας τέτοια γοητεία.»

hacker cultrure, now defunct.

4. PPKP - Αύγουστος 24, 2007

@adamo:

1. Δεν ήμουν τόσο καλός, αλήθεια 🙂 Πλέον είμαι αρκετά μεγάλος και ώριμος για να το παραδεχθώ.

2. Εγώ έκανα μια προσπάθεια πριν 2 χρονάκια και κάπως ξεσκούριασα, αλλά συνειδητοποίησα ότι απλά δεν το έχω πια… Το άφησα και με άφησε.

3. 🙂

Για το defunct hacker culture, εγώ απλά πιστεύω πως συντελέστηκε ένα έγκλημα όταν στα labs των διαφόρων σχολών μπήκε η wintel…

5. adamo - Αύγουστος 24, 2007

@PPKP:
Μπορεί να μην ήσουν όσο καλός ήθελες, αλλά αυτό δεν λέει κάτι για το πόσο καλός ήσουν (πολύ).

Όσο για το defunct hacker culture, it is my expert oppinion πως στο δικό μας Ίδρυμα το ότι χάθηκε ήταν συνάρτηση πολλών παργαγόντων, όπως:

1. Η Visual Basic έκανε τους πάντες να νομίζουν πως είναι εύκολο να γράφεις προγράμματα
2. Τα windows 95 έκαναν τον κόσμο τεμπέλη
3. Το Word το ίδιο (compared to nroff ή LaTeX)
4. Το «κόσκινο» του Ζάχου (Pascal 1 μαζί με αξιωματική σημασιολογία και BNF) φόβησε πολύ κόσμο χωρίς να υπάρχει πραγματικός λόγος.

6. PPKP - Αύγουστος 25, 2007

Πάντως όσον αφορά στις read/write (2), νομίζω πως η γοητεία τους έχει να κάνει με το γεγονός πως μπορείς να τις θεωρήσεις ως το ελάχιστο usable building block για Ι/Ο, οπότε ενώ είναι αρκετά low-level για να μπορείς να κάνεις τα πιο πολύπλοκα πράγματα που ενδεχομένως θέλεις, είναι ταυτόχρονα αρκετά high-level για να κρύβουν την ενοχλητική πολυπλοκότητα. Είναι τρομερό ότι μπορείς να τις χρησιμοποιήσεις σε block files, queues, sockets, devices, terminals, ό,τι θες. Αν πήγαινες σε memory ops, το αμέσως παρακάτω επίπεδο, ο χρόνος που θα έχανες δεν θα σου πρόσφερε τίποτα ουσιαστικό σε λειτουργικότητα.

Πράγμα που με κάνει να συνειδητοποιώ πόσο μέγιστο είναι το concept του file descriptor.


Σχολιάστε

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s

Αρέσει σε %d bloggers: