Δημιουργώντας μια αποτελεσματική στρατηγική για την εξέλιξη μιας ιστοσελίδας. Το χρόνιο πρόβλημα της συμβατότητας με παλιούς browsers

Post Photo
Κυριακή 27 Σεπτεμβρίου 2020

Το άρθρο μάλλον το γράφω για τον εαυτό μου. Ναι, το κάνω και αυτό. Ημερολόγιο είναι η σελίδα και όχι δημοσιογραφικό πόρταλ. Πόσο χρόνο και κώδικα ξοδεύεις για να κάνεις τη σελίδα 100% συμβατή με τον browser κάθε χρήστη;

Στη ζωή όλα είναι θέμα ισορροπίας. Αν ρίξεις το βάρος υπερβολικά στη μια πλευρά, υστερεί η άλλη.

Ας ξεκινήσουμε με το πρόβλημα.

Η γλώσσα CSS όπως και η HTML έχουν ένα μεγάλο πρόβλημα σε σχέση με άλλες γλώσσες: δεν γνωρίζεις ποιες εντολές υποστηρίζει η περιηγητής του χρήστη.

Για παράδειγμα σε άλλες γλώσσες όπως η PHP που λατρεύω τέτοιο πρόβλημα δεν υπάρχει. Γνωρίζεις την έκδοση που έχεις στον Server σου και μπορείς να χρησιμοποιήσεις όλο το σετ εντολών της γλώσσας. Αν χρησιμοποιείς πρόσθετα είναι εύκολο με ένα PHPinfo να δεις ποια πρόσθετα έχει ο Server. Είτε μπει κάποιος με laptop του 1990 είτε με ένα που αγόρασε χθες ο Server θα του ρεντάρει τις ίδιες ακριβώς σελίδες. Ούτε για την Javascript δεν ισχύει αυτό. Εκτός και αν ρεντάρεται στο Server (node.js).

Εδώ αρχίζουν τα προβλήματα

Για παράδειγμα μια απλή λύση που εφαρμόζουν πολλοί είναι να αποφεύγουν νέες τεχνολογίες. Ιδίως άνθρωποι χωρίς πάθος για την τεχνολογία και όραμα δίνουν την εντολή στους προγραμματιστές να μην χρησιμοποιούν εντολές CSS που δεν υποστηρίζουν οι παλιοί περιηγητές. Υπάρχουν πολλές τεχνικές επιπλέον όπως τα @supports queries, prefixes κτλ. Ακόμα και αυτά έχουν θέματα όμως. Το @supports δεν το υποστηρίζουν όλοι οι περιηγητές και τα prefixes που απαιτούνται αλλάζουν.

Όλες οι παραπάνω τεχνικές έχουν μειονεκτήματα. Αυξάνουν τον όγκο της σελίδας, την κάνουν πιο σύνθετη και το χειρότερο οδηγούν τον προγραμματιστή να χάνει άπειρο χρόνο για τη μειοψηφία των επισκεπτών.

Ένα καλό εργαλείο για να δεις για τι κοινό μιλάμε (με παλιούς περιηγητές) είναι το https://caniuse.com. Δείχνει για κάθε εντολή τι ποσοστό των χρηστών παγκοσμίως μπορεί να το δει σωστά.

Για παράδειγμα το CSS Grid με prefixes ή χωρίς το υποστηρίζει το 93.51% του πλανήτη. Άρα είναι σχετικά ασφαλές να το χρησιμοποιήσεις.

1601231440

Ο χρόνος δηλαδή που θα δαπανήσεις για να το κάνεις να λειτουργεί π.χ με Flexbox είναι για το 6,49% των επισκεπτών. Έλα όμως που και το Flexbox δεν λειτουργεί στο 100% των περιηγητών (95.64% για την ακρίβεια). Θα μου πεις πάνε στο 1990 και παίξε με floats και αρνητικά margins. Δεν πηδάω από το μπαλκόνι καλύτερα;

1601198292

Είναι λάθος. Αν έχεις μια ομάδα προγραμματιστών μπορείς να δώσεις τη δουλειά σε έναν από αυτούς να ασχοληθεί με τη συμβατότητα αρχαίων περιηγητών. Φυσικά οι προγραμματιστές δεν είναι φθηνοί και θα πρέπει να σκεφτείς καλά αν αξίζει τον κόπο και το χρήμα.

Στη δική μου περίπτωση είμαι ένας άνθρωπος ο οποίος εκτός από την καθημερινότητά του εξελίσσει ένα CMS για την επόμενη δεκαετία. Είμαι και ο κύριος αρθρογράφος για δυο σελίδες.

Το πρόβλημα των σελίδων μου δεν είναι τόσο τεχνολογικό όσο το περιεχόμενο. Οπότε καλό είναι να επικεντρωθώ εκεί.

Χρησιμοποιώ το CSS Grid, WebP και άλλες σύγχρονες τεχνολογίες γνωρίζοντας ότι χάνω ένα μικρό μέρος του κοινού μου. Ανακάλυψα και κάτι ακόμα από τα στατιστικά μου. Τα πράγματα για στο ελληνικό κοινό είναι πολύ χειρότερα από αυτά που δείχνει το CanIuse. Η Ελλάδα τεχνολογικά δηλαδή χρησιμοποιεί χειρότερο εξοπλισμό και περιηγητές από το μέσο όρο του πλανήτη. Αν δηλαδή η χρήση Internet Explorer παγκοσμίως έχει πέσει στο 1% στην Ελλάδα είναι ακόμα στο 9-10%. Η μόνη εξήγηση που μπορώ να δώσω είναι η φτώχεια.

Μια υπόθεση εργασίας

Ας πούμε όμως ότι σε ενδιαφέρει το διεθνές κοινό. Στην περίπτωση αυτή οι αριθμοί του CanIuse ισχύουν μέσες-άκρες.

Για παράδειγμα αν χάσω το 5% ενός κοινού 100 ανθρώπων έχω 95 επισκέπτες. Αν ξοδέψω 100 εργατοώρες να κάνω τη σελίδα συμβατή με το 100% των περιηγητών (πράγμα αδύνατο) θα έχω πάλι ένα κοινό 100 ανθρώπων. Δεν θα έχω χάσει κανέναν. Τουλάχιστον λόγω ασυμβατότητας.

Αν ξοδέψω αυτές τις 100 εργατοώρες δημιουργώντας περιεχόμενο το κοινό μου θα αυξηθεί. Ιδίως σε μια σελίδα σαν τη δική μου που το πρόβλημα είναι το περιεχόμενο. Ας πούμε ότι αρχίζω και γράφω εξαιρετικά άρθρα και το κοινό μου αυξάνεται στους 500 επισκέπτες. Θα χάσω ένα 5% όπως είπαμε. Άρα στο τέλος θα έχω ένα κοινό 475 ανθρώπων. Αριθμός σημαντικά υψηλότερος του 100!

Αγαπώ την τεχνολογία. Θεωρώ ότι η ανθρωπότητα για να ζήσουμε εμείς και τα παιδιά μας καλύτερα πρέπει να χρησιμοποιήσει την τεχνολογία στο έπακρο και με επίκεντρο τον άνθρωπο. Τη βελτίωση της ζωής του. Δεν λύνονται προβλήματα του 2020 με ιδεολογίες και τεχνολογία του 1900. Δεν μπορείτε να φανταστείτε τι τεχνολογίες υπάρχουν στα συρτάρια που θα έκαναν την πλανήτη γη της επαγγελίας και δεν αφήνουν λόμπι και συμφέροντα να φτάσουν στον πολίτη.

Αυτό ακριβώς αποφάσισα να κάνω. Είδα και το http://shouldiprefix.com. Μια πολύ καλή σελίδα για το ποια prefixes να χρησιμοποιείς και ποια όχι. Αυτό αλλάζει συνεχώς. Οι πολίτες αναβαθμίζουν συνεχώς υπολογιστές, φορητούς, τάμπλετ και κινητά. Τα prefixes αυξάνουν στην περίπτωσή μου τα αρχεία CSS κατά 20%. Αυξάνοντας τη συμβατότητα κατά 2-3%. Προτιμώ πια να γράψω 20% περισσότερο κώδικα για το 95% και όχι το 5%.

Το άρθρο αυτό το έγραψα μετά από αρκετή έρευνα. Έλαβα υπόψη και το κοινό που έχω στη σελίδα.

1601197980

Η Ελλάδα αποτελεί πλέον τη μειοψηφία. Οι περισσότεροι επισκέπτες μου είναι από την Αμερική που έχει υψηλή συμβατότητα με νέες τεχνολογίες. Θα χάσω δηλαδή ένα 5-10% από ένα κοινό 25% στην περίπτωση που επικεντρωθώ σε νέες τεχνολογίες και καλό περιεχόμενο.

Αν η στρατηγική μου θα έχει αποτέλεσμα θα δείξει. Τουλάχιστον αυτή τη φορά ακολουθεί την κοινή λογική.

Μια όμορφη Κυριακή σας εύχομαι.

Κοινοποίησε το άρθρο

Στήριξε μια από τις λιγοστές οάσεις ελεύθερης γραφής κοινοποιώντας το άρθρο. Έτσι στηρίζεις τη σελίδα ώστε αύριο να μπορεί να στηρίξει και σένα.