Τετάρτη 28 Νοεμβρίου 2012

Γιατί λοιπόν Java;


Από την πηγή...
    Σύμφωνα με τα λόγια του Tim Lindholm Senior Staff Engineer της JavaSoft σε άρθρο του τον Απρίλιο του 1996:
    «Με την Java σαν γλώσσα επέκτασης, ένα πρόγραμμα πλοήγησης του Web θα μπορούσε να έχει απεριόριστες
    δυνατότητες. Οι προγραμματιστές θα μπορούσαν να γράψουν τα applets μια φορά και αυτά μετά θα έτρεχαν σε οποιαδήποτε μηχανή, οπουδήποτε. Οι επισκέπτες σε σελίδες με Java δυνατότητες, θα μπορούσαν να χρησιμοποιήσουν το περιεχόμενο αυτών των σελίδων εφησυχασμένοι ότι τίποτα δεν θα μπορούσε να φθείρει την μηχανή τους
    Με τα applets σαν αρχικό σημείο εστίασης, η Java επέδειξε ένα νέο τρόπο για την διάθεση λογισμικού με το Internet. Αυτός ο νέος παραδειγματισμός προγραμματισμού πηγαίνει πέρα από τα προγράμματα πλοήγησης. Πιστεύουμε ότι είναι ένας νεωτερισμός με την δυνατότητα να αλλάξει την πορεία της Πληροφορικής.»
Example HRΛόγοι για να χρησιμοποιήσουμε τη Java
  •  Η Java είναι σχεδιασμένη για το Internet. Προγράμματα της Java μπορούν να τρέχουν σε προγράμματα πλοήγησης εφοδιασμένα με την κατάλληλη JVM. Αφού το πρόγραμμα κατέβει από το Internet εκτελείται στη μηχανή του πελάτη και όχι στο Server. Αυτά τα προγράμματα της Java είναι γνωστά σαν Java Applets.
  • Η Java είναι σχεδιασμένη με στόχο την εξασφάλιση ασφάλειας. Ένα Java Applet εκτελείται με απόλυτη ασφάλεια στη μηχανή του χρήστη και δεν μπορεί να κάνει τίποτα που να μην επιτρέπεται από την πολιτική ασφάλειας της JVM της μηχανής του πελάτη.
  • Η Java προσφέρει εκτέλεση σε όλους τους υπολογιστές.  Με το επίπεδο αφαίρεσης υλικού της JVΜ ένα πρόγραμμα Java εκτελείται σε όλους τους υπολογιστές ανεξαρτήτως Λειτουργικού Συστήματος. Αρκεί αυτές να είναι εφοδιασμένες με την κατάλληλη JVM (Java Virtual Machine)
  • Η Java είναι μια πλούσια γλώσσα προγραμματισμού. Η Java είναι πολύ ισχυρή αντικειμενοστραφής γλώσσα προγραμματισμού για το Internet (και όχι μόνο) και όχι μία απλή script γλώσσα για την σύνθεση συστατικών (π.χ. VBScript με ActiveX controls). Αυτό μας επιτρέπει να γράφουμε προγράμματα τα οποία είναι εύκολο να συντηρηθούν και να εξελιχτούν στο χρόνο και όχι απλά σενάρια (scripts) τα οποία παίζουν το ρόλο της κόλλας για components που έχουν γίνει με άλλες γλώσσες αλλά γενικά δεν μπορούμε να τα αλλάξουμε ή να ελέγξουμε την εξέλιξή τους.
  • Η Java προσφέρει την ευελιξία της δυναμικής σύνδεσης. Ένα πρόγραμμα Java εκτελείται από μία εικονική μηχανή και οι τάξεις (τα αρχεία .class που περιέχουν τα bytecodes) φορτώνονται από την JVM όταν εκτελείται το πρόγραμμα. Αυτό σημαίνει ότι μπορεί κανείς να αντικαταστήσει μία παλιά τάξη με μία νέα ακόμα και την στιγμή που εκτελείται το πρόγραμμα. Αυτό είναι ένα βασικό χαρακτηριστικό των components. Έτσι οι τάξεις Java πάνε πέρα από τον αντικειμενοστραφή προγραμματισμό, στον προγραμματισμό βασισμένο σε συστατικά (component-based programming). Είναι επίσης σημαντικό ότι η Java είναι σχεδιασμένη γι’ αυτό και δεν απαιτείται η προσθήκη κάποιου πολύπλοκου μοντέλου (όπως το COM) της Microsoft, πάνω από μία γλώσσα προγραμματισμού που δεν είναι σχεδιασμένη με αυτό τον τρόπο (π.χ. Visual C++).

  • Αρκεί κανείς να μελετήσει το specification του COM και να το συγκρίνει με το specification των Java Beans για να πειστεί γι’ αυτό!
Example HRΠιθανά μειονεκτήματα της Java
  • Τα προγράμματα πλοήγησης ενδέχεται να μην μπορούν να εκτελέσουν το Applet μας. Αυτό διότι τα προγράμματα πλοήγησης ενδέχεται να μην είναι εφοδιασμένα με την τρέχουσα έκδοση της Java.
  • Ο κώδικας που είναι μεταγλωττισμένος για μια συγκεκριμένη μηχανή είναι ταχύτερος από τον κώδικα που εκτελείται από ένα μεταφραστή (interpreter). Πάντως αξίζει να σημειωθεί ότι μία τεχνική που ονομάζεται Just-In Time μεταγλώττιση (JIT compilation) έχει βελτιώσει σημαντικά τους χρόνους εκτέλεσης των Java προγραμμάτων. Αν και ακόμα τα προγράμματα της Java δεν έχουν γίνει ταχύτερα από τον μεταγλωττισμένο κώδικα της C++, πολλοί είναι αυτοί που υποστηρίζουν ότι είναι αρκετά γρήγορα για να μην γίνει η ταχύτητα η αιτία να μην πετύχει η Java.

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

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