2008-09-24 4 views
14

हाल की बातचीत में, मैंने उल्लेख किया कि मैं एक वेब अनुप्रयोग के लिए जावास्क्रिप्ट का उपयोग कर रहा था। उस टिप्पणी ने एक प्रतिक्रिया को प्रेरित किया: "आपको इसके बजाय फ्लेक्स का उपयोग करना चाहिए। यह आपके विकास का समय कम कर देगा और जावास्क्रिप्ट को डीबग और बनाए रखने में बहुत मुश्किल है। आपको सही नौकरी के लिए सही टूल का उपयोग करने की आवश्यकता है।" अब, मुझे फ्लेक्स के बारे में बहुत कुछ पता नहीं है, लेकिन मुझे व्यक्तिगत रूप से ऐसा नहीं लगता है कि जावास्क्रिप्ट को डिबग करना या बनाए रखना बहुत मुश्किल है, खासकर अगर आप ढांचे का उपयोग करते हैं। जावास्क्रिप्ट अभी भी सबसे अधिक उपयोग की जाने वाली भाषाओं में से एक है, इसलिए यह उस संबंध में भी बेहतर विकल्प प्रतीत होता है। हालांकि, उनके जवाब ने मेरी रुचि पिक्चर की। क्या फ्लेक्स एक वितरित वेब ऐप के लिए एक अच्छा विकल्प होगा जिसके लिए तृतीय पक्ष डेवलपर्स ऐड-ऑन बना सकते हैं? जावास्क्रिप्ट ढांचे बनाम इसका उपयोग करने के क्या फायदे हैं? कुछ नुकसान क्या हैं?मुझे फ्लेक्स का उपयोग क्यों करना चाहिए?

+0

किस तरह से लोकप्रियता प्रासंगिक है में पसंद? बस फायदे, नुकसान के बारे में पूछें। लोकप्रियता, मापने के लिए कठिन होने के अलावा, पूरी तरह से अप्रासंगिक है। मैं वास्तव में प्रश्न के शीर्षक –

+0

टिप्पणी के लिए धन्यवाद ... मैं सवाल संपादित किया। – VirtuosiMedia

उत्तर

12

मैं आपको ज्यादातर मामलों में मानक वेब विकास तकनीकों की ओर धक्का दूंगा। कुछ जावास्क्रिप्ट असंगतताओं और डिबगिंग में मदद के लिए फायरबग और एमएस स्क्रिप्ट डीबगर जैसे टूल्स को बाहर निकालने के लिए jQuery/प्रोटोटाइप जैसे अच्छे libs के साथ डीबग या बनाए रखने के लिए जावास्क्रिप्ट अब एक बड़ी चुनौती नहीं है।

ऐसे मामले हैं जब फ्लैश एक बेहतर विकल्प है, लेकिन केवल उन मामलों में जहां आप जटिल एनिमेशन कर रहे हैं। और, यदि आप प्रयास को निवेश करने के इच्छुक हैं, तो अधिकांश एनिमेशन फ़्लैश के बिना किए जा सकते हैं। examples ...

फ़्लैश सामग्री अन्य सामग्री के रूप में सुलभ नहीं है।
यह न केवल फ्लैश वाले लोगों को प्रभावित करेगा बल्कि खोज इंजन मकड़ियों को भी प्रभावित करेगा। इस बारे में कुछ मदद करने के लिए कुछ हैक्स हो सकते हैं, लेकिन मुझे लगता है कि अधिकांश फ़्लैश सामग्री को Google द्वारा कभी अनुक्रमित नहीं किया जाएगा।

फ्लैश वेब UI को तोड़ देता है।
उदाहरण के लिए:

  • अगर मैं एक लिंक, कि लिंक एक पृष्ठभूमि टैब में खोला गया है पर मेरी माउस व्हील क्लिक करें। फ्लैश ऐप में इस व्यवहार को अनुकरण करने के लिए कोई रास्ता नहीं है।
  • यदि मैं अपने ब्राउज़र में टेक्स्ट का चयन करता हूं और राइट-क्लिक करता हूं तो मुझे ब्राउज़र द्वारा प्रदान किए गए विकल्प मिलते हैं जिनमें जैसी चीज़ें शामिल हैं जैसे "इस टेक्स्ट के लिए Google खोजें"। एक फ्लैश ऐप में वे विकल्प नहीं हैं।
  • यदि मैं एक लिंक या छवि पर राइट क्लिक करता हूं तो मुझे विकल्पों का एक अलग सेट मिलता है जो फ्लैश ऐप में उपलब्ध नहीं हैं।यह बहुत उपयोगकर्ता हो सकता है जो "फ़्लैश समझदार" नहीं है।
+0

जिस तरह से मैं महसूस कर रहा था, लेकिन मुझे लगता है कि आपने इसे बेहतर तरीके से व्यक्त किया है। अधिकांश परियोजनाओं के लिए, मैं एक समाधान के रूप में फ्लैश से दूर शर्मिंदा हूं और जावास्क्रिप्ट का उपयोग करूंगा जहां मैं कर सकता हूं। वैसे, महान उदाहरण। – VirtuosiMedia

+0

मेरे लिए सबसे बड़ी बात यह है कि - क्योंकि उन उदाहरणों में सामग्री सिर्फ HTML है - एंकर एंकर हैं। प्रत्येक ब्राउजर में लिंक से जुड़े विभिन्न फीचर्स होते हैं। एक लिंक के लिए उस कार्यक्षमता को कभी भी प्राप्त करने के लिए फ़्लैश में कोई रास्ता नहीं है, वेब का सबसे मौलिक तत्व। – Prestaul

+0

पूरी तरह से सच नहीं है ... फ्लेक्स 3 ने एचटीटीपी जैसे इंटरैक्शन, गहरे लिंकिंग और जावास्क्रिप्ट एक्सेस जैसी चीजों के लिए समर्थन जोड़ा है। – mmattax

14

मैंने हाल ही में फ्लेक्स अनुप्रयोगों को विकसित करना शुरू कर दिया है, और मैं व्यक्तिगत रूप से इसे वेब के लिए एक ताज़ा ढांचा ढूंढता हूं।

आपको एक पूर्ण-पूर्ण एप्लिकेशन मिलता है जो पूरी तरह से ग्राहक पक्ष चलाता है। आपको जावास्क्रिप्ट के साथ क्रॉस-ब्राउज़र पोर्टेबिलिटी के बारे में कोई चिंता नहीं है, और आपको प्रभाव, ग्राफिंग और समृद्ध यूजर इंटरफेस घटकों जैसे कुछ वाकई साफ चीजें मिलती हैं।

फ्लेक्स भी वेबसाइसेस से संवाद करना आसान बनाता है और ईसीएमए के माध्यम से एक्सएमएल पार्सिंग बेहद शक्तिशाली और सरल है।

मुझे खुशी है कि मैंने स्विच किया है। जहां तक ​​यह कितना लोकप्रिय है ... मुझे सच में यकीन नहीं है, लेकिन मैं काफी हद तक निश्चित हूं कि डेवलपर आधार तेजी से बढ़ रहा है।

एकमात्र वास्तविक नुकसान मैं सोच सकता हूं कि एक फ्लैश प्लेयर आवश्यकता है, लेकिन मैं कहूंगा कि यह अधिक सुरक्षित है कि अधिकांश ब्राउज़र समर्थन फ़्लैश प्लेयर; लिनक्स में भी कोंकरर समर्थित है; बहुत अधिक तो एक चांदी की रोशनी रनटाइम (जिसे मैं इंस्टॉल करने की योजना नहीं बना रहा)

+0

मुझे लगता है कि अधिकांश उपयोगकर्ताओं को आईई 8 या विंडोज अपडेट के साथ चांदी की रोशनी मिल जाएगी - यदि आप क्रोम इंस्टॉल करते हैं तो स्वचालित रूप से GoogleGears प्राप्त करते हैं। –

+0

इसमें जोड़ने के लिए, फ्लेक्स एक अच्छा विकल्प है जब * समृद्ध * अनुप्रयोग जैसे मीडिया-भारी या ग्राफिक्स-भारी (जहां वह चमकता है) कर रहा है, यह ज्यादातर टेक्स्ट-आधारित के लिए अधिक होगा। लेकिन फिर, फ्लैश प्लेयर 10 में कुछ किक-गधे टेक्स्ट लेआउट फीचर्स भी हैं :) –

+0

फ्लैश लिनक्स पर खराब तरीके से काम करता है और बीएसडी पर खराब नहीं होने के कारण हम में से ज्यादातर परेशान नहीं होते हैं। जावास्क्रिप्ट मोबाइल सहित हर जगह चलाता है। – Rob

1

जीडब्ल्यूटी आपको अधिकांश भाग के लिए फ्लेक्स के समान सामान करने देता है, और सभी ब्राउज़र संगतता समस्याओं को संभालता है, और आपको जावा में कोड/डीबग करने देता है आपका पसंदीदा आईडीई

सभी को एक नई भाषा सीखने के बिना (या फ्लेक्स आईडीई के लिए एडोब $$$ का भुगतान करें, आपको कुछ भी वास्तविक करने की आवश्यकता होगी)।

फ्लेक्स के पास जीडब्ल्यूटी के मुकाबले कुछ सुंदर यूआई विजेट हैं, लेकिन तीसरे पक्ष के विजेट (जैसे जीडब्ल्यूटी-एक्सटी-जेएस) का एक टन है जिसका आप उपयोग कर सकते हैं - या, आप अपने मौजूदा पसंदीदा जेएस विगेट्स का उपयोग कर सकते हैं GWT।

यह पता लगाएं कि आपको नहीं है: http://code.google.com/webtoolkit/

+0

मैं केवल ओपन सोर्स फ्लेक्स एसडीके का उपयोग करता हूं और "असली एप्लिकेशन" ध्वनि बना सकता हूं जैसे कि आप आईडीई पर ज्यादा निर्भर करते हैं ... और ओपी जीडब्ल्यूटी के बारे में नहीं पूछ रहा था। – mmattax

1

मुझे यकीन है कि अगर यह अपने आप था नहीं किया जा सकता है, वरना कोई है जो, लेकिन जो बयान दिया मैं निश्चित रूप से के लिए सही उपकरण का उपयोग कहने के लिए 'एक होगा काम'।

फ्लेक्स के पीछे एक बड़ा समुदाय है, और एडोब की प्लेटफार्म सुसमाचार टीम द्वारा अच्छी तरह से प्रचारित है। अब, जहां तक ​​जावास्क्रिप्ट को बदल दिया गया है, यह एक बहुत व्यापक स्पेक्ट्रम चर्चा बिंदु की तरह लगता है। फ्लेक्स जावास्क्रिप्ट के लिए एक प्रतिस्थापन है। यह क्या करता है, हालांकि यह अच्छा करता है। वह है, 3 डी, ड्राइंग, और डेटा प्रतिपादन चार्ट या तालिका रूप में। फ्लेक्स में इसके पीछे एक्शनस्क्रिप्ट 3 की शक्ति भी है जो आपको टाइमलाइन या कीफ्रेम को छूए बिना एमएक्सएमएल फ्रंटएंड घटकों के साथ सहयोग में फ्लैश करता है।

एक तरह से, फ्लेक्स फ़्लैश और रिच इंटरनेट एप्लिकेशन विकास का .NET है। यह उसी डेटासॉर अवधारणाओं का उपयोग करता है, और घटक केंद्रित डिजाइन संरचनाएं जो इसे आसान बनाता है, और तेजी से विकसित करने के लिए।

असली सवाल यह है कि आप क्या हासिल करने की कोशिश कर रहे हैं? अंतिम लक्ष्य क्या है?

डीबगिंग बिंदु के रूप में, फ्लेक्स के पास फ्लेक्स बिल्डर आईडीई के भीतर एक वास्तविक डीबगर और प्रोफाइलर है। दुर्भाग्यवश, जावास्क्रिप्ट आधुनिक ब्राउज़र में जावास्क्रिप्ट इंजन की प्रकृति के कारण ब्राउज़र के बीच अलग वाक्यविन्यास और निष्पादन है। फ्लेक्स, क्योंकि यह अनिवार्य रूप से फ़्लैश है, फ़्लैश प्लगइन के उपयोग के कारण सभी ब्राउज़रों में एक ही प्रतिपादन इंजन का उपयोग करता है।

आशा है कि कुछ चीजों को साफ़ कर दें। :)

+0

जानकारी के लिए धन्यवाद। यह मदद करता है। – VirtuosiMedia

1

फ्लेक्स अतिरिक्त भूमि के ऊपर का एक बहुत होते हैं:

  • नई भाषा
  • ग्राहकों फ़्लैश स्थापित किया है चाहिए
  • ग्राहकों फ्लेक्स ढांचे डाउनलोड करना होगा (, स्थापित करने के लिए आवश्यकता हो सकती है करने में सक्षम नहीं हो सकता है) (कुछ सौ किलोबाइट)
  • फ्लेक्स सामग्री खोज इंजन द्वारा अनुक्रमित नहीं किया गया है (इसके विपरीत क्या गूगल का दावा कर सकता करने के लिए)

फ्लेक्स का मुख्य लाभ है: - समृद्ध इंटरफेस बनाने में बेहतर (Picnik.com देखें, आदि)

उदाहरण के लिए, फ्लेक्स में, एक कस्टम स्टाइल संवाद बॉक्स बनाना आसान है, ड्रॉप छाया, आंतरिक चमक के साथ पूर्ण , एनिमेटेड ओपन, जो भी आप चाहें।

संक्षेप में, यदि आपको अतिरिक्त समृद्धि की आवश्यकता है तो फ्लेक्स का उपयोग करें।

+0

धन्यवाद। मुझे नहीं पता था कि पिकनिक फ्लेक्स में लिखा गया था या ग्राहकों को फ्लेक्स ढांचे को डाउनलोड करना है। – VirtuosiMedia

+1

'ढांचे को डाउनलोड करें' से उनका मतलब है कि फ्लैश फ़ाइल के डाउनलोड में बहुत कुछ जोड़ा गया है। एक अलग डाउनलोड की आवश्यकता नहीं है। – willasaywhat

0

जो पहले से ही उल्लेख किया गया है उसके अलावा, एक और बड़ा अंतर यह है कि जावास्क्रिप्ट गतिशील रूप से टाइप किया गया है और एक्शनस्क्रिप्ट स्थिर रूप से टाइप किया गया है। चाहे वह अच्छा या बुरा हो, आपके दृष्टिकोण पर निर्भर करेगा :)।

0

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

14

यहां मेरा अनुभव है: आपको वास्तव में 2 चीजों को अलग-अलग विचार करने की आवश्यकता है - विकास और अंत उपयोगकर्ता अनुभव। फ्लेक्स पहले क्षेत्र में चमकता है:

  • ActionScript जावा और जावास्क्रिप्ट का एक अच्छा मिश्रण है ताकि आप OOP
  • के लिए मजबूत समर्थन के साथ एक परिचित भाषा मिल
  • डिबगिंग आप जावास्क्रिप्ट में
  • क्या हासिल कर सकते हैं की तुलना में कहीं अधिक आसान है फ्लेक्स ढांचे घटक उन्मुख और घटना चालित जो अमीर यूजर इंटरफेस बनाने में मदद करता है (एचटीएमएल वास्तव में आवेदन यूआई परिदृश्यों का समर्थन करने के नहीं बनाया गया था)

दूसरी ओर है, अंतिम-उपयोगकर्ता अनुभव भी बदतर है जब एक चल एक एजेक्स एपी की तुलना में फ्लेक्स ऐप पी। सबसे पहले, आपको फ़्लैश प्लेयर स्थापित करने की आवश्यकता है लेकिन यह शायद अधिकांश कंप्यूटरों के लिए एक मुद्दा नहीं है। बड़ी समस्याएं उपयोगिता के साथ हैं - फ्लैश प्लेयर सभी यूआई इंटरैक्शन (ब्राउज़र के बजाए) को संभालता है, इसलिए पासवर्ड मैनेजर काम नहीं करता है, टेक्स्ट फ़ील्ड पिछली प्रविष्टियों को याद नहीं करता है, Ctrl + T और मध्य-क्लिक काम नहीं करता है, टेक्स्ट खोज आदि आदि काम नहीं करता है

मेरी सलाह होगी - अगर आप एक आवेदन (अमीर यूआई, अपेक्षाकृत शेष वेब से अलग किए गए) विकसित कर रहे हैं, फ्लेक्स के लिए जाना के रूप में यह तुम समय की बचत होगी, पैसा और नए संस्करणों के बीच समृद्ध कार्यक्षमता और छोटी अवधि प्रदान करके आपके उपयोगकर्ताओं को खुश कर देगा। दूसरी ओर, यदि आपके एप्लिकेशन को वेब के साथ कड़ाई से एकीकृत करने की आवश्यकता है और आप चाहते हैं कि आपके उपयोगकर्ता अपने ब्राउज़र की विशेषताओं का उपयोग करने में सक्षम हों, तो AJAX के साथ जाएं।

अच्छा उदाहरण Google डॉक्स बनाम बज़वर्ड है। बज़वर्ड बहुत अधिक समृद्ध है (उदाहरण के लिए, पाठ दोनों तरफ से एक छवि के चारों ओर बह सकता है जो कुछ ऐसा है जो आप कभी भी डीएचटीएम में हासिल नहीं कर सकते) लेकिन Google ने अभी भी एक AJAX संस्करण के लिए जाने का फैसला किया क्योंकि वे "वेब कंपनी" हैं। इसे एक या दूसरे तरीके से करने में कोई सही या गलत नहीं है, यह बिल्कुल अलग है और यह विचार करना महत्वपूर्ण है कि आपके अंतिम उपयोगकर्ता कौन हैं।

0

आपको इसके बजाय Google Gears आज़माएं। अपना आवेदन बनाएं, इसमें कुछ गियर जोड़ें, और आप अपने आवेदन की गति (और विश्वसनीयता) को काफी बढ़ा सकते हैं। ऑफ़लाइन डेटा भंडारण, और देशी सूत्रण नियंत्रण (अपडेट/संगणना पृष्ठभूमि में चलाने के लिए और न उन कंप्यूटर को धीमा करने के लिए अनुमति):

http://gears.google.com/

अनिवार्य रूप से गूगल गियर आप किसी भी आवेदन के लिए दो उपयोगी चीजें करने के लिए पहुँच देता है।

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

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

0

कुछ कारणों फ्लेक्स विचार करने के लिए:

  1. नियंत्रण पुस्तकालय कुछ भी आप जे एस/DHTML के साथ कर सकते से फ्लेक्स में अधिक बेहतर है। चार्टिंग नियंत्रण व्यावसायिक ऐप्स के लिए हत्यारा हैं और डेटाग्रिड/एडवांस्डडाटाग्रिड जैसी चीजें एचटीएमएल के साथ कुछ भी कर सकती हैं।

  2. फ्लेक्स ढांचे को अनुप्रयोगों के निर्माण के लिए डिज़ाइन किया गया था। यह फ्लैश प्लेयर में "फ्रेम-आधारित" अवधारणाओं को वास्तव में ऐप्स बनाने के लिए आसान बनाता है। इसमें एक अच्छी तरह से डिज़ाइन किया गया घटक पदानुक्रम है जो किसी भी मानक नियंत्रण को विस्तारित करना आसान बनाता है। इसमें उपयोगकर्ता इनपुट को संभालने के लिए एक सुंदर अंतर्ज्ञानी ईवेंट मॉडल भी है और आपके किसी भी नियंत्रण में कस्टम ईवेंट प्रेषण करना आसान हो जाता है जो मूल घटकों तक पहुंच सकता है या केंद्रीय ईवेंट प्रेषक के माध्यम से मार्गांतरित हो सकता है। हालांकि जेएस/डीएचटीएमएल के साथ ऐसा करना संभव हो सकता है, मुझे नहीं लगता कि यह लगभग आसान है और यह निश्चित रूप से इसके लिए डिज़ाइन नहीं किया गया था।

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

  4. आप एक बहुत समृद्ध, बहुत सेक्सी यूआई बना सकते हैं जो आपके उपयोगकर्ताओं के मोजे को बंद कर देगा। प्रोग्रामर के रूप में हम शायद यूएक्स की परवाह नहीं करते लेकिन हमारे उपयोगकर्ता करते हैं। हाल ही में ऐप्पल को बहुत सफलता मिली है, इसका कारण यह है कि वे वास्तव में यूएक्स को महत्व देते हैं और उपयोगकर्ता/उपभोक्ता इस पर ध्यान दे रहे हैं।

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

बहुत से लोग फ्लैश प्लेयर (या एआईआर) पर रेल होंगे क्योंकि यह "मानक-आधारित" नहीं है। अगर हम केवल उन साइटों का उपयोग करने के इच्छुक थे जो 100% मानकों के अनुरूप और प्लगइन से मुक्त थे, तो हमारे पास आज YouTube नहीं होगा। या बहुत अधिक अन्य साइट जो दिलचस्प डेटा विज़ुअलाइज़ेशन करती है, आप HTML/JS (या कम से कम, प्रयास के एक सैने स्तर के साथ नहीं) के साथ नहीं कर सकते हैं। एडोब फ्लेक्स फ्रेमवर्क, ब्लेज़ डीएस (बैकएंड जावा डेवलपमेंट के लिए) खोलने, एएमएफ स्पेस को प्रकाशित करने और फ्लैश प्लेयर को मोबाइल डिवाइस पर धक्का देने के लिए ओपन स्क्रीन एलायंस शुरू करने में काफी प्रगतिशील रहा है। फ्लैश प्लेयर, फ्लेक्स, फ्लेक्स बिल्डर और ब्लेज़ डीएस में सभी के पास सार्वजनिक जिरा बग ट्रैकर्स हैं। मैं कहूंगा कि एक अच्छा मौका है कि फ्लैश प्लेयर अगले 2-3 वर्षों में ओपन सोर्स होगा। मुझे लगता है कि एडोब बहुत खुले होने की ओर बढ़ रहा है और प्लेटफार्म की आलोचना "बंद" और "स्वामित्व" कम प्रासंगिक हो रही है। मुझे लगता है कि अगर डेवलपर्स फ्लेक्स/एफपी से खुले दिमाग से संपर्क करते हैं कि वे वास्तव में प्रभावित होंगे कि यह सब एक साथ कैसे फिट बैठता है।