आर्क (प्रोग्रामिंग भाषा)
Paradigms | बहु-प्रतिमान: कार्यात्मक, मेटा, प्रक्रियात्मक |
---|---|
परिवार | लिस्प |
द्वारा डिज़ाइन किया गया | पॉल ग्राहम |
Developers | पॉल ग्राहम, रॉबर्ट मॉरिस, आर्क समुदाय |
पहली प्रस्तुति | 29 January 2008 |
Stable release | 3.2
/ 28 October 2018[1] |
टाइपिंग अनुशासन | गतिशील |
कार्यान्वयन भाषा | रैकेट |
प्लेटफॉर्म | IA-32, x86-64 |
ओएस | लिनक्स |
लाइसेंस | आर्टिस्टिक लाइसेंस 2.0 |
फ़ाइल नाम एक्सटेंशनएस | .आर्क |
वेबसाइट | आर्कभाषा |
Major implementations | |
आर्क, अनारकी, आर्केडिया, इंद्रधनुष | |
Influenced by | |
लिस्प, योजना |
आर्क विशेष प्रकार की प्रोग्रामिंग भाषा होती है, जो लिस्प भाषा (प्रोग्रामिंग भाषा) की बोली (कंप्यूटिंग) होती है, जिसे पॉल ग्राहम (प्रोग्रामर) और रॉबर्ट टप्पन मॉरिस द्वारा विकसित किया गया है। यह आर्टिस्टिक लाइसेंस 2.0 के अनुसार जारी किया गया मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर (प्रोग्रामिंग भाषा) होता है।
इतिहास
सन्न 2001 में, पॉल ग्राहम ने घोषणा की थी कि वह आर्क नामक लिस्प की नई बोली (कंप्यूटिंग) पर कार्य कर रहे थे। इसके पश्चात् के वर्षों में, उन्होंने भाषा की विशेषताओं या लक्ष्यों का वर्णन करते हुए अनेक निबंध लिखे हैं, और ग्राहम की वाई कॉम्बिनेटर नामक स्टार्टअप कंपनी के बिज़नेस इनक्यूबेटर में कुछ आंतरिक परियोजनाएं आर्क में लिखी गई हैं, विशेष रूप से हैकर न्यूज़ वेब फोरम और न्यूज एग्रीगेटर प्रोग्राम आर्क रैकेट (प्रोग्रामिंग भाषा) में लिखा गया है।[2]
1955 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
LISP 1, 1.5, LISP 2(abandoned) | ||||||||||||||
Maclisp | ||||||||||||||
Interlisp | ||||||||||||||
MDL | ||||||||||||||
Lisp Machine Lisp | ||||||||||||||
Scheme | R5RS | R6RS | R7RS small | |||||||||||
NIL | ||||||||||||||
ZIL (Zork Implementation Language) | ||||||||||||||
Franz Lisp | ||||||||||||||
Common Lisp | ANSI standard | |||||||||||||
Le Lisp | ||||||||||||||
MIT Scheme | ||||||||||||||
T | ||||||||||||||
Chez Scheme | ||||||||||||||
Emacs Lisp | ||||||||||||||
AutoLISP | ||||||||||||||
PicoLisp | ||||||||||||||
Gambit | ||||||||||||||
EuLisp | ||||||||||||||
ISLISP | ||||||||||||||
OpenLisp | ||||||||||||||
PLT Scheme | Racket | |||||||||||||
GNU Guile | ||||||||||||||
Visual LISP | ||||||||||||||
Clojure | ||||||||||||||
Arc | ||||||||||||||
LFE | ||||||||||||||
Hy |
लक्ष्य
लोकप्रिय होने के निबंध में[3] ग्राहम ने भाषा के लिए अपने कुछ लक्ष्यों का वर्णन किया है। जबकि अनेक लक्ष्य बहुत सामान्य हैं ("आर्क हैक करने योग्य होता है", "अतः अच्छी पुस्तकालय (कम्प्यूटिंग) होती है"), उन्होंने कुछ विशेष बातें बताईं थी। उदाहरण के लिए, उनका मानना है कि भाषा का संक्षिप्त होना आवश्यक होता है।
यह कहना सत्य से अधिक दूर नहीं होता है कि हैकर जो प्रोग्राम लिखने वाला होता है वह कम से कम अवचेतन रूप से यह तय करता है कि उसे टाइप करने वाले कुल वर्णों की संख्या के आधार पर किस भाषा का उपयोग करना है। यदि हैकर्स बिल्कुल ऐसा नहीं सोचते हैं, तब भाषा डिजाइनर के लिए अच्छी होती है कि वह वैसा ही व्यवहार करते है।
उन्होंने यह भी कहा है कि किसी भाषा के लिए केवल कम संख्या में स्वयंसिद्ध सिद्धांतों को क्रियान्वित करना उत्तम होता है, यदि इसका तात्पर्य यह होता है कि भाषा में वह विशेषताएं नही होती है जो बड़े संगठन चाहते हैं, जैसे कि ऑब्जेक्ट-ओरिएंटेशन (OO) इत्यादि। इसके अतिरिक्त, ग्राहम का मानना है कि OO उपयोगी नहीं होता है जिससे कि इसकी विधि और सॉफ़्टवेयर डिज़ाइन पैटर्न केवल अच्छे डिज़ाइन होते हैं, और वह OO को क्रियान्वित करने के लिए उपयोग की जाने वाली भाषा सुविधाओं को आंशिक रूप से गलत मानते हैं।[4][5] इस प्रकार सन्न 2008 में आर्क के परिचय में, ग्राहम ने कहा था कि इसका लाभ इसकी संक्षिप्तता है।[6]
सामान्यतः लिस्प प्रोग्रामर्स के मध्य विवाद यह है कि भाषा के एस-अभिव्यक्तियों को वाक्यविन्यास के अन्य रूपों द्वारा पूरक किया जाता है या नहीं किया जाता है। इस प्रकार ग्राहम का मानना यह है कि अतिरिक्त वाक्यविन्यास का उपयोग उन स्थितियों में किया जाता है जहां शुद्ध एस-अभिव्यक्ति अत्यधिक क्रियात्मक होती है, अतः मुझे नहीं लगता है कि हमें लिस्प में वाक्यविन्यास प्रारंभ करने का धार्मिक रूप से विरोध करना चाहिए। इस प्रकार ग्राहम भी सोचते हैं कि प्रोग्रामर को अच्छी प्रोफाइलिंग (कंप्यूटर प्रोग्रामिंग) देकर दक्षता संबंधी समस्याओं का समाधान किया जा सकता है।[7]
स्वागत
सन्न 2008 में जारी होने पर, आर्क ने मिश्रित प्रतिक्रियाएँ उत्पन्न की थी, जिससे कि कुछ लोगों ने इसे केवल लिस्प या स्कीम (प्रोग्रामिंग भाषा) का विस्तार कहा था, न कि अपने आप में प्रोग्रामिंग भाषा। इस प्रकार अन्य लोगों ने लिस्प को केवल आवश्यक चीजें उपलब्ध कराने के लिए आर्क की सराहना की थी। इसके जारी होने के कुछ ही समय पश्चात्, आर्क को जावास्क्रिप्ट में पोर्ट कर दिया गया था, और इसे ग्रहण (सॉफ्टवेयर) पर आधारित एकीकृत विकास वातावरण (आईडीई) स्कीम स्क्रिप्ट द्वारा समर्थित किया जा रहा था।[8]
उदाहरण
आर्क में हैलो वर्ल्ड:
(prn "Hello, World")
आर्क की कठोरता को स्पष्ट करने के लिए, ग्राहम संक्षिप्त कार्यक्रम का उपयोग करता है। इस प्रकार यह यूआरएल /"कहा" पर क्षेत्र के साथ फॉर्म तैयार करता है। सामान्यतः जब फॉर्म सबमिट किया जाता है, तब यह पृष्ठ पर ले जाता है जिसमें लिंक होता है जिस पर लिखा होता है कि यहां क्लिक करें, जो फिर मूल इनपुट क्षेत्र के मान वाले पृष्ठ पर ले जाता है।[9]
(defop said req
(aform [onlink "click here" (pr "you said: " (arg _ "foo"))]
(input "foo")
(submit)))
संस्करण
आधिकारिक संस्करण
आर्क का प्रथम सार्वजनिक रूप से जारी संस्करण 29 जनवरी, सन्न 2008 को उपलब्ध कराया गया था,[10] जिससे कि रैकेट (प्रोग्रामिंग भाषा) पर क्रियान्वित किया गया था (जिसे तब पीएलटी-स्कीम नाम दिया गया था)। इस प्रकार रिलीज़ टार संग्रह के रूप में आती है, जिसमें आर्क के लिए रैकेट स्रोत कोड होता है। सामान्यतः ट्यूटोरियल[11] और चर्चा मंच[12] भी उपलब्ध होता हैं, अतः फ़ोरम उसी प्रोग्राम का उपयोग करता है जो हैकर संदेश करता है, और आर्क में लिखा गया है।
अनौपचारिक संस्करण
आधिकारिक आर्क शाखा में अपडेट की कमी के कारण, अभ्यास के आर्क समुदाय के कुछ सदस्यों ने अनौपचारिक संशोधनों, विस्तार और पुस्तकालयों के साथ अपने स्वयं के भंडार प्रारंभ किए गये है। इस प्रकार संस्करण, अनारकी,[13] अनुमति करता है[14] किसी को भी परियोजना में परिवर्तन प्रस्तुत करना होता है और उसके पास समुदाय प्रबंधित विकी होता है।[15]
रेनबो[16] जावा (प्रोग्रामिंग भाषा) में आर्क का कार्यान्वयन करता है।
आर्केडिया[17] आर्क में सी (प्रोग्रामिंग भाषा) का कार्यान्वयन करता है।
संदर्भ
- ↑ "Arc Forum: Tell Arc: Arc 3.2". Arclanguage.org. Retrieved 2018-11-07.
- ↑ "Arc Forum: install". Arclanguage.org. Retrieved 2018-11-07.
- ↑ Graham, Paul (May 2001). "लोकप्रिय होना". PaulGraham.com. Retrieved 2018-12-05.
- ↑ Graham, Paul. "आर्क विशेष रूप से ऑब्जेक्ट-ओरिएंटेड क्यों नहीं है?". PaulGraham.com. Retrieved 2018-12-05.
- ↑ Graham, Paul. "आर्क अक्सर पूछे जाने वाले प्रश्न". PaulGraham.com. Retrieved 2018-12-05.
- ↑ Huber, Mathias (2008-02-08). "आर्क प्रोग्राम को छोटा बनाता है". Linux Magazine. Lawrence, Kansas: Linux New Media USA. Retrieved 2018-11-25.
- ↑ Graham, Paul (May 2001). "भाषा डिज़ाइन के बारे में पाँच प्रश्न". PaulGraham.com. Retrieved 2018-12-05.
- ↑ "वेब पायनियर ने आलोचकों पर लिस्प गौंटलेट से प्रहार किया". The Register. UK. 2008-02-07.
- ↑ Graham, Paul (February 2008). "आर्क चैलेंज लें". PaulGraham.com. Retrieved 2018-12-05.
- ↑ Graham, Paul (29 January 2008). "आर्क आउट". PaulGraham.com. Retrieved 2018-12-05.
- ↑ "आर्क ट्यूटोरियल". Paul Graham. Retrieved 2018-12-05..
- ↑ "आर्क फोरम". Arc language.
- ↑ Rapp, Kenneth (kennethrapp) (14 November 2018). "अराजकता". GitHub. Retrieved 2018-12-05.
- ↑ Agaram, Kartik (akkartik) (27 May 2013). "Announcement: anarki is no longer world-committable". Arc Forum. Arc language. Retrieved 2018-12-05.
- ↑ "आर्क लैंग विकी". Sites. Retrieved 2018-12-05.
- ↑ Dalton, Conan (conanite) (12 October 2010). "इंद्रधनुष". GitHub. Retrieved 2018-12-05.
- ↑ Kim, Taegyoon (kimtg) (19 August 2018). "आर्केडिया". GitHub. Retrieved 2018-12-05.
बाहरी संबंध