Η ιστορία της γλώσσας προγραμματισμού Java
© Γιάννης Κωστάρας
Η γλώσσα προγραμματισμού Java ιδρύθηκε το 1991 και αρχικά ονομάστηκε “Δρυς” (Oak) από μια ομάδα προγραμματιστών υπό τον James Gosling στη Sun Microsystems με στόχο την αυτοματοποίηση των οικιακών συσκευών. Τα επόμενα δύο χρόνια ήταν απογοητευτικά για τη γλώσσα μέχρι το 1994, όταν η ομάδα ανάπτυξης επαναπροσδιορίζει τη γλώσσα με στόχο την κοινότητα του Internet. Η Oak μετονομάζεται σε “Java” από το μάρκετινγκ.
Ο Netscape Navigator 2.0 υποστηρίζει τη γλώσσα το Σεπτέμβριο του 1995 με τη μορφή των μη αυτόνομων εφαρμογών Java applets. Η Microsoft ενσωματώνει τη γλώσσα στον Internet Explorer στο τέλος του 1995.
Από τότε, οι δυνατότητες της γλώσσας απογειώνονται. Το 1996 η Sun αναπτύσσει το Java Development Kit 1.0. Το επόμενο έτος, η έκδοση 1.1 υποστηρίζει JavaBeans. Το 1997 η Sun κατηγορεί τη Microsoft για παραβίαση της συμφωνίας όσον αφορά την Java στον Internet Explorer 4.
Η Sun αναπτύσσει το JDK 1.2 και το Swing, το οποίο αποτελεί την αντικατάσταση του AWT (Abstract Window Toolkit), για την ανάπτυξη GUIs (γραφικών εφαρμογών). Ακολουθούν οι εκδόσεις 1.3, 1.4 και 1.5 όπου πλέον αλλάζει και η ονομασία της έκδοσης σε Java 5. Η Java 5 ήταν η πρώτη ουσιαστική αλλαγή του πυρήνα της γλώσσας απ’ τη δημιουργία της, έτσι ώστε να υποστηρίζει Generics, Enumerated Types, autoboxing, varargs, annotations, static imports και νέες δυνατότητες για πολυνηματισμό (multi-threading). Η έκδοση 6 καταφέρνει να είναι 30% ταχύτερη από τις προηγούμενες εκδόσεις, ενώ η έκδοση 7 φέρνει μικρές βελτιώσεις στη γλώσσα. Η έκδοση 8 φέρνει σημαντικές αλλαγές στη γλώσσα παρέχοντάς της δυνατότητες συναρτησιακού (λ-) προγραμματισμού αλλάζοντας κατά πολύ τον τρόπο χρήσης της. Η πολυαναμενόμενη έκδοση 9 έφερε δυνατότητες τμηματοποίησης (modularisation) της γλώσσας δίνοντας τη δυνατότητα να δημιουργήσετε την δική σας εφαρμογή που να περιλαμβάνει μόνο τα modules της Java που χρειάζεται η εφαρμογή σας για να τρέξει.
Εικόνα 1 Η γλώσσα προγραμματισμού Java Standard Edition
Εν τω μεταξύ, μετά το JDK 1.3 εμφανίστηκε και η Java Enterprise Edition (JEE) 1.3 η οποία στοχεύει στην ανάπτυξη επιχειρηματικών εφαρμογών (κοινώς το Web). Περιλαμβάνει τεχνολογίες όπως Enterprise JavaBeans (EJBs), servlets, Java Server Pages, Java Server Faces κ.ά. Σήμερα βρίσκεται στην έκδοση 8, με πολλές δυνατότητες και ευκολία χρήσης σε σχέση με τις προηγούμενες εκδόσεις. Παράλληλα, έχουν αναπτυχθεί πολλά frameworks για ανάπτυξη επιχειρηματικών εφαρμογών βασισμένα στη Java, όπως το Apache Tapestry, το Apache Struts και το Spring για να αναφέρουμε τα πιο γνωστά.
Εικόνα 2 Η γλώσσα προγραμματισμού Java Enterprise Edition
Αλλά η Java έχει γίνει πολύ γνωστή και στον κλάδο των κινητών εφαρμογών με τη Java Micro Edition (JME).
Εικόνα 3 Η γλώσσα προγραμματισμού Java Mobile Edition
Η Java έχει προκαλέσει περισσότερο ενθουσιασμό από οποιαδήποτε άλλη εξέλιξη στο Διαδίκτυο από την εποχή του Mosaic. Είναι μια γλώσσα προγραμματισμού για κατανεμημένες εφαρμογές. Έχει γίνει παγκοσμίως γνωστή ωστόσο, επειδή επιτρέπει στους χρήστες να αλληλεπιδρούν με τις ιστοσελίδες. Αντί για την απλή ανάγνωση μιας στατικής ιστοσελίδας και ίσως τη συμπλήρωση μιας φόρμας, οι χρήστες μπορούν πλέον να παίζουν παιχνίδια στο φυλλομετρητή τους, να χρησιμοποιούν λογιστικά φύλλα, να συνομιλούν σε πραγματικό χρόνο, να επεξεργάζονται πληροφορίες δυναμικά από πολλές διαφορετικές πηγές κ.ά. Ένα πολύ βασικό χαρακτηριστικό που αποτέλεσε κι έναν από τους κυριότερους λόγους διάδοσης της γλώσσας είναι ότι είναι ανεξάρτητη πλατφόρμας (‘Write Once Run Everywhere’). Αυτό σημαίνει ότι γράφετε κώδικα μια φορά και αυτός τρέχει σε οποιαδήποτε πλατφόρμα που έχει εγκατεστημένο το Java Virtual Machine.
Η Java βασίστηκε στις παρακάτω αρχές:
- ξεκίνησε ως μια απλοποίηση της C/C++, αφαιρώντας όσα χαρακτηριστικά ήταν δύσκολα και πηγές λάθους, όπως π.χ. οι pointers
- ορίστηκε από την αρχή ως μια αυστηρά αντικειμενοστραφής (object-oriented) γλώσσα
- είναι ανεξάρτητη πλατφόρμας χάρις στη JVM
- ασφαλής (μέσω του Sandbox δεν σας επιτρέπει να γράψετε εφαρμογές που μπορούν να αποκτήσουν πρόσβαση στους πόρους του Η/Υ στον οποίο εκτελείται)
- και πολυ-νηματική (multi-threaded).
Ή χρησιμοποιώντας τα λόγια της ίδιας της Sun, η Java είναι:
- απλή, αντικειμενοστραφή, και οικεία
- ισχυρή και ασφαλής
- ουδέτερης αρχιτεκτονική και φορητή
- υψηλής απόδοσης
- διερμηνευτική, πολυνυματική, και δυναμική.
Με το JDK 1.2, η Java έγινε η πιο ελκυστική γλώσσα για την κατασκευή φιλικών προς το χρήστη γραφικών περιβάλλοντων με τη χρήση του Swing. Το JavaFX, ο ανταγωνιστής των Adobe AIR και MS Silverlight, αποτελεί το νέο framework της γλώσσας για ανάπτυξη γραφικών εφαρμογών (αντικαθιστά το Swing).
Για να δούμε και μια άλλη γνώμη όμως, ο Stroustrup υποστηρίζει ότι ≪… η Java δεν είναι ανεξάρτητη πλατφόρμας. Είναι μια πλατφόρμα. Όπως και τα Windows, είναι μια ιδιόκτητη εμπορική πλατφόρμα. Δηλαδή, μπορείτε να γράψετε προγράμματα για Windows / Intel ή για Java / JVM, και σε κάθε περίπτωση γράφετε κώδικα για μια πλατφόρμα που ανήκει σε μία εταιρεία και για το εμπορικό όφελος των εν λόγω εταιριών. Έχει επισημανθεί ότι μπορείτε να γράψετε τα προγράμματα σε οποιαδήποτε γλώσσα για τη JVM και τα συναφή λειτουργικά συστήματα. Ωστόσο, η JVM, κ.λπ., είναι σε μεγάλο βαθμό μεροληπτική υπέρ της Java. Δεν είναι πουθενά κοντά σε μια γενική, λογικά, ουδέτερη γλώσσα VM/Λ.Σ. …≫
Η Java έγινε πλέον ανοικτού κώδικα με το OpenJDK, η πρώτη έκδοση του οποίου κυκλοφόρησε για το Ubuntu και διανέμεται πλέον μ’ αυτό.
Εν τω μεταξύ, η Microsoft δημιούργησε τον κύριο ανταγωνιστή της Java μέσω της πλατφόρμας της .NET, που ονομάζεται C#, μια γλώσσα που απορρέει από την Java και τη C++ κι αυτός ήταν κι ένας από τους λόγους των πολλών αλλαγών που επήλθαν στη Java στην έκδοση 5. Η JVM μπορεί να θεωρηθεί ως η εξ’ ορισμού πλατφόρμα για τα συστήματα Linux και στον αντίποδα το .NET για την πλατφόρμα Windows.
Το 2009 ο ήλιος της Sun έσβησε μετά την εξαγορά της από την Oracle, η οποία μάλιστα ισχυρίζεται, ότι η Java ήταν ο κύριος λόγος εξαγοράς της Sun καθώς το μεγαλύτερο μέρος του middleware της Oracle είναι γραμμένο σε Java. Αν και οι εξελίξεις έδειχναν αρνητικές, καθώς ο CEO της SUN παραιτήθηκε κι ακολούθησε κι η παραίτηση του πατέρα της Java του James Gosling, και μετά από πολλές περιπέτειες, η Oracle κατάφερε να βγάλει 2 επιτυχημένες εκδόσεις της Java (την 8 και την 9 με την 10 να είναι προ των πυλών).
Πηγές:
- Java History.
- Wikipedia, Java Programming Language.