2008-09-18 30 views
24

मानक उत्तर यह है कि जब आप केवल कोड की कुछ पंक्तियां लिखने की आवश्यकता होती है तो यह उपयोगी होता है ...जब आप जावा का उपयोग कर सकते हैं तो ज्योथन का उपयोग क्यों करें?

मेरे पास दोनों भाषाएं ग्रहण के अंदर एकीकृत हैं। चूंकि ग्रहण संकलन, व्याख्यान, चलाना इत्यादि को "रन" दोनों को ठीक से संभालता है।

दोनों के लिए ग्रहण आईडीई समान है - तत्काल "संकलन", इंटेलिजेंस इत्यादि। दोनों डीबग परिप्रेक्ष्य के उपयोग की अनुमति देते हैं।

यदि मैं जावा की कुछ पंक्तियों का परीक्षण करना चाहता हूं, तो मुझे एक पूरी नई जावा प्रोजेक्ट बनाने की ज़रूरत नहीं है - मैं सिर्फ ग्रहण के अंदर Scrapbook सुविधा का उपयोग करता हूं जो मुझे "बनाने के बिना जावा अभिव्यक्ति निष्पादित करता है एक नया जावा प्रोग्राम। यह मौजूदा कक्षा का त्वरित परीक्षण करने या कोड स्निपेट का मूल्यांकन करने का एक साफ तरीका है "

जैथन जावा पुस्तकालयों के उपयोग की अनुमति देता है - लेकिन फिर जावा (परिभाषा के अनुसार) जावा करता है!

तो ज्योथन किस अन्य लाभ प्रदान करता है?

+5

मजेदार, मैं पूछने जा रहा था "जावा का उपयोग क्यों करें जब आप केवल ज्योथन का उपयोग कर सकते हैं?" ज्योथन से स्विंग करने का प्रयास करें और देखें कि यह कितना सुखद है: 'बीटीएन = जेबटन (" मुझे क्लिक करें ", actionPerformed = SomeFunction)'। बटन क्लिक को संभालने के लिए बस एक संपूर्ण कक्षा लिखने से आसान बिट, नहीं? –

+0

बहुत बुरा है कि यह सवाल बंद है; क्योंकि एक बहुत अच्छा बिंदु है जो किसी भी उत्तर में दिखाई नहीं देता है (जब तक कि मैंने अनदेखा नहीं किया): ज्योथन के साथ, मैं चल रहे जेवीएम के संदर्भ में नया कोड निष्पादित कर सकता हूं। आप जावा के साथ ऐसा नहीं कर सकते। – GhostCat

+0

मुझे समझ में नहीं आया कि यह खोज बंद क्यों है। –

उत्तर

0

सिंटेक्स चीनी।

+2

हाँ। असली प्रोग्रामर एक चुंबकीय सुई और एक स्थिर हाथ (सी) http://xkcd.com/378/ का उपयोग करते हैं। बाकी सब कुछ एक वाक्यविन्यास चीनी है। – jfs

18

पायथन सिंटैक्स (जेथन द्वारा उपयोग किया जाता है) कई प्रोग्रामर के लिए काफी संक्षिप्त और तेज़ विकसित है।

इसके अलावा, आप जावा अनुप्रयोग में मौजूदा पायथन पुस्तकालयों का उपयोग कर सकते हैं।

1

संकलन करने की कोई आवश्यकता नहीं है। हो सकता है कि आप एक प्रोटोटाइप की तरह संकलित भाषा का उपयोग करने से कुछ तेज करना चाहते हैं।

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

0

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

2

पायथन पुस्तकालय;) उदाहरण के लिए BeautifulSoup - एक HTML पार्सर जो गलत मार्कअप स्वीकार करता है। AFAIK कोई समान शुद्ध जावा lib नहीं है।

+0

क्या आप वाकई ज्योथन के तहत काम करते हैं? –

+0

आप सही हैं। स्थिर रिलीज पायथन 2.2 समतुल्य है। यह बहुत पुराना हो सकता है ... और ज्योथन 2.5 अभी भी अल्फा राज्य में है। स्थिर रिलीज उपलब्ध होने के बाद भी इसे काम करना चाहिए। – sumek

2

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

+0

जावा 8 में लैम्बडास है। – Daniel

4

कुछ भाषाओं में कुछ कार्य आसान हैं। अगर मुझे कुछ फाइल का विश्लेषण करना पड़ा, तो मैं एक झपकी में जावा पर पायथन चुनूंगा।

+1

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

4

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

1

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

मैंने मुख्य रूप से जावा सिस्टम पर खोजी प्रोग्रामिंग के लिए ज्योथन का उपयोग किया है। मैं एप्लिकेशन के कुछ हिस्सों को आयात कर सकता हूं और यह देखने के लिए एपीआई के चारों ओर पोक कर सकता हूं कि इंटरैक्टिव ज्यथन सत्र से कॉल का आह्वान करके क्या हुआ।

36

एक त्वरित उदाहरण (http://coreygoldberg.blogspot.com/2008/09/python-vs-java-http-get-request.html से):

आप जावा में एक वापस अंत है, और आप HTTP GET resquests प्रदर्शन करने की जरूरत है।

Natively:

import java.net.*; 
import java.io.*; 

public class JGet { 
    public static void main (String[] args) throws IOException { 
     try { 
      URL url = new URL("http://www.google.com"); 

      BufferedReader in = 
       new BufferedReader(new InputStreamReader(url.openStream())); 
      String str; 

      while ((str = in.readLine()) != null) { 
       System.out.println(str); 
      } 

      in.close(); 
     } 
     catch (MalformedURLException e) {} 
     catch (IOException e) {} 
    } 
} 

अजगर में:

import urllib 
print urllib.urlopen('http://www.google.com').read() 

Jython आप जावा मजबूती और जब जरूरत, अजगर स्पष्टता उपयोग करने के लिए अनुमति देता है।

और क्या? जैसा कि जॉर्जेस कहेंगे ...

+14

जावा को यूटिलिटी क्लास रखने से कुछ भी नहीं रोकता जो UrlUtil.open ("www.google.com") करता है। पढ़ें()। –

+22

हाँ, आपको बस इसे स्वयं कोड करना होगा। बाकी सब कुछ की तरह। –

+7

जावा से पायथन की तुलना में कोरी गोल्डबर्ग उदाहरण इंटरनेट पर पाया जा सकता है, और उपरोक्त उदाहरण बहुत बेहतर नहीं है। (इसके अलावा, यह एक मजबूती/स्पष्टता डिचोटोमी पर संकेत देता है जो बहस योग्य है।) ऊपर जावा कोड पायथन कोड (ओओ, buffered पढ़ने, अपवाद ढांचे, आदि) से कहीं अधिक है। ज्योथन का उपयोग करने के कारण हैं, लेकिन अल्पसंख्यक का एक संक्षिप्त उदाहरण बहुत प्रेरक नहीं है। – Glenn

5

मैं जावा कोड के परीक्षण इंटरैक्टिव परीक्षण के लिए ज्योथन का उपयोग करता हूं। यह जावा परीक्षण अनुप्रयोगों या यहां तक ​​कि किसी भी स्क्रिप्टिंग भाषा लिखने से अक्सर तेज़ है। मैं सिर्फ विधियों के साथ खेल सकता हूं और देख सकता हूं कि यह कैसे प्रतिक्रिया करता है। वहां से मैं कुछ वास्तविक कोड या परीक्षण मामलों को लिखने और लिखने के लिए पर्याप्त सीख सकता हूं।

0

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

यानी यह एक प्रतिबाधा विसंगति से निपटने का माध्यम है।

6

एनालॉजी: कॉफी पीने क्यों करें जब आप गर्म नल के पानी पी सकते हैं और भुना हुआ कड़वा बीन्स पर चबा सकते हैं। :-)

कुछ कार्यों के लिए, पायथन बस बेहतर स्वाद लेता है, बेहतर काम करता है, और पर्याप्त तेज़ है (ब्रू करने का समय लगता है?)। यदि आपका प्रोग्रामिंग या परिनियोजन वातावरण JVM पर केंद्रित है, तो ज्योथन आपको पायथन कोड करने देता है लेकिन आपकी तैनाती और रनटाइम वातावरण को बदले बिना।

6

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

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

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

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

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

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