Παρασκευή 27 Φεβρουαρίου 2026

ZXsheet. Σοβαρά τώρα;

Υποθέτω ότι όλο και κάπου θα έχei πάρει το μάτι σας κάποιον διαγωνισμό για 10-Liners, δηλαδή για προγραμματάκια σε 10 γραμμές εντολών BASIC (για retro computers, φυσικά). Δεν μιλάμε όμως - πλέον, τουλάχιστον - για κάτι αραιογραμμένο, με έκαστη γραμμή να περιέχει μία εντολή ή κάτι τέτοιο: μιλάμε για την προσπάθεια του προγραμματιστή να εκμεταλλευτή και τον τελευταίο χαρακτήρα που μπορεί να χρησιμοποιήσει, κόβοντας ακόμα και τα κενά όπου επιτρέπεται (π.χ. στην Commodore BASIC) με αποτέλεσμα προγράμματα τόσο συμπυκνωμένα που κάθε άλλο παρά ευανάγνωστα δείχνουν. Και πάλι όμως, ακόμα και αν χρησιμοποιήσεις 240-255 χαρακτήρες ανά εντολή που ήταν συνήθως το όριο ανάλογα με το μηχάνημα, τι μπορείς πραγματικά να φτιάξεις; Μιλάμε για πολύ περιορισμένο μέγεθος. Χα, νομίζετε! Δείτε για αρχή το παρακάτω listing:

Αρχίζετε να προβληματίζεστε τώρα, έτσι; Αυτό δεν δείχνει και τόοοσο μικρό. Και έτσι είναι, διότι, καθώς ο ZX Spectrum (και οι ZX81 και ZX80) χρησιμοποιούσε single key keywords στην BASIC που είχε φτιάξει ο Steven Vickers, κάθε εντολή (π.χ. PRINT) καταλάμβανε 1 byte και όχι 5 όπως σε κάποια άλλη διάλεκτο BASIC. Έτσι, μία γραμμή εντολών μπορεί στην οθόνη να είναι πάνω από 8 γραμμές κειμένου των 32 χαρακτήρων, πράγμα που δεν συναντάμε σε άλλη διάλεκτο και που επιτρέπει αρκετά μεγαλύτερο όγκο εντολών τελικά. Ωραία όλα αυτά, αλλά ακόμα και με αυτά τα πλεονεκτήματα της Sinclair BASIC τι μπορείς να φτιάξεις πια με ένα 10-Liner;

Η απάντηση είναι "σχεδόν τα πάντα". Αν παρακολουθήσετε τις κορυφαίες συμμετοχές στους διαγωνισμούς για 10-Liners θα τρίβετε τα μάτια σας. Συνήθως οι συμμετοχές αφορούν σχετικά απλά arcade παιχνίδια, αλλά αυτό δεν είναι υποχρεωτικό. Έτσι λοιπόν, ο κύριος Matthew Begg σκέφτηκε ότι βρήκε πεδίο δόξης λαμπρό (τις 10 "γραμμές" εντολών) για να αναπτύξει ένα ολοκληρωμένο... spreadsheet! Τι, γελάτε; Για δείτε παρακάτω:





Εντυπωσιακά τα screenshots, έτσι; Προσωπικά με το που τα είδα έμεινα με το στόμα ανοιχτό γιατί εξεπλάγην από τα χρώματα, τους χαρακτήρες, το όλο look, τη λειτουργικότητα με την έννοια ότι το κορυφαίο spreadsheet application σε ZX Spectrum έτσι θα έπρεπε να δείχνει. Όχι όμως ένα 10-Liner! Ο ίδιος ο κύριος Begg γράγει περιγράφοντας το πρόγραμμά του: "ZXsheet is a full-featured spreadsheet application for the Sinclair ZX Spectrum written in just 10 lines of BASIC. It features a large 20 rows by 10 column workspace, full colour formatting, formula support, copy/paste functions (including relative addressing), the ability to save and print spreadsheets, and a groundbreaking graphical chart function". Πέρα από τα εντυπωσιακά features για το μέγεθος του προγράμματος ελπίζω να διακρίνατε και το χιούμορ, έτσι;

Πέρα από τα αυτονόητα από την πλευρά μου (chapeau, standing ovation, ξέρετε τώρα) να σας πω ότι είναι χρήσιμο να επισκεφτείτε την επίσημη ιστοσελίδα του ZXsheet διότι εκεί ο κύριος Begg εξηγεί αναλυτικότατα, εντολή προς εντολή, μεταβλητή προς μεταβλητή το πώς λειτουργεί το πρόγραμμά του και τι κάνει η κάθε γραμμή εντολών. Προσωπικά άρχισα να αναθεωρώ κάποια πράγματα που πίστευα μέχρι σήμερα - π.χ. το "ξέρω BASIC" - καθώς το επίπεδο του κώδικα όπως το λέμε στις μέρες μας του ZXsheet είναι εντελώς σε άλλη κλάση από ό,τι είχα γράψει εγώ ποτέ στη ζωή μου. Σίγουρα πάντως οι (όποιες) γνώσεις μου με βοηθούν να αναγνωρίσω το μεγαλείο του επιτεύγματος και να βγάλω το καπέλο με θαυμασμό στον Matthew Begg αλλά και σε όλους τους υπόλοιπους coders ανά τον κόσμο που διανθίζουν με τα προγραμματιστικά τους διαμαντάκια αυτόν και αντίστοιχους διαγωνισμούς.

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

Το σχόλιό σας θα δημοσιευθεί μετά από έλεγχο του διαχειριστή του blog προς αποφυγή spam σχολίων. Σας ευχαριστούμε για την κατανόηση.