ΑρχικήinetJava vs. Kotlin: Ποια είναι η καλύτερη επιλογή για Android App Development;

Java vs. Kotlin: Ποια είναι η καλύτερη επιλογή για Android App Development;

Η κοινότητα του Kotlin mobile app development μεγαλώνει. Πέρυσι, η Google αναγνώρισε την γλώσσα προγραμματισμού Kotlin ως τη δεύτερη επίσημη γλώσσα του Android App Development. Από τότε, η Kotlin έχει επίσης σταθερά δημιουργήσει συνεργασίες με την πλατφόρμα Google Cloud Platform, το Spring Frame και το Gradle. Οι προγραμματιστές εφαρμογών Android αποκτούν τελικά την ρεαλιστική, σύγχρονη και διαισθητική γλώσσα που περιμένουν.

Kotlin

Τι είναι η Kotlin;

Η Kοtlin είναι μια στατικώς πληκτρολογημένη γλώσσα προγραμματισμού για το Java Virtual Machine (JVM) και το JavaScript. Περιγραφόμενη ως γλώσσα γενικού σκοπού, η Kοtlin εισάγει λειτουργικά χαρακτηριστικά για την υποστήριξη της διαλειτουργικότητας και της κατανόησης. Το έργο Kοtlin γεννήθηκε από την φιλοδοξία για αυξημένη παραγωγικότητα. Ο στόχος ήταν να βελτιωθεί η εμπειρία κωδικοποίησης με τρόπο πρακτικό και αποτελεσματικό.

Η Kotlin είναι και γλώσσα αντικειμενοστραφής (OO) και λειτουργική γλώσσα προγραμματισμού (FP). Είναι συμβατή με στυλ OO και FP που επιτρέπουν στους προγραμματιστές να ενσωματώνουν στοιχεία από κάθε φόρμα. Η Kotlin υποστηρίζει λειτουργίες υψηλότερης τάξης και function types, καθιστώντας την εξαιρετική επιλογή για λειτουργικό προγραμματισμό.

Κεντρική εστίαση για την Kotlin είναι να επιτρέψει έργα μεικτής γλώσσας. Η Kotlin είναι απόλυτα συμβατή με την Java και Objective C, γεγονός που κάνει την εκμάθηση της νέας γλώσσας ανώδυνη. Η Kotlin εισάγει βελτιωμένη σύνταξη, καθώς και συνοπτικές εκφράσεις και αφαιρέσεις. Η χρήση της Kotlin με την Java εξαλείφει την ανάγκη για υπερβολικό κωδικά boilerplate, που είναι μια τεράστια νίκη για τους προγραμματιστές του Android.

Kotlin 2018: Ένα έτος σε Review

Μετά το Google I / O 2017, η Kotlin είδε τρομερή ανάπτυξη στο Android development. Από τότε, το JetBrains φιλοξένησε το πρώτο KotlinConf και ανακοίνωσε την beta έκδοση της Kotlin / Native.

Πέρυσι, η JetBrains κυκλοφόρησε το πρώτο review της Kotlin / Native και, καθώς μεταβαίνουμε στο 2019, οι προγραμματιστές έχουν τώρα πρόσβαση στο Kotlin / Native Beta. Στο Kotlinverse, η υιοθέτηση της ανάπτυξης μεταξύ των πλατφορμών κινείται αργά. Το State of Kotlin του Pusher αποκαλύπτει ότι από τους 3.000 ερωτηθέντες, μόνο το ένα τέταρτο χρησιμοποίησε κάποιο είδος στήριξης μεταξύ των πλατφόρμων με τους περισσότερους να εγκαταλείπουν την Kotlin / Native.

Το 2018, η Airbnb άρχισε να μεταβαίνει από την React Native στην Kotlin. Στην πραγματικότητα, έχουν γράψει το 80% του νέου τους κώδικα σε Kotlin. Έτσι, ενώ η υιοθέτηση της Kotlin δεν ήταν εκρηκτική, οι σημαντικότεροι παράγοντες της βιομηχανίας σημειώνουν τα πολλά οφέλη που έχει να προσφέρει η Kotlin.

Είναι αυτό το τέλος της Java;

Υπάρχουν μικτές απόψεις από τους προγραμματιστές.

Η Java είναι μια αξιόλογη γλώσσα προγραμματισμού με τεράστια εργαλεία και βιβλιοθήκες ανοιχτού κώδικα για να βοηθήσει τους προγραμματιστές. Οπότε, καμία γλώσσα δεν είναι λάθος και ακόμη και η Java υπόκειται σε επιπλοκές που μπορούν να κάνουν την δουλειά των προγραμματιστών κουραστική. Αν μη τι άλλο, η Kοtlin θα εισαγάγει λύσεις σε κοινούς προγραμματιστικούς “πονοκεφάλους”  και θα βελτιώσει το οικοσύστημα της Java στο σύνολό του.

Το τελευταίο έτος, η Kοtlin έχει γίνει μια πιο σταθερή και συναρπαστική επιλογή ανάπτυξης για το Android Studio. Κάποιοι προγραμματιστές φαίνεται να πιστεύουν ότι η Kοtlin θα εξαλείψει την ανάπτυξη της τεχνολογίας Java για τα Android τα επόμενα χρόνια. Άλλοι ειδικοί θεωρούν ότι η Kotlin και η Java θα συνεχίσουν να υφίστανται παράλληλα χωρίς να υπάρχει θέμα ανταγωνισμού μεταξύ τους.

Για τους περισσότερους, τα δυνατά σημεία της Kοtlin αντισταθμίζουν τα εμπόδια της γλώσσας. Υπάρχουν ορισμένοι περιορισμοί εντός της Java που εμποδίζουν το σχεδιασμό Android API. Η Kοtlin είναι εγγενώς ελαφριά, καθαρή και λιγότερη κατανοητή, ειδικά όσον αφορά τη γραφή επανάκλησης, τις κατηγορίες δεδομένων και τους getters / setters. Με άλλα λόγια, η Kotlin σχεδιάστηκε ειδικά για να βελτιώσει τα υπάρχοντα μοντέλα Java προσφέροντας λύσεις στις ελλείψεις σχεδιασμού του API.

Η Kοtlin αντιμετωπίζει μια σειρά αδυναμιών που προκλήθηκαν από την Java:

Συντομία

Πολλοί προγραμματιστές επαίνεσαν την Kotlin ότι ήταν σύντομη. Αυτό δεν είναι ένα χαρακτηριστικό για το οποίο είναι γνωστή η Java? Ωστόσο, η αναγνωσιμότητα πρέπει πάντα να έχει προτεραιότητα έναντι των συνοπτικών πρακτικών. Ναι, η συνοπτική φύση της Kotlin απλοποιεί τη δουλειά του δημιουργού και αφήνει λιγότερα περιθώρια για σφάλματα, αλλά η Kotlin δεν ασκεί καθυστέρηση για χάρη της σύντομης βίας. Ο κώδικας Boilerplate είναι ένα πρόβλημα που οδηγεί σε περισσότερα bugs και οδηγεί σε σπατάλη χρόνου μέχρι να αναγνωριστεί το πρόβλημα.

Η παραπάνω είναι μια απλή λειτουργία αριθμομηχανής γραμμένη σε Java. Για λόγους σύγκρισης, εδώ είναι η ίδια αριθμομηχανή που γράφτηκε σε Kotlin:

Όπως βλέπουμε η έκδοση Kοtlin αυτού του calculator είναι γραμμένη στις μισές γραμμές του κώδικα που χρειάστηκε για να προγραμματίσει τη λειτουργία της Java. Η συνάφεια είναι καθοριστικός παράγοντας για την παραγωγικότητα. Η εγγραφή μεγάλων έργων γίνεται ευκολότερη όταν ένας προγραμματιστής έχει περισσότερη ισχύ για κάθε γραμμή κώδικα. Μια βασική παρατήρηση εδώ είναι η Kοtlin δεν παραβλέπει την κατανόηση για χάρη της συντομίας. Η σύνταξη είναι συνοπτική και ακόμα σημαντική.

Διαλειτουργικότητα

Η διαλειτουργικότητα είναι ο βασικός σκοπός της Kotlin. Από την αρχή, η πρόθεση του έργου ήταν να χρησιμοποιήσει τις υπάρχουσες γνώσεις και εμπειρίες για να κάνει κάθε βιβλιοθήκη διαθέσιμη στους προγραμματιστές της Kotlin. Οι προγραμματιστές μπορούν να γράψουν απλά modules σε Kotlin που λειτουργούν άψογα μέσα στον υπάρχοντα κώδικα Java. Εκπέμποντας το Bytecode, ένας μεταγλωττιστής Kοtlin επιτρέπει στις δύο γλώσσες να δουλεύουν από κοινού στο ίδιο έργο.

Ενσωματωμένο Null Safety

Το σύστημα τύπου Kοtlin διαθέτει ενσωματωμένη ασφάλεια. Το περίφημο NullPointerException είναι σε μεγάλο βαθμό υπεύθυνο για τα λάθη ανάπτυξης Android και Java. Όμως αυτό που δεν αναφέραμε είναι ότι το Null μπορεί εύκολα να καταστρέψει μια εφαρμογή. Η Kοtlin λύνει αυτό το πρόβλημα ενσωματώνοντας null ασφάλεια. Αυτή η προσθήκη εξοικονομεί χρόνο στους προγραμματιστές από τη συγγραφή πρόσθετου κώδικα για την επίλυση του προβλήματος.

Δεν υπάρχουν checked exceptions

Το χαρακτηριστικό checked exception στην Java μπορεί να είναι προβληματικό. Τα checked exceptions είναι όταν ο μεταγλωττιστής αναγκάζει τον καλούντα μιας συνάρτησης να πιάσει ή να επαναλάβει μια εξαίρεση. Το γεγονός είναι ότι τα exceptions που ελέγχονται συχνά είναι περιττά και προκαλούν “empty catch blocks”. Ανύπαρκτα checked exceptions αποτελούν ενόχληση για τους προγραμματιστές επειδή αναγκάζονται να ελέγξουν τον κώδικα για να εντοπίσουν ένα πιθανό exception που δεν συνέβη ποτέ. Ως λύση, η Kotlin τα απομάκρυνε εξ ολοκλήρου, γεγονός που βελτιώνει το type-safety.

Είναι απαραίτητο για τους προγραμματιστές να μάθουν Kοtlin;

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

Tο Kοtlin 2019 Outlook

Με συνεργασίες με κολοσσιαίες μάρκες όπως το Amazon, το Pinterest, το Netflix, το Uber και το Trello, υποστήριξη από το JetBrains και το Google και σχεδόν παγκόσμια προσκόλληση στη γλώσσα προγραμματισμού, είναι αρκετά ασφαλές να πούμε ότι η Kοtlin θα παραμείνει μαζί μας για αρκετό καιρό.

Η Kotlin αποδεικνύεται γρήγορα ότι είναι μια ανώτερη γλώσσα προγραμματισμού για την ανάπτυξη εφαρμογών για κινητά και παρουσιάζει στους προγραμματιστές με πλούσια ευκαιρία να πειραματιστούν με τον σύγχρονο προγραμματισμό. Οι προγραμματιστές μπορούν να μεταβαίνουν μεταξύ OO, FP και scripting με μηδενική προσπάθεια, ορίζοντας εύκολα ένα νέο πρότυπο για το τι πρέπει να είναι σε θέση να ολοκληρώσει μια γλώσσα προγραμματισμού.

Teo Ehc
Teo Ehchttps://www.secnews.gr
Be the limited edition.

Εγγραφή στο Newsletter

* indicates required

FOLLOW US

LIVE NEWS