Γενικό Λύκειο > Γ΄ Λυκείου

Ποια γλώσσα θέλετε για την Γ΄ Λυκείου;

<< < (23/24) > >>

dpa2006:
Και ένα άρθρο πολύ χρήσιμο πιστεύω...

https://thenewstack.io/what-should-be-a-students-first-programming-language/

What Should Be a Student’s First Programming Language?
4 Jul 2021 6:00am, by David Cassel

dpa2006:
Καλησπέρα,
χάριν πληρότητας να αναφέρω για όσους δεν γνωρίζουν υλοποιήσεις της Python στον Browser.

Running Python in the Browser
TRANSCRYPT. Transcrypt gives you a command-line tool you can run to compile a Python script into a JavaScript file. ...
BRYTHON. Brython lets you write Python in script tags in exactly the same way you write JavaScript. ...
SKULPT. (Skulpt is an[/size] [/size]entirely in-browser[/size] [/size]implementation of Python.
[/size]              No preprocessing, plugins, or server-side support required, just write Python and reload.[/size])
PYPY.
BATAVIA.
PYODIDE.

Spyrοs:
Στο δίπτυχο Python / Javascript που είναι φανερά οι πιο δημοφιλείς επιλογές, σίγουρα θα επέλεγα Python. Θεωρώ ότι είναι πιο εύκολη στην εκπαίδευση, διδάσκεται ήδη στα ΕΠΑΛ με ό,τι αυτό συνεπάγεται, και είναι η νούμερο 1 επιλογή για machine learning, τεχνητή νοημοσύνη, ρομποτική (κάνοντας εύκολη μία "ρηχή" εισαγωγή σε αυτούς τους τομείς, αλλά και την μετέπειτα χρήση της γλώσσας σε σχετικά Πανεπιστημιακά τμήματα, όπου δεν θα γλιτώσεις εύκολα την Python σε αυτούς τους τομείς). Επίσης από τη στιγμή που οι browsers πλέον υποστηρίζουν WebAssembly νομίζω ότι μειώνεται ένα κύριο ατού της Javascript, μπορείς να γράψεις σε όποια γλώσσα θέλεις και να τρέξει σε online περιβάλλοντα.

Αν έπρεπε να επιλέξω μία επιπλέον γλώσσα ωστόσο, η οποία πέρα από εκπαιδευτικό ρόλο να έχει και δυνατότητες για άμεση χρησιμοποίηση σε πρακτικούς τομείς και με μεγάλη κοινότητα, θα διάλεγα την Go: https://en.wikipedia.org/wiki/Go_(programming_language)


* Είναι μικρή σε μέγεθος (25 keywords) συγκριτικά με πολλές άλλες. Νομίζω ότι όταν υπάρχουν άπειρες δυνατότητες και τρόποι υλοποίησης σε μία γλώσσα μπερδεύει πολύ άτομα που μόλις ξεκινάνε να μαθαίνουν προγραμματισμό. Παλιότερα η Python είχε αυτό το μότο ("There should be one-- and preferably only one --obvious way to do it."), πλέον όμως όλο προσθέτουν και προσθέτουν νέες δυνατότητες που νομίζω έχει χαθεί αρκετά η μπάλα. Το ίδιο σε Javascript/Ecmascript. Παρομοίως για C#/Java κτλ.
* Όταν γίνεται compile ο κώδικας κάνει static linking και παράγει ένα εκτελέσιμο που μπορούν οι μαθητές να το τρέξουν / μοιραστούν. Σε Python για το αντίστοιχο... καλά κρασιά. Σε JS θες ένα browser. Σε Java/Kotlin να έχεις εγκατεστημένο το JVM.
* Σε βάζει σε ένα μονοπάτι για καλές προγραμματιστικές τεχνικές, πχ. με το Gofmt αυτόματα όλα τα προγράμματα έχουν ίδια tabs / κενά / γραμμές / μορφή, δεν σε αφήνει να κάνεις import βιβλιοθήκες που δεν χρησιμοποιείς, ίδιο brace style παντού κτλ. Σε όλες τις γλώσσες γίνονται αυτά, εδώ όμως είναι από default και δεν μπορείς να το αποφύγεις.
* Εξαιρετική υποστήριξη στα περισσότερα IDEs (και υπάρχει και το GoLand της JetBrains ειδικά γι' αυτή).
* Είναι αποδοτική, και πολλές real-life εφαρμογές την χρησιμοποιούν σε απαιτητικούς τομείς. Αν τη μάθει κανείς δεν θα πάει χαμένη η γνώση αυτή, κάπου θα βρει εφαρμογές.
* Έχει πολύ καλές δυνατότητες concurrency και multi-threaded προγραμματισμού (goroutines).
* Online editors; Το Go Playground (https://play.golang.org) που είναι φάτσα φόρα με το που πας στην επίσημη ιστοσελίδα τι είναι; Είναι open source προφανώς, μπορεί να εγκατασταθεί και σε server του υπουργείου αν χρειαστεί. Και υπάρχουν και εναλλακτικές λύσεις από τρίτους.
* Μιας και ειπώθηκε παραπάνω για το μέλλον στις εφαρμογές web (παραφράζω λίγο), η Go φτιάχτηκε από την Google σαν μία γλώσσα με τα οποία μπορείς εύκολα να γράψεις εφαρμογές backend για servers. Γίνεται και με Javascript, αλλά ξεφεύγεις από vanilla JS και πρέπει να πας στο περιβάλλον του node.js που είναι πρακτικό... αν και μάλλον χαοτικό (μεγάλη συζήτηση). Συγκριτικά, το package system της Go δείχνει αρκετά πιο απλό.
Έχει μειονεκτήματα η Go; Ναι, και κυριότερο για τη συγκεκριμένη συζήτηση είναι νομίζω τα GUIs (... όπως σε όλες τις γλώσσες πλην της Javascript). Ωστόσο το Fyne φαίνεται πολλά υποσχόμενο (https://en.wikipedia.org/wiki/Fyne_(software) )

Τα υπόλοιπα νομίζω ότι στο αρχικό εκπαιδευτικό επίπεδο δεν πρόκειται να τα συναντήσει κανείς. Το κυριότερο παράπονο επί πολλά χρόνια ήταν πως δεν είχε generics (θα προστεθούν το 2022: https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md), ότι δεν έχει καλό error handling, πως είναι ισχυρογνώμων γλώσσα (ισχύει... αλλά όταν Rob Pike και Ken Thompson σου λένε "κάντο έτσι" δεν τους φέρνεις αντιρρήσεις ;D ) κτλ. Αυτά είναι προβλήματα μεγάλων εφαρμογών ή ήδη έμπειρων προγραμματιστών.

Τα είπα και ησύχασα.  8)

evry:
Το βασικό μειονέκτημα της Go δεν είναι το interface αλλά η έλλειψη έρευνας / υλικού από την εκπαιδευτική κοινότητα.
π.χ. σε πόσα σχολεία/πανεπιστήμια κάνουν Go στο εξωτερικό? Με ποια αποτελέσματα? Τι δυσκολίες αντιμετώπισαν οι μαθητές/φοιτητές?
Επίσης είναι μια γλώσσα που έγινε από μια εταιρεία για την ανάπτυξη δικών της εφαρμογών  (όπως π.χ. η Hack του Facebook) και ακριβώς όπως έγινε τώρα μπορεί να εξαφανιστεί από την μια στιγμή στην άλλη για να πάρει τη θέση της μια άλλη γλώσσα.
Φυσικά από ότι φαίνεται αναπτύσσεται και θα μείνει αλλά η εκπαίδευση δεν είναι τόσο ευέλικτη όπως η βιομηχανία.
Για παράδειγμα τα βιβλία των ΕΠΑΛ θα πρέπει να πάνε σε Python 3.
Δεν είναι κάτι απλό αλλά δεν είναι και δύσκολο. Σε ένα καλοκαίρι θα μπορούσε να γίνει από 1-2 άτομα. Δυστυχώς δεν ασχολείται κανένας!

Η γλώσσα που θα μπει θα πρέπει να είναι δοκιμασμένη, να χρησιμοποιείται ευρέως αλλά να έχει και εκπαιδευτικά χαρακτηριστικά και να ξέρουμε ότι θα μείνει εκεί έξω για πολλά χρόνια γιατί δεν μπορούμε να αλλάζουμε γλώσσα κάθε λίγο και λιγάκι στην εκπαίδευση.
Δεν είναι μόνο τα προγράμματα σπουδών και τα βιβλία αλλά και η επιμόρφωση των εκπαιδευτικών που δεν είναι απλή υπόθεση.
Εδώ στο Λύκειο ακόμα πρέπει να πείσουμε κάποιους ότι πρέπει να φύγει η ΓΛΩΣΣΑ.

H Go ισως θα είχε νόημα να χρησιμοποιηθεί σε συγκεκριμένα μαθήματα στα πανεπιστήμια, π.χ. όπου υπάρχει ανάγκη για concurrency , multi threading παράλληλο προγραμματισμό κλπ αν είναι καλύτερη από άλλες εναλλακτικές.

pgrontas:
Σχετικός σύνδεσμος που ανακάλυψα σήμερα καιίσως τροφοδοτήσει περαιτέρω τη συζήτηση. Μην μείνετε μόνο στη συγκεκριμένη σελίδα αλλά τα στοιχεία μπορεί να τα επεξεργαστεί κάνεις με πολλούς τρόπους ακολουθώντας τους συνδέσμους.
https://spectrum.ieee.org/top-programming-languages-2021
Δυστυχώς δεν έχει στοιχεία από εκπαίδευση, αλλά νομίζω ότι δεν είναι σωστο να πηγαίνουμε κόντρα στις γενικές τάσεις.

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

[*] Προηγούμενη σελίδα

Μετάβαση στην πλήρη έκδοση