Η γλώσσα LUA ως εναλλακτική της «ΓΛΩΣΣΑ»

Ξεκίνησε από ioannis.giftakis, 25 Δεκ 2022, 01:38:29 ΜΜ

« προηγούμενο - επόμενο »

ioannis.giftakis

Χαίρετε, 

παίζοντας με την LUA τώρα τελευταία λόγω δημιουργίας παιχνιδιών στο περιβάλλον Roblox Studio παρατηρώ την μεγάλη της ομοιότητα με την «ΓΛΩΣΣΑ» και θεωρώ πως θα ήταν μια έξυπνη μετάβαση. Επίσης μοιάζει και με την Python πολύ στο επίπεδο που θέλουμε.

Δείτε παραδείγματα και δόκιμάστε τα αν επιθυμείτε:

local a, b, c = 11, 13, 12
local mo = (a+b+c)/3
print(mo)

---------------------------

if mo % 2 == 0 then
    print("Artios")
else
    print("Perittos")
end

---------------------------

students = 156
bus_capacity = 50

busses = students // bus_capacity
if students % bus_capacity > 0 then
    busses = busses + 1
end
print(busses)

---------------------------

με χαρά να ακούσω τη γνώμη σας και τα σχόλιά σας!

Με εκτίμηση,
Γιάννης
Εκπαιδευτική Πληροφορική και Ρομποτική
https://blog.giftakis.gr

andreas_p


ioannis.giftakis

Hi, ναι και με Python κανένα θέμα. Απλά ταιριάζει πολύ το συντακτικό.

if → ΑΝ
end → ΤΕΛΟΣ_ΑΝ

επίσης έχει και repeat...until →  ΜΕΧΡΙΣ_ΟΤΟΥ 

και είναι σε πολλά περιβάλλοντα έτοιμη για παιχνίδια. Βέβαια το ίδιο και η Python.
Προσωπικά θα προτιμούσα Python. 
Εκπαιδευτική Πληροφορική και Ρομποτική
https://blog.giftakis.gr

evry

Το ότι μια γλώσσα προγραμματισμού έχει ομοιότητες με την δική μας ελληνική γλώσσα προγραμματισμού μάλλον το βλέπω σαν αρνητικό και όχι σαν θετικό. Γενικά η προσκόλληση σε ένα παρωχημένο μοντέλο δομημένου προγραμματισμού της δεκαετίας του 80' θα πρέπει να εγκαταλειφθεί.
Σχετικά με την Lua τώρα. Υπάρχουν και άλλες σύγχρονες γλώσσες που θα μπορούσε κάποιος να χρησιμοποιήσει όπως Kotlin, Rust, Go κλπ. Το να είναι μια γλώσσα σύγχρονη όμως δεν αρκεί. Θα πρέπει να είναι δοκιμασμένη στην εκπαίδευση και να υπάρχει κοινότητα ανάπτυξης και παραγωγής εκπαιδευτικού υλικού, όπως και βιβλιογραφία με τα διδακτικά προβλήματα που θα αντιμετωπίσουμε. Η Lua σε αυτό είναι εξαιρετικά φτωχή.
Τα πλεονεκτήματά της είναι ότι αν ξέρεις λίγο C θα σου φανεί πολύ εύκολη. Σε σχέση με την Python είναι πολύ πιο γρήγορη, κάτι όμως που δεν ενδιαφέρει την εκπαιδευτική κοινότητα.
Το μεγάλο πλεονέκτημά της είναι ότι οι μαθητές μπορούν να σχεδιάσουν παιχνίδια με το Roblox Studio εντελώς δωρεάν. Μάλιστα δεν είναι ιδιαίτερα δύσκολο.
Η γλώσσα αυτή θα μπορούσε να αξιοποιηθεί στο περιβάλλον ενός ομίλου ή ενός προγράμματος. Σίγουρα τα παιδιά λόγω roblox θα έγραφαν πολύ κώδικα.  Πιστεύω ότι μαθητές Γυμνασίου μπορούν να τα καταφέρουν. Παρεμπιπτόντως σχεδιάζω να το δοκιμάσω σχολείο μου κατά τον Μάρτιο σε παιδιά που ξέρουν λίγο C++ να δω τι θα γίνει.
Γενικά όμως για την τάξη νομίζω δεν είναι καλή ιδέα όχι μόνο επειδή δεν έχει κοινότητα αλλά και επειδή οι εφαρμογές της είναι περιορισμένες. Για την εκπαίδευση πρέπει να χτίσουμε σε μια γλώσσα η οποία θα μείνει τα επόμενα 10 χρόνια. και στην οποία έχει ήδη γραφτεί αρκετός κώδικας και χρησιμοποιείται σε πολλές εφαρμογές λόγω πληθώρας βιβλιοθηκών. Αυτό δεν το έχει η Lua.
Επίσης να σημειώσουμε ότι η Lua δεν έχει κλάσεις και κληρονομικότητα. Άρα αν θέλεις να δείξεις αυτά θα πας σε άλλη γλώσσα. H Lua είναι object-based γλώσσα δηλαδή έχεις αντικείμενα τα οποία δημιουργούν τις κλάσεις κάτι εξαιρετικά ενδιαφέρον αλλά μακριά από την class based φιλοσοφία που έχουμε συνηθίσει όλοι.
Να θυμίσω ότι με βάση το νέο πρόγραμμα σπουδών ο αντικειμενοστρεφής προγραμματισμός είναι στην ύλη της Γ' Γυμνασίου. 

Άρα σίγουρα αποτελεί καλή ιδέα για ένα Project με κάποιους μαθητές αλλά δεν είναι γλώσσα για να στηριχτούμε σε αυτή για την υλοποίηση του μαθήματος.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Foto

Κοίταξα λίγο τη Lua. Είναι μια γλώσσα εργαλείο για ενσωμάτωση σε προγράμματα που θέλουν να τρέχουν μικρά προγράμματα όπως τα λεγόμενα add-ons, ή plug-in ή πρόσθετα σε ελεύθερη απόδοση. Αντί να φτιάξει κάποιος μια βιβλιοθήκη, το λεγόμενο dll, που είναι προορισμένος για μια πλατφόρμα, πχ x86,  δίνει το πηγαίο κώδικα σε lua, οπότε δύο πράγματα πετυχαίνει: Το πρόγραμμα στόχος απλά διαβάζει ένα αρχείο κειμένου και στατικά συνδεδεμένο με τον διερμηνευτή της παρέχει μαζί τους πίνακες η resources και αυτόματα γίνεται μετάφραση σε bytecode και εκτέλεση στη τρέχουσα πλατφόρμα. Το ενδιαφέρον είναι ότι ο τελικός κώδικας μπορεί να λειτουργεί σαν κόλλα με χρήση c dll, δηλαδή η lua να καλεί εξωτερικές βιβλιοθήκες. Αυτός είναι και ο κατάλληλος χειρισμός τέτοιων script γλωσσών.
Κάνει για την εκπαίδευση; Μάλλον όχι. Είναι ένα μεν εύκολο εργαλείο, αλλά για χρήσεις που είναι άσχετες με την εκπαίδευση. Δεν έχει σημασία η ιδιαιτερότητα στη σύνταξη κώδικα. Όλες οι γλώσσες κάτι έχουν το διαφορετικό. Αν όμως αποφασίσει η εκπαιδευτική κοινότητα να παραγγείλει ένα περιβάλλον προγραμματισμού που θα αξιοποιεί τη Lua για τους σκοπούς του σχολείου τότε δεν θα χαλάσει τους μαθητές. Η γλώσσα έχει πολλά functional χαρακτηριστικά που είναι μοντέρνα, και αποδοτικά. Μέρα με τη νύχτα σε σχέση με τη πασκαλοειδη Γλώσσα.
Επειδή είμαστε στην Ελλάδα και πρέπει να κάνουμε πράγματα που αρέσουν στις μαμάδες των μαθητών, αν τις πούμε ότι θα βάλουμε lua, θα μας πετάξουν γιαούρτι! Αν όμως πούμε ότι θα βάλουμε python, που την κάνουν και σε πανεπιστήμια στο εξωτερικό, τότε θα μας κάνουν θεούς. Ακριβώς έτσι αποφασίζουν στην Ελλάδα. Το ότι έχει κρατήσει τόσα χρόνια η Γλώσσα, μην σα φαίνεται παράξενο. Είναι τόσο απλή (και άχρηστη) που εδώ οι μαμάδες σκέφτονται αλλιώς: Εύκολο μάθημα για να πιάσουν μονάδες. Είναι τυφλοσούρτης, διαβάζεις εκατό ασκήσεις και μπήκες στο νόημα (αν όχι δεν σου πάει η κατεύθυνση). Η Γλώσσα δεν έχει εναλλακτικές. Η μανία ορισμένων με τις μετατροπές της ΟΣΟ είναι αποτέλεσμα αυτής της έλλειψης, για να φανεί κάπως ότι υπάρχει και ή κρίση του μαθητή στις λύσεις των ασκήσεων. Στην ουσία με μια γλώσσα σαν την Lua θα μπορούσε κάποιος να κάνει ευφάνταστα πρόγραμμα. Με τη Γλώσσα έχει γειωθεί όπως λέμε, με τους πίνακες, και την απουσία καλού χειρισμού αλφαριθμητικών. Ευτυχώς είναι μια Turing συμβατή γλώσσα!
Βλέπω ότι ο κύριος Evry αναφέρει την καλή εκπαιδευτική αποδοχή σε μια μέλλουσα υποστηριζόμενη από το σχολείο γλώσσα. Γιατί η Γλώσσα όταν ξεκίνησε είχε αποδοχή; Το ότι έμοιαζε με Pascal δεν της χάρισε κάτι, αφού στην ουσία ήταν γλώσσα επί χάρτου (δεν δόθηκε ο πρότυπος διερμηνευτής ή μεταφραστής).
Άρα συγκρίνοντας την εκκίνηση της Γλώσσας στη εκπαίδευση και της  υποτιθέμενης εκκίνησης κάθε άλλης γλώσσας από τις δεκάδες ή εκατοντάδες που κυκλοφορούν, σίγουρα η Γλώσσα δεν έχει τίποτα εξαιρετικό, κανένα υπόβαθρο που πλαγιοκοπεί τις άλλες.
Ενδιαφέροντα χαρακτηριστικά της μέλλουσας νέας γλώσσας, οποιασδήποτε, θα προτιμούσα να ήταν κατά σειρά προτεραιότητας οι functional δυνατότητες, με συναρτήσεις πρώτης τάξης, μετά τα αντικείμενα με δυνατότητα κληρονομικότητας, και τελευταίο η δυνατότητα να ορίζουμε τύπους έστω προαιρετικά, διότι βοηθάει στην εκσφαλμάτωση, όχι για άλλη αιτία.

Χρόνια Πολλά,  Καλή Νέα Χρονιά!


dpa2006

Η Ελληνική Pascal που υπάρχει από το 1998-1999 δεν αποτελεί πρότυπο γλώσσας προγραμματισμού πλέον.
Η Python είναι πρώτη (και με διαφορά θα έλεγα) από τις Turing Complete ΓΠ και έχει εφαρμογές όπου μπορεί να φανταστεί κανείς.
Data Science, Machine Learning, Deep Learning, Web programming(Web Apps),Robotics και πολλά άλλα.
https://www.tiobe.com/tiobe-index/
Ειδική μνεία θα πρέπει να γίνει στις εφαρμογές της Python σε μη τμήματα Πληροφορικής...

Python vs IDL(astronomy)
why astronomers should program in python
Why are most astronomical softwares being programmed in Python?


Ήδη στο ΠαΜακ είναι η εισαγωγική γλώσσα προγραμματισμού(μαζί με την C)
https://www.uom.gr/assets/site/public/nodes/4254/14792-Curriculum2022-2023GR.pdf
θα ακολουθήσουν κι άλλα τμήματα είμαι σίγουρος.
Computer science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell.source:http://en.wikipedia.org/wiki/Computer_science