
Τα Electron και NW.js είναι δύο καθιερωμένα πλαίσια ανάπτυξης για τη δημιουργία εφαρμογών υπολογιστή πολλαπλών πλατφορμών με τη χρήση τεχνολογιών ιστού. Και τα δύο συνδυάζουν το Chromium και το Node.js, επιτρέποντας στους προγραμματιστές να δημιουργούν εφαρμογές με HTML, CSS, JavaScript και γνωστά πλαίσια ανάπτυξης frontend, όπως τα React, Vue και Angular.
Το NW.js είναι στην πραγματικότητα το παλαιότερο πλαίσιο ανάπτυξης. Αρχικά γνωστό ως node-webkit, το έργο ξεκίνησε το 2011 και ήταν διαθέσιμο στο κοινό έως το 2012. Το Electron ακολούθησε το 2013, με την αρχική του ανάπτυξη να γίνεται από το GitHub για τον επεξεργαστή κώδικα Atom. Παρότι εμφανίστηκε αργότερα, το Electron τελικά επικράτησε ευρύτερα στις εφαρμογές υπολογιστή γενικής χρήσης.
Σήμερα, το Electron αποτελεί τη βάση σημαντικών εφαρμογών, όπως τα Visual Studio Code, Slack, Discord, Notion και Figma. Επωφελείται επίσης από τη συμμετοχή μεγάλων εταιρειών τεχνολογίας και τη διακυβέρνηση μέσω του OpenJS Foundation. Στη WebCatalog, έχουμε επιλέξει το Electron ως βάση για τις εφαρμογές υπολογιστή πολλαπλών πλατφορμών που αναπτύσσουμε.
Το NW.js, από την άλλη πλευρά, έχει πολύ μικρότερη ορατή παρουσία στις μεγάλες εφαρμογές παραγωγικότητας και επιχειρηματικής χρήσης. Η συνεχιζόμενη υιοθέτησή του είναι ιδιαίτερα εμφανής στη βιομηχανία παιχνιδιών, συμπεριλαμβανομένων ανεξάρτητων παιχνιδιών και τίτλων που έχουν δημιουργηθεί με το RPG Maker.
Πώς συγκρίνονται λοιπόν τα δύο πλαίσια ανάπτυξης και ποιο θα πρέπει να επιλέξουν οι προγραμματιστές;
Electron έναντι NW.js με μια ματιά
Και τα δύο πλαίσια επιτρέπουν στους προγραμματιστές να δημιουργούν εφαρμογές υπολογιστή χρησιμοποιώντας τεχνολογίες ιστού, αλλά προσεγγίζουν διαφορετικά την αρχιτεκτονική εφαρμογών, την ενσωμάτωση εγγενών λειτουργιών και την ασφάλεια.
| Χαρακτηριστικό | Electron | NW.js |
|---|---|---|
| Πρώτη παρουσίαση | 2013 | 2011–2012 |
| Αρχικός δημιουργός | GitHub | Intel Open Source Technology Center |
| Διακυβέρνηση και οικοσύστημα | OpenJS Foundation, με σημαντικούς εταιρικούς συνεισφέροντες | Συντηρείται από την κοινότητα, με καταβολές στην Intel |
| Μηχανή περιήγησης | Chromium | Chromium |
| Περιβάλλον εκτέλεσης JavaScript | Node.js | Node.js |
| Πλατφόρμες υπολογιστή | macOS, Windows, Linux | macOS, Windows, Linux |
| Αρχιτεκτονική | Κύρια διεργασία και διεργασίες απόδοσης | Αρχιτεκτονική Chromium με άμεση ενσωμάτωση του Node.js |
| Πρόσβαση στο Node.js | Κύρια διεργασία και ελεγχόμενη ενσωμάτωση στις διεργασίες απόδοσης | Άμεση πρόσβαση από σελίδες εφαρμογής που πληρούν τις προϋποθέσεις |
| Μέγεθος εφαρμογής | Σχετικά μεγάλο | Σχετικά μεγάλο |
| Επιδόσεις | Εξαρτώνται από την εφαρμογή | Εξαρτώνται από την εφαρμογή |
| Ασφάλεια | Απομόνωση σε sandbox, απομόνωση περιβάλλοντος εκτέλεσης, IPC | Παραμετροποιήσιμη πρόσβαση στο Node και απομόνωση πλαισίων |
| Υιοθέτηση | Χρησιμοποιείται ευρέως σε δημοφιλείς εφαρμογές υπολογιστή | Μικρότερο οικοσύστημα, αξιοσημείωτη υιοθέτηση στα παιχνίδια |
| Υποστήριξη κινητών συσκευών | Χωρίς επίσημη υποστήριξη | Χωρίς επίσημη υποστήριξη |
Οι σημαντικότερες διαφορές δεν αφορούν τις επιδόσεις ή το μέγεθος της εφαρμογής. Και τα δύο πλαίσια ενσωματώνουν το Chromium και το Node.js, επομένως οι απαιτήσεις τους σε πόρους είναι σε γενικές γραμμές συγκρίσιμες. Αντίθετα, οι βασικές διαφορές αφορούν την αρχιτεκτονική, τα όρια ασφαλείας, τα εργαλεία ανάπτυξης και την υποστήριξη του οικοσυστήματος.
Ιστορία: Το NW.js προηγήθηκε, αλλά το Electron έγινε πιο δημοφιλές
Το NW.js ήταν ένα από τα πρώτα έργα που έδειξαν ότι οι προγραμματιστές μπορούσαν να συνδυάσουν το Node.js με τεχνολογίες προγράμματος περιήγησης για να δημιουργήσουν εφαρμογές υπολογιστή. Με αρχική ονομασία node-webkit, προέκυψε από το Open Source Technology Center της Intel, με την ανάπτυξη να ξεκινά το 2011 και τις δημόσιες εκδόσεις να εμφανίζονται έως το 2012.
Η κεντρική του ιδέα ήταν απλή: να επιτρέπει στη JavaScript που εκτελείται σε ένα περιβάλλον παρόμοιο με πρόγραμμα περιήγησης να αποκτά άμεση πρόσβαση σε μονάδες Node.js. Αυτό κατέστησε δυνατή την ανάπτυξη εφαρμογών υπολογιστή με γνωστές τεχνολογίες ιστού, χωρίς να απαιτείται η δημιουργία μιας παραδοσιακής εγγενούς διεπαφής.
Το Electron εμφανίστηκε το 2013 με το όνομα Atom Shell. Το GitHub το ανέπτυξε ως βάση για το Atom, τον επεξεργαστή κώδικά του, ο οποίος εισήλθε σε δημόσια δοκιμαστική έκδοση το 2014. Το Electron σχεδιάστηκε ως εναλλακτική στα διαθέσιμα τότε πλαίσια εφαρμογών υπολογιστή που βασίζονταν σε τεχνολογίες ιστού, συμπεριλαμβανομένων των node-webkit και Chromium Embedded Framework.
Παρότι και τα δύο πλαίσια είχαν ως κοινό στόχο να καταστήσουν την ανάπτυξη εφαρμογών υπολογιστή προσιτή στους προγραμματιστές ιστού, το Electron υιοθέτησε μια διαφορετική αρχιτεκτονική, η οποία διαχώριζε τις λειτουργίες επιπέδου εφαρμογής από το περιεχόμενο ιστού. Αυτή η προσέγγιση γινόταν ολοένα και πιο ελκυστική καθώς οι προγραμματιστές άρχιζαν να δημιουργούν πιο σύνθετες εφαρμογές.
Στη συνέχεια, το Electron υιοθετήθηκε από νεοφυείς επιχειρήσεις και μεγάλες εταιρείες τεχνολογίας. Το GitHub, το Slack, η Microsoft και άλλοι οργανισμοί συνέβαλαν στην ανάπτυξη και στο οικοσύστημά του. Το 2019, το Electron εντάχθηκε στο OpenJS Foundation, περνώντας από την ιδιοκτησία του GitHub σε ένα ουδέτερο ίδρυμα ανοιχτού κώδικα.
Σήμερα, το Electron λειτουργεί με ένα καθιερωμένο μοντέλο διακυβέρνησης και ομάδες εργασίας που καλύπτουν την ασφάλεια, τις εκδόσεις, τα API, τις αναβαθμίσεις Chromium και Node.js, καθώς και άλλους τομείς. Μηχανικοί συνδεδεμένοι με οργανισμούς όπως η Microsoft και το Slack έχουν συμμετάσχει στη συντήρηση και τη διακυβέρνησή του.
Το NW.js έχει επίσης εταιρικές καταβολές, καθώς δημιουργήθηκε στην Intel. Ωστόσο, το σημερινό του οικοσύστημα είναι μικρότερο και δεν παρουσιάζει το ίδιο εύρος ορατής συμμετοχής από μεγάλες εταιρείες λογισμικού για υπολογιστές.
Αυτή η ιστορία αναδεικνύει μια σημαντική διάκριση: η πρωτιά δεν εγγυάται μακροπρόθεσμη κυριαρχία. Το NW.js βοήθησε στην καθιέρωση της ιδέας της δημιουργίας εφαρμογών υπολογιστή με Chromium και Node.js, αλλά το Electron προσέλκυσε ένα ευρύτερο οικοσύστημα προγραμματιστών, συντηρητών και εμπορικών χρηστών.
Για περισσότερες πληροφορίες, δείτε τη δεκαετή αναδρομή του Electron, την ένταξη του Electron στο OpenJS Foundation και την ιστορία του έργου node-webkit.
Αρχιτεκτονική: Κύριες διεργασίες έναντι άμεσης ενσωμάτωσης του Node.js
Το Electron χρησιμοποιεί μια αρχιτεκτονική πολλαπλών διεργασιών που έχει κληρονομήσει από το Chromium. Κάθε εφαρμογή Electron διαθέτει μια κύρια διεργασία, υπεύθυνη για τη διαχείριση παραθύρων, συμβάντων του κύκλου ζωής της εφαρμογής, ενσωματώσεων με το λειτουργικό σύστημα και λειτουργιών με αυξημένα προνόμια. Το περιεχόμενο ιστού εκτελείται σε ξεχωριστές διεργασίες απόδοσης, οι οποίες επικοινωνούν με την κύρια διεργασία μέσω επικοινωνίας μεταξύ διεργασιών (IPC).
Αυτό δημιουργεί έναν διαχωρισμό ανάμεσα στη λογική της εφαρμογής και στον κώδικα της διεπαφής χρήστη. Μια διεργασία απόδοσης συνήθως συμπεριφέρεται όπως ένα συμβατικό περιβάλλον προγράμματος περιήγησης, ενώ η κύρια διεργασία χειρίζεται λειτουργίες που απαιτούν πρόσβαση στο Node.js ή σε εγγενή API. Το Electron παρέχει επίσης σενάρια προφόρτωσης και το API contextBridge, επιτρέποντας στους προγραμματιστές να εκθέτουν επιλεγμένες λειτουργίες στη διεργασία απόδοσης χωρίς να παραχωρούν απεριόριστη πρόσβαση στο Node.js.
Το NW.js ακολουθεί διαφορετική προσέγγιση. Σχεδιάστηκε ώστε να διαθέτει τις λειτουργίες του Node.js απευθείας μέσα στις εφαρμογές ιστού. Σε μια σελίδα εφαρμογής που πληροί τις προϋποθέσεις, οι προγραμματιστές μπορούν να έχουν πρόσβαση σε μονάδες Node.js χρησιμοποιώντας γνωστά API JavaScript, χωρίς να δημιουργούν ξεχωριστή διεπαφή IPC για κάθε λειτουργία.
Για παράδειγμα, μια τοπικά πακεταρισμένη εφαρμογή NW.js μπορεί να χρησιμοποιήσει το Node.js απευθείας από ένα σενάριο που εκτελείται στη σελίδα της:
const fs = require('node:fs');
const content = fs.readFileSync('notes.txt', 'utf8');
document.body.textContent = content;
Αυτή η απλότητα είναι ένα από τα χαρακτηριστικά πλεονεκτήματα του NW.js. Οι προγραμματιστές μπορούν να συνδυάζουν API προγράμματος περιήγησης και λειτουργίες Node.js χωρίς να χρειάζεται απαραίτητα να διαχωρίζουν τον κώδικά τους σε διακριτά επίπεδα εφαρμογής. Το NW.js υποστηρίζει επίσης ξεχωριστά περιβάλλοντα εκτέλεσης JavaScript και μια λειτουργία μικτού περιβάλλοντος εκτέλεσης, προσφέροντας ευελιξία στον τρόπο αλληλεπίδρασης των λειτουργιών του προγράμματος περιήγησης και του Node.js.
Το Electron γενικά ενθαρρύνει έναν πιο σαφή διαχωρισμό. Για την ανάγνωση ενός αρχείου από τη διεργασία απόδοσης, μια τυπική ασφαλής εφαρμογή Electron θα εξέθετε μια περιορισμένη λειτουργία μέσω ενός σεναρίου προφόρτωσης και θα χειριζόταν την πρόσβαση στο σύστημα αρχείων στην κύρια διεργασία.
Αυτή η προσέγγιση απαιτεί επιπλέον κώδικα, αλλά καθιστά σαφέστερο το όριο ανάμεσα στις λειτουργίες της εφαρμογής με αυξημένα προνόμια και στο περιεχόμενο ιστού. Για σύνθετες εφαρμογές, αυτός ο διαχωρισμός μπορεί να βελτιώσει τη συντηρησιμότητα και να διευκολύνει την κατανόηση των ευθυνών ασφαλείας.
Καμία αρχιτεκτονική δεν είναι καλύτερη σε όλες τις περιπτώσεις. Το NW.js μπορεί να φαίνεται πιο απλό για μικρότερες εφαρμογές ή έργα που επωφελούνται από την άμεση ενσωμάτωση του Node.js. Το Electron παρέχει μια δομή που μπορεί να αποδειχθεί ιδιαίτερα χρήσιμη όσο αυξάνεται η πολυπλοκότητα μιας εφαρμογής.
Επιδόσεις, χρήση μνήμης και μέγεθος εφαρμογής
Επειδή τόσο το Electron όσο και το NW.js ενσωματώνουν το Chromium και το Node.js, κανένα από τα δύο πλαίσια δεν έχει ένα εγγενές αρχιτεκτονικό πλεονέκτημα αντίστοιχο με τη διαφορά μεγέθους ανάμεσα στο Electron και το Tauri.
Ακόμη και μια απλή εφαρμογή που δημιουργείται με οποιοδήποτε από τα δύο πλαίσια πρέπει να διανέμεται μαζί με ένα ογκώδες περιβάλλον εκτέλεσης. Και τα δύο πλαίσια μπορούν επίσης να δημιουργούν πολλαπλές διεργασίες Chromium, κάτι που αυξάνει την κατανάλωση μνήμης, αλλά βοηθά στην απομόνωση των φόρτων εργασίας και στη βελτίωση της απόκρισης.
Η άμεση ενσωμάτωση του Node.js με το περιβάλλον του προγράμματος περιήγησης στο NW.js μπορεί να μειώσει την ανάγκη για IPC σε ορισμένες λειτουργίες. Ανάλογα με τη διαμόρφωση του περιβάλλοντος εκτέλεσης, ο κώδικας JavaScript μπορεί να αλληλεπιδρά απευθείας με τις λειτουργίες του Node.js, απλοποιώντας ορισμένες λειτουργίες και ενδεχομένως μειώνοντας το πρόσθετο κόστος επικοινωνίας.
Το Electron διαχωρίζει τις λειτουργίες με αυξημένα προνόμια από τον κώδικα της διεργασίας απόδοσης, κάτι που εισάγει IPC όταν διασχίζονται όρια διεργασιών. Ωστόσο, αυτό δεν σημαίνει ότι το Electron είναι εγγενώς πιο αργό. Το πρόσθετο κόστος μπορεί να είναι αμελητέο για τις συνηθισμένες αλληλεπιδράσεις με τη διεπαφή χρήστη, ενώ ο διαχωρισμός μπορεί να βοηθήσει ώστε οι απαιτητικές εργασίες του backend να μην επιβαρύνουν τη διεργασία απόδοσης.
Στην πράξη, οι επιδόσεις μιας εφαρμογής εξαρτώνται σε μεγάλο βαθμό από τον τρόπο με τον οποίο οι προγραμματιστές χρησιμοποιούν το Chromium, διαχειρίζονται τις διεργασίες παρασκηνίου, υλοποιούν την απόδοση και χειρίζονται την κατάσταση της εφαρμογής.
Για ουσιαστικές συγκρίσεις, οι προγραμματιστές θα πρέπει να αξιολογούν:
- Χρόνο εκκίνησης: Πόσο γρήγορα η εφαρμογή γίνεται διαδραστική.
- Χρήση μνήμης: Τόσο την κατανάλωση σε αδράνεια όσο και τη χρήση μνήμης υπό ρεαλιστικούς φόρτους εργασίας.
- Χρήση CPU: Την κατανάλωση πόρων κατά την απόδοση και τις λειτουργίες παρασκηνίου.
- Μέγεθος εφαρμογής: Το μέγεθος λήψης και τις απαιτήσεις αποθηκευτικού χώρου μετά την εγκατάσταση.
- Απόκριση: Πόσο καλά συμπεριφέρεται η διεπαφή κατά τη διάρκεια εργασιών που απαιτούν πολλούς πόρους.
Κανένα από τα δύο πλαίσια δεν θα πρέπει να θεωρείται κατηγορηματικά ταχύτερο χωρίς μετρήσεις σε μια αντιπροσωπευτική εφαρμογή. Οι διαφορές στις εκδόσεις Chromium, στις ρυθμίσεις μεταγλώττισης, στις εγγενείς μονάδες και στην αρχιτεκτονική της εφαρμογής μπορούν να επηρεάσουν τα αποτελέσματα των δοκιμών επιδόσεων.
Για τους προγραμματιστές που επιδιώκουν κυρίως να μειώσουν το μέγεθος της εφαρμογής, η μετάβαση από το Electron στο NW.js είναι απίθανο να προσφέρει τη θεαματική εξοικονόμηση που συνδέεται με τη μετάβαση σε ένα πλαίσιο που χρησιμοποιεί το webview του συστήματος.
Ασφάλεια: Διαφορετικές προσεγγίσεις στην πρόσβαση σε εγγενείς λειτουργίες
Η ασφάλεια είναι μία από τις σημαντικότερες διαφορές μεταξύ Electron και NW.js, ιδιαίτερα για εφαρμογές που εμφανίζουν απομακρυσμένους ιστοτόπους ή άλλο μη έμπιστο περιεχόμενο.
Το Electron παρέχει διάφορους μηχανισμούς ασφαλείας, συμπεριλαμβανομένων της απομόνωσης σε sandbox του Chromium, της απομόνωσης περιβάλλοντος εκτέλεσης και της δυνατότητας απενεργοποίησης της ενσωμάτωσης του Node.js στις διεργασίες απόδοσης. Οι σύγχρονες εκδόσεις του Electron ενεργοποιούν σημαντικές προστασίες από προεπιλογή, ενώ η τεκμηρίωση ασφαλείας του έργου συνιστά έντονα να διατηρούνται τα εγγενή API με αυξημένα προνόμια ξεχωριστά από το απομακρυσμένο περιεχόμενο.
Το NW.js επιτρέπει πιο άμεση πρόσβαση στο Node.js από σελίδες εφαρμογής που πληρούν τις προϋποθέσεις, κάτι που μπορεί να απλοποιήσει την ανάπτυξη, αλλά απαιτεί επίσης προσεκτική εξέταση του περιεχομένου στο οποίο παραχωρούνται αυτά τα προνόμια.
Το NW.js διακρίνει ανάμεσα σε κανονικά πλαίσια και σε πλαίσια με ενεργοποιημένο το Node. Υποστηρίζει επίσης ρυθμίσεις όπως το node-remote, για να ελέγχει ποιες απομακρυσμένες διευθύνσεις URL μπορούν να έχουν πρόσβαση στις λειτουργίες του Node.js. Το στοιχείο webview του μπορεί να εμφανίζει φιλοξενούμενο περιεχόμενο σε ξεχωριστή διεργασία, χωρίς να του παραχωρεί αυτόματα τα προνόμια της εφαρμογής.
| Ζήτημα ασφαλείας | Electron | NW.js |
|---|---|---|
| Προνομιακή πρόσβαση στο Node.js | Κυρίως μέσω της κύριας διεργασίας και ελεγχόμενων γεφυρών | Διαθέσιμη απευθείας σε κατάλληλα περιβάλλοντα εκτέλεσης της εφαρμογής |
| Απομόνωση απομακρυσμένου περιεχομένου | Διεργασίες απόδοσης και περιεχόμενο ιστού σε sandbox | Κανονικά πλαίσια και απομονωμένα webview |
| Έκθεση εγγενών API | IPC και contextBridge | Περιβάλλοντα εκτέλεσης Node και παραμετροποιήσιμη πρόσβαση |
| Απομόνωση σε sandbox του Chromium | Υποστηρίζεται με ασφαλείς προεπιλογές | Εξαρτάται από τον τύπο πλαισίου και τη διαμόρφωση |
| Ευθύνη προγραμματιστή | Επικύρωση IPC, πλοήγησης, δικαιωμάτων και εκτεθειμένων API | Έλεγχος πλαισίων με αυξημένα προνόμια, πρόσβασης στο Node και απομακρυσμένου περιεχομένου |
Ούτε το Electron ούτε το NW.js θα πρέπει να αντιμετωπίζεται αυτόματα ως ασφαλές πρόγραμμα περιήγησης γενικής χρήσης. Οι εφαρμογές που εμφανίζουν αυθαίρετους ιστοτόπους τρίτων απαιτούν πρόσθετους ελέγχους ασφαλείας, ανεξάρτητα από το πλαίσιο.
Για εφαρμογές που αναπτύσσονται εξ ολοκλήρου γύρω από έμπιστο τοπικό περιεχόμενο, η άμεση ενσωμάτωση του NW.js μπορεί να είναι βολική. Για εφαρμογές που χρειάζονται ισχυρό διαχωρισμό ανάμεσα στον κώδικα με αυξημένα προνόμια και στο μη έμπιστο περιεχόμενο ιστού, η αρχιτεκτονική του Electron μπορεί να κάνει αυτά τα όρια πιο σαφή.
Τελικά, η ασφάλεια εξαρτάται από τον σχεδιασμό της εφαρμογής, τη διαμόρφωση, τη διαχείριση εξαρτήσεων και την ταχύτητα με την οποία οι προγραμματιστές εφαρμόζουν τις ενημερώσεις ασφαλείας.
Υιοθέτηση: Το Electron κυριαρχεί στις εφαρμογές υπολογιστή γενικής χρήσης
Μία από τις σημαντικότερες διαφορές μεταξύ Electron και NW.js είναι η υιοθέτησή τους από τους προγραμματιστές λογισμικού για υπολογιστές.
Παρότι είναι το νεότερο έργο, το Electron έχει καθιερωθεί ως ευρέως διαδεδομένο πλαίσιο για εφαρμογές υπολογιστή σε παραγωγική χρήση. Η υιοθέτησή του εκτείνεται σε εργαλεία ανάπτυξης, πλατφόρμες επικοινωνίας, λογισμικό παραγωγικότητας, εφαρμογές σχεδίασης και επιχειρηματικά βοηθητικά προγράμματα.
Μερικά γνωστά παραδείγματα είναι:
| Εταιρεία | Εφαρμογή Electron |
|---|---|
| Microsoft | Visual Studio Code |
| Salesforce | Slack |
| Discord | Discord |
| Notion | Notion |
| Figma | Figma |
| GitHub | GitHub Desktop |
| Signal | Signal Desktop |
| Postman | Postman |
Αυτά τα προϊόντα δείχνουν ότι το Electron μπορεί να υποστηρίξει εξελιγμένες εφαρμογές υπολογιστή που χρησιμοποιούνται από εκατομμύρια ανθρώπους. Η υιοθέτησή του έχει επίσης συμβάλει σε ένα εκτεταμένο οικοσύστημα βιβλιοθηκών, τεκμηρίωσης, εργαλείων αποσφαλμάτωσης και λύσεων πακεταρίσματος.
Η εταιρική συμμετοχή είναι ένα ακόμη πλεονέκτημα. Το Electron αναπτύχθηκε αρχικά από το GitHub και αργότερα προσέλκυσε συνεισφορές από μηχανικούς μεγάλων εταιρειών τεχνολογίας. Η διακυβέρνησή του μέσω του OpenJS Foundation παρέχει μια οργανωτική δομή για συνεργασία, συντήρηση ασφαλείας, διαχείριση εκδόσεων και μακροπρόθεσμη ανάπτυξη.
Αυτό δεν σημαίνει ότι κάθε εταιρεία που χρησιμοποιεί το Electron συνεισφέρει άμεσα στο πλαίσιο, ούτε εγγυάται ότι το Electron θα συντηρείται πάντα καλύτερα. Ωστόσο, ένα ευρέως χρησιμοποιούμενο πλαίσιο με μια ποικιλόμορφη ομάδα εμπορικών ενδιαφερομένων μπορεί να επωφεληθεί από κοινές επενδύσεις στη μηχανική λογισμικού και από πραγματική εμπειρία παραγωγικής χρήσης.
Το NW.js έχει διαφορετικό προφίλ υιοθέτησης. Παρότι έχει χρησιμοποιηθεί για τη δημιουργία εφαρμογών υπολογιστή, σχετικά λίγες γνωστές σύγχρονες εφαρμογές παραγωγικότητας ή επιχειρηματικής χρήσης δηλώνουν δημόσια ότι χρησιμοποιούν το NW.js ως πλαίσιό τους. Πολλές εφαρμογές που αναφέρονται παραδοσιακά στις παρουσιάσεις εφαρμογών NW.js είναι παλαιότερα έργα, γεγονός που καθιστά αυτές τις λίστες λιγότερο χρήσιμες για την αξιολόγηση της σημερινής του υιοθέτησης.
Αυτό δεν σημαίνει ότι το NW.js έχει εγκαταλειφθεί ή δεν χρησιμοποιείται. Συνεχίζει να λαμβάνει εκδόσεις που ενσωματώνουν ενημερωμένες εκδόσεις των Chromium και Node.js. Ωστόσο, το ορατό οικοσύστημά του στο λογισμικό υπολογιστή γενικής χρήσης είναι σημαντικά μικρότερο από εκείνο του Electron.
Για τους προγραμματιστές που επιλέγουν πλαίσιο για μια νέα εμπορική εφαρμογή, αυτή η διάκριση έχει σημασία. Ένα μεγαλύτερο οικοσύστημα συνήθως διευκολύνει την εύρεση υφιστάμενων λύσεων, την πρόσληψη προγραμματιστών με σχετική εμπειρία και την επίλυση προβλημάτων σε περιβάλλον παραγωγής.
Η δημοτικότητα του Electron δεν το καθιστά τεχνικά ανώτερο από κάθε άποψη, αλλά η ευρύτερη υιοθέτησή του και η εταιρική συμμετοχή αποτελούν πρακτικά πλεονεκτήματα που δεν θα πρέπει να παραβλέπονται.
Μπορείτε να εξερευνήσετε περισσότερα παραδείγματα στην επίσημη συλλογή εφαρμογών Electron.
Πού παραμένει δημοφιλές το NW.js: Ανεξάρτητα παιχνίδια
Παρότι το NW.js δεν εκπροσωπείται ευρέως στις μεγάλες σύγχρονες εφαρμογές παραγωγικότητας, συνεχίζει να έχει αξιοσημείωτη παρουσία στην ανάπτυξη παιχνιδιών, ιδιαίτερα μεταξύ ανεξάρτητων προγραμματιστών.
Ένας λόγος είναι η ενσωμάτωσή του σε εργαλεία ανάπτυξης παιχνιδιών όπως το RPG Maker MV. Τα παιχνίδια που δημιουργούνται με το RPG Maker MV μπορούν να χρησιμοποιούν το NW.js ως περιβάλλον εκτέλεσης σε υπολογιστή, επιτρέποντας σε παιχνίδια που βασίζονται σε HTML5 και JavaScript να εκτελούνται ως αυτόνομες εφαρμογές.
Αυτό σημαίνει ότι οι προγραμματιστές μπορεί να χρησιμοποιούν το NW.js έμμεσα μέσω της μηχανής παιχνιδιών τους, αντί να το επιλέγουν ως πλαίσιο εφαρμογών υπολογιστή γενικής χρήσης.
Υπάρχουν επίσης ανεξάρτητα στοιχεία ότι το NW.js συνεχίζει να εμφανίζεται σε παιχνίδια που κυκλοφορούν πρόσφατα. Το SteamDB καταγράφει παιχνίδια που χρησιμοποιούν NW.js εξετάζοντας αυτόματα τις υπογραφές τεχνολογιών στα διανεμόμενα αρχεία τους. Η βάση δεδομένων του περιλαμβάνει παιχνίδια που κυκλοφόρησαν το 2025 και το 2026, παρέχοντας στοιχεία συνεχιζόμενης χρήσης, αντί να βασίζεται αποκλειστικά σε ενδεχομένως παρωχημένες συλλογές εφαρμογών.
Παραδείγματα που συνδέονται με το NW.js περιλαμβάνουν:
| Παιχνίδι | Είδος | Κυκλοφορία στο Steam |
|---|---|---|
| Look Outside | RPG τρόμου | Μάρτιος 2025 |
| OMORI | RPG | Δεκέμβριος 2020 |
| CrossCode | RPG δράσης | Σεπτέμβριος 2018 |
| Fear & Hunger | RPG τρόμου | Δεκέμβριος 2018 |
| Ib | Περιπέτεια τρόμου | Απρίλιος 2022 |
| Saihate Station | Περιπέτεια | Μάρτιος 2025 |
| Sheepy: A Short Adventure | Παιχνίδι πλατφόρμας | Φεβρουάριος 2024 |
Πηγή: Ανίχνευση της τεχνολογίας NW.js από το SteamDB.
Το SteamDB αναγνωρίζει τεχνολογίες αυτόματα από τα αρχεία των παιχνιδιών, επομένως μεμονωμένες ανιχνεύσεις μπορεί να περιέχουν σφάλματα ή να αντιπροσωπεύουν μια ενσωματωμένη εξάρτηση και όχι ένα περιβάλλον εκτέλεσης που επιλέχθηκε σκόπιμα από τον προγραμματιστή. Η παρουσία του NW.js επίσης δεν αποδεικνύει ποια έκδοση του πλαισίου χρησιμοποιεί ένα παιχνίδι ή αν ο προγραμματιστής του το συντηρεί ενεργά.
Παρ' όλα αυτά, αυτά τα παραδείγματα δείχνουν ότι το NW.js παραμένει μέρος του σύγχρονου οικοσυστήματος ανάπτυξης παιχνιδιών.
Αυτό δημιουργεί μια ενδιαφέρουσα διάκριση ανάμεσα στα δύο πλαίσια. Το Electron έχει έντονη παρουσία στις εφαρμογές υπολογιστή γενικής χρήσης, ιδιαίτερα στα εργαλεία παραγωγικότητας και ανάπτυξης. Το NW.js έχει μικρότερη παρουσία σε αυτές τις κατηγορίες, αλλά συνεχίζει να εμφανίζεται σε ανεξάρτητα ανεπτυγμένα παιχνίδια.
Για τους προγραμματιστές που δημιουργούν επιχειρηματικό λογισμικό, εργαλεία επικοινωνίας ή σύνθετες εφαρμογές παραγωγικότητας, το οικοσύστημα του Electron μπορεί να είναι πιο συναφές. Για όσους εργάζονται με το RPG Maker ή συντηρούν παιχνίδια που βασίζονται στο NW.js, το παλαιότερο πλαίσιο παραμένει μια καθιερωμένη και πρακτική επιλογή.
Εμπειρία ανάπτυξης, εργαλεία και μακροπρόθεσμη συντήρηση
Και τα δύο πλαίσια υποστηρίζουν σύγχρονες τεχνολογίες frontend και πακέτα Node.js, καθιστώντας τα προσιτά σε προγραμματιστές που είναι εξοικειωμένοι με την ανάπτυξη ιστού. Ωστόσο, το Electron διαθέτει ένα σημαντικά μεγαλύτερο οικοσύστημα που επικεντρώνεται στο λογισμικό υπολογιστή γενικής χρήσης.
Το NW.js προσφέρει ένα σχετικά απλό μοντέλο ανάπτυξης. Μια απλή εφαρμογή μπορεί να οριστεί με ένα αρχείο δήλωσης package.json και ένα σημείο εισόδου HTML. Οι προγραμματιστές μπορούν να έχουν πρόσβαση σε μονάδες Node.js απευθείας από σελίδες εφαρμογής που πληρούν τις προϋποθέσεις και να χρησιμοποιούν τα API του NW.js για τη διαχείριση παραθύρων, μενού, περιοχών ειδοποιήσεων συστήματος και άλλων λειτουργιών υπολογιστή.
Το Electron συνήθως απαιτεί περισσότερη αρχική δομή. Οι προγραμματιστές δημιουργούν ένα σημείο εισόδου για την κύρια διεργασία, ρυθμίζουν τα παράθυρα της εφαρμογής και διαχειρίζονται την επικοινωνία ανάμεσα στην κύρια διεργασία και τις διεργασίες απόδοσης. Αυτό μπορεί να φαίνεται πιο περίπλοκο για μικρές εφαρμογές, αλλά ενθαρρύνει επίσης τους προγραμματιστές να οργανώνουν τις λειτουργίες της εφαρμογής σε διακριτά επίπεδα.
Το Electron επωφελείται από καθιερωμένα εργαλεία όπως τα Electron Forge και electron-builder, τα οποία παρέχουν λύσεις για το πακετάρισμα, την υπογραφή, τη διανομή και την ενημέρωση εφαρμογών. Η εκτεταμένη υιοθέτησή του σημαίνει επίσης ότι οι προγραμματιστές μπορούν να βρουν περισσότερα παραδείγματα και συζητήσεις της κοινότητας σχετικά με προχωρημένα προβλήματα ανάπτυξης εφαρμογών υπολογιστή.
Το NW.js παρέχει εργαλεία πακεταρίσματος όπως το nw-builder και υποστηρίζει το χειροκίνητο πακετάρισμα. Εκθέτει επίσης API που προέρχονται από την αρχιτεκτονική εφαρμογών και επεκτάσεων του Chromium, κάτι που μπορεί να είναι ελκυστικό για έργα που χρησιμοποιούν ήδη αυτά τα API.
Και τα δύο πλαίσια απαιτούν από τους προγραμματιστές να χειρίζονται τις διαφορές των λειτουργικών συστημάτων, την υπογραφή κώδικα, τη συμβατότητα εγγενών μονάδων και τις ενημερώσεις εφαρμογών. Κανένα δεν εξαλείφει την πολυπλοκότητα της διανομής λογισμικού υπολογιστή παραγωγικής χρήσης.
Το μέγεθος και η σύνθεση του οικοσυστήματος αποκτούν ιδιαίτερη σημασία για τη μακροπρόθεσμη συντήρηση. Οι ομάδες που δημιουργούν εμπορικές εφαρμογές μπορεί να χρειάζονται λύσεις για υπογραφή κώδικα, αυτόματες ενημερώσεις, αναφορές σφαλμάτων κατάρρευσης, προσβασιμότητα, εγγενείς ενσωματώσεις και σφάλματα ειδικά για κάθε πλατφόρμα.
Η ευρύτερη υιοθέτηση του Electron από μεγάλες εταιρείες λογισμικού διευκολύνει την εύρεση καθιερωμένων πρακτικών και επαναχρησιμοποιήσιμων λύσεων για πολλές από αυτές τις απαιτήσεις. Το NW.js παραμένει ικανό, αλλά οι προγραμματιστές μπορεί να βρουν λιγότερα παραδείγματα ή συντηρούμενες ενσωματώσεις για εξειδικευμένες λειτουργίες υπολογιστή.
Για ένα έργο που αναμένεται να συντηρείται για πολλά χρόνια, η ωριμότητα του οικοσυστήματος και οι συνεχιζόμενες επενδύσεις αξίζουν την ίδια προσοχή με τα API του πλαισίου ή τα αποτελέσματα των δοκιμών επιδόσεων.
Γιατί επιλέγουμε το Electron στη WebCatalog
Στη WebCatalog, έχουμε επιλέξει το Electron επειδή η αρχιτεκτονική του ευθυγραμμίζεται στενά με τις απαιτήσεις των προϊόντων μας. Το WebCatalog επιτρέπει στους χρήστες να μετατρέπουν ιστοτόπους σε εφαρμογές υπολογιστή, να διαχειρίζονται ανεξάρτητα πολλαπλούς λογαριασμούς και να οργανώνουν τις εφαρμογές τους σε macOS, Windows και Linux.
Σε αντίθεση με τους προγραμματιστές που δημιουργούν μια συμβατική εφαρμογή υπολογιστή με frontend το οποίο ελέγχουν πλήρως, εμείς πρέπει να υποστηρίζουμε ιστοτόπους που έχουν δημιουργηθεί από χιλιάδες διαφορετικούς προγραμματιστές. Αυτοί οι ιστότοποι μπορεί να βασίζονται σε διαφορετικά συστήματα ελέγχου ταυτότητας, μηχανισμούς αποθήκευσης, API προγράμματος περιήγησης, λειτουργίες πολυμέσων και σύνθετες εφαρμογές JavaScript.
Τόσο το Electron όσο και το NW.js χρησιμοποιούν το Chromium, επομένως προσφέρουν παρόμοια πλεονεκτήματα ως προς τη συμβατότητα της μηχανής περιήγησης. Για εμάς, η διαφορά έγκειται στον βαθμό ελέγχου που παρέχει το πλαίσιο στα παράθυρα της εφαρμογής, στις συνεδρίες περιήγησης, στην πλοήγηση, στα δικαιώματα και στον διαχωρισμό ανάμεσα στον κώδικα της εφαρμογής με αυξημένα προνόμια και στο απομακρυσμένο περιεχόμενο.
Το Electron παρέχει ένα ώριμο σύνολο API για αυτές τις απαιτήσεις. Οι διεπαφές BrowserWindow, webContents και session μάς επιτρέπουν να διαχειριζόμαστε τη συμπεριφορά του προγράμματος περιήγησης σε σχετικά χαμηλό επίπεδο. Τα μόνιμα διαμερίσματα συνεδριών είναι ιδιαίτερα σημαντικά, επειδή επιτρέπουν στους χρήστες να διατηρούν πολλαπλούς λογαριασμούς συνδεδεμένους στον ίδιο ιστότοπο χωρίς να μοιράζονται τα cookie και άλλα δεδομένα συνεδρίας τους.
Το NW.js υποστηρίζει επίσης ενσωματωμένα webview, διαχείριση cookie και διαμερίσματα αποθήκευσης, επομένως αυτές οι δυνατότητες δεν είναι αποκλειστικές του Electron. Ωστόσο, η αποκλειστική διεργασία εφαρμογής του Electron και τα καλά εδραιωμένα API διαχείρισης περιήγησης παρέχουν μια αρχιτεκτονική που εξυπηρετεί αποτελεσματικά τις ανάγκες μας.
Η ασφάλεια είναι ένας ακόμη σημαντικός παράγοντας. Επειδή το WebCatalog εμφανίζει ιστοτόπους τρίτων τους οποίους δεν ελέγχουμε, πρέπει να διαχωρίζουμε προσεκτικά το απομακρυσμένο περιεχόμενο από τις λειτουργίες της εφαρμογής με αυξημένα προνόμια. Το μοντέλο διεργασιών του Electron, η απομόνωση περιβάλλοντος εκτέλεσης και οι μηχανισμοί IPC μάς βοηθούν να διατηρούμε αυτόν τον διαχωρισμό, αν και εξακολουθούμε να πρέπει να υλοποιούμε και να συντηρούμε οι ίδιοι τους κατάλληλους ελέγχους ασφαλείας.
Τέλος, το οικοσύστημα του Electron καθιστά πιο πρακτική την ανάπτυξη και τη συντήρηση για πολλαπλές πλατφόρμες. Οι εφαρμογές μας πρέπει να εκτελούνται σε macOS, Windows και Linux, με υποστήριξη για λειτουργίες ειδικές για κάθε πλατφόρμα, πακετάρισμα, υπογραφή και ενημερώσεις. Τα εργαλεία, η τεκμηρίωση και η εκτεταμένη υιοθέτηση του Electron σε πραγματικές συνθήκες παρέχουν μια ισχυρή βάση για αυτή τη δουλειά.
Εκτιμούμε επίσης το οικοσύστημα μακροπρόθεσμης ανάπτυξης του Electron. Η συμμετοχή μεγάλων εταιρειών τεχνολογίας και η διακυβέρνησή του μέσω του OpenJS Foundation μάς δίνουν μεγαλύτερη εμπιστοσύνη στη διαθεσιμότητα τεχνικών πόρων, συντήρησης ασφαλείας και υποστήριξης από την κοινότητα καθώς εξελίσσονται τα προϊόντα μας.
Αναγνωρίζουμε τα μειονεκτήματα του Electron, ιδιαίτερα το μέγεθος των εφαρμογών και τις απαιτήσεις του σε πόρους. Αντί να αντικαταστήσουμε το πλαίσιο, συνεχίζουμε να διερευνούμε τρόπους μείωσης της περιττής επιβάρυνσης. Για παράδειγμα, έχουμε υλοποιήσει κλώνους APFS για τη μείωση της χρήσης δίσκου από τις παραγόμενες εφαρμογές Mac.
Η απόφασή μας δεν βασίζεται στην πεποίθηση ότι το NW.js αδυνατεί να υποστηρίξει εξελιγμένο λογισμικό. Και τα δύο πλαίσια προσφέρουν τη συνέπεια του Chromium που εκτιμούμε. Για τη WebCatalog, η αρχιτεκτονική του Electron, οι έλεγχοι ασφαλείας, η ευρύτερη υιοθέτησή του σε εφαρμογές γενικής χρήσης και το καθιερωμένο οικοσύστημα μηχανικής λογισμικού το καθιστούν την καταλληλότερη επιλογή.
Πότε εξακολουθεί να έχει νόημα το NW.js
Παρότι το Electron διαθέτει μεγαλύτερο οικοσύστημα, το NW.js διατηρεί ορισμένα ουσιαστικά πλεονεκτήματα που οι προγραμματιστές θα πρέπει να λάβουν υπόψη.
Το πιο χαρακτηριστικό γνώρισμά του είναι η δυνατότητα άμεσης πρόσβασης στο Node.js από περιβάλλοντα εκτέλεσης του προγράμματος περιήγησης που πληρούν τις προϋποθέσεις. Για τους προγραμματιστές που μετατρέπουν μια υπάρχουσα εφαρμογή ιστού σε εφαρμογή υπολογιστή, αυτό μπορεί να προσφέρει έναν βολικό τρόπο προσθήκης πρόσβασης στο σύστημα αρχείων, ενσωματώσεων με το λειτουργικό σύστημα και άλλων εγγενών λειτουργιών, χωρίς να σχεδιάσουν ξεχωριστό επίπεδο επικοινωνίας.
Το NW.js μπορεί να είναι καλή επιλογή όταν:
- Δημιουργείτε παιχνίδια με μια υπάρχουσα αλυσίδα εργαλείων που βασίζεται στο NW.js. Οι προγραμματιστές που χρησιμοποιούν το RPG Maker MV ή συντηρούν έργα που εξαρτώνται από το NW.js μπορεί να έχουν ελάχιστους λόγους να αλλάξουν πλαίσιο.
- Η άμεση ενσωμάτωση του Node.js είναι επιθυμητή. Η εφαρμογή μπορεί να επωφεληθεί από την άμεση πρόσβαση στις λειτουργίες του Node.js μέσα από την έμπιστη διεπαφή της.
- Η εφαρμογή είναι σχετικά απλή. Ένα μικρότερο έργο μπορεί να μη χρειάζεται τον πιο σαφή διαχωρισμό του Electron ανάμεσα στη λογική της κύριας διεργασίας και της διεργασίας απόδοσης.
- Το έργο χρησιμοποιεί ήδη το NW.js. Η μετάβαση στο Electron μπορεί να προσφέρει μικρό όφελος αν η υπάρχουσα εφαρμογή είναι σταθερή και συντηρείται σωστά.
- Συγκεκριμένα API εφαρμογών του Chromium είναι σημαντικά. Το NW.js παρέχει πρόσβαση σε υποστηριζόμενα API του Chrome που μπορεί να είναι χρήσιμα για συγκεκριμένες εφαρμογές.
Το NW.js εξακολουθεί επίσης να συντηρείται ενεργά. Οι συνεχιζόμενες ενημερώσεις του Chromium δείχνουν ότι συνεχίζει να εξελίσσεται παράλληλα με την πλατφόρμα ιστού.
Για τους προγραμματιστές που συντηρούν μια υπάρχουσα εφαρμογή ή ένα παιχνίδι NW.js, η μετάβαση στο Electron θα απαιτούσε αξιολόγηση των αρχιτεκτονικών διαφορών, των αλλαγών στο πακετάρισμα και των απαιτήσεων συμβατότητας. Εκτός αν υπάρχει σαφές τεχνικό ή επιχειρηματικό όφελος, η διατήρηση του υπάρχοντος πλαισίου μπορεί να είναι πιο πρακτική.
Electron έναντι NW.js: Ποιο θα πρέπει να επιλέξετε;
Και τα δύο πλαίσια είναι ικανά να δημιουργήσουν εφαρμογές υπολογιστή πολλαπλών πλατφορμών. Για νέα έργα, η επιλογή εξαρτάται σε μεγάλο βαθμό από το πώς θέλουν οι προγραμματιστές να δομήσουν τον κώδικά τους και ποιο οικοσύστημα υποστηρίζει καλύτερα τις απαιτήσεις τους.
| Η προτεραιότητά σας | Καλύτερη αφετηρία | Γιατί |
|---|---|---|
| Μεγάλες, σύνθετες εφαρμογές υπολογιστή | Electron | Καθιερωμένη αρχιτεκτονική και οικοσύστημα |
| Λογισμικό παραγωγικότητας ή επιχειρηματικής χρήσης για ευρύ κοινό | Electron | Πολύ ευρύτερη υιοθέτηση σε αυτές τις κατηγορίες |
| Μακροπρόθεσμο οικοσύστημα και εταιρική συμμετοχή | Electron | OpenJS Foundation και σημαντικοί συνεισφέροντες του κλάδου |
| Παιχνίδια που δημιουργούνται με το RPG Maker MV | NW.js | Καθιερωμένη ενσωμάτωση και αλυσίδα εργαλείων |
| Άμεση πρόσβαση στο Node.js από σελίδες εφαρμογής | NW.js | Βασικό αρχιτεκτονικό χαρακτηριστικό |
| Σαφής διαχωρισμός μεταξύ διεπαφής χρήστη και κώδικα με αυξημένα προνόμια | Electron | Μοντέλο κύριας διεργασίας/διεργασίας απόδοσης και IPC |
| Εκτεταμένα εργαλεία πακεταρίσματος και διανομής | Electron | Ώριμο οικοσύστημα εργαλείων |
| Υπάρχουσα εφαρμογή NW.js | NW.js | Αποφυγή περιττής μετάβασης |
| Συνέπεια του Chromium σε διαφορετικές πλατφόρμες υπολογιστή | Οποιοδήποτε | Και τα δύο ενσωματώνουν το Chromium |
| Ελάχιστο μέγεθος εφαρμογής | Κανένα δεν έχει σαφές πλεονέκτημα | Και τα δύο ενσωματώνουν το Chromium και το Node.js |
| Διαχείριση συνεδριών περιήγησης και παραθύρων | Electron | Ώριμα, εξειδικευμένα API |
| Άφθονοι πόροι και παραδείγματα από την κοινότητα | Electron | Μεγαλύτερη υιοθέτηση σε εφαρμογές γενικής χρήσης |
Για τις περισσότερες ομάδες που ξεκινούν μια σημαντική νέα εφαρμογή υπολογιστή, το Electron αποτελεί την ισχυρότερη προεπιλογή. Η αρχιτεκτονική του, το οικοσύστημα, οι οδηγίες ασφαλείας, η εταιρική συμμετοχή και η εκτεταμένη υιοθέτηση σε παραγωγικά περιβάλλοντα το καθιστούν πρακτικό πλαίσιο για μακροπρόθεσμη ανάπτυξη.
Το NW.js εξακολουθεί να αξίζει να εξεταστεί για έργα που επωφελούνται από την άμεση ενσωμάτωση του Node.js, ροές εργασίας ανάπτυξης παιχνιδιών που ήδη εξαρτώνται από αυτό ή καθιερωμένες βάσεις κώδικα NW.js. Μπορεί να είναι απλούστερο για ορισμένες περιπτώσεις χρήσης, ενώ η βάση του στο Chromium παρέχει ευρεία συμβατότητα με την πλατφόρμα ιστού.
Οι προγραμματιστές θα πρέπει επίσης να θυμούνται ότι κανένα από τα δύο πλαίσια δεν είναι ιδιαίτερα ελαφρύ. Αν το μικρό μέγεθος εφαρμογής και η χαμηλή βασική κατανάλωση πόρων αποτελούν τις κύριες προτεραιότητες, ίσως αξίζει να εξεταστούν εναλλακτικές όπως το Tauri.
Τελικές σκέψεις
Το Electron και το NW.js έχουν περισσότερες ομοιότητες παρά διαφορές. Και τα δύο συνδυάζουν το Chromium και το Node.js, ώστε οι προγραμματιστές να μπορούν να δημιουργούν εφαρμογές υπολογιστή πολλαπλών πλατφορμών χρησιμοποιώντας γνωστές τεχνολογίες ιστού. Και τα δύο υποστηρίζουν σύγχρονα πλαίσια JavaScript, εγγενή ενσωμάτωση με το λειτουργικό σύστημα και εξελιγμένες εμπειρίες χρήσης στον υπολογιστή.
Το NW.js προηγήθηκε, παρουσιάζοντας τη δική του προσέγγιση στον συνδυασμό του Node.js με τεχνολογίες ιστού πριν υπάρξει το Electron. Ωστόσο, το Electron στη συνέχεια έγινε το πιο ευρέως υιοθετημένο πλαίσιο για εφαρμογές υπολογιστή γενικής χρήσης, επωφελούμενο από την αρχική επένδυση του GitHub, τις συνεισφορές μεγάλων εταιρειών τεχνολογίας και τη διακυβέρνηση μέσω του OpenJS Foundation.
Τα πρότυπα υιοθέτησής τους διαφέρουν αισθητά. Το Electron αποτελεί τη βάση δημοφιλών εφαρμογών παραγωγικότητας, επικοινωνίας και ανάπτυξης που χρησιμοποιούνται από εκατομμύρια ανθρώπους. Το NW.js είναι λιγότερο ορατό σε αυτή την αγορά, αλλά συνεχίζει να έχει ουσιαστική παρουσία στα ανεξάρτητα παιχνίδια, συμπεριλαμβανομένων τίτλων που βασίζονται στο RPG Maker και παιχνιδιών που κυκλοφόρησαν πρόσφατα.
Στη WebCatalog, επιλέγουμε το ίδιο πλαίσιο με πολλούς μεγάλους δημιουργούς λογισμικού για υπολογιστές. Το Electron μάς παρέχει τη συνέπεια του Chromium, τις δυνατότητες διαχείρισης περιήγησης, την αρχιτεκτονική ασφαλείας και τα εργαλεία πολλαπλών πλατφορμών που απαιτούνται για την υποστήριξη μιας μεγάλης ποικιλίας εφαρμογών ιστού σε macOS, Windows και Linux.
Το NW.js δεν είναι ξεπερασμένο και η συνεχιζόμενη χρήση του στην ανάπτυξη παιχνιδιών δείχνει ότι παραμένει χρήσιμο. Όμως, για τους προγραμματιστές που ξεκινούν μια νέα εφαρμογή υπολογιστή γενικής χρήσης, το ευρύτερο οικοσύστημα του Electron, τα καθιερωμένα εργαλεία, η εταιρική συμμετοχή και η μεγαλύτερη κοινότητα το καθιστούν την πιο πρακτική προεπιλογή.
Τελικά, η καλύτερη επιλογή εξαρτάται από τις απαιτήσεις της εφαρμογής, την εμπειρία της ομάδας ανάπτυξης και το μακροπρόθεσμο κόστος συντήρησης του λογισμικού.


