Ιστορικά Στοιχεία

Ποιος έγραψε το κώδικα:
Η ιδέα και ο περισσότερος κώδικας είναι γραμμένος από τον Γιώργο Καρρά, Τεχνολόγο Πετρελαίων ΤΕΙ Καβάλας.

Στο κώδικα της γλώσσας περιλαμβάνονται ρουτίνες που έχουν γράψει άλλοι, για κοινές εργασίες όπως π.χ. για να αποθηκεύουμε σε jpg αρχεία. Ο κώδικας είναι ανοικτός από την πέμπτη έκδοση και θα παραμείνει έτσι. Πολλές ιδέες βρέθηκαν στο Vbforums.

Βασική Ιδέα:
 Τη δεκαετία του '80, στο Χολαργό, και την εποχή των micro (μικροϋπολογιστές)  των 8bit, είχα την πρώτη επαφή με γλώσσες προγραμματισμού, αρχικά με την Ti Basic, και μετά με την BBC Basic. Στη διαδρομή αγόρασα την Forth, και διάβασα Pascal, Modula 2, και κάποια στιγμή έπεσε στα χέρια μου ένας διερμηνευτής για Pilot, μια απλή γλώσσα για κουίζ, καθώς και κώδικας για την Lisa (πρόγραμμα τεχνητής νοημοσύνης). Μου φάνηκε ότι μπορούσα να φτιάξω έναν διερμηνευτή για Fortran, για δοκιμή, στον Electron (32 kbyte μνήμη). Έπαιζε αλλά με λίγες μεταβλητές, που έπρεπε να υπήρχαν ήδη στο κώδικα, χωρίς ιδιαίτερο evaluator, μόνο με χρήση της Eval() που είχε η BBC Basic
Την δεκαετία του '90 είχα έναν Atari 520Ste και την GFA Basic που έβγαζε εκτελέσιμο αρχείο (Διερμηνευτής και Μεταφραστής για εκτελέσιμο).  Τότε έγραψα και τον evaluator σε μια νέα γλώσσα την GEORGE (τίποτα δεν είναι τυχαίο).'Σε αυτήν πάντρεψα την Basic με την Forth. Μπορούσε κανείς να αυξήσει το λεξιλόγιο, με λέξεις - τμήματα, και να χρησιμοποιήσει έναν σωρό τιμών  (αυτή η ιδέα παίζει στη Μ2000). Το 1996 αγόρασα το πρώτο PC (δεν είχα χρήματα πριν για κάτι τέτοιο, και συνάμα είχα και οικογένεια με δυο παιδιά τότε και είχα μετακομίσει στην Πρέβεζα).

Το 1998-1999 ήμουν γραμματέας της Λέσχης Πληροφορικής Πρέβεζας, και είχα συγγράψει μαζί με τον Δρ. Γκούβα το βιβλίο "Η ιστορία της Πληροφορικής" , βιβλίο που μοιράστηκε δωρεάν στους μαθητές όλου του νομού (δώσαμε τα δικαιώματα στον εκδότη για 5000 βιβλία, και ακόμα το πουλάνε). Από την ασχολία μου αυτή, ήρθε και η ιδέα για μια γλώσσα για Μαθητές!

Το 1999 έπεσε στα χέρια μου ένα αντίγραφο της Visual Basic 5 και άρχισα τις πρώτες δοκιμές για την Μ2000.  Δεν υπήρχε βέβαια τρόπος να βρω πληροφόρηση από το κανονικό κανάλι (ήθελε συνδρομή που δεν είχα να δώσω), οπότε έψαχνα snippets, που βοηθήσαν κύρια για να στήσω το περιβάλλον της Μ2000. Εκεί μπήκε η ιδέα των τριών συνιστωσών, γραφικά, βάσεις δεδομένων, και πολυμέσα σε μια εφαρμογή με ενσωματωμένη τη γλώσσα. Η γλώσσα ονομάστηκε Μαθητής 2000, ο στόχος ήταν να φτιαχτεί κάτι απλό για μαθητές, που να έχει ενδιαφέρον.

Τη δεκαετία του 2000  και ειδικότερα το 2003 έστειλα αντίγραφο της γλώσσας στην εθνική βιβλιοθήκη με ISBN 960-87618-0-8

Μέσα σε αυτό υπήρχε και βιβλίο εκπαίδευσης, προγράμματα για να πακετάρει κανείς την εφαρμογή του σε Μ2000, για διανομή.

Από το 2003 έως το 2013 είχα σταματήσει την ανάπτυξη της γλώσσας. Κύρια λόγω της ολοκλήρωσης της βασικής ιδέας αλλά και άλλων ασχολιών - έφτιαχνα το FotodigitalLab μια εφαρμογή για εκτυπώσεις. Από το 2013 άρχισα πάλι να φτιάχνω τη γλώσσα. Και συνεχίζω μέχρι σήμερα 2017. Ομολογώ ότι ενώ μπορούσα να χρησιμοποιήσω αντικείμενα στη Visual Basic, δεν μπορούσα να σκεφτώ πώς θα τα έβαζε σε μια Script γλώσσα όπως η M2000. Τελικά για όλα υπάρχουν λύσεις. Το 2016 έκλεισα αισίως πενήντα χρόνια ζωής, και χαίρομαι για τις δημιουργίες μου! Συνεχίζω ακάθεκτος! Δεν στερεύουν οι ιδέες παρόλο που κάποιοι φορουμίστες πρότειναν να κλείσει το έργο, σκεπτόμενοι ότι ως εργαλείο η Μ2000 δεν τους κάνει. Περισσότερο με ενδιαφέρει να κάνω κάτι όσο περισσότερο καλύτερο και ας το εκτιμήσει ένας μόνο! Δεν περιμένω να φάω ψωμί από αυτό. Είναι ένα δώρο τόσο για εκείνον που το θέλει όσο και για μένα που το φτιάχνω!

Παρακάτω ακολουθούν στοιχεία για τις εκδόσεις από το τελευταίο προς το πρώτο


Περί Εκδόσεων:
Η έκδοση 8.7 είναι η τελευταία έκδοση, και έχουν βρεθεί σχεδόν όλα τα μικρά λάθη των προηγούμενων εκδόσεων. Βελτιώθηκε ο έλεγχος του κώδικα καθώς τρέχει ακόμα και από νήματα, με ανανέωση της φόρμας Έλεγχος. Συνάμα αυξήθηκε η ταχύτητα στο χειρισμό αντικειμένων. Βελτιώθηκε ο συλλέκτης σκουπιδιών.


Στην έκδοση 8.6 μπήκε το αντικείμενο Σωρός, δηλαδή ενώ είχαμε το σωρό του τμήματος ή της συνάρτησης, και μπορούσαμε να έχουμε πρόσκαιρα έναν νέο σωρό, τώρα μπορούμε να έχουμε μεταβλητές με στοιχεία σε σωρό και να τις χρησιμοποιούμε σε ένα μπλοκ Σωρός όνομα {} αφήνοντας το όνομα με ότι θέλουμε για την επόμενη φορά. Το αντικείμενο αυτό μπορεί να γυρίσει ως επιστροφή τιμής αλλά μπορεί να βγει αντίγραφο. Υποστηρίζεται και αντίγραφο ένωσης δύο σωρό (τα αντίγραφα κάνουν αντιγραφή σε πίνακες και αντικείμενα ομάδες στο σωρό). Επιπλέον τα τμήματα και οι συναρτήσεις (και οι λάμδα) μπορούν να γράφουν στον ορισμό τη λίστα παραμέτρων σε παρενθέσεις (θέλει ένα διάστημα πριν το άνοιγμα παρένθεσης),  και ουσιαστικά ο διερμηνευτής βάζει την Διάβασε με τις παραμέτρους στη πρώτη γραμμή. Φυσικά είναι προαιρετικό, μπορούμε δηλαδή να χρησιμοποιούμε τον κλασικό τρόπο με τις παραλλαγές του, όπως το να παίρνουμε προαιρετικά νέα ορίσματα. Ακόμα μια προσθήκη στις ομάδες στον ορισμό τους (λειτουργεί και σε συναρτήσεις τύπου Κλάσης, που κατασκευάζουμε ομάδες) ή ετικέτα Κλάση: η οποία δεν περιλαμβάνει ό,τι ακολουθεί στην λίστα μελών της ομάδας, ενώ λειτουργικά είναι μέλη, και έτσι στις αντιγραφές αντικειμένων όπως και στην επιστροφή από τη συνάρτηση Κλάση, δεν περιλαμβάνονται.

Στην έκδοση 8.5 οι ιδιότητες στις ομάδες μπορούν να έχουν δείκτες. Εκτός από την Αριθμός και την Γράμμα$ που σηκώνουν από το σωρό τιμών  αριθμό ή αλφαριθμητικό μπήκε και η Ομάδα και ο πίνακας, ώστε να διαβάζουμε ορίσματα απ' ευθείας σε παραστάσεις χωρίς χρήση μεταβλητής. Άλλαξε μέρος του κώδικα που φτιάχνει νέες μεταβλητές, ώστε να έχουμε ομάδες με τιμές αλφαριθμητικό, δηλαδή το όνομα της ομάδας μπορεί να έχει το σύμβολο $ στο τέλος. Πάντα θα υπάρχει και το όνομα χωρίς το $ για να επιλέγουμε τμήματα, συναρτήσεις, ιδιότητες σε μια τέτοια ομάδα. Επιπλέον μπορούμε να ορίσουμε παραμέτρους στις ομάδες όταν ζητάμε τιμή ή όταν βάζουμε τιμή.
Η έκδοση 8.4 έγινε πιο γρήγορη με την καταχώρηση των ρουτινών στην πρώτη αναζήτηση. Επιπλέον οι ομάδες απόκτησαν προαιρετικά επιστροφή τιμής και ανάθεση τιμής καθώς και προγραμματισμό τελεστών. Παράλληλα απέκτησαν ιδιότητες μόνο για ανάγνωση ή και ανάθεση τιμής, ως  ομάδες σε ομάδες. Η συνάρτηση Ομάδα() επιστρέφει αντίγραφο ομάδας ακόμα και αν η ομάδα σε παραστάσεις γυρνάει τιμή.  

Στην έκδοση 8.3 μπήκε η αλλαγή βάσης στους πίνακες, μπορούμε να έχουμε ταυτόχρονα πίνακες με βάση 0 ή βάση 1. Μπήκε η Cdr() και η Car() ή Επόμενα() και Πρώτο() για τους πίνακες. Το (1,2) δίνει αυτόματα πίνακα δύο στοιχείων. Το ((1,2), (3,4)) δίνει ένα πίνακα με δύο στοιχεία του ενός πίνακα. Φαινομενικά είναι δυο διαστάσεων αλλά τυπικά είναι πίνακες σε πίνακες, επειδή μπορούμε να αλλάξουμε κάποιο στοιχείο με άλλο πίνακα, άλλων διαστάσεων ή μεγέθους στοιχείων. Η Μήκος() δίνει τον αριθμό στοιχείων και σε πίνακες, χωρίς να κοιτάει διαστάσεις, αλλά και χωρίς να λογαριάζει τα στοιχεία πινάκων σε πίνακες. Μπήκαν οι πίνακες με μεταβλητή ως αναφορά σε πίνακα και μπορούμε με μια Α+=20  να αυξήσουμε όλα τα στοιχεία κατά 20. Φτιάχτηκε ο επαναλήπτης, ένα αντικείμενο που κρατάει αρχή, τέλος, δρομέα και λειτουργεί για πίνακες και καταστάσεις (λίστες).  Πχ η Α=(1,2,3) δίνει το Α ως πίνακα. Αν θέλουμε να διαβάσουμε το τελευταίο στοιχείο υπάρχει η Πίνακας(Α, 2). Αυτοί οι πίνακες έχουν βάση 0. Μπορούμε να ενώσουμε μια αναφορά στην Α με όνομα πίνακα πχ Α() και έτσι να χειριστούμε την Α όπως όλους τους πίνακες, ακόμα και να αλλάξουμε διάσταση, να προσθέσουμε στοιχεία.

Η έκδοση 8.2 πρόσθεσε το χειριστή <<  και τι δυνατότητα αμφίδρομης επικοινωνίας μεταξύ συναρτήσεων., με σκοπό την ροή δεδομένων (ρεύμα ή stream). 

Η έκδοση 8.1 είναι αντικείμενο που μπορεί να φορτωθεί σε άλλες γλώσσες και να δώσει κονσόλα, γραφικά και άλλα για εξαγωγή. Περιλαμβάνει δικά της παράθυρα χρήστη, και παράθυρα διαλόγων. Ακόμα έχει δυο αντικείμενα την Κατάσταση Ειδών με κλειδιά με πίνακα κατακερματισμού εσωτερικά, και τη διάρθρωση μνήμης (buffer) που με δομές (struct) μπορούμε να βάζουμε δεδομένα στη μνήμη και να τα περνάμε στο λειτουργικό ή οπουδήποτε αλλού (μπορούμε να καλούμε C ρουτίνες).

Η όγδοη έκδοση έχει τις Κλάσεις ως κύρια αλλαγή καθώς και βελτιώσεις ως προς την ταχύτητα. Η έβδομη έκδοση υποστήριξη Unicode και ιδιωτικές φόρμες διαλόγων. Τα αρχεία σώνονται σε Utf-8, αλλαγή του συστήματος Βάσεων δεδομένων από DAO σε ADO (χωρίς να φανεί η αλλαγή στο χρήστη). Στην έκτη έκδοση πέρασε ο κώδικας από Vb5 σε Vb6, επιπλέον υποστήριξη νημάτων, 32 επίπεδα πάνω από την οθόνη, μουσική με νότες, ομιλία. Επίσης μπήκαν πρώτη φορά οι αναφορές, το πέρασμα τιμής με αναφορές και όχι μόνο με αντιγραφή.
Η πέμπτη έκδοση (5.6) λειτουργεί από το 2003, και είναι εξίσου γρήγορη με την όγδοη, αν και δεν έχει πολλά πράγματα, έχει όμως τα βασικά, γραφικά, βάσεις δεδομένων, πολυμέσα (αυτοί ήταν οι στόχοι για τη γλώσσα). Από την πέμπτη έκδοση μπήκαν συναρτήσεις με αναδρομή και πίνακες έως δέκα διαστάσεων. Η τέσσερα δεν είχε καθόλου χρόνο λόγω πολλών βελτιώσεων έγινε πέμπτη έκδοση. Η τρίτη έκδοση είχε εκδοθεί και είχε διανεμηθεί. (το 2003)
Ξεκίνησε η συγγραφή της γλώσσας το 1999.

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου