गतिशील भाषाओं के लिए आईडीई - आप कितनी दूर प्राप्त कर सकते हैं?


56

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

यह केवल कम टाइपिंग के बारे में नहीं है - यह उत्पादकता को बढ़ावा देने और सादा मज़ा है जो आपको एपीआई को ब्राउज़ करने के बिना लगातार मिलता है जो कि एक दस्तावेज का संदर्भ देने के लिए है जो संपादक के साथ एकीकृत नहीं है।

तिथि करने के लिए सभी IDE + गतिशील भाषा संयोजन-जो उचित हो, उतना नहीं है - मैंने कोशिश की है:

  • छोटी गाड़ी
  • धीमा
  • क्लूलेस / ओवरहेनियोरिक (जैसा कि सभी संभव को पूरा करने में दिखा रहा है)
  • या बस के रूप में पूरा नहीं, कहते हैं, ग्रहण + जावा।

मुझे पता है कि डायनामिक कोड विश्लेषण एक तुच्छ कार्य नहीं है। लेकिन कोई यह सोचकर मदद नहीं कर सकता - क्या यह कोड का टुकड़ा वास्तव में इतना कठिन है कि यह पता लगाना है ?

तो मेरा सवाल है:

क्या किसी विशेष आईडीई (या कम ऑल-इन-वन सेटअप) ने एक गतिशील भाषा के लिए पूरी तरह से उत्कृष्ट समर्थन हासिल किया है, या यह अभी भी एक 'अनसुलझी' समस्या है?


30
+1 मैंने जो हर एक PHP IDE की कोशिश की है वह Visual Studio + C # / C ++ की तुलना में सिर्फ भयानक था।
मटज ज़ास्की

5
ओवररचिंग प्रश्न के बारे में निश्चित नहीं है, लेकिन आप JetBrains IDEs पर एक नज़र डालना चाहते हैं। उनका दृष्टिकोण "हमारे पास पहले से ही एक महान आईडीई है, चलो इसे $ भाषा के लिए काम करें"। आपके द्वारा आजमाई गई समस्या इसके बजाय निम्नलिखित दृष्टिकोण को अपना रही होगी: "$ भाषा में IDE नहीं है, किसी को एक होना चाहिए"।
मिलिमोस

2
मुझे वास्तव में आईडीईए सिर्फ अद्भुत मिला, विशेष रूप से जावा और प्रोजेक्ट-संबंधित कार्यों के साथ काम करने के लिए। लेकिन जावास्क्रिप्ट के रूप में यह नामस्थान या इसके निहित वस्तुओं में परिभाषित 'विधियों' को पहचानता प्रतीत नहीं होता है।
वीवी

इंटेलीज आईडिया, या जेटब्रेन्स लैंग्वेज विशिष्ट आईडीई में से कोई भी।
सिल्वानार

1
@FrustratedWithFormsDesigner मैंने कोमोडो का उपयोग किया है। यह मैंने देखा है किसी भी अन्य RoR IDE की तुलना में बहुत बेहतर ऑटो-पूर्ण है ... लेकिन मैंने रूबी के लिए बहुत कम IDE देखे हैं, यहां तक ​​कि ऑटो-कम्प्लीट को लागू करने का भी प्रयास किया गया है। उस ने कहा, यह कुछ नहीं से बेहतर है
अर्लज़

जवाबों:


21

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

एस। लोट का कहना है कि "डायनेमिक भाषाएं एक ही तरह का कोड पूरा नहीं कर सकती हैं जो स्थिर भाषाएं करती हैं। यह अनिवार्य रूप से असंभव है।"

सैद्धांतिक, निरपेक्ष अर्थ में "अनिवार्य रूप से असंभव"? ज़रूर। एक व्यावहारिक अर्थ में? ज़रुरी नहीं। डायनामिक भाषाओं के लिए टाइप करने के कई तरीके हैं , स्टेटिकली ( k-CFA , RoelTyper ), रन टाइम ( PICs ), और अन्य तरीकों से, जैसे प्रोग्रामर के हाल के इतिहास का उपयोग करना - "कैसे प्रोग्राम हिस्ट्री कोड में सुधार कर सकते हैं"

निश्चित रूप से फरो और स्क्वीक समुदाय अपने कोड पूरा करने के टूल से बहुत खुश हैं ।


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

16

आईडीई से बहुत कुछ सब कुछ आप पहली बार स्मालतक में विकसित किया गया था जो एक गतिशील भाषा है। बाकी सब सिर्फ उनकी नकल कर रहे हैं। तो स्पष्ट रूप से, ये सभी सुविधाएँ गतिशील भाषाओं में संभव हैं।

आज, गतिशील भाषाएं स्थैतिक भाषाओं के पीछे हैं। पर क्यों?

हाल ही में जब तक यह सार्वभौमिक रूप से नहीं सोचा गया था कि स्थिर टाइपिंग गतिशील टाइपिंग से बेहतर थी। कई कोडर्स ने उस बिंदु पर अपने दिमाग को हाल ही में बदल दिया है। गतिशील रूप से टाइप की गई भाषाओं के लिए IDEs पर ध्यान केंद्रित नहीं था।

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

स्थिर भाषा में कार्य के कुछ हिस्से आसान होते हैं। एक अभिव्यक्ति के प्रकार का पता लगाने के लिए इसका सीधा। एक गतिशील भाषा में एक ही करना पूरे कार्यक्रम विश्लेषण या रनटाइम के दौरान प्रकार लॉगिंग की आवश्यकता है। चूंकि IDE प्रकारों के चारों ओर घूमता है, इसलिए इसका प्रभाव पड़ता है।


2
स्क्वीक और फ़ारो में, रोलेटाइपर किसी चीज़ के प्रकार का अनुमान लगाने का एक अच्छा काम करता है, जिसे देखकर आप उसे क्या संदेश भेजते हैं। अन्यथा, Shivers & Might का k-CFA ट्यून करने योग्य प्रकार की सुरक्षा प्रदान करता है, इस अर्थ में कि आप सटीकता के विरुद्ध लागत का व्यापार कर सकते हैं।
फ्रैंक शीयर

13
I think that the features for IDEs are less useful in dynamically typed languages- मजाकिया, मुझे लगता है कि बिल्कुल विपरीत है। चूँकि इतनी गतिशील भाषाओं के लिए आपको पहले से चर घोषित करने की आवश्यकता नहीं होती है , एक चर को छोडना एक गंभीर चिंता है ... एक चिंता जो एक अच्छी आईडीई द्वारा कम की जाती है। इस बीच, बाकी प्रमुख विशेषताएं - वाक्यविन्यास रंग, रीफ़ैक्टरिंग टूल, डीबगिंग सुविधाएँ - सभी भाषाओं में समान रूप से उपयोगी हैं।
ब्लूराजा -

2
@Winston: तब आपने कई लोगों के साथ एक गैर-घोषित भाषा में एक परियोजना नहीं की है :) जब भाषा केस-संवेदी होती है तो यह विशेष रूप से कष्टप्रद होती है। व्यक्तिगत अनुभव से उदाहरण: शब्द "वर्क-ऑर्डर" कभी-कभी एक शब्द ("वर्कऑर्डर") के रूप में लिखा जाता है, इसलिए एक चर बनाते समय, कुछ लोग लिखेंगे workOrderऔर कुछ लिखेंगे workorder। पायथन में ये दो अलग-अलग चर हैं> _ <
BlueRaja - Danny Pflughoeft

1
@ BlueRaja-DannyPflughoeft, इसके विपरीत, मैंने कई लोगों के साथ पायथन में प्रोजेक्ट किए हैं। जब आप कहते हैं कि आपके पास समस्या है तो यह है: आप दौड़ते हैं और एक अपवाद प्राप्त करते हैं क्योंकि आप एक चर का संदर्भ दे रहे हैं जो मौजूद नहीं है, आपका कोड प्रारंभिक परीक्षण में विफल रहता है क्योंकि आप अपने डेटा को गलत स्थान पर संग्रहीत करते हैं, या आपको बगैर त्रुटि के परिणाम मिलते हैं। कोड उत्पादन के लिए भागने?
विंस्टन एवर्ट

2
"कई कोडर्स ने उस बिंदु पर अपने दिमाग को हाल ही में बदल दिया है।" ऐसा क्यों है?
पब्बी

10

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

मेरे सेटअप को जीथब पर होस्ट किया गया है , एक नज़र लेने के लिए स्वतंत्र महसूस करें और आपको क्या पसंद है। प्लगइन्स के त्वरित अवलोकन के लिए:

  • रोगज़नक़
  • पायथन-मोड, रस्सी, pyflakes और pydoc एकीकरण के लिए
  • एक अजगर डिबगर के लिए vimpdb
  • किसी प्रोजेक्ट की फ़ाइलों की सूची के लिए प्रोजेक्ट करें
  • टैग जंपिंग के लिए टैगलिस्ट
  • टैब-पूर्णता के लिए सुपरटैब
  • स्निपेट स्निपेट के लिए
  • एक एकीकृत शेल के लिए कॉनक्वेर्म, या तो कमांड प्रॉम्प्ट, बैश, पायथन, या आईपीथॉन

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


4

किसी भी विशेष आईडीई (या कम सभी में एक सेटअप) ने एक गतिशील भाषा के लिए पूरी तरह से उत्कृष्ट समर्थन प्राप्त किया है,

आपके मूल्यांकन पर विचार करना कठिन है ("पूरी तरह से बकाया"? "कुलीन / अतिविशिष्ट"?) यह संदेह है कि कोई भी आईडीई निहित मानक से मेल खा सकता है।

सामान्य रूप से ग्रहण + जावा के खिलाफ तुलना करना मूर्खतापूर्ण है क्योंकि गतिशील भाषाएं जावा नहीं हैं।

या यह अभी भी एक 'अनसुलझी' समस्या है?

काफी नहीं।

यह शायद अकारण है। आपकी आवश्यकताएं ("पूर्णताओं और अन्य संपत्तियों की कमी") को और अधिक सटीक होना मुश्किल बना देता है।

डायनेमिक भाषाओं में एक ही तरह का कोड पूरा नहीं हो सकता है जो स्थिर भाषाएं करती हैं। यह अनिवार्य रूप से असंभव है।

कुछ IDE अनुमान लगाने का एक अच्छा काम करते हैं। उदाहरण के लिए, ग्रहण में गतिशील भाषाओं के लिए प्लगइन्स हैं।


3

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


वास्तव में येजेग की प्रस्तुति मेरे प्रश्न का मूल कारण थी: यदि आंकड़े और अन्य वर्णित तकनीकें हैं, तो सभी शांत कार्यान्वयन कहां हैं? IntelliJ पर: अपनी मूल पोस्ट पर छोड़ दी गई टिप्पणी देखें (और मुझे बताएं कि क्या मैं गलत हूं)
vemv

2014 - अभी भी सर्वश्रेष्ठ स्थिर IDEs के लिए कोई मुकाबला नहीं
Den

3

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


क्यों एक जवाब है कि एक IDE के अंदर गतिशील रूप से टाइप भाषा के विकास के बारे में बोलती है कि मेरे अनुभव से हासिल किया है 'एक पूरी तरह से सफल अनुभव।' वह कौन सा है जो ऑप ने पूछा है?
रयान

2

मैंने पाया है कि पायथन के लिए विंग आईडीई का समर्थन वास्तव में बकाया है। यह कोड पूरा होने के साथ एक अच्छा काम करता है, और इसका डिबगर विजुअल स्टूडियो के समान ही है जो कि गैर-गतिशील C # के लिए है।

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


2

Microsoft का Visual Studio एक IDE है जो कई प्रोग्रामर द्वारा उपयोग किया जाता है और यह IronRuby , IronPython और F # का समर्थन करता है । अधिकांश रूबी और पायथन को एक गतिशील प्रोग्रामिंग भाषा मानते हैं जबकि F # कम होगा।

टिप्पणी के जवाब में, एफ # एक प्रोग्रामिंग भाषा है।

F # (उच्चारण F शार्प) एक बहु-प्रतिमान प्रोग्रामिंग भाषा है, जो .NET फ्रेमवर्क को लक्षित करता है, जो कार्यात्मक प्रोग्रामिंग के साथ-साथ अनिवार्य और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग विषयों को शामिल करता है। यह ML का एक प्रकार है और OCaml कार्यान्वयन के साथ काफी हद तक संगत है।

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

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

मैं यहाँ कीड़े का एक कैन नहीं खोलना चाहता। कुछ का सुझाव होगा कि F # को एक गतिशील भाषा के बजाय एक कार्यात्मक रूप में अधिक सही तरीके से वर्णित किया गया है, और मैं इसके अपवाद नहीं लूंगा। मेरा मानना ​​है कि यह कहना उचित होगा कि विभिन्न .Net भाषाओं में, F # को आमतौर पर C # या VB की तुलना में गतिशील प्रोग्रामिंग के लिए अधिक उपयुक्त माना जाता है।

आप यह देखना चाह सकते हैं: क्या प्रोग्रामिंग भाषा को गतिशील माना जाता है?


4
क्या आप समझा सकते हैं कि "एफ # [...] एक गतिशील भाषा" से आपका क्या मतलब है, और यह कैसे अधिक गतिशील है कि, सी #?
बजे आर्सेनी मूरज़ेंको

1
दूसरा, मैं F # को एक गतिशील भाषा नहीं मानूंगा। हेक, सी # हो सकता है (मुझे यकीन नहीं है कि अगर एफ # एक आसानी से उपलब्ध समकक्ष है) "अधिक गतिशील" dynamicअब तक अंतर्निहित है। लेकिन या तो रास्ता, न तो आमतौर पर गतिशील रूप से टाइप किया जाता है, और "गतिशील भाषाओं" से जुड़ी अधिकांश अन्य विशेषताएं (सांस्कृतिक सामान का उल्लेख नहीं करना) भी गायब है।

2

सांख्यिकीय रूप से टाइप की गई भाषाओं और गतिशील रूप से टाइप की गई भाषाओं के बीच मुख्य अंतर यह है कि सिस्टम को पता चल सकता है, निश्चित रूप से, संकलन समय पर एक प्रतीक संदर्भ का क्या मतलब है।

यह संकलन समय पर संकलक द्वारा उत्पन्न जानकारी से सीधे एक अच्छी आईडीई बनाने के लिए आवश्यक जानकारी एकत्र करना आसान बनाता है (जो कि अधिकांश भाग के लिए "संपादित करें" समय तक ले जाया जाता है)।

यदि आपके पास एक स्टैंड-अलोन विधि हस्ताक्षर है जो सिर्फ कहता है कि विधि "थिंग" लेती है, तो एक संपादक आपको कैसे पता करने में मदद कर सकता है कि क्या भेजें? यह बात का उपयोग करने के तरीके सुझाने में कैसे मदद कर सकता है?

बत्तख-टाइपिंग यहाँ भी मदद नहीं करता है - यहां तक ​​कि सबसे बुद्धिमान संपादक भी आपको यह बताने में सक्षम नहीं होगा कि आपकी वस्तु के पास केवल एक -executeFooOp () विधि है जो इसे "पूर्ण .executeBarOp" कोड को "ऑब्जेक्ट" कर सकती है। (हालांकि यह बाकी कोड आधार को परिमार्जन कर सकता है और कुछ बुद्धिमान अनुमान लगा सकता है)।

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

जानकारी बस गतिशील रूप से टाइप की गई भाषाओं के साथ नहीं है जब तक कि आप अपने विशिष्ट कंपाइलर की तुलना में अधिक बुद्धिमान कुछ के साथ पूरे कोडबेस का पूरा स्कैन नहीं कर सकते।


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

1
विचारधारा रनटाइम पर काम नहीं कर सकती - या अधिक सटीक एक समय में केवल एक ही संभव शाखा पर चल सकती है। रनटाइम स्थितिजन्य है, एक दिए गए प्रतीक MAY का अर्थ है एक पास पर एक चीज़ और दूसरी पास पर दूसरी चीज़, इसलिए यदि आपका "संपादक" "रनिंग" (कैसे काम करता है ???) "One Pass" पर, यह कैसे करता है? पाठ पूरा करने के लिए "एक और पास" से जानकारी प्राप्त करें? उस मामले के लिए, क्या होगा यदि आप एक पुस्तकालय लिख रहे हैं जिसे अभी तक अलिखित मॉड्यूल में प्लग किया जाना है?
बिल K

@billk व्यवहार में, IDE रनटाइम में ठीक काम करता है। यदि आप परीक्षण-प्रथम कार्य करते हैं तो आपका रन-टाइम उस वस्तु को जानता है जिसकी आप अपेक्षा कर रहे हैं। थोड़ी देर के लिए एक छोटी सी कोशिश करें।
स्टीफन एगरमोंट

0

कम से कम PHP के लिए कई IDE कुछ "समझ" जैसे हैं

/** @var $foo ClassA **/

यदि आप एक मानकीकृत तरीके से दस्तावेज बनाते हैं (इस मामले में phpDocumentor ) तो IDE इसका अधिकतम लाभ उठाएगा


2
तो आप कह रहे हैं कि यदि आप वह सब कुछ टाइप करते हैं, जो एक संकलित भाषा टाइप करने के लिए आवश्यक है, तो आप इसके बारे में वही जानकारी पा सकते हैं जो आप किसी भी वैधानिक रूप से टाइप की गई भाषा के साथ कर सकते हैं - सच है कि मुझे लगता है, लेकिन सिर्फ अतिरिक्त कदम को छोड़ें और एक सांख्यिकीय टाइप की गई भाषा पर जाएं?
बिल K

क्योंकि फिर से कम से कम php सरल प्रकारों के लिए कुछ स्वचालित कास्टिंग करता है। और ऐसा इसलिए भी क्योंकि एक गतिशील भाषा ऐसा करने से आपको यह तय करने में मदद मिलती है कि एक प्रकार कहाँ निर्दिष्ट किया जाए। फुर्तीले विकास के साथ आप "जैसे मैं एक वर्ग का उपयोग करूं या एक अंतरफलक हूं?"
एसीएनबी

@ACNB: "स्टैटिक" भाषाओं से भरपूर भी स्वचालित कास्टिंग और प्रकार की हीनता को अनुमति देता है। जैसे, C ++, C #, और जैसे।
अरफांगियन

0

गतिशील भाषाओं के लिए सभी आईडीई से (ऐसी भाषाएं जो रनटाइम में टाइप को हल करती हैं) सबसे अच्छी है ... पायथन के लिए विजुअल स्टूडियो

  • Intellisense के लिए बुलिंग प्रकार की जानकारी
  • पथ प्रदर्शन
  • debuging

यह कोशिश करने के लायक है।


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