2009-08-12 17 views
8

मैं अभी स्मॉलटॉक का अध्ययन कर रहा हूं। यह पाइथन के समान दिखता है (वास्तव में, विपरीत, अजगर स्मॉलटाक के समान होता है), इसलिए मैं सोच रहा था, एक अजगर उत्साही के रूप में, अगर यह मेरे लिए अध्ययन करने के लिए वास्तव में लायक है।स्मॉलटॉक और पायथन के बीच मतभेद?

संदेश पास करने के अलावा, स्मॉलटॉक और पायथन के बीच अन्य उल्लेखनीय वैचारिक मतभेद क्या हैं जो मुझे नए प्रोग्रामिंग क्षितिज देखने की अनुमति दे सकते हैं?

+0

ऑफटॉपिक प्रश्न: आप छोटे से चलने के लिए क्या उपयोग करते हैं? साल पहले मुझे मिली एकमात्र चीज़ स्क्वाक थी जिसे मुझे बहुत पसंद नहीं आया। सीखने के लिए आप क्या उपयोग कर रहे हैं। – OscarRyz

+0

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

उत्तर

17

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

[संपादित करें] कुछ उदाहरण।

स्मालटाक में

सशर्त बयान:

((x > y) and: [x > z]) 
    ifTrue: [ ... ] 
    ifFalse: [ ... ] 

नोट कैसे and: सिर्फ Boolean (अपने आप x को संदेश > गुजर का एक परिणाम के रूप में निर्मित) पर एक संदेश है, और and: का दूसरा तर्क है नहीं एक सादे अभिव्यक्ति है , लेकिन एक ब्लॉक, आलसी (यानी शॉर्ट-सर्किटिंग) मूल्यांकन सक्षम करता है। यह एक और Boolean ऑब्जेक्ट उत्पन्न करता है, जो ifTrue:ifFalse: संदेश का समर्थन करता है, दो और ब्लॉक (यानी lambdas) तर्क के रूप में लेता है, और एक या दूसरे को बूलियन के मूल्य के आधार पर चलाता है।

+6

सबकुछ-एक-म्यूटेबल-सबकुछ मेटा-पागलपन ... मुझे यह बहुत पसंद है। –

+2

ओह ... यह अच्छा है। तो एक कोड ब्लॉक के लिए एक संदेश भी है? दिमाग उड़ रहा है ... –

+0

व्यूपॉइंट्स शोध को देखो ... जो आपके दिमाग को उड़ा देगा। –

7

ऐतिहासिक रूप से स्मॉलटॉक में एक अद्भुत आईडीई बनाया गया है। मैंने कई भाषाओं पर इस आईडीई को याद किया है।

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

अब कहा जा रहा है कि यह थोड़ी देर हो गया है क्योंकि मैंने स्मॉलटाक (लगभग 20 वर्षों) के साथ काम किया है। हाँ, मुझे पता है, गणित करने वालों के लिए मजेदार समय। स्मॉलटाक एक अच्छी भाषा है, सीखने के लिए मजेदार है, सीखने के लिए मजेदार है, लेकिन मुझे चीजों को शिप करने में थोड़ा मुश्किल लगता है।

यदि आप ऐसा करते हैं तो इसके साथ खेलने का आनंद लें। मैं पाइथन के साथ खेल रहा हूं और इसे प्यार करता हूं।

याकूब

+0

आईडीई वास्तव में काफी सुंदर दिखता है। अब अगर मैं कुछ कोड देख सकता हूं ... यह भी बेहतर होगा .. –

2

भाषा पहलू अक्सर कि महत्वपूर्ण नहीं है, और कई भाषाएं हैं काफी samey,

मैं क्या देखते हैं, अजगर और स्मालटाक शेयर OOP आदर्शों ... लेकिन बहुत अलग हैं से उनके कार्यान्वयन और प्रस्तुत भाषा इंटरफेस में शक्ति में।

वास्तविक मूल्य क्या वाक्य रचना में सूक्ष्म मतभेद कार्यान्वयन के मामले में अनुमति देता है में आता है। स्वयं और अन्य मेटा-भारी भाषाओं पर एक नज़र डालें।

सूक्ष्म मतभेद कार्यान्वयन की अनुमति देने के लिए वाक्यविन्यास और तत्काल अर्थशास्त्र को देखें।

उदाहरण के लिए:

स्मालटाक -80 में

सब कुछ चल रहे एक कार्यक्रम

के भीतर से संशोधन के लिए उपलब्ध है क्या पायथन और स्मालटाक के बीच मतभेद यदि कोई maniplation गहरी अनुमति देते हैं? भाषा कंपाइलर/रनटाइम के कार्यान्वयन को कैसे सक्षम करती है?

9

किसी के रूप में छोटे से छोटे के रूप में, दो चीजें जो वास्तव में मुझे हड़ताल करती हैं वे छवि-आधारित प्रणाली हैं, और यह प्रतिबिंब हर जगह है।

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

ऊपर शुरू होता है सब के सब शांत तरीके से एक साथ आने के: स्क्वीक में

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

छवि प्रणाली और प्रतिबिंब ने इन सभी को पूरी तरह से प्राकृतिक और सामान्य चीजों को लगभग तीस वर्षों तक एक छोटे से निर्माता के लिए बनाया है।

1

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

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