Επόμενο Περιεχόμενα
Το 1991 η Sun αναλαμβάνει να φτιάξει μία πλατφόρμα
εφαρμογών (σε C++) ικανή για να τρέξει εφαρμογές σε μία
μεγάλη γκάμα υπολογιστικών συστημάτων. Μέσα από το
project αυτό, γεννήθηκε μία γλώσσα προγραμματισμού,
ονόματι Oak.
Το 1994, βλέποντας την ταχύτητα με την οποία αναπτύσσεται
το World Wide Web, η Sun προσθέτει ορισμένα
Web-extensions στην Oak και την μετονομάζει σε Java.
Το 1995 οι Αlpha eκδόσεις της Java και της HotJava
διανέμονται δωρεάν εκ του δικτύου για τις πλατφόρμες των
Solaris και ΝΤ. Σύντομα γίνονται και τα ports σε Linux
και Win95.
Στις αρχές του 1996 κυκλοφορεί η έκδοση 1.0. Τόσο το
Netscape όσο και o Internet Explorer υποστηρίζουν Java,
σε server και εσωτερική (browser) μορφή. Μετά από
_αρκετά_ bug και security fixes, η εταιρεία ανεβάζει στο
Web την Βeta έκδοση της σειράς 1.1. Διαθέτει εκτός των
άλλων: RMI (κλήση συναρτήσεων εξ αποστάσεως), functions
για ανταλλαγή πληροφοριών με βάσεις δεδομένων, μοντέλα
για κρυπτογραφικές ρουτίνες και πολλά άλλα...
Η πρώτη επίσημη έκδοση της σειράς 1.1 βγαίνει το Μάρτιο
του ΄97. Αυτή τη στιγμή η τελευταία σταθερή έκδοση για
Linux είναι η 1.1.7v3 αν και υπάρχει έκδοση της σειράς
1.2 (JDK 1.2 pre-v1).
Το παρακάτω
link δίνει περισσότερες πληροφορίες για τις διαφορές
από release σε release. Θα φανεί ιδιαίτερα χρήσιμο στο
προγραμματιστικό κοινό, καθώς οι αλλαγές που έχουν
επέλθει από την έκδοση 1.1 στην 1.2 είναι αρκετές και
θεμελιώδεις.
Η Java ανήκει στην κατηγορία των interpreted γλωσσών.
Όταν θα τρέξουμε το πρόγραμμά μας, ο υπολογιστής δεν θα
διαβάσει κατ΄ευθείαν ένα binary executable, αλλά μια
σειρά εντολών, που με τη σειρά της θα γίνει compiled την
ώρα της εκτέλεσης. Εμπειρικά μπορούμε να πούμε, ότι αυτό
θα κάνει το πρόγραμμά μας, 10-20 φορές πιο αργό απ΄το
αντίστοιχο πρόγραμμα,γραμμένο σε C.
Η Java χρησιμοποιεί μία εικονική μηχανή, ένα Virtual
Machine, το οποίο αναλαμβάνει να πάρει τον κώδικα σε μια
semi-compiled μορφή (ονομαζόμενη byte code) και κατά την
εκτέλεση, να τον μετατρέψει σε machine-dependent κώδικα.
Εκτός, όμως, από αυτή τη λειτουργία, το Java Virtual
Machine θα μπορούσε να χαρακτηριστεί και ως "κουτί
ασφαλείας". Ελέγχει και προστατεύει το πρόγραμμα από
τυχόν "παράνομες" κλήσεις, προσπαθώντας να αποτρέψει ένα
γενικότερο κακό (π.χ. το πρόγραμμα να απο φασίσει
ξαφνικά να φάει όλα τα memory resources του λειτουργικού
μας) ή τουλάχιστον να δώσει όσο περισσότερες debugging
πληροφοριές γίνεται περί του "τι έγινε" πριν το κακό :)
Εφόσον είναι στην ευθύνη του JVM να φτιάξει τον κατάλληλο
κώδικα για την πλατφόρμα μας... αυτό μας επιτρέπει να
κυκλοφορούμε από μηχάνημα σε μηχάνημα με τον ίδιο :) Java
semi-compiled κώδικα. Με άλλα λόγια, παίρνουμε τον πηγαίο
κώδικά μας, τον κάνουμε compile με κάποιο εργαλείο (όπως
το javac) που φτιάχνει "byte-code" κώδικα, και το νέο
αρχείο με κατάληξη ".class" μπορούμε να το τρέξουμε κάτω
από οποιοδήποτε JVM είτε αυτό βρίσκεται σε PC, είτε σε
SUN-ακι είτε σε κάποια άλλη supported πλατφόρμα...
Το παρακάτω σχήμα δείχνει πώς, κατά την εκτέλεση του
προγράμματος, η εφαρμογή βρίσκεται "πάνω" σε έναν JVM,
αυτός με τη σειρά του επικοινωνεί με το λειτουργικό
σύστημα που με τη σειρά του επικοινωνεί με το hardware.
|
Εφαρμογή
|
|
Java Virtual Machine
|
|
Λειτουργικό Σύστημα
|
|
Hardware
|
|
Επόμενο Περιεχόμενα