BETA

Electron: Μια νέα γενιά εφαρμογών αναδύεται

Εικόνα constantinos

Η τεχνολογία αλλάζει τον κόσμο ή ο κόσμος διαμορφώνει την τεχνολογία; Αυτό είναι ένα ερώτημα που τον 21ο αιώνα είναι υπαρκτό (η τεχνολογία) μα και ρητορικό αφού η τεχνολογία προκαθορίζεται με γνώμονα το κέρδος και όχι την κοινωνική ωφελιμότητα. Το μόνο βέβαιο είναι πως η νέα δεκαετία σηματοδοτεί και την είσοδο σε μια νέα τεχνολογική εποχή σε πολλούς τομείς. Οι συνδεδεμένες πόλεις, το on-line εμπόριο, τα «έξυπνα σπίτια» και «έξυπνες συσκευές», μαζί με την τεχνητή νοημοσύνη, το virtual-reality και την ρομποτική θα είναι η καθημερινότητα των αμέσως επόμενων χρόνων.
Ένας σημαντικός παράγοντας στην αγορά (αφού τέτοια είναι) της τεχνολογίας αποτελούν φυσικά οι «χρήστες / καταναλωτές» και η καθημερινή τους πρόσβαση στο διαδίκτυο μα και η επαφή με τους υπολογιστές και συσκευές τους. Εδώ είναι εμφανές πως υπάρχει μια παθογένεια που σε καμία περίπτωση οι ρυθμοί ανάπτυξης δεν είναι αντίστοιχοι όλης αυτής της φουτουριστικής καθημερινότητας που μας σερβίρεται. Ακόμα και τα σύγχρονα desktop (λειτουργικά συστήματα) με τις εφαρμογές τους και τον γενικότερο τρόπο λειτουργίας τους, θα μπορούσαν να χαρακτηριστούν απαρχαιωμένα συγκρινόμενα με όλη την υπόλοιπη και εν δυνάμει τεχνολογία. Έχω πολλές απορίες για το πως θα ήταν η ανάπτυξη όλων τους αν δεν υπήρχε το Linux που με τα υπάρχοντα δεδομένα, βρίσκεται μόνιμα στην αιχμή της τεχνολογίας (βλέπετε, τα πιο σημαντικά τις περισσότερες φορές είναι τα όσα γίνονται «κάτω από το καπό»).
Έχοντας φτάσει λοιπόν στο σημείο που πρέπει τα πάντα να αναδιαρθρωθούν στις τρέχουσες τεχνολογικές καταστάσεις, είναι προφανές πως οι αλλαγές και συμβατότητες των desktop gui δεν είναι αρκετές από μόνες τους και πλέον χρειάζονται και εκεί δραστικές αλλαγές.
Τα Flatpak και Snap, μαζί με το AppImage δείχνουν τον δρόμο που θα ακολουθηθεί σε αυτόν τον τομέα και είναι ήδη εδώ, έστω και σε δοκιμαστική κατάσταση αυτήν την στιγμή.

Όμως, εδώ και κάμποσο διάστημα, αρχίζει να αναδύεται μια σειρά εφαρμογών, δημιουργημένων με έναν διαφορετικό τρόπο που δεν θα την χαρακτήριζα σαν «ανταγωνιστική» των πιο πάνω, μα επί του παρόντος σαν μια συμπληρωματική μέθοδο καθώς έχει αρκετές ιδιαιτερότητες. Αυτό, συνοπτικά, θα το 'χετε διαβάσει σαν: «εφαρμογές δημιουργημένες με το Electron».
 

Τι είναι το Electron:

Η ιδέα δεν είναι νέα, μα τα υπάρχοντα εργαλεία λογισμικού δίνουν την δυνατότητα για καλύτερη υλοποίηση. Οι προγραμματιστές του Gnome, ήταν από τους πρώτους που τολμήσανε να περάσουνε σε αυτήν την γενιά, χρησιμοποιώντας την Javascript. Αντίθετα δηλαδή απ' ό,τι ήταν δεδομένο μέχρι τότε, είπαν πως η Javascript θα μπορούσε να χρησιμοποιηθεί και για τα desktop μας, και όχι μόνο για χρήση στο διαδίκτυο.

H Javascript είναι μια γλώσσα σεναρίου (script language) που χρησιμοποιείται για να δημιουργήσουμε διαδραστικές (interactive) ιστοσελίδες. Ο κώδικας JavaScript συνήθως ενσωματώνεται στον ΗTML κώδικα. Η JavaScript JavaScript είναι μια ερμηνευόμενη γλώσσα (interpreted language), δηλαδή τα scripts εκτελούνται χωρίς να έχει προηγηθεί μεταγλώττιση του κώδικα (όπως π.χ. στην Pascal).
Η JavaScript υποστηρίζεται από όλους τους δημοφιλείς browsers. Η JavaScript παρέχει στους σχεδιαστές ιστοσελίδων ένα προγραμματιστικό εργαλείο. Συνήθως, όσοι αναπτύσσουν HTML κώδικα δεν είναι προγραμματιστές, ωστόσο η JavaScript είναι μια scripting γλώσσα με πολύ απλή σύνταξη, άρα εύκολη στην εκμάθηση. Η JavaScript μπορεί να εισάγει δυναμικό περιεχόμενο σε μια HTML σελίδα. Ο JavaScript κώδικας μπορεί να αντιδράσει σε συμβάντα (events), δηλαδή να εκτελεστεί όταν κάτι συμβεί, π.χ. όταν ο χρήστης κάνει κλικ σε ένα πλήκτρο.

Πλέον, η Javascript θεωρείται όλο και περισσότερο ως desktop γλώσσα ανάπτυξης, καθώς μπορεί να χρησιμοποιηθεί από mobile platforms αλλά και για τις τοπικές εφαρμογές web (βλέπε Windows).
Η βασική ιδέα δηλαδή ήταν διάφορες δικτυακές υπηρεσίες να μπορούν να τρέξουν σαν desktop εφαρμογές, έχοντας αφενός όλα τα web χαρακτηριστικά τους και αφετέρου να είναι ελαφριές, απλές και γρήγορες. Έχοντας πλέον αλλάξει τα δεδομένα δραστικά στον χώρο του desktop, το ολιγοπώλιο της Microsoft και Apple, έχει διαρραγεί και το Linux αποτελεί μια αδιαμφισβήτητη οντότητα. Μιλάμε για τους ανθρώπους που τρέχουν Linux τόσο σαν μοναδικό desktop, όσο και dual-boot. Έτσι, η δημιουργία όλων και περισσότερων cross-platform desktop εφαρμογών είναι περισσότερο αναγκαία από ποτέ, όπως φυσικά και οι mobile-apps, με ζητούμενη την μέγιστη συμβατότητα ανάμεσά τους (desktop και mobile apps).

Εδώ λοιπόν, κάνει την εμφάνισή του το λογισμικό Electron που δίνει αυτήν την δυνατότητα ευκολότερα από ποτέ. Πρόκειται δηλαδή για ένα framework για την δημιουργία εγγενών εφαρμογών με τεχνολογίες web όπως JavaScript, HTML και CSS, ενώ φυσικά μπορεί να χρησιμοποιηθεί και για την δημιουργία ενός website.

- Για να το πούμε όσο πιο απλά γίνεται, ώστε να γίνει κατανοητό και από ανθρώπους που δεν έχουν γνώση από τεχνολογικά και πόσο μάλλον κάτι τέτοιο πιο ειδικευμένο:

Το Electron έχει σαν βάση τον Chromium browser. Το πλαίσιο δηλαδή που χρησιμοποιεί είναι αυτό. Με την παράλληλη ενσωμάτωση του λογισμικού Node.js και την χρήση HTML, CSS και JavaScript γίνεται τόσο εύπλαστο, που επάνω του μπορούν δημιουργηθούν κάθε είδους ετερόκλητες εφαρμογές. Πρόκειται για μια καθαρά Ανοιχτού Κώδικα (Open Source) «πλατφόρμα» συμβατή με Linux, Windows, OSX που επιτρέπει την εύκολη δημιουργία εφαρμογών και για τα τρία αυτά λειτουργικά συστήματα, έχοντας σαν στόχο να είναι ελαφριές χωρίς ισχυρή κατανάλωση πόρων, χωρίς να «γράφουν» πολλά στον δίσκο, να μην υστερούν σε χαρακτηριστικά και να είναι προσιτές σε όλους. Παράλληλα έχουν την δυνατότητα για αυτόματα updates σε νέες εκδόσεις τους, δικά τους μενού μα και ειδοποιήσεις.

Μάλιστα, όσον αφορά την δημιουργία εφαρμογών, διαθέτει ένα πολύ καλό Electron API Demos που καταδεικνύει διαδραστικά τα πιο σημαντικά χαρακτηριστικά του API Electron και χρήσιμες συμβουλές για την οικοδόμηση της εφαρμογής.

Υπάρχουν Electron εφαρμογές;

Υπάρχουν και έχουν αρχίσει να καλύπτουν πάρα πολλούς τομείς, ενώ η δημιουργία εφαρμογών με βάση το Electron έχει μια συνεχώς ανοδική πορεία.
- Για παράδειγμα:

Nylas N1 (GMail-client)
Wmail (Gmail-client)
Ranbox (Skype, WhatsApp, Telegram, Gmail, Protonmai, Outlook και άλλες 70 εφαρμογές επικοινωνίας και mail, σε μια desktop app)
Skype for Linux (η έκδοση του Skype της MS για Linux)
Wire (βιντεοκλήσεις, ηχητικές και chat με end-to-end κρυπτογράφηση)
Franz (Skype, WhatsApp, Telegram και άλλες εφαρμογές επικοινωνίας σε μια desktop app).
Atom (Επεξεργαστής κειμένου)
Wordpress (desktop εφαρμογή για την διαχείριση των WP blogs)
Min (Browser)
Brave (Browser)
WebTorrent Desktop (Streaming, λήψη, δημιουργία και διαμοιρασμός Torrent αρχείων)
KeeWeb (Διαχειριστής Κωδικών Πρόσβασης)
Anatine (Twitter client)
TagSpaces (για συγχρονισμό αρχείων και φακέλων με άλλες συσκευές και υπολογιστές, με την χρήση ετικετών)
WunderlistUX (σημειώσεις και to-do λίστες)
Fanbox (εργαλείο παρακολούθησης του Linux συστήματός σας)
Etcher (για «κάψιμο» ISO αρχείων σε USB-sticks και sd-cards)
Museeks (Music / Audio Player)
Harmony (Music Player με streaming από διάφορες υπηρεσίες και αναπαραγωγή τοπικών αρχείων)
Spotio (desktop εφαρμογή για το Spotify)

μα και πολλές άλλες που θα τις βρείτε στην σελίδα του: Apps-Electron.

Ωστόσο, θα πρέπει να λάβετε υπόψιν σας και τα εξής:

1. Δεν είναι υποχρεωτικά όλες οι εφαρμογές να είναι διαθέσιμες για όλα τα λειτουργικά συστήματα. Μπορεί να είναι μόνο για ένα ή κάποια εξ' αυτών (Linux, Windows, OSX).
2. Δεν είναι όλες δωρεάν, μα υπάρχουν και αρκετές εμπορικές.
3. Δεν είναι όλες ανοιχτού κώδικα. Υπάρχουν και closed-source εφαρμογές δημιουργημένες με βάση το Electron (σε αυτήν την σελίδα του στο Github, μπορείτε να τις δείτε και κατηγοριοποιημένες).

Αν ενδιαφερόσαστε να δημιουργήσετε μια Electron-based εφαρμογή, ξεκινήστε από εδώ.

>>> ο κώδικάς του στο Github.
>>> η ιστοσελίδα του Electron.


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

  • Σχόλια

3 Comments:

  1. Εικόνα anonymous
    anonymous (χωρίς επαλήθευση)Αυγ 08, 2016 18:39 ΜΜ

    Πολύ ενδιαφέρον.Μόλις σήμερα διαβασα αντίστοιχο άρθρο,οτι εκτός του React Native για native mobile εφαρμογες πλεον υπαρχει και το React Native for the web. (επίσης javascript)
    https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/#comment-1290929

    Φαινεται οτι η javascript μπαινει παντού για τα καλά (επισης drones,IoT κτλ).Δλδ το write once,deploy everywhere που θα το έκανε η j;ava,φαίνεται οτι το κάνει η javascript.

  2. Εικόνα τομνυ
    τομνυ (χωρίς επαλήθευση)Αυγ 08, 2016 23:09 ΜΜ

    Ενα τεραστιο σεντονι για ενα ρεζουμε στις δυο τελευταιες παραγραφους...

  3. Εικόνα Paul
    Paul (χωρίς επαλήθευση)Αυγ 09, 2016 00:17 ΠΜ

    10 λέξεις για να δείξεις πόσο μαλάκας είσαι.

    Και εκτός του μαλάκα, είχα διαβάσει πως τέτοιες εφαρμογές θα είναι στην καθημερινότητα και προεγκατεστημένες σε λειτουργικά συστήματα μέσα στα επόμενα 5 χρόνια.

Scroll to Top