Uploaded avatar of ErikSchierboom

Είναι ο Λιτός Σεπτέμβριος!

@ErikSchierboom
πριν από Περίπου 3 χρόνια
Βίντεο

Εισαγωγή

Γεια σε όλους! Ελπίζω να πάνε όλα καλά.

Είχαμε έναν μεγάλο Αύγουστο στο Exercism. Συνενώσαμε τα Premium και Insiders, προσθέσαμε αυτοματοποιημένη ανατροφοδότηση απευθείας στον επεξεργαστή, λανσάραμε τα Τρόπαια Διαδρομών και κάναμε πάρα πολλές μικρές βελτιώσεις και στον ιστότοπο! Αν δεν έχεις τσεκάρει ακόμα τις διαδρομές σου για να δεις ποια τρόπαια παίρνεις, κάν' το οπωσδήποτε. Στείλαμε και email σε όλους όσοι έχουν ένα ή περισσότερα τρόπαια, οπότε να το προσέξεις κι αυτό. Τον Αύγουστο επίσης περάσαμε πολύ ωραία στο #12in23, εξερευνώντας γλώσσες που συνήθως χρησιμοποιεί ο κόσμος για να φτιάχνει εφαρμογές.

Αυτός ο μήνας είναι ο Slimline September, στον οποίο εξερευνούμε γλώσσες που έχουν την τάση να είναι πολύ συνοπτικές και λιτές στη σύνταξή τους. Συγκεκριμένα, θα δούμε τις 8th (απόγονος της Forth), AWK, Bash, jq, Perl και Raku (που παλιά ήταν γνωστή ως Perl 6).

Τα σήματα

Για να πάρεις το σήμα του Slimline September, πρέπει να ολοκληρώσεις πέντε ασκήσεις σε μία από αυτές τις γλώσσες μέσα στον Σεπτέμβριο.

Υπάρχει επίσης το σήμα του 12in23, που διαρκεί όλο τον χρόνο. Για να το πάρεις, πρέπει να λύσεις πέντε από τις επιλεγμένες ασκήσεις μας στη γλώσσα.

  • Gigasecond: δουλεύεις με ημερομηνίες
  • Atbash Cipher: δουλεύεις με συμβολοσειρές
  • Darts: δουλεύεις με αριθμούς και συνθήκες
  • Luhn: δουλεύεις με συμβολοσειρές, συνθήκες και αριθμούς
  • Series: δουλεύεις με συμβολοσειρές και ακολουθίες

Αυτές οι ασκήσεις και όσες είναι για τους προηγούμενους μήνες βρίσκονται όλες στη σελίδα του #12in23.

Επισκόπηση

Ας βουτήξουμε μέσα και ας εξερευνήσουμε τις γλώσσες με μια επισκόπηση της καθεμιάς.

8th

  • Αναπτύχθηκε από τον Ron Aaron.
  • Το όνομά της είναι ένα λογοπαίγνιο με τη γλώσσα Forth, η οποία είναι και η κύρια έμπνευσή της. Έχει όμως πολλές διαφορές από τη Forth:
    • Ισχυρή τυποποίηση
    • Πολλαπλές πλατφόρμες
    • Βελτιωμένη ασφάλεια (χωρίς άμεση πρόσβαση στη μνήμη ή ενσωματωμένο assembler)
  • Προσφέρεται σε δωρεάν και εμπορική έκδοση, με τη δεύτερη να προσφέρει περισσότερες δυνατότητες.
  • Κλειστού κώδικα, αλλά ο πηγαίος κώδικας μπορεί να προβληθεί μόλις αγοραστεί άδεια για επιχειρήσεις

AWK

  • Η AWK δημιουργήθηκε στα Bell Labs τη δεκαετία του 1970 από τους Alfred Aho, Peter Weinberger και Brian Kernighan. Το όνομά της είναι ακρωνύμιο των επωνύμων των δημιουργών της.
  • Είναι μια γλώσσα ειδικού τομέα, σχεδιασμένη για επεξεργασία κειμένου, αλλά μπορεί να χρησιμοποιηθεί και για άλλους σκοπούς
  • Η AWK είναι ένα φίλτρο του Unix, όπως το sed και το grep, που προορίζεται να χρησιμοποιείται σε pipeline
  • Το Single UNIX Specification και το Linux Standard Base απαιτούν να περιλαμβάνεται σε κάθε υλοποίηση, γι' αυτό είναι διαθέσιμη στα περισσότερα μηχανήματα *nix
  • Διαφορετικές υλοποιήσεις της γλώσσας AWK:
    • awk (ή oawk για την αρχική AWK): η αρχική υλοποίηση
    • GNU AWK (gawk), κυκλοφόρησε το 1988 και αναθεώρησε και επέκτεινε σημαντικά τη γλώσσα
    • BWK AWK (γνωστή και ως nawk), κυκλοφόρησε στα τέλη της δεκαετίας του '90
    • mawk: γρήγορη υλοποίηση που ερμηνεύει bytecode
  • Σε πολλά συστήματα *nix, η εντολή awk είναι symlink προς το gawk ή το nawk

Bash

  • Το Bash είναι ένα κέλυφος του Unix, που αναπτύχθηκε από τον Brian Fox και κυκλοφόρησε το 1989.
  • Σχεδιάστηκε ως δωρεάν αντικαταστάτης του κελύφους Bourne και έχει γίνει το προεπιλεγμένο κέλυφος σύνδεσης για τις περισσότερες διανομές Linux. Είναι υπερσύνολο της σύνταξης εντολών του κελύφους Bourne, κάτι που κάνει τη μετάβαση πιο εύκολη
  • Επεκτείνει το κέλυφος Bourne με πολλούς τρόπους: επέκταση αγκίστρων, αυτοσυμπλήρωση γραμμής εντολών, διαχείριση σημάτων και άλλα

jq

  • Αναπτύχθηκε από τον Stephen Dolan και κυκλοφόρησε το 2012
  • Σχεδιάστηκε για να επιτρέπει εύκολη αναζήτηση, μετασχηματισμό και χειρισμό εγγράφων JSON ("sed για JSON")
  • Το εργαλείο jq (που υλοποιεί τη γλώσσα) αρχικά υλοποιήθηκε σε Haskell, αλλά στη συνέχεια μεταφέρθηκε σε C. Υπάρχουν επίσης μεταφορές σε Go και Rust

Perl

  • Η Perl αναπτύχθηκε από τον Larry Wall στα τέλη της δεκαετίας του 1980 και κυκλοφόρησε για πρώτη φορά το 1987.
  • Σχεδιάστηκε ως γλώσσα σεναρίων γενικού σκοπού για να κάνει την επεξεργασία αναφορών πιο εύκολη
  • Πολύ επιδραστική, ειδικά η υποστήριξή της στις κανονικές εκφράσεις (θα το ξαναδούμε αυτό αργότερα)

Raku

  • Σχεδιάστηκε από τον Larry Wall (δημιουργό της Perl) και κυκλοφόρησε το 2015
  • Αρχικά ήταν γνωστή ως Perl 6 και προοριζόταν να καθαρίσει τη γλώσσα και να αφαιρέσει κάποια χαρακτηριστικά που θεωρούνταν άχρηστα ή μπερδεμένα (αστείο απόσπασμα: "Στην Perl 6, αποφασίσαμε ότι είναι καλύτερα να διορθώσουμε τη γλώσσα παρά να διορθώσουμε τον χρήστη.", Larry Wall). Η Perl 6 τελικά δεν ήταν συμβατή σε επίπεδο πηγαίου κώδικα με την Perl 5, γι' αυτό μετονομάστηκε σε Raku
  • Η φιλοσοφία σχεδιασμού της επικεντρώνεται στο να κάνει τον προγραμματισμό απολαυστικό και παραγωγικό, παρέχοντας παράλληλα ένα ευρύ φάσμα εργαλείων για να αντιμετωπίζεις ποικίλες προγραμματιστικές προκλήσεις (γενικού σκοπού)
  • Καθώς η Raku είναι προδιαγραφή, μπορούν να υπάρχουν (και υπάρχουν) πολλαπλές υλοποιήσεις. Η μόνη υλοποίηση που αναπτύσσεται ενεργά αυτή τη στιγμή είναι η Rakudo, αλλά υπάρχουν παλαιότερες υλοποιήσεις όπως η Pugs (γραμμένη σε Haskell), η v6-KindaPerl6 και η Niecza (με στόχο το CLR)

Πού χρησιμοποιούνται αυτές οι γλώσσες;

8th

  • Δυστυχώς, δεν βρήκαμε πού χρησιμοποιείται

AWK

  • Χρησιμοποιείται για εξαγωγή και αναφορά δεδομένων, και γενικά για συγγραφή σεναρίων

Bash

  • Χρησιμοποιείται κυρίως για διαχείριση συστημάτων, αλλά και για εργαλεία γραμμής εντολών ή wrappers γύρω από άλλα εργαλεία. Τη χρησιμοποιήσαμε πάρα πολύ για μαζικές εργασίες στα αποθετήρια του Exercism

jq

  • Χρησιμοποιείται για αναζήτηση, μετασχηματισμό και χειρισμό εγγράφων JSON, συχνά με τη μορφή σεναρίων shell.

Perl

  • Χρησιμοποιείται για χειρισμό δεδομένων, ανάλυση αρχείων, προγραμματισμό για τον ιστό και εργασίες διαχείρισης συστημάτων. Κέρδισε δημοτικότητα στα πρώτα χρόνια του ιστού χάρη στις δυνατότητές της στον χειρισμό συμβολοσειρών και στο εκτεταμένο οικοσύστημα μονάδων της.

Raku

  • Χρησιμοποιείται για επεξεργασία κειμένου, διαχείριση συστημάτων και άλλα

Τι κάνει αυτές τις γλώσσες ενδιαφέρουσες από προγραμματιστική σκοπιά;

Οι περισσότερες γλώσσες είναι δυναμικά τυποποιημένες και ερμηνευόμενες, κάτι που ταιριάζει καλά με τη φύση τους ως γλώσσες σεναρίων. Ωστόσο, υπάρχουν και κάποιες εξαιρέσεις, ειδικά στα υποστηριζόμενα προγραμματιστικά παραδείγματα.

8th

  • Ισχυρή τυποποίηση
  • Πολλαπλών παραδειγμάτων: διαδικαστική, αλλά το πιο ενδιαφέρον είναι ότι βασίζεται σε στοίβα (μοντέλο εκτέλεσης βασισμένο σε στοίβα), είναι ανακλαστική (δυνατότητα να εξετάζει και να τροποποιεί τη δική της δομή και συμπεριφορά) και συνενωτική (όλες οι εκφράσεις είναι συναρτήσεις και η παράθεση συναρτήσεων δηλώνει σύνθεση συναρτήσεων)
  • Μεταγλωττίζεται σε εγγενή κώδικα, αλλά μπορεί επίσης να ερμηνευτεί σε ένα REPL

AWK

  • Δυναμικά τυποποιημένη και συχνά ερμηνευόμενη (εξαρτάται από την υλοποίηση που χρησιμοποιείται)
  • Το κύριο παράδειγμά της είναι προσανατολισμένο στα δεδομένα, όπου περιγράφεις ένα πρόγραμμα ως εντολές που περιγράφουν τα δεδομένα που πρέπει να αντιστοιχιστούν και την απαιτούμενη επεξεργασία, αντί να ορίζεις ρητά μια σειρά βημάτων. Η AWK υποστηρίζει πάντως και διαδικαστικό προγραμματισμό

Bash

  • Δυναμική και ερμηνευόμενη γλώσσα
  • Υποστηρίζει προστακτικό και διαδικαστικό προγραμματισμό

jq

  • Δυναμική και ερμηνευόμενη γλώσσα
  • Καθαρά συναρτησιακή γλώσσα (όλες οι τιμές είναι αμετάβλητες), με έμφαση στα "pipelines". Έχει έντονα την αίσθηση του Unix

Perl

  • Δυναμικά τυποποιημένη και ερμηνευόμενη
  • Πολλαπλών παραδειγμάτων, υποστηρίζει συναρτησιακό, αντικειμενοστραφή και προστακτικό προγραμματισμό

Raku

  • Δυναμικά τυποποιημένη, αλλά υποστηρίζει σταδιακή τυποποίηση, όπου μπορεί να προστεθεί στατική τυποποίηση όπου χρειάζεται (η Perl είναι δυναμική)
  • Γλώσσα πολλαπλών παραδειγμάτων: προστακτική, διαδικαστική, αντικειμενοστραφής και συναρτησιακή

Τι τις κάνει σπουδαίες γλώσσες;

8th

  • Η πολύ λίγη σύνταξη κάνει τη γλώσσα πιο εύκολη στην εκμάθηση και την κατανόηση. Χρησιμοποιεί JSON για να περιγράφει δεδομένα (όπως αντικείμενα και πίνακες). Υποστηρίζει επίσης άλλους περιέκτες όπως στοίβες, ουρές και σωρούς
  • Καμία δεσμευμένη λέξη-κλειδί. Οι υπορουτίνες ονομάζονται "λέξεις", και νέες λέξεις μπορούν να οριστούν εύκολα. Όλες οι λέξεις μπορούν να επαναοριστούν κατά την εκτέλεση, είτε είναι ενσωματωμένες είτε ορισμένες από τον χρήστη
  • Πολλαπλές πλατφόρμες. Δημιουργείς εύκολα ένα εκτελέσιμο για οποιαδήποτε υποστηριζόμενη πλατφόρμα
  • Ασφαλής. Ενσωματωμένες δυνατότητες ασφάλειας που αποτρέπουν ένα ευρύ φάσμα bugs (χωρίς άμεση πρόσβαση στη μνήμη, ο χρόνος εκτέλεσης δεν συνδέεται με δυναμικές βιβλιοθήκες)

AWK

  • Απλή σύνταξη με πολύ συνεπή δομή του κώδικα AWK, που κάνει τον κώδικα AWK εύκολο στην εκμάθηση και την ανάγνωση. Και οι δομές δεδομένων της είναι απλές και ευέλικτες
  • Πολύ εκφραστική, όπου μπορείς να κάνεις πολλά με ελάχιστο κώδικα. Ιδανική για one-liners
  • Εγκατεστημένη στα περισσότερα μηχανήματα *nix, που σημαίνει ότι μπορείς να χρησιμοποιήσεις τις δεξιότητές σου στην AWK σε πολλά μέρη (μαζί με το /bin/sh, η μόνη γλώσσα σεναρίων στο πρότυπο Unix)
  • Λειτουργεί πολύ καλά σε pipelines και σενάρια shell, όπου η AWK επεξεργάζεται την έξοδο άλλων εργαλείων ή το αντίστροφο

Bash

  • Μπορεί να χρησιμοποιηθεί στις περισσότερες πλατφόρμες. Είναι εγκατεστημένο σχεδόν σε όλα τα μηχανήματα *nix, συμπεριλαμβανομένου του macOS. Με το Windows Subsystem for Linux (WSL), το bash είναι πλέον διαθέσιμο και σε συστήματα Windows.
  • Χρησιμοποιείται ως RE(P)L, όπου εκτελείς μεμονωμένες εντολές ή διαβάζεις και εκτελείς κώδικα από αρχεία (γνωστά ως σενάρια shell). Αν έχεις χρησιμοποιήσει τερματικό Linux, πιθανότατα έχεις γράψει κώδικα bash, αφού το τερματικό είναι συνήθως ένα RE(P)L της bash
  • Το Bash και τα σενάρια shell χρησιμοποιούνται ευρέως για διαχείριση συστημάτων, devops και διαχείριση υπολογιστών.
  • Εξαιρετικά ευέλικτο και προσαρμόσιμο
  • Ισχυρές δυνατότητες χειρισμού συμβολοσειρών, συμπεριλαμβανομένης της πολύ απλής παρεμβολής συμβολοσειρών

jq

  • Απλή, σύντομη σύνταξη για εργασία με JSON, που την κάνει εύκολη στην εκμάθηση
  • Επιτρέπει τον ορισμό προσαρμοσμένων συναρτήσεων για πιο σύνθετες λειτουργίες.
  • Υποστηρίζει βελτιστοποίηση αναδρομής ουράς, που είναι ιδανική για αναδρομική επεξεργασία δεδομένων
  • Το εργαλείο jq διανέμεται ως ένα μόνο εκτελέσιμο αρχείο μεγέθους μόλις 30 περίπου KB
  • Το εργαλείο yq τυλίγει το jq για να επιτρέπει τη χρήση της ίδιας σύνταξης στον χειρισμό αρχείων XML, TOML και YAML (μετατρέπει αυτούς τους τύπους δεδομένων σε JSON στο παρασκήνιο)
  • Και οι δύο υλοποιήσεις, σε C και Go, υποστηρίζουν την ενσωμάτωσή τους σε άλλες εφαρμογές

Perl

  • Τρέχει στις περισσότερες πλατφόρμες. Ιδανική για συγγραφή σεναρίων για πολλαπλές πλατφόρμες
  • Η ευελιξία είναι ακρογωνιαίος λίθος της φιλοσοφίας σχεδιασμού της Perl. Το διάσημο ρητό της είναι: "Υπάρχουν πολλοί τρόποι να το κάνεις" (TMTOWTDI). Μπορούν να χρησιμοποιηθούν διαφορετικές προσεγγίσεις ανάλογα με την εκάστοτε εργασία
  • Ισχυρή κοινότητα και κληρονομιά επιδραστικών έργων. Πολλά σενάρια, εργαλεία και εφαρμογές έχουν αναπτυχθεί με Perl. Κάποτε χαρακτηρίστηκε ως "η κολλητική ταινία που κρατάει το διαδίκτυο ενωμένο"
  • Πλούσιο οικοσύστημα μονάδων και βιβλιοθηκών, διαθέσιμο μέσω του Comprehensive Perl Archive Network (CPAN)

Raku

  • Μεγάλη, σύνθετη και ισχυρή, αλλά σχεδιασμένη έτσι ώστε να μη χρειάζεται να τη μάθεις όλη με τη μία. Είναι εύκολο να ξεκινήσεις, και μπορείς να βουτήξεις στις πιο ισχυρές δυνατότητες αργότερα
  • Ισχυρό και επεκτάσιμο σύστημα τύπων που περιλαμβάνει σταδιακή τυποποίηση. Αυτό σημαίνει ότι μπορείς να καθορίσεις το επίπεδο ελέγχου τύπων που θέλεις, επιτρέποντας μια ισορροπία ανάμεσα στη δυναμική και τη στατική τυποποίηση
  • Υποστηρίζει πολλαπλή αποστολή, που σου επιτρέπει να χρησιμοποιείς πολυμορφισμό χωρίς κληρονομικότητα
  • Το Unicode είναι πολίτης πρώτης κατηγορίας στη Raku. Παρέχει εγγενή υποστήριξη για τον χειρισμό διαφορετικών κωδικοποιήσεων χαρακτήρων
  • Παρέχει προηγμένες δυνατότητες ταυτοχρονισμού και παραλληλισμού. Περιλαμβάνει ενσωματωμένη υποστήριξη για ασύγχρονο προγραμματισμό, αντιδραστικό προγραμματισμό και παράλληλη εκτέλεση

Ποιες είναι οι ξεχωριστές δυνατότητές τους;

8th

  • Απαιτεί διαφορετικό τρόπο σκέψης. Ο μοναδικός συνδυασμός παραδειγμάτων της είναι πολύ διαφορετικός από άλλες γλώσσες και σε προκαλεί να βρεις διαφορετικούς τρόπους να προσεγγίζεις τα πράγματα
  • Η σύνταξη βασισμένη σε στοίβα και η Αντίστροφη Πολωνική Σημειογραφία (RPN) δημιουργούν ένα πολύ απλό νοητικό μοντέλο εκτέλεσης προγράμματος. Οι τιμές μπαίνουν στη στοίβα και οι περισσότερες λέξεις ορίζονται με βάση το αποτέλεσμά τους στη στοίβα

AWK

  • Το παράδειγμα που βασίζεται στα δεδομένα είναι πολύ ισχυρό. Απαιτεί διαφορετικό τρόπο σκέψης, καθώς τα προγράμματα ορίζονται ως ένα σύνολο ζευγών συνθήκης/ενέργειας και το κείμενο χωρίζεται σε καταγραφές (συνήθως μία γραμμή ανά καταγραφή) και κάθε καταγραφή χωρίζεται σε πεδία (π.χ. πεδία CSV ή μία λέξη ανά πεδίο). Μόλις το συνηθίσεις, θα εκτιμήσεις την κομψότητα και την εκφραστικότητα αυτής της προσέγγισης και θα αρχίσεις να βλέπεις χρήσεις της παντού
  • Ιδανική για εργασία με κείμενο. Είτε αναλύεις κείμενο, είτε το μετασχηματίζεις, είτε φτιάχνεις αναφορές, η AWK σε καλύπτει. Σε εργασίες όπως να εκτυπώσεις το κέλυφος για κάθε χρήστη του συστήματος ή να αθροίσεις μια στήλη CSV, θα εκπλαγείς με το πόσο λίγος κώδικας χρειάζεται

Bash

  • Ιδανικό για αυτοματοποίηση. Τα σενάρια shell είναι εξαιρετικά για την αυτοματοποίηση επαναλαμβανόμενων εργασιών.
  • Τα σενάρια bash χρησιμοποιούν pipelines και σου επιτρέπουν να κολλάς άλλα προγράμματα μεταξύ τους με ευκολία. Είναι απλό να δημιουργήσεις ένα σενάριο που διοχετεύει την έξοδο μιας εντολής σε μια άλλη εντολή, ή που αποτυγχάνει μόλις αποτύχει οποιαδήποτε από τις εντολές που εκτελεί.
  • Ισχυρό. Η ευκολία με την οποία μπορούν να χρησιμοποιηθούν άλλα εργαλεία κάνει το bash ένα απίστευτα ισχυρό εργαλείο

jq

  • Ιδανική για εύκολη και καθαρή εξαγωγή/χειρισμό δεδομένων JSON (που στις μέρες μας έχουμε άφθονα). Έχει γίνει το de facto εργαλείο για τον μετασχηματισμό δεδομένων JSON. Μπορείς μάλιστα να δημιουργήσεις δεδομένα JSON με το jq
  • Υποστηρίζει ροή δεδομένων, που σημαίνει ότι μπορείς να δουλέψεις με "άπειρα" δεδομένα χωρίς προβλήματα μνήμης
  • Η έμφαση στα pipelines θα είναι εύκολη στην εκμάθηση για όποιον είναι εξοικειωμένος με ροές, π.χ. εργαλεία του Unix. Κάνει επίσης τον κώδικα jq αρκετά εύκολο στην κατανόηση

Perl

  • Διάσημη για τη συνοπτικότητα και την εκφραστικότητά της. Χρειάζεσαι ελάχιστο κώδικα για να κάνεις πολλά
  • Είναι ιδιαίτερα κατάλληλη για εργασία με κείμενο, σε μεγάλο βαθμό χάρη στην ισχυρή υποστήριξη κανονικών εκφράσεων. Η Perl 5 ειδικότερα εισήγαγε πολλά νέα χαρακτηριστικά (όπως οπισθοαναφορές, ονομασμένες ομάδες σύλληψης και τεμπέληδες ποσοδείκτες). Ο Philip Hazel έφτιαξε το PCRE (Perl Compatible Regular Expressions), μια βιβλιοθήκη σε C που υλοποιεί μια μηχανή κανονικών εκφράσεων συμβατή με την Perl 5. Ακόμα και γλώσσες που δεν βασίζονται στο PCRE συχνά σχεδιάζουν την υποστήριξη κανονικών εκφράσεων να είναι συμβατή με το PCRE (και άρα να χρησιμοποιούν σύνταξη της Perl 5)

Raku

  • Υποστηρίζει junctions με αυτόματη νηματοποίηση, που κάνουν τον παραλληλισμό πολύ πιο εύκολο στη χρήση
  • Υποστηρίζει τεμπέλικο υπολογισμό, που σου επιτρέπει να δουλεύεις με άπειρες λίστες και ακολουθίες χωρίς να αντιμετωπίζεις προβλήματα μνήμης. Αυτό είναι ιδιαίτερα χρήσιμο όταν έχεις να κάνεις με μεγάλα σύνολα δεδομένων ή όταν δουλεύεις με αλγορίθμους που περιλαμβάνουν άπειρες ροές δεδομένων
  • Ιδανική για επεξεργασία κειμένου, παρέχοντας πιο απλή, πιο ευανάγνωστη και πιο ισχυρή σύνταξη regex
  • Ενσωματωμένη υποστήριξη για τον ορισμό προσαρμοσμένων γλωσσών ειδικού τομέα (DSL) με χρήση γραμματικών. Αυτό σου επιτρέπει να δημιουργείς αναλυτές για συγκεκριμένες μορφές δεδομένων ή γλώσσες, κάνοντας ευκολότερη την εργασία με σύνθετα δεδομένα κειμένου

Ποια να δοκιμάσεις;

  1. Αν χρησιμοποιείς κυρίως ένα σύστημα Unix ή ασχολείσαι με devops, το Bash είναι μια ανεκτίμητη γλώσσα για να μάθεις. Η εκμάθηση της AWK, της Perl ή της Raku μπορεί επίσης να είναι πολύ ωφέλιμη, με τις δύο πρώτες να είναι προεγκατεστημένες σε πολλά συστήματα
  2. Αν δουλεύεις με JSON (ή XML/YAML/TOML), το jq είναι προφανής επιλογή
  3. Αν θέλεις να επεξεργάζεσαι κείμενο, οι AWK, Perl και Raku είναι οι προφανείς επιλογές.
  4. Αν θέλεις να δοκιμάσεις κάτι λίγο διαφορετικό, η 8th είναι εξαιρετική επιλογή
Translation missing: el.number.nth.ordinalized Sep 2023 · Σου φάνηκε χρήσιμο;