Τι είναι ο προγραμματισμός;
Σε αυτή την ενότητα θα μιλήσουμε για βασικές έννοιες όπως ο προγραμματισμός υπολογιστών και θα μάθουμε τι είναι οι γλώσσες προγραμματισμού και σε ποιες βασικές κατηγορίες χωρίζονται. Θα δούμε επίσης ποια είναι τα χαρακτηριστικά που μπορούν να κάνουν μια γλώσσα προγραμματισμού–όπως η JavaScript–ιδανική για αρχάριους.
Το επεισόδιο στο YouTube
Προγραμματισμός Υπολογιστών
Ο προγραμματισμός είναι ακριβώς αυτό που προκύπτει από την ετυμολογία της ίδιας της λέξης: είναι οδηγίες για την σειρά και τον τρόπο που πρέπει να εκτελεστεί ένα σύνολο ενεργειών ώστε να φτάσουμε σε ένα επιθυμητό αποτέλεσμα ή όπως αλλιώς ονομάζεται: σε έναν αντικειμενικό σκοπό.
Όλοι έχουμε λίγο πολύ ακούσει φράσεις όπως: “προγραμματισμός παραγωγής εργοστασίου”, “προγραμματισμός και έλεγχος αποθεμάτων αποθήκης”, “εβδομαδιαίο πρόγραμμα τηλεόρασης” κ.λπ. Όλες αυτές οι φράσεις περιγράφουν διεργασίες που έχουν ως κοινό παρονομαστή την ανάγκη για οργάνωση των απαιτούμενων ενεργειών που θα επιτρέψουν να παραχθεί το επιθυμητό αποτέλεσμα: η επιτυχής παραγωγή προϊόντων, η διατήρηση της διαθεσιμότητας των αποθεμάτων και η ομαλή αναμετάδοση εκπομπών στους δέκτες μας, αντίστοιχα.
Ακριβώς το ίδιο ισχύει και στην περίπτωση του προγραμματισμού υπολογιστών, την διαδικασία στην οποία χρησιμοποιούμε γλώσσες προγραμματισμού για να ορίζουμε ένα σύνολο εντολών και τις συνθήκες κάτω από τις οποίες αυτές πρέπει να εκτελεστούν, ώστε ο υπολογιστής να παράγει επιτυχώς το αποτέλεσμα που επιθυμούμε.
Πρόγραμμα
Ένα πρόγραμμα (program) είναι μια συλλογή οδηγιών που δίνονται σε έναν υπολογιστή για να εκτελέσει συγκεκριμένες λειτουργίες ή διεργασίες. Αυτές οι οδηγίες είναι γραμμένες σε μια γλώσσα προγραμματισμού που ο υπολογιστής μπορεί να κατανοήσει και να εκτελέσει.
Το πρόγραμμα εκτός από την επίτευξη του αντικειμενικού σκοπού μας εξασφαλίζει και την επαναληψιμότητα της επίτευξής του.
Πηγαίος κώδικας
Ένα πρόγραμμα αποτελείται από ένα σύνολο γραπτών κωδικοποιημένων εντολών που ονομάζεται πηγαίος κώδικας (source code).
Ο πηγαίος κώδικας γράφεται από έναν ή περισσότερους προγραμματιστές σε μια γλώσσα προγραμματισμού της επιλογής τους. Ο πηγαίος κώδικας δεν είναι απευθείας κατανοητός από τον υπολογιστή και χρειάζεται να ερμηνευτεί (interpreted) ή να μεταγλωττιστεί (compiled) σε γλώσσα μηχανής (machine code), που μπορεί να καταλάβει ο υπολογιστής, προκειμένου να εκτελεστεί.
Προγραμματιστές
Όσοι ασχολούνται με τον προγραμματισμό υπολογιστών ονομάζονται προγραμματιστές. Πέραν αυτού του όρου, κάποιος που εφαρμόζει τυποποιημένες αρχές μηχανικής λογισμικού (software engineering principles) μπορεί να ονομαστεί και μηχανικός λογισμικού (software engineer).
Ανάπτυξη λογισμικού
Ο κλάδος με αντικείμενο τον προγραμματισμό ονομάζεται ανάπτυξη λογισμικού (software development) και η ενασχόληση με αυτόν μπορεί να γίνει τόσο σε ερασιτεχνικά όσο και σε επαγγελματικά πλαίσια. Η ανάπτυξη λογισμικού εντάσσεται στον ευρύτερο κλάδο της επιστήμης των υπολογιστών.
Η ανάπτυξη λογισμικού καλύπτει μια πληθώρα τεχνικών και επιστημονικών πεδίων, στα οποία συγκαταλέγονται και τα εξής:
- οι εφαρμογές παγκόσμιου ιστού (web applications)
- οι εφαρμογές κινητών τηλεφώνων (mobile applications)
- τα ηλεκτρονικά παιχνίδια (videogame development)
- η υπολογιστική επιστήμη (computational science)
- η τεχνητή νοημοσύνη (artificial intelligence)
- η κυβερνοασφάλεια (cybersecurity)
Γλώσσες προγραμματισμού
Θα ήταν πολύ βολικό για εμάς, τους ανθρώπους, αν οι υπολογιστές μπορούσαν να ερμηνεύουν τη φυσική γλώσσα με τον ίδιο τρόπο που οι άνθρωποι το κάνουμε μεταξύ μας. Κάτι τέτοιο, όμως, είναι σχεδόν αδύνατο–τουλάχιστον μέχρι την εμφάνιση της Τεχνητής Νοημοσύνης. Παρά την πρόοδο που έχει υπάρξει στο πεδίο της τεχνητής νοημοσύνης, οι άνθρωποι εξακολουθούν να χρειάζονται έναν τρόπο για να μπορούν να “συνομιλούν” με τους υπολογιστές με ακρίβεια και συνέπεια.
Εδώ ακριβώς έρχονται οι γλώσσες προγραμματισμού. Σκεφτείτε τις ως μια γέφυρα μεταξύ της ανθρώπινης λογικής και του δυαδικού κόσμου των υπολογιστών. Είναι ένα σύνολο από ειδικούς κανόνες, λέξεις-κλειδιά και σύνταξη που επιτρέπουν στους προγραμματιστές να γράφουν σαφείς. Κάθε εντολή σε μια γλώσσα προγραμματισμού αντιστοιχεί σε μια συγκεκριμένη ενέργεια που ο υπολογιστής μπορεί να κατανοήσει και να εκτελέσει.
Για παράδειγμα, αν θέλαμε να πούμε σε έναν υπολογιστή να προσθέσει δύο αριθμούς, δεν μπορούμε απλά να του πούμε: “Κάνε την πρόσθεση πέντε και τρία”. Αντ’ αυτού, σε μια γλώσσα όπως η JavaScript, θα γράφαμε: let sum = 5 + 3;
. Αυτή η σύντομη γραμμή κώδικα, χρησιμοποιώντας συγκεκριμένα σύμβολα και συντακτικό, είναι η ακριβής οδηγία που ο υπολογιστής μπορεί να επεξεργαστεί.
Αντίστοιχα, αν θέλαμε να εκτυπώσει ένα μήνυμα στην οθόνη, δεν θα λέγαμε “Πες μου ‘Γεια σου Κόσμε!’”. Θα χρησιμοποιούσαμε μια εντολή όπως console.log("Γεια σου Κόσμε!");
. Κάθε γλώσσα προγραμματισμού έχει τη δική της “γραμματική” και “λεξιλόγιο”, αλλά όλες εξυπηρετούν τον ίδιο σκοπό: να μεταφράσουν τις ανθρώπινες ιδέες σε εντολές που μπορεί να εκτελέσει ένα υπολογιστής. Έτσι, ο προγραμματισμός είναι η τέχνη του να “μιλάμε” στους υπολογιστές με τον τρόπο που αυτοί κατανοούν.