NW.js, ब्रैकेट-शेल और इलेक्ट्रॉन के बीच कार्यात्मक अंतर क्या हैं?


151

अब जबकि TideSDK प्रभावी रूप से मर चुका है, मैं HTML / CSS / JS अनुप्रयोगों को स्टैंड-अलोन डेस्कटॉप अनुप्रयोगों के रूप में चलाने के लिए वैकल्पिक 'रैपर' में देख रहा हूँ। मेरे द्वारा अब तक चलाए गए तीन व्यवहार्य विकल्प NW.js (पूर्व में नोड-वेबकिट), ब्रैकेट-शेल और इलेक्ट्रॉन (पूर्व में परमाणु-शेल) हैं।

समस्या यह है कि फीचर सेट, अनुकूलता आदि के मामले में तीनों के बीच पर्याप्त रूप से पूर्ण तुलना नहीं दिखाई देती है, मैं इसे (उद्देश्य) अंतरों के बीच अधिक-या-कम विहित धागे में बदलने की उम्मीद कर रहा हूं। तीनों के संबंध में, विशेष रूप से:

  • मंच का समर्थन ; ऑपरेटिंग सिस्टम, निर्भरता आदि।
  • जहां तक ​​एचटीएमएल 5, सीएसएस 3 और जावास्क्रिप्ट का संबंध है, भाषा की सुविधा का समर्थन है"HTML5 वीडियो काम करता है, और यदि हाँ, तो कोडेक्स क्या उपलब्ध हैं जैसी चीजें सोचें ?"
  • गैर-मानक अतिरिक्त सुविधाएँ , जैसे कि ट्रे आइकन, पॉपअप सूचनाएं और ओएस-प्रदान की गई मेनू बार।
  • व्यापकता ; जैसे। देशी कोड में 'प्लग' करने की क्षमता, Node.js से बात करें, और इसी तरह।
  • वास्तुकला ; विशेष रूप से वास्तुशिल्प अंतर जो एक डेवलपर के रूप में दैनिक उपयोग को प्रभावित करते हैं।
  • डिबगिंग ; इसमें शामिल थे विकास उपकरण, आमतौर पर उपयोग किए जाने वाले उपकरणों की संगतता node-inspector, आदि।
  • ... और इसी तरह।

एप्लिकेशन डेवलपर के रूप में उनके बीच चयन करते समय उद्देश्य, तकनीकी अंतर क्या हैं?


क्या आपको इस बीच के मतभेदों को देखने का कोई सौभाग्य मिला है? इस सप्ताह के अंत में कुछ खुदाई कर सकते हैं
स्टीफन

@stefan अभी तक नहीं, नहीं: / मैंने एक व्यावहारिक अर्थ में नोड-वेबकिट के साथ थोड़ा प्रयोग किया है, लेकिन अभी तक इससे आगे नहीं बढ़ा है। मतभेदों के औपचारिक प्रलेखन की तलाश में चारों ओर नहीं
पहुंची

3
खैर, एटम-शेल टीम द्वारा उल्लिखित नोड-वेबकिट और परमाणु-शेल के बीच मुख्य अंतर है, github.com/atom/atom-shell/blob/master/docs/development/…
sepulchered

2
कमरे में हाथी के बारे में कैसे: डिबगिंग। मैं nw.js का उपयोग कर रहा हूं और पाया गया कि विकसित करने के लिए लिनक्स प्लेटफॉर्म का उपयोग करते समय डिबगिंग में काफी कमी है। बड़े अनुप्रयोगों को विकसित करने के लिए, डिबगिंग एक महत्वपूर्ण विशेषता IMO है। क्या हम डीबगिंग को बात करने के लिए वांछनीय सुविधाओं की सूची में जोड़ सकते हैं?
टिमोथी सी। क्विन

@JavaScriptDude धन्यवाद, मैंने उस सूची में जोड़ दिया है।
स्वेन स्लोटवेग

जवाबों:


42

मैंने लगभग दो महीने पहले इसी तरह का शोध किया था, और अंत में मैं नोड-वेबकिट के साथ गया था। नोड-वेबकिट पर सबसे बड़ा उल्टा नोड.जेएस और एनपीएम है। एनपीएम का पैकेज प्रबंधन वास्तव में अच्छा है, और नोड ने अच्छी तरह से फाइल सिस्टम एक्सेस किया है।

ब्रैकेट-शेल दिलचस्प लग रहा था, लेकिन एक अच्छी आईडीई के अलावा मुझे वास्तव में ऐसा नहीं मिला जो इसे बाकी की तुलना में अच्छा या बेहतर बना। वे बहुत स्पष्ट हैं कि "ब्रैकेट-शेल केवल ब्रैकेट प्रोजेक्ट द्वारा उपयोग के लिए बनाए रखा गया है", कि चीखें मेरे पास भाग जाती हैं।

https://github.com/adobe/brackets-shell#overview

एटम-शेल हाल ही में सक्रिय प्रतीत होता है, लेकिन ऐसा लगता है कि कोष्ठक में बहुत कुछ ऐसा है कि वे वास्तव में लेखन और संपादक / आईडीई हैं जो कि बस एक वेबकिट रनटाइम से जुड़ा होना चाहिए। यह भी नोड के ऊपर बनाया गया है ।js. यह आपके मध्य विद्यालय रसायन विज्ञान की याद दिलाए बिना ऑनलाइन सामान की खोज करने में मुश्किल होने का नकारात्मक पक्ष है।

मैं वास्तव में एक नया संपादक नहीं चाहता, और अधिकांश प्रोग्रामर अपने पसंदीदा पहले से ही हैं। वास्तविक अनुप्रयोग विकास के लिए, वे बहुत ही काम करते हैं, और, क्योंकि वे सभी वेबकिट का उपयोग करते हैं। आप मूल रूप से 90-95% इसे एक वेबसाइट की तरह लिखते हैं, और फिर देशी भागों और कुछ विन्यास से निपटते हैं।

ये चीजें उन तीनों प्लेटफार्मों के लिए सही हैं - विंडोज, मैक और लिनक्स भाषा समर्थन पर चलती हैं - एचटीएमएल 5, सीएसएस 3 और जावास्क्रिप्ट: जब से वे जावास्क्रिप्ट चलाते हैं आप लगभग किसी भी पुस्तकालय / रूपरेखा को डाउनलोड कर सकते हैं और जिसे आप चाहते हैं चला सकते हैं।

वेबकिट पर बड़ी चेतावनी कोडेक समर्थन है। आमतौर पर आपको गैर-मुक्त वीडियो कोडेक के साथ समस्याएँ होंगी, जब तक कि आप उनका समर्थन करने के लिए dll / so का पुनर्निर्माण नहीं करेंगे। उदाहरण के लिए शिप किया गया नोड-वेबकिट mp4 वीडियो नहीं चलाएगा।


क्या आप इस बात पर विस्तार से बता सकते हैं कि क्या ब्रैकेट-शेल और परमाणु-शेल में MP4 प्लेबैक के संबंध में कोई अंतर है? यह आपके उत्तर से स्पष्ट नहीं है कि क्या यह अधिकांश WebKit वितरण में, या सिर्फ नोड-वेबकिट में है।
स्वेन स्लोटवेग

MP4 प्लेबैक एक समस्या है एक webkit मुद्दा है। आपको याद रखना होगा कि वेबकिट वास्तव में दिल में क्रोमियम है, और जब तक एवी टेक खुला और मुफ्त नहीं है, तब तक वे इसे बॉक्स से बाहर का समर्थन नहीं करते हैं। मानक उत्तर को ffmpegsumo को बदलना / पुनर्निर्माण करना है। इसे अपने वर्तमान Chrome इंस्टॉल में से किसी एक के साथ बदलने से लगता है कि यह काफी अच्छा है।
जॉन डब्ल्यू। क्लार्क

1
यह सिर्फ ऐसा होता है कि ब्रैकेट बनते हैं bracket-shellऔर एटम बनाया जाता है atom-shell, लेकिन आप उनके साथ कोड बनाने के लिए किसी भी संपादक या पसंद के आईडीई का उपयोग कर सकते हैं। मुझे लगता है कि ओपी चाहता है कि 3 के बीच तकनीकी अंतर पर अधिक हो। यह 3 रनटाइम वातावरण की तरह TodoMVC जैसा कुछ देखने के लिए मीठा होगा।
एहतेश चौधरी

@SvenSlootweg कोडेक समर्थन आपके द्वारा उपयोग किए जा रहे वेबकिट के साथ उपयोग किए जाने वाले पुस्तकालयों के बारे में अधिक है। तीनों क्रोमियम का उपयोग वेबकिट बेस के रूप में कर रहे हैं, इसलिए उन सभी में समान कोडेक मुद्दे हैं, और उन्हें उसी तरह से हल किया जा सकता है।
जॉन डब्ल्यू क्लार्क


40

मैं पिछले कुछ दिनों से एटम-शैल के साथ खेल रहा हूं, और मैं इसे अभी तक प्यार कर रहा हूं।

इसके बारे में सबसे अच्छी बात यह है कि यह GitHub द्वारा समर्थित है .. जो आपको लंबी अवधि के लिए प्लेटफ़ॉर्म में बसने की अनुमति देनी चाहिए, खासकर अगर यह एक बड़ा लाभ प्राप्त करता है। यह स्ट्रॉन्ग्लूप के साथ एक अनुबंध के प्रत्यक्ष Node.js सुधार के सौजन्य से भी संभव है , जो एक प्रमुख Node.js योगदानकर्ता है (वे किसी भी अन्य कंपनी की तुलना में अधिक Node.js कोर डेवलपर्स को रोजगार देने का दावा करते हैं, यहां तक ​​कि जॉयंट भी)।

मैंने इसे शुरू करने के बजाय सहज पाया है। मुझे संरचना को सीखने और अवधारणा को चलाने का पहला प्रमाण मिलने में लगभग एक दिन का समय लगा। बहुत ही शांत।


सर्वाधिक महत्वपूर्ण बिंदु:

  • प्लेटफ़ॉर्म समर्थन: विंडोज, लिनक्स, मैक OSX ( अधिक जानकारी यहाँ )
  • भाषा सुविधा समर्थन: HTML5, CSS3, JS क्रोमियम के माध्यम से - अब तक, शून्य मुद्दे, लेकिन मैंने विशेष रूप से वीडियो का परीक्षण नहीं किया है।
  • मूल विशेषताएं: मूल ऐप मेनू, टास्क ट्रे सपोर्ट, ग्लोबल हॉटकीज़, प्रोटोकॉल हैंडलर सपोर्ट (जो मैंने अब तक देखा है)
  • एक्स्टेंसिबिलिटी: उत्कृष्ट Node.js एकीकरण, क्लाइंट और सर्वर दोनों को "Node.js मॉड्यूल और मूल निवासी" की आवश्यकता हो सकती है। मैंने बिना किसी समस्या के सफलतापूर्वक बोवर लाइब्रेरीज़ (incl jQuery) का भी परीक्षण किया है ।
  • वास्तुकला: अन्य बिंदुओं में शामिल है, लेकिन सामान्य तौर पर इसकी बहुत चिकनी है।

अद्यतन (11/25/14): मैंने अभी तक किसी भी आधिकारिक क्षमता में एटम-शेल के लिए उपयोग मामला नहीं पाया है, लेकिन मैंने इसका उपयोग अपने स्वयं के उपयोग के लिए कुछ छोटे ऐप बनाने के लिए किया है, सबसे जटिल ऐप है जो खींचता है मेरा समय मेरे पीएम सॉफ्टवेयर से लॉग इन करता है और पेपैल चालान बनाता है।

मंच के बारे में मेरी राय सकारात्मक बनी हुई है। यह बहुत बढ़िया है।

अपने समय के चालान ऐप पर मैंने बूटस्ट्रैप 3 के डैशबोर्ड उदाहरण टेम्पलेट और कुछ नोड मॉड्यूल (ब्लूबर्ड, पेपैल एसडीके, टीमवर्क पीएम क्लाइंट) को हल्के से जटिल ऐप बनाने के लिए सफलतापूर्वक लाया । इसमें मुझे कुछ दिन लगे और अपना काम बखूबी करता है।

मैं वास्तव में एटम-शेल के बारे में कुछ भी नकारात्मक नहीं सोच सकता, इसके ठोस, स्थिर, तेज और कोड के लिए आसान। मुझे उम्मीद है इससे किसी को सहायता मिलेगी।


क्या आप विशेष रूप से नोड-वेबकिट के साथ मतभेदों पर विस्तार कर सकते हैं? जहां तक ​​मैं बता सकता हूं, इन बिंदुओं के सभी (अधिकांश?) नोड-वेबकिट द्वारा भी पेश किए जाते हैं, लेकिन मुझे यकीन नहीं है कि कुछ ऐसा हो सकता है जो मुझे याद आ रहा है।
स्वेन स्लोटवेग

हाय ल्यूक क्या यह एटम-शेल एप्लिकेशन को स्वयं अपडेट करना संभव है ...?
मुनीश कपूर

@SvenSlootweg क्षमा करें, मैंने कुछ महीने पहले आपकी टिप्पणी को याद किया; दुर्भाग्य से मैं नोड-वेबकिट से अच्छी तरह से वाकिफ नहीं हूं और दोनों की तुलना प्रभावी ढंग से नहीं कर सका। लेकिन मैंने यह स्ट्रॉन्ग्लूप लेख पढ़ा , जो कम से कम इंगित करता है कि एटम-शेल ने नई जमीन तोड़ दी है। : \
ल्यूक चेवर्स

@MunishKapoor विकास के लिए? आप नवीनतम रिलीज को डाउनलोड कर सकते हैं .. मैं कमोबेश पुराने परमाणु निर्देशिका का नाम बदलकर इसे नए के साथ बदल सकता हूं। उनके पास कुछ घोंघा प्रक्रिया हो सकती है जैसे "एनपीएम अपडेट" - लेकिन मैंने इसकी जांच नहीं की है। क्लाइंट पर अपने ऐप + एटम शेल को अपडेट करने के लिए, मुझे नहीं लगता कि वे सीधे (बिल्कुल भी) पते हैं और संभवतः उम्मीद करते हैं कि आप इसके लिए इंस्टॉलर या अन्य बाहरी प्लेटफॉर्म का उपयोग करेंगे। मुझे यह लेख उनके डॉक्स में दिलचस्प लगा, हालाँकि।
ल्यूक चैवर्स

1
@Moonwalker हाँ, यह पैकेजिंग के लिए " असर " नामक एक ऐप का उपयोग करता है । (देखें: "एप्लीकेशन पैकेजिंग" )। मुझे यह सिर्फ नोड-वेबकिट / एटम-शेल तुलना भी मिली ।
ल्यूक चेवर्स

22

पूरी तरह से वेब मानकों का समर्थन करने के अलावा, NW.js मूल एप्लिकेशन विकास के लिए गैर-मानक सुविधाओं की एक सूची का समर्थन करता है:

विकी में मेन्यू, ट्रे आदि को देखने के लिए बहुत कुछ है।


3
कियोस्क मोड रोजर पर +1। मैं देख सकता हूं कि भविष्य में मैं इसका उपयोग करूंगा। उम्मीद है कि डिबगिंग क्षमताओं में सुधार होगा इसलिए मैं nw.js पर रह सकता हूं लेकिन अभी मैं गंभीरता से एटम इलेक्ट्रॉन को पानी का परीक्षण करने के लिए स्विच करने पर विचार कर रहा हूं। मैंने nw.js में डिबगिंग को थोड़ा सा चाहा है।
टिमोथी सी। क्विन

मैं "जेएस स्रोत की रक्षा" के समावेश के बारे में थोड़ा चिंतित हूं - यह DRM के समान वर्ग में है, इस अर्थ में कि यह काम नहीं करता है। यह केवल उन लोगों से "सुरक्षा" करता है जिन्हें आपको शुरू करने के खिलाफ "सुरक्षा" करने की आवश्यकता नहीं थी। ऐसा कुछ प्रतीत नहीं होता है जिसे मुझे एक विशेषता के रूप में विज्ञापित किया जाना चाहिए।
स्वेन स्लोटवेग

1
यह वेब के लिए DRM की तरह नहीं है - जेएस प्रोग्रामर को कुछ भी करने में सक्षम होना चाहिए जैसे कि C ++ प्रोग्रामर कर सकते हैं, जिसमें सोर्स कोड को मशीन कोड में संकलित करना शामिल है, जब वे मूल एप्लिकेशन विकसित करते हैं।
रोजर वैंग

@JavaScriptDude क्या आपका मतलब भक्तों से है? अगले संस्करण (0.13) में अनुभव लगभग क्रोम ब्राउज़र जैसा ही होगा।
रोजर वांग

@Roger। देरी से प्रतिक्रिया देने के लिए माफ करें। हाँ, भक्तगण। मैंने पाया कि निम्नलिखित सीमाएँ थीं, जिनमें से कुछ की संभावना स्वयं भक्तों में है: 1) लॉन्च की गई नई खिड़कियों का कोई डिबगिंग नहीं है। 2) रिमोट डिबगिंग कभी काम नहीं किया। 3) ब्रेकपॉइंट्स को याद रखने में असमर्थता, चरों और खोले गए स्रोतों (हर बार रिस्टार्ट ऐप, सभी सेटिंग्स क्लीयर होने पर) 4) (असली बिग्गी) डिबग कोड को आवश्यकता () के साथ लोड करने में असमर्थता।
टिमोथी सी। क्विन

10

मैं पिछले कुछ समय से कोष्ठक-शैल के साथ काम कर रहा हूँ, यहाँ मेरे कुछ निष्कर्ष हैं:

  • ब्रैकेट-शेल मुख्य रूप से ब्रैकेट आईडीई परियोजना के तहत एक शेल के रूप में विकसित किया गया है, लेकिन प्रोजेक्ट किसी भी वेब एप्लिकेशन को चला सकता है। आपको बस इसे अपने स्वयं के html पृष्ठ पर इंगित करने की आवश्यकता है। क्लिंट बेरी ने ऐसा करने के बारे में एक उत्कृष्ट ट्यूटोरियल लिखा: http://clintberry.com/2013/html5-desktop-apps-with-brackets-shell/
  • यह परियोजना एडोब द्वारा समर्थित है और इसमें बहुत सारी गतिविधि है
  • प्रलेखन बेहतर हो सकता है

  • प्लेटफ़ॉर्म समर्थन वे विंडोज, मैक और लिनक्स का समर्थन करते हैं। एक इंस्टॉलर पैकेज भी बनाया जा सकता है। मैंने केवल विन और मैक पर इसका परीक्षण किया, यह बहुत अच्छा काम करता है।

  • फीचर सपोर्ट html5, css3, js। Html5 वीडियो बॉक्स से बाहर काम नहीं करता है, लेकिन सक्षम करने के लिए बहुत आसान है (डिफ़ॉल्ट रूप से ffmpegsumo.dll इंस्टॉलर में कॉपी नहीं किया गया है, यदि आप स्क्रिप्ट को कॉपी करने के लिए इसे बदलते हैं तो यह काम करेगा)।
  • देशी सुविधाएँ मेनू बार, 'ओपन फाइल विथ', फाइल सिस्टम एक्सेस। मैं इनमें से किसी का उपयोग नहीं कर रहा हूं, क्योंकि मुझे केवल नोड प्रक्रिया के साथ संचार की आवश्यकता है।
  • एक्स्टेंसिबिलिटी एक नोडजेएस में बनाया गया है, और आप अपने वेब एप्लिकेशन से नोड के साथ संवाद कर सकते हैं। इस तरह, आप फाइल सिस्टम आदि को एक्सेस करने के लिए नोड का उपयोग कर सकते हैं।
  • वास्तुकला यह परियोजना अच्छी तरह से स्थापित है, जो शेल परियोजना और इसके अंदर चल रहे अपने स्वयं के वेब ऐप के बीच एक अच्छा अलगाव रखती है। अपने स्वयं के अनुप्रयोग में, एक वैश्विक एपशेल ऑब्जेक्ट उपलब्ध है जो आपको ब्रैकेट्स कार्यक्षमता (फाइल सिस्टम एक्सेस, नोड प्रक्रिया के साथ संचार, ...) तक पहुंच प्रदान करता है।

6
ब्रेक्स-शेल से दूर रहने के लिए मुझे जो चीज मिली, वह उनका अपना अवलोकन था। github.com/adobe/brackets-shell "नोट: ब्रैकेट-शेल केवल ब्रैकेट प्रोजेक्ट द्वारा उपयोग के लिए बनाए रखा गया है। हालांकि कुछ लोगों को निश्चित रूप से अन्य परियोजनाओं के लिए ऐप शेल के रूप में इसका उपयोग करने में सफलता मिली है, हम कोई आधिकारिक नहीं प्रदान करते हैं। उसके लिए समर्थन और हमने ऐप शेल को आसानी से पुन: उपयोग करने के लिए एक टन का काम नहीं किया है। कई लोगों को संभवतः नोड-वेबकिट जैसी परियोजना का उपयोग करना आसान होगा, जो डिजाइन द्वारा अधिक सामान्य है। "
जॉन डब्ल्यू। क्लार्क

5

ध्यान देने वाली एक बात (यदि आप ध्यान दें), यह है कि इलेक्ट्रॉन आधिकारिक तौर पर विंडोज विस्टा का समर्थन नहीं करता है। विस्टा की बाजार हिस्सेदारी OSX 10.9 और 10.10 के बीच लगभग आधी है (दोनों इलेक्ट्रॉन द्वारा पूरी तरह से समर्थित हैं)। 2017 तक विस्टा भी Microsoft द्वारा समर्थित है।

NW.js विस्टा में ठीक काम करता है, साथ ही OSX 10.9+ भी। NW.js उबंटू, डेबियन, ज़ोरिन, मंज़रो, आर्क और अन्य अधिकांश डेबियन आधारित लिनक्स ओएस पर काम करता है। इलेक्ट्रॉन ने अपने प्लेटफॉर्म पर उबंटू के विशिष्ट बगों को ठीक करने के लिए पीआर को मना कर दिया है जो संबंधित है।

NW.js XP में भी काम करता है। वर्तमान में बाजार का 18% अभी भी एक्सपी पर है। इसलिए यदि आप डेस्कटॉप एप्लिकेशन अधिक सामान्य उद्देश्य हैं या एक्सपी पर अभी भी देर से अपनाने वालों तक पहुंच चाहते हैं, तो आप शायद NW.js (0.14.7) के साथ बेहतर हैं क्योंकि इलेक्ट्रॉन केवल विन 7 और ऊपर का समर्थन करता है।

यदि आप NW.js 0.12.3 का उपयोग करते हैं, तो आप OSX 10.6+ और डेबियन आधारित लिनक्स ओएस जैसे उबंटू और विन XP + के बहुत पुराने संस्करणों का भी समर्थन कर सकते हैं। यह अनुशंसा की जाती है कि आप विशेष रूप से उन विरासत प्रणालियों के लिए विशेष निर्माण करें, हालांकि नए OS के लिए NW.js के नए संस्करणों का उपयोग करें।


1
एमएस द्वारा किए जाने के बाद क्रोम ने समर्थन बंद नहीं किया - समर्थन 2015 के अंत तक बढ़ा दिया गया था - chrome.blogspot.com/2015/04/…
करोल क्लेप्पी

इलेक्ट्रॉन (एटम-शेल) आरएचईएल 6.6 और उससे नीचे पर नहीं चलता है, और उन डिस्ट्रोस पर स्रोत कोड संकलित नहीं किया जा सकता है।
माइकल क्रुग्लोस


MAS वर्जन बनाने के लिए आप nw-बिल्डर का उपयोग कर सकते हैं । कर रहे हैं हाथ NW.js के लिए बनाता है के रूप में अच्छी तरह से।
जारेडशेड़ा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.