2009-02-10 8 views
9

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

उत्तर

2

हालांकि यह क्षमताओं के मामले में काफी शक्तिशाली प्रतीत होता है, लेकिन मैं इसकी संरचना और कार्यान्वयन के कारण जावाएफएक्स के बारे में थोडा ब्लाह हूं। ऐसा लगता है कि फ्लैश/सिल्वरलाइट बाजार में आने के लिए वास्तव में आधा दिल का प्रयास है। बहुत लिपि

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

इस विषय पर बस मेरे दो सेंट।

2

यदि आप जावा जानते हैं लेकिन आप जो सामान सोचते हैं वह करना चाहते हैं तो फ्लैश में केवल व्यवहार्य था - फिर हाँ जावाएफएक्स आपके लिए अच्छा होगा।

बिना किसी संदेह के यह आपके जावा ज्ञान को डिज़ाइन सामग्री के साथ मर्ज करना अधिक आसान होगा।

और मेरा मानना ​​है कि टूलींग केवल बेहतर हो जाएगी जो इसे उपयोग करने में आसान बनाती है।

2

एक शानदार "मेह"।

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

यदि आप this tutorial पर एक नज़र डालें तो आप देख सकते हैं कि मेरा क्या मतलब है। हम एक पैलेट से आकार कोड में आकार खींचकर सामान खींच रहे हैं। OMGWTF। मैं अपने ग्राफिक्स विभाग को नहीं दिखा रहा हूं।

मुझे आशा है कि मैं जावाएफएक्स के बारे में गलत हूं, लेकिन मुझे नहीं लगता कि वे इसे प्राप्त करते हैं। कृपया, क्या सूर्य में कोई भी हमें एक प्रस्तुति परत नहीं देगा जिसमें कोड के साथ अंतर्निहित रूप से अंतर्निहित तम्बू नहीं हैं?

+1

मुझे आपकी आखिरी पंक्ति से सहमत होना है। हालांकि, स्पष्ट रूप से, मुझे लगता है कि सामान्य रूप से जावा के लिए यह मामला है। – Randolpho

+1

आपको प्रोडक्शन सूट पर एक नज़र डालना चाहिए। इसमें फ़ोटोशॉप और इलस्ट्रेटर के लिए बहुत बढ़िया टूल हैं और एफएक्सडी लोडर एपीआई आपको यूआई को लॉजिक से काफी अच्छी तरह से डी-जोड़े करने देता है। – Honza

+0

जावाएफएक्स उत्पादन सूट दिलचस्प लग रहा है। क्या जावाफैक्स में स्विंग घटकों का उपयोग करते समय मैं ऐसा ही कर सकता हूं? – joeforker

1

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

+0

शायद उन्हें यह पता लगाना चाहिए कि इसे फ़्लैश बाइटकोड में कैसे संकलित किया जाए। – joeforker

+1

www.haxe की तरह।संगठन करता है – Luke

3

मैंने जावा से .NET विकास में जाने के लिए अपना आखिरी काम छोड़ दिया।

चाल बनाने के कई कारण थे, लेकिन सबसे बड़ा कारण यह था कि मैं जावा & स्विंग के साथ प्रथम श्रेणी UI सॉफ़्टवेयर बनाने की कोशिश करने से बीमार और थक गया था। यह छह साल हो गया है और मुझे बहुत खुशी है कि मैं आगे बढ़ गया। मुझे विश्वास करने का कोई कारण नहीं है कि सूर्य अंत में जावाएफएक्स के साथ यूआई विकास को समझता है।

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

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

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

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

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

0

मैंने सप्ताहांत 'इसके साथ खेलना बिताया है। मैं इसमें कुछ भी उपयोगी नहीं देखता हूं। यह स्विंग/awt का एक पुनरावृत्ति है। मुझे लगता है कि यह मोबाइल उपकरणों के लिए अच्छा होगा लेकिन इससे परे कुछ भी उपयोगी नहीं है।

आदर्श रूप में मैं फ़्लैश का उपयोग करना चाहता हूं लेकिन किसी भी प्रकार के बैकएंड के साथ हस्तक्षेप करने के लिए दर्दनाक लगता हूं।

+1

यह केवल जीयूआई प्रोग्रामिंग के लिए नहीं है, यह एक पूर्ण उड़ा प्रोग्रामिंग/स्क्रिप्टिंग भाषा है। मुझे लगता है कि यह स्विंग (एक्शन श्रोता बॉयलरप्लेट कोड उदा।) में बहुत बदसूरत चीजों को बहुत अच्छी तरह से संबोधित करता है। – helpermethod

8

बस मेरा $ .02 जोड़ना चाहता था ... मैं अपने पहले छोटे साइड-प्रोजेक्ट पर पिछले 4 दिनों के लिए जावाएफएक्स में काम कर रहा हूं। कुछ पृष्ठभूमि के रूप में, मैं लगभग 9 वर्षों तक व्यावसायिक रूप से प्रोग्रामिंग कर रहा हूं, सी से शुरू कर रहा हूं, और पिछले 6 वर्षों से जावा और सी #/.NET कर रहा हूं।

आईएमओ, जावाएफएक्स इसके तरीके से और अधिक निराशाजनक है कि यह होना चाहिए। यहां कुछ पकड़ हैं:

  1. वाक्यविन्यास कभी-कभी अजीब होता है। यह आसानी से जावा की तरह अधिक हो सकता है, क्योंकि इसकी जावा FX है। लेकिन वाक्यविन्यास जावा से एक आसान संक्रमण नहीं है।

  2. एक .fx फ़ाइल वास्तव में मायने रखती है में आइटम के आदेश, जिसका मतलब है तुम मूर्ख वृत्तीय संदर्भ त्रुटियों में चलाने, और समस्याओं "ओह तुम अभी तक इस चर का उपयोग नहीं कर सकते हैं क्योंकि यह प्रारंभ नहीं किया गया है" कि कंपाइलर को आसानी से संभालना चाहिए, लेकिन नहीं।

  3. यादृच्छिक चीजें बस काम नहीं करती हैं। स्विंग नियंत्रण पर क्रियाएं/घटनाएं हमेशा काम नहीं करती हैं, उदाहरण के लिए स्विंगस्लाइडरबार पर ऑन/दबाए गए प्रतीत नहीं होते हैं।

  4. त्रुटि प्रबंधन केवल खराब है। यदि कोई अपवाद होता है जिसे संभाला नहीं जाता है, तो जावा कंसोल के अलावा अन्य बताने का कोई वास्तविक तरीका नहीं है, और यूआई तत्व मजाकिया प्रतिक्रिया देना शुरू करते हैं। उदाहरण के लिए, एक स्विंगटेक्स्ट बॉक्स बनाएं और इसके मान को एक चर में बांधें। अब टेक्स्ट बॉक्स में मान को संपादित करने का प्रयास अपवाद फेंक देगा क्योंकि आप बाध्य चर को संपादित नहीं कर सकते हैं। हालांकि यूआई में, टेक्स्ट बॉक्स में मजाकिया चीजें होती हैं।कुछ पात्र केवल 1/2 पेंट, कभी-कभी बैकस्पेस कुछ भी नहीं करता है, कभी-कभी यह एक चरित्र को हटा देता है, कभी-कभी आप "1" और "2" जैसे 2 कुंजी दबा सकते हैं और टेक्स्ट बॉक्स में "21" दर्ज किया जाएगा बजाय "12", आदि ...

हालांकि JavaFX विकास के साथ अपने पूर्ण # 1 समस्या अभी Netbeans है की। यह जेएफएक्स में पेटी से खराब है। डीबग नहीं कर सकते हैं, आईडीई में गलत त्रुटियां प्रदर्शित होती हैं (मैंने इसे त्रुटियों के रूप में ध्वज टिप्पणियां दी हैं!), इंटेलिजेंस केवल 40% समय की तरह काम करता है, घटना कोड कोड टेम्पलेट्स & ड्रॉइंग नियंत्रण के लिए आईडीई में प्रीप्रोग्राम किया गया है ' सही नहीं है। मैं कौन सा भूल जाता हूं, लेकिन उनमें से एक डालने वाले कोड के अंत में "" छोड़ देता है जो कभी मान्य नहीं होता है और हमेशा मैन्युअल रूप से हटा दिया जाना चाहिए ... इसका सिर्फ सादा भयानक है, और सूर्य जैसी कंपनी के लिए अस्वीकार्य है ।

एक और पकड़ सामान्य दस्तावेज है। इसकी कमी है। किसी भी तरह जावाफैक्स एपीआई विधियों/कक्षाओं की खोज करते समय Google पर # 1 खोज परिणाम के रूप में भी नहीं आती है। वेब पर "उदाहरण" के टोन अब और काम नहीं करते हैं क्योंकि प्रत्येक संस्करण में बड़े रिफैक्टरिंग परिवर्तन होते हैं, और कक्षाएं हटा दी जाती हैं या उनका नाम बदला जाता है।

कुल मिलाकर, मैं जेएफएक्स को 10 में से 4 में से 4 देता हूं। I इसे पसंद करने के लिए चाहते हैं, लेकिन जेएफएक्स 1.1 बस इसे काट नहीं देता है ... यह निश्चित रूप से नहीं है कि मैं "उत्पादन तैयार" पर विचार करूंगा।

+0

+1 वाक्यविन्यास वास्तव में अजीब है। जबकि पहली नज़र में जावा और जावाएफएक्स के बीच बहुत सारी समानताएं प्रतीत होती हैं, वहां बहुत सारे सूक्ष्म मतभेद हैं। – helpermethod

+0

जबकि जावा और जावाएफएक्स के बीच वाक्यविन्यास भिन्न हैं ... अंतःक्रियाशीलता वास्तव में अच्छी है। JavaFX से जावा को कॉल करना शानदार है ... और चूंकि जावाएफएक्स एक समृद्ध क्लाइंट साइड टेक्नोलॉजी है ... JavaFX को कॉल करने के लिए जावा की वास्तव में आवश्यकता नहीं है। और मेरी विनम्र राय में ... जावाएफएक्स क्लाइंट साइड जीयूआई विकास के लिए विरासत जावा स्विंग से बेहतर है। –

0

ठीक है, एक्शनस्क्रिप्ट और जावाएफएक्स दोनों का सिंटैक्स बहुत समानताएं साझा करता प्रतीत होता है, इसलिए शायद "हां"।

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

1

मैं फ्लेक्स के साथ फ्लैश अनुप्रयोगों को लगभग 2 वर्षों से विकसित कर रहा हूं और मैंने जावाएफएक्स को आज़माने का फैसला किया क्योंकि हम लगातार उपयोगकर्ता शिकायत कर रहे हैं कि वे अपने आईफोन से एप्लिकेशन का उपयोग नहीं कर सकते (और मुझे जावा पसंद है)।

फ्लैश के लिए यह एक स्ट्राइक है (कोई व्यापक मोबाइल समर्थन नहीं)।

ईमानदार होने के लिए मैं जावाएफएक्स (बहुत बुरे तरीके से) से काफी प्रभावित था।

  • दस्तावेज़ीकरण अपूर्ण है।
  • लिपि बस भयानक है; जावा-डीजा-वी की भावना के साथ जेएसओएन और आर के बीच यह अजीब हाइब्रिड है।
  • मैंने पहले 3 दिन चित्रकारी बहुभुज बिताए और कोड के साथ ग्रेडियेंट बनाये ... डब्ल्यूटीएफ !!
  • मैंने कोशिश करने के लिए अपने ग्राफिक विभाग को मनाने की कोशिश की और वे बस यह समझने के लिए सीम नहीं करते कि उत्पादन सूट कैसे काम करना है, वे शिकायत करते रहते हैं कि फ्लेक्स स्किनिंग आसान है और अंत में बेहतर दिखता है (जो बिल्कुल है सच)।
  • "सीएसएस समर्थन" बस एक बुरा मजाक है।
  • यह आमतौर पर आरआईए फ्रंटएंड के लिए एक विकल्प प्रदान करने के लिए एक औसत प्रयास की तरह लगता है।

मैं केवल इसके बारे में अच्छी बातें की एक जोड़ी के बारे में सोच सकते हैं:

  • यह एक IPhone/iPad से लगभग सभी मोबाइल उपकरणों चलाने के लिए और किया जा सकता है।
  • आप सभी जावा कोड आप चाहते हैं जो सीमाओं ActionScript (कोई अधिक भार, कोई निजी निर्माताओं, आदि) है कि विचार बहुत अच्छा है की पहुंच है। यह हमारे लिए प्रोग्रामर के लिए एक बड़ी बात है, लेकिन एक सेकंड के लिए याद रखना चाहिए कि यह एक फ्रंटेंड/प्रस्तुति तकनीक है ... इसका मतलब है कि उपयोगकर्ताओं को वास्तव में चीज़ देखना होगा, इसलिए यदि यह अच्छा नहीं लग रहा है और ठंडा है एनिमेशन/प्रभाव वे इसे खोदना नहीं होगा।
  • स्क्रिप्ट एक कम वर्बोज़ है जो एमएक्सएमएल फाइलें हैं (अनजान होने की लागत के साथ)।
  • प्रदर्शन के बारे में बात कर रहे ... फ़्लैश प्लेयर इस विशाल हरी ब्लॉब कि बढ़ रही है और बढ़ रहा है जब तक कोई रैम कैसे JavaFX चलाता है के लिए छोड़ दिया जाता है की तुलना में (JVM चट्टानों! दुर्भाग्य से इस वास्तविक JavaFX एपीआई के साथ कोई संबंध नहीं है रहता है इसका सिर्फ इतना है कि JVM ... अच्छी तरह से यह चट्टानों!)।
  • इसमें यह शानदार सुविधा है जहां आप वेब ब्राउज़र के बाहर एप्लेट खींच सकते हैं।

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

मैं उम्मीद है कि यह (सूर्य/Oracle = पी में किसी से और आक्रामक) किसी के लिए उपयोगी है।

0

मैं अब कई महीनों के लिए एक JavaFX आवेदन पर काम कर रहा है। व्यक्तिगत रूप से, मुझे भाषा पसंद है। उन्होंने मुझे वाक्यविन्यास और भाषा संरचनाओं को चुनने में कुछ बहुत ही अच्छे निर्णय लेने के लिए प्रतीत किया (यदि आप चाहें तो मैं आपको एक सूची के साथ उभारा सकता हूं)। मैं अब कुछ महीनों के लिए प्रोग्रामिंग कर रहा हूं और यह प्रोग्राम में बहुत ही कुशल और यहां तक ​​कि सुखद भाषा की तरह लगता है।

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

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

संबंधित मुद्दे