Η πλάνη της νοσταλγίας στο software engineering

Συχνά ακούμε ότι το λογισμικό έχει υποβαθμιστεί ποιοτικά, όμως μια αντικειμενική ματιά στο παρελθόν αποκαλύπτει μια διαφορετική πραγματικότητα. Η εποχή των Windows 95/XP δεν ήταν μια περίοδος «καθαρού» κώδικα, αλλά μια εποχή όπου η αστάθεια του συστήματος ήταν ο κανόνας. Το hardware και το software βρίσκονταν σε μια διαρκή κατάσταση εύθραυστης ισορροπίας, όπου ένα κακό driver μπορούσε να καταρρεύσει ολόκληρο το λειτουργικό σύστημα.

Από το «ship and pray» στην αυτοματοποίηση

Στο παρελθόν, η διανομή λογισμικού σε φυσικά μέσα (floppy disks, CD-ROM) σήμαινε ότι οι developers είχαν μόνο μία ευκαιρία να παραδώσουν ένα λειτουργικό προϊόν. Αυτό το μοντέλο δεν εξασφάλιζε ποιότητα, αλλά μάλλον μια «κατώτατη γραμμή» ανοχής στα σφάλματα. Αντίθετα, η σύγχρονη εποχή των online updates και του CI/CD επιτρέπει τη συνεχή βελτίωση και διόρθωση σφαλμάτων, αν και έχει εισάγει νέες προκλήσεις όπως το bloatware.

Αρχιτεκτονικές αστοχίες και περιορισμοί

Πολλά από τα προβλήματα που θεωρούμε δεδομένα σήμερα, όπως το autosave, ήταν ανύπαρκτα τότε. Η διαχείριση μνήμης ήταν τόσο περιορισμένη που οδηγούσε σε παράλογα bugs (π.χ. crashes σε παιχνίδια λόγω overflow σε counters μονάδων). Επιπλέον, η έλλειψη process isolation σήμαινε ότι μια εφαρμογή μπορούσε εύκολα να επηρεάσει τη σταθερότητα ολόκληρου του συστήματος.

Συμπέρασμα: Η πρόοδος είναι πραγματική

Παρά την αυξανόμενη πολυπλοκότητα και την εξάρτηση από αφηρημένα επίπεδα (abstraction layers), το σύγχρονο λογισμικό είναι ασύγκριτα πιο ασφαλές και ανθεκτικό. Η μετάβαση από το «χειροκίνητο» debugging και τη συντήρηση του hardware (όπως το defragmentation) σε αυτοματοποιημένα συστήματα διαχείρισης πόρων αποτελεί μια τεράστια νίκη για την εμπειρία του τελικού χρήστη και την παραγωγικότητα των μηχανικών.