Fish Shell 3.7.0: Παραμένοντας σε C++ και Φέρνοντας Βελτιώσεις
Το Fish Shell 3.7.0 βελτιώνει τον ιστορικό προβολέα, την απόδοση και το scripting. Οι μελλοντικές εκδόσεις 4.x θα μεταφέρουν τα εσωτερικά του Fish σε Rust.
Στο οικοσύστημα Linux, ένα χαρακτηριστικό που ξεχωρίζει για την ευελιξία και τη δύναμή του είναι η ποικιλία των κελυφών από τα οποία μπορούν να επιλέξουν οι χρήστες.
Μαζί με το κλασικό Bash και άλλα όπως τα Zsh και Tcsh, το Fish έχει αναγνωριστεί και υιοθετηθεί ευρέως ως επιλογή για πολλούς χρήστες Linux για την φιλική προς τον χρήστη προσέγγισή του και τα προηγμένα χαρακτηριστικά του για μεγάλο χρονικό διάστημα.
Η πρόσφατα ανακοινωμένη κυκλοφορία Fish 3.7.0, με πάνω από 1289 δεσμεύσεις, ενισχύει αυτή τη θέση, υποσχόμενη βελτιώσεις και διορθώσεις. Ας ρίξουμε μια ματιά σε αυτές.
Fish Shell 3.7.0
Κύρια Σημεία
Το Fish 3.7.0 βελτιώνει τη διαχείριση του ιστορικού της γραμμής εντολών. Τώρα, οι χρήστες μπορούν εύκολα να βρουν πολύπλοκες εντολές με αντίστοιχες υποσειρές. Ο pager ιστορικού εισάγει επίσης μια πιο έξυπνη λειτουργία αναζήτησης και έναν πιο διαισθητικό τρόπο χειρισμού των μη αντιστοιχισμένων ερωτημάτων αναζήτησης.
Όσον αφορά την απόδοση, η ολοκλήρωση εντολών και το globbing βλέπουν σημαντικές βελτιώσεις ταχύτητας, ειδικά σε πιο αργά συστήματα αρχείων όπως το NFS, κάτι που αποτελεί μεγάλο κέρδος για χρήστες που χειρίζονται βαριά φορτία εργασίας στη γραμμή εντολών.
Ένα ακόμη αξιοσημείωτο χαρακτηριστικό σε αυτή την ενημέρωση είναι η δυνατότητα ορισμού χρονικού ορίου για ακολουθίες πολλαπλών πλήκτρων, βελτιώνοντας τη χρηστικότητα χαρακτηριστικών όπως η αλλαγή λειτουργίας σε λειτουργία vi. Ταυτόχρονα, οι ρυθμίσεις LS_COLORS δεν θα ορίζονται πλέον αυτόματα, ενθαρρύνοντας τους χρήστες να υιοθετήσουν πιο προσωπικές διαμορφώσεις.
Βελτιώσεις στον Προγραμματισμό και τη Γραμμή Εντολών
- Σταθερότητα και Ευελιξία: Το Fish 3.7.0 διορθώνει διάφορα σφάλματα και βελτιώνει την εμπειρία scripting. Από τη διόρθωση καταστάσεων κατάρρευσης έως τη βελτίωση της εντολής «jobs» που περιλαμβάνεται, η ενημέρωση καθιστά το scripting πιο αξιόπιστο και ευέλικτο.
- Διαδραστική Εμπειρία: Η ενημέρωση φέρνει αξιοσημείωτες αλλαγές στη διαδραστική εμπειρία, όπως βελτιωμένη αναζήτηση ιστορικού σε λειτουργία vi, καλύτερη αναφορά του τρέχοντος καταλόγου στο iTerm2 και ενισχυμένες ρυθμίσεις χρωμάτων επιλογής.
- Ολοκλήρωση εντολών και βελτιώσεις προτροπών: Το Fish 3.7.0 εισάγει επίσης μια νέα συνάρτηση bind για τη διαχείριση ιστορικού, βελτιωμένα μηνύματα σφάλματος και επεκταμένη υποστήριξη για εξωτερικές εντολές.
Αισθητικές και λειτουργικές βελτιώσεις
Το προεπιλεγμένο θέμα τώρα χρησιμοποιεί ονομασμένα χρώματα, ευθυγραμμισμένο με τις παλέτες τερματικού, και το θέμα Dracula συγχρονίζεται με τις αλλαγές από την κύρια έκδοση. Επιπλέον, οι προτροπές εμφανίζουν τους τρέχοντες φακέλους εργασίας με μεγαλύτερη ακρίβεια.
Τέλος, η έκδοση Fish 3.7.0 προσθέτει μια πληθώρα συμπληρώσεων για διάφορες εντολές, διευκολύνοντας τη ζωή των χρηστών. Η κυκλοφορία επίσης βλέπει βελτιώσεις στους δημιουργούς συμπληρώσεων για σελίδες εγχειριδίων, και έχουν γίνει και άλλες ρυθμίσεις συμπλήρωσης.
Rust: Ο Δρόμος Μπροστά
Το shell Fish είναι κυρίως γραμμένο σε C++. Ωστόσο, αυτό πρόκειται να αλλάξει σύντομα.
Ο David Adam, ένας από τους κύριους προγραμματιστές της Fish, επιβεβαίωσε ότι σχεδόν όλος ο κώδικας σε C++ έχει μεταφερθεί με επιτυχία σε Rust. Αυτή η μετάβαση πρόσθεσε 87.029 γραμμές κώδικα σε Rust, ενώ αφαιρέθηκαν όλες οι 76.776 γραμμές κώδικα σε C++, σηματοδοτώντας μια πλήρη επανεγγραφή σύμφωνα με την τελευταία τους ενημέρωση.
Ωστόσο, διευκρινίζει ότι αυτό το ορόσημο δεν σημαίνει ότι η νέα έκδοση του Fish shell είναι έτοιμη για τους τελικούς χρήστες. Η τρέχουσα κατάσταση του έργου είναι υποσχόμενη, με ορισμένες βελτιώσεις στην απόδοση, αλλά αντιμετωπίζει επίσης προκλήσεις σε ορισμένους τομείς.
Αξιοσημείωτα, η επανεγγραφή δεν έχει ακόμη επιτύχει τους τεχνικούς της στόχους, ιδιαίτερα όσον αφορά την ασφάλεια των νημάτων, η οποία ήταν ένας βασικός λόγος για τη μετάβαση σε Rust.
Επιπλέον, η υποστήριξη των πλατφορμών παραμένει ένα σημαντικό εμπόδιο. Η βραχυπρόθεσμη υποστήριξη για πλατφόρμες όπως οι Cygwin και MSys2 φαίνεται απίθανη, και η δημιουργία πακέτων για παλαιότερες διανομές Linux παρουσιάζει προκλήσεις.
Λαμβάνοντας αυτό υπόψη, η υπάρχουσα τρίτη σειρά του Fish θα συνεχίσει να χρησιμοποιεί C++ για τον προγραμματισμό της. Ωστόσο, όταν κυκλοφορήσει η τέταρτη σειρά, αναμένεται να κάνει μια σημαντική αλλαγή μεταβαίνοντας στη βασική της γλώσσα προγραμματισμού, που θα είναι η Rust.

