logo2


19/3/11

Όλα ξεκίνησαν πριν αρκετές μέρες μετά την διαθεσιμότητα του iOS 4.3 με τη νέα μηχανή Nitro όταν μερικοί παρατήρησαν ότι τα homescreen web apps δεν έκαναν χρήση αυτής της νέας μηχανής με συνέπεια να τρέχουν πιο αργά σε σύγκριση με τις
κανονικές ιστοσελίδες. Ένα δεύτερο «χτύπημα» ήρθε από την Blaze λίγες μέρες αργότερα όταν με έναν εντελώς λανθασμένο τρόπο «απέδειξαν» ότι ο Android browser είναι γρηγορότερος από τον Safari. Όλα αυτά είχαν ως συνέπεια να εγείρουν την ερώτηση του γιατί η Apple δεν διέθεσε αυτή τη μηχανή σε όλο το σύστημα του iOS (σε όλους δηλαδή τους ενσωματωμένους browsers) παρά μόνο στον Safari.
Καταρχάς, πρέπει να πούμε ότι η Apple δεν έκανε τους ενσωματωμένους browsers να τρέχουν πιο αργά, απλώς ο Safari τρέχει πιο γρήγορα. Οι εφαρμογές που χρησιμοποιούν ενσωματωμένους browsers ή τα web apps που εκκινούνται από το homescreen σε fullscreen κάνουν χρήση της παλιάς Javascript μηχανής και όχι της Nitro. Γενικότερα, βέβαια, υπήρξαν πολλές βελτιώσεις στον νέο Safari και η νέα μηχανή Nitro είναι αποκλειστικό «προνόμιο» του Mobile Safari. Οπότε, γιατί συμβαίνει αυτή η διάκριση; Οι κακεντρεχείς έσπευσαν να δηλώσουν αμέσως ότι η κίνηση αυτή είναι επιτηδευμένη για να αποθαρρύνει την χρήση των web apps και να προωθήσει τις αντίστοιχες App Store εφαρμογές. Κάτι τέτοιο προφανώς και είναι λανθασμένο για τον απλό λόγο ότι ούτε οι App Store εφαρμογές με ενσωματωμένο browser κάνουν χρήση της μηχανής Nitro.
Ο πραγματικός λόγος αφορά την ασφάλεια. Ο μεγαλύτερος λόγος που η μηχανή Nitro αποδίδει καλύτερα από την προηγούμενη είναι η χρησιμοποίηση του JIT (just-in-time) compilation, που απαιτεί τη δυνατότητα μαρκαρίσματος των σελίδων μνήμης στη RAM ως εκτελέσιμες  αλλά, όμως, κάτι τέτοιο στο iOS δεν επιτρέπεται για σοβαρούς λόγους ασφαλείας. Οι περισσότεροι μοντέρνοι browsers επιτρέπουν αυτή τη δυνατότητα προς όφελος της απόδοσης συμπεριλαμβανομένων και των Mac OS X, Windows κτλπ. Ωστόσο, στο iOS 4.3 γίνεται μια εξαίρεση, η οποία εφαρμόζεται αποκλειστικά στον Mobile Safari.
Πρόκειται ουσιαστικά για έναν συμβιβασμό όσον αφορά την ασφάλεια και η Apple επέλεξε στο iOS 4.3 να «εμπιστευτεί» τον Mobile Safari. Αυτό έχει ως θετική συνέπεια την σημαντική αύξηση της ταχύτητας αλλά σε περίπτωση που βρεθεί κάποιο κενό ασφαλείας θεωρητικά θα επιτρέπεται μεγαλύτερος έλεγχος στο σύστημα απ’ ότι πριν.
Βέβαια, δεν είναι ότι η μηχανή Nitro δεν μπορεί να γίνει διαθέσιμη και σε web apps ή εφαρμογές με ενσωματωμένους browsers. Απλώς η Apple δεν έχει τελειώσει (;) ακόμα τους απαραίτητους ελέγχους ασφαλείας ώστε να επιτραπεί κάτι τέτοιο. Ας μην ξεχνάμε άλλωστε ότι η μηχανή Nitro σχεδιάζεται από τον Σεπτέμβριο του 2008 (με την τότε ονομασία “SquirrelFish Extreme”), οπότε φαντάζεται ότι δεν είναι κάτι απλό. Ένας τρόπος που θα μπορούσε να συμβεί κάτι τέτοιο είναι εάν η Apple επέτρεπε την εκτέλεση της JavaScript σε ξεχωριστή διαδικασία, όπως γίνεται για παράδειγμα με τον Flash Player στο Mac OS X Snow Leopard που τρέχει σε δικιά του διαδικασία. Κάτι τέτοιο θα μπορούσε να εφαρμοστεί και στο iOS όπου το Nitro θα έτρεχε σε δικιά του διαδικασία και όχι μέσα από τον Mobile Safari, έτσι ώστε να μπορεί να χρησιμοποιηθεί από όλους.
Μάλιστα, κάτι τέτοιο βρίσκεται ήδη σε ανάπτυξη από την Apple από το WebKit2 project όπου το JavaScript, HTML κτλπ τρέχουν σε διαφορετική διαδικασία από την ίδια την εφαρμογή (κάτι τέτοιο χρησιμοποιεί ήδη ο Google Chrome αλλά δεν είναι ενσωματωμένο στο framework). Αυτό κάποια στιγμή θα γίνει διαθέσιμο και για το iOS και θα λύσει πολλά από τα υφιστάμενα προβλήματα.

iphonehellas.gr

0 σχόλια:

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