Όλα ξεκίνησαν πριν αρκετές μέρες μετά την διαθεσιμότητα του 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 και θα λύσει πολλά από τα υφιστάμενα προβλήματα.
[via]
Σχολιασμός στο forum: Γιατί η μηχανή Nitro είναι διαθέσιμη μόνο στον Mobile Safari
You might also like
More from iOS
iOS 13: Dark mode, Nέο Multitasking, Undo/Redo με gestures κ.α.
Το iOS 13 αναμένεται να παρουσιαστεί κατά την έναρξη του WWDC 2019, στις 3 Ιουνίου, ωστόσο δημοσίευμα του 9to5mac μας δίνει από τώρα μία πρώτη γεύση των όσων θα δούμε. iOS 13 - Dark mode Ένα βασικό χαρακτηριστικό της νέας έκδοσης λογισμικού …
iOS 12.2: Τα χαρακτηριστικά και οι βελτιώσεις της νέας έκδοσης λειτουργικού
Το iOS 12.2 είναι διαθέσιμο από εχτές το βράδυ και περιλαμβάνει τέσσερα νέα animoji, καθώς και επιδιορθώσεις σφαλμάτων και βελτιώσεις στο AirPlay, Apple Pay, Safari, Apple Music. Επιπλέον, με τη νέα αναβάθμιση λειτουργικού έρχεται και η υποστήριξη των νέων AirPod …
iOS 12.1.4: Διαθέσιμο το update που διορθώνει το critical bug του FaceTime
Το iOS 12.1.4 περιλαμβάνει σημαντικές ενημερώσεις ασφαλείας, μεταξύ των οποίων και η διόρθωση του critical bug του FaceTime το οποίο επέτρεπε στο χρήστη να ακούει τον παραλήπτη της κλήσης από το μικρόφωνο της συσκευής του προτού ο τελευταίος απαντήσει στην …
iOS 13: Οι πρώτες πληροφορίες για τα χαρακτηριστικά του
Το iOS 13, το επερχόμενο major update του λειτουργικού συστήματος για iPhone/iPad/iPod touch αναμένεται να έρθει με αρκετά νέα χαρακτηριστικά, όπως αναφέρει δημοσίευμα του Bloomberg το οποίο επικαλείται αξιόπιστες πηγές εντός της Apple. Σύμφωνα λοιπόν με τις πρώτες διαρροές, το iOS …
iOS 12.1.3: Τί φέρνει η νέα έκδοση
Το iOS 12.1.3 περιέχει επιδιορθώσεις σφαλμάτων για το iPhone και το iPad, συμπεριλαμβανομένων των εξής: Επιδιόρθωση ζητήματος στα Μηνύματα που μπορούσε να επηρεάσει την κύλιση σε φωτογραφίες στην προβολή «Λεπτομέρειες»Αντιμετώπιση ζητήματος λόγω του οποίου κάποιες φορές οι φωτογραφίες είχαν γραμμωτά τεχνουργήματα …