Μάθε τι κάνει τη Wren ξεχωριστή
Η Wren είναι μια μικρή, γρήγορη, ταυτόχρονη γλώσσα σεναρίων βασισμένη σε κλάσεις. Σκέψου τη Smalltalk σε ένα πακέτο στο μέγεθος της Lua, με μια πινελιά Erlang, τυλιγμένη σε μια οικεία, σύγχρονη σύνταξη.
Μικρή. Η εικονική μηχανή είναι λιγότερες από 4.000 άνω τελείες ευανάγνωστου κώδικα C, σχολιασμένου με αγάπη.
Γρήγορη. Ένας έξυπνος μεταγλωττιστής μονού περάσματος παράγει συμπαγές και αποδοτικό bytecode.
Βασισμένη σε κλάσεις. Οι κλάσεις και τα αντικείμενα βρίσκονται στο επίκεντρο.
Ταυτόχρονη. Οι ελαφριές ίνες είναι ενσωματωμένες στη γλώσσα.
Γλώσσα σεναρίων. Ενσωματώσιμη, χωρίς εξαρτήσεις, με μια μικρή βασική βιβλιοθήκη και ένα εύχρηστο C API.
Η καρδιά της Wren είναι η εικονική μηχανή. Η εικονική μηχανή της Wren είναι ο πυρήνας της γλώσσας και εκτελεί όλο τον πηγαίο κώδικα Wren. Δεν είναι παρά μια βιβλιοθήκη, όχι μια αυτόνομη εφαρμογή. Είναι σχεδιασμένη ώστε να ενσωματώνεται σε μια μεγαλύτερη εφαρμογή-ξενιστή.
Μπορείς να βρεις τη Wren ενσωματωμένη σε έργα όπως:
Μπορείς μάλιστα να ενσωματώσεις τη Wren στα δικά σου έργα. Για τις ανάγκες του Exercism, η εφαρμογή-ξενιστής που θα χρησιμοποιήσουμε είναι το Wren Console, που μας επιτρέπει να τρέχουμε και να δοκιμάζουμε τα σενάρια Wren μας από το τερματικό.
Η Wren δημιουργήθηκε αρχικά από τον Bob Nystrom, γνωστό από το Crafting Interpreters. Έχει βάλει στο ενεργητικό του αρκετές γλώσσες, αλλά εξηγεί συγκεκριμένα τι οδήγησε στη δημιουργία της Wren:
Υπάρχουν μερικές γλώσσες σεναρίων που χρησιμοποιούνται για ενσωμάτωση σε εφαρμογές. Η Lua είναι η κυριότερη. Κάποτε ήταν η TCL. Υπάρχει επίσης η Guile, ολοένα και περισσότερο η JavaScript, και μερικές εφαρμογές ενσωματώνουν την Python. Είμαι πρώην προγραμματιστής παιχνιδιών, οπότε όταν σκέφτομαι "σενάρια", τείνω να σκέφτομαι "σενάρια παιχνιδιών".
Η Lua είναι ωραία: μικρή, απλή και γρήγορη. Αλλά, και δεν το λέω ως κριτική, είναι επίσης παράξενη αν έχεις συνηθίσει γλώσσες όπως η C++ και η Java. Η σύνταξη είναι διαφορετική. Η σημασιολογία, ειδικά το μοντέλο αντικειμένων, είναι ασυνήθιστη. Ο καθένας μπορεί να συνηθίσει να μετράς ξεκινώντας από το 1, αλλά πράγματα όπως οι metatables δείχνουν πραγματικά ότι τα αντικείμενα βιδώθηκαν στη Lua εκ των υστέρων.
Πιστεύω ότι υπάρχει χώρος για μια γλώσσα τόσο απλή όσο η Lua, που όμως να φαίνεται φυσική σε κάποιον με υπόβαθρο στον αντικειμενοστρεφή προγραμματισμό. Η Wren είναι η προσπάθειά μου γι' αυτό.
Μπορείς να τη δοκιμάσεις γρήγορα μέσα στον browser σου (χωρίς να εγκαταστήσεις τίποτα). Αν θέλεις να πειραματιστείς με τη Wren μέσα σε ένα κομψό UI, ρίξε μια ματιά στο Wren Playground.