8

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

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

संक्षेप में, कुंजी वाक्य रचना/भाषा विशेषताएं हैं:

  1. ओपन सोर्स, गैर प्रतिबंधात्मक लाइसेंस। निश्चित रूप से crossplatform।

  2. सी ++ जैसे स्वाद, लेकिन सख्त & स्थिर प्रकार की जांच के साथ सरल, पायथनिक वाक्यविन्यास। सीखने में आसान, कोई भी विरासत और अन्य चीजें जिन्हें कोई भी नहीं जानता :-)

  3. एलएलवीएम बाइटकोड/संकलन बैकएंड निकट-सी गति देता है।

  4. दोनों कचरा संग्रह & स्पष्ट वस्तु विनाश है।

  5. रियल ओएस थ्रेड्स, मल्टीकोर कंप्यूटर के मूल समर्थन। मल्टीथ्रेडिंग भाषा का हिस्सा है, लाइब्रेरी नहीं।

  6. प्रकार किसी भी प्लेटफॉर्म पर समान चौड़ाई है। int (32), लंबा (64) e.t.c

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

  8. जावा की तरह अपवाद हैंडलिंग (अर्थात आप सभी अपवादों को संभालने के लिए है)

मुझे लगता है मैं अब के लिए वेब & क्लस्टर सुविधाओं छोड़ देंगे ...

आपको क्या लगता है? क्या कोई मौजूदा भाषाएं हैं जो मुझे याद आईं?

+4

मेरी पहली छाप: आपको किसी ऐसे व्यक्ति की आवश्यकता है जो लोकप्रिय होने के लिए सही अंग्रेजी लिख सके। जब तक आप अपने वादों की सूची पर प्रदर्शन नहीं कर सकते * और * हत्यारे के उपयोग के साथ आते हैं, तो लोग अपने पहले छापों से गुज़रेंगे। गलत अंग्रेजी वास्तव में पहली छाप को चोट पहुंचाएगी। –

+3

यदि आप इसे करने का आनंद लेते हैं, तो इसे रखें, लेकिन अपने दिन की नौकरी छोड़ें मत। दुनिया में पर्याप्त प्रोग्रामिंग भाषाएं हैं। कभी [esperanto] (http://en.wikipedia.org/wiki/Esperanto) के बारे में सुना है? –

+0

@ डेविड थॉर्नले: मैं पूरी तरह से आपसे सहमत हूं। मैं मूल अंग्रेजी स्पीकर नहीं हूं, इसलिए मैं कभी भी त्रुटि मुक्त नहीं लिखूंगा :-) – BarsMonster

उत्तर

5

व्यक्तिगत रूप से अपने अंक के कुछ का जवाब देते हुए (मैं हटा दिया है कि मैं क्या या तो महत्वहीन या अच्छा विचार करें):

वेब विकास के लिए

ज्यादातर लोग php का उपयोग को निशाना बनाया। ऐसा नहीं है क्योंकि यह उपलब्ध सर्वोत्तम भाषा है, यह निश्चित रूप से है।

अनुप्रयोगों

Lua में एम्बेड करने।

वितरित अनुप्रयोग, उच्च विश्वसनीयता सॉफ्टवेयर (लेकिन यह दूरस्थ भविष्य के लिए है)।

क्या आपने सावधानी से Erlang का अध्ययन किया है, दोनों इसके डिजाइन और इसके संदर्भ कार्यान्वयन?

यह वास्तविक चीजों को लागू करने के लिए कई चीजों को लागू करता है - जैसे एक क्रॉसप्लेटफार्म आईडीई, एक कोडस्टाइल, एक वेब ढांचा।

यदि आपकी भाषा सफल हो जाती है, तो लोग अन्य आईडीई, अन्य कोड शैलियों, अन्य वेब ढांचे को बनाएंगे।

मल्टीथ्रेडिंग लाइब्रेरी नहीं, भाषा का हिस्सा है।

मल्टीथ्रेडिंग के लिए वास्तव में अच्छी भाषाएं धागे के अंदर दुष्प्रभावों को रोकती हैं। हां, व्यावहारिक रूप से बहुत अधिक मतलब केवल एरलांग है।

प्रकार किसी भी प्लेटफॉर्म पर समान चौड़ाई है। int (32), लंबा (64) e.t.c

श्वास ... मशीन-स्तरीय भाषाओं जैसे सी: अनंत के बाहर पूर्णांक के लिए केवल एक उचित चौड़ाई है।


अपनी खुद की भाषा डिजाइन करना निस्संदेह आपको कुछ समय सिखाएगा। लेकिन एक अच्छी भाषा को डिजाइन करना एक अच्छा क्रिप्टोसिस्टम तैयार करना है: बहुत से शौकिया कोशिश करते हैं, लेकिन यह अच्छा करने के लिए एक विशेषज्ञ लेता है।

मेरा सुझाव है कि आप this thread से शुरू होने वाले प्रोग्रामिंग भाषा डिज़ाइन पर Norman Ramsey's answers here पढ़ें।

वितरित अनुप्रयोगों में आपकी रुचि को देखते हुए, एर्लांग जानना आवश्यक है। अनुक्रमिक प्रोग्रामिंग के लिए, न्यूनतम एक अनिवार्य भाषा और एक कार्यात्मक भाषा है (आदर्श रूप से दोनों लिस्प/योजना और हास्केल, लेकिन एफ # एक अच्छी शुरुआत है)। मैं कम से कम एक उच्च स्तरीय भाषा जानने की भी सिफारिश करता हूं कि में ऑब्जेक्ट्स नहीं हैं, बस आप समझते हैं कि ऑब्जेक्ट्स अक्सर प्रोग्रामर के जीवन को आसान (क्योंकि ऑब्जेक्ट जटिल) हैं।

अन्य लोगों को आपकी भाषा सीखने के लिए क्या प्रेरित कर सकता है ... अच्छे उपकरण/पुस्तकालय/ढांचे को चोट नहीं पहुंचा सकती है (FORTRAN, php), और उदाहरण स्थापित करने वाली एक बड़ी कंपनी चोट नहीं पहुंचा सकती (जावा, सी #) । अच्छा डिज़ाइन एक कारक का अधिक प्रतीत नहीं होता है (एक हाई-हाई-केवल-गंभीर मजाक यह है कि { ब्रेसिज़ } का उपयोग करने के लिए एक भाषा सफल है जो ब्लॉक को सीमित करने के लिए है: सी, सी ++, जावा, सी #, पीएचपी)। ..

1

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

बहुत सारे ऑपरेटर ओवरलोडिंग को याद रखें: मुझे लगता है कि PHP सबसे बड़ी बात है । यह कक्षाओं को मूल प्रकारों की तरह अधिक व्यवहार करने की अनुमति देता है :)

जब आपके पास परीक्षण करने के लिए कुछ है तो मुझे आपकी सहायता करने में खुशी होगी! धन्यवाद

1

ठीक है, आप पहिया बदलने की है, तो आप इसके लिए जा सकते हैं :)

मैं तुम्हें भाषाओं या भाषा सुविधाओं के किसी भी उदाहरण देने के लिए नहीं जा रहा हूँ, लेकिन मैं आपको एक सलाह के बजाय दे देंगे:

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

सादर और अच्छी किस्मत :)

4

सं

हर मूलमंत्र आप अपनी सुविधा की सूची में शामिल किया है काम का एक विशाल राशि है, spec'd करने जा लागू किया, दस्तावेज, और परीक्षण किया गया।

कितने लोग सक्रिय रूप से भाषा विकसित करेंगे? मुझे लगता है कि वेब असफल प्रोग्रामिंग भाषा परियोजनाओं से भरा है। (गैर-मुख्यधारा के ओएस के लिए भी सही है)

देखें कि नेट/विजुअल स्टूडियो या जावा/एक्लिप्स ने क्या किया है। यह विनिर्देश, विकास, परीक्षण, दस्तावेज, फीडबैक, बग फिक्स, सर्विस पैक के वर्षों के 1000s है।

मेरी आखिरी नौकरी के दौरान मैंने किसी ऐसे व्यक्ति के बारे में सुना जिसने अपना प्रोग्रामिंग ढांचा लिखा था, क्योंकि यह "बेहतर" था। मूल प्रोग्रामर छोड़ने के बाद परिणामी प्रोग्राम कोड (ढांचे और अनुप्रयोगों में दोनों) निश्चित रूप से अनजान है, या कहा जाता है कि "बस द्वारा मारा गया" है।

जैसा कि सूची जावा ++ या मोनो ++ की तरह लगता है, आप शायद मौजूदा प्रोजेक्ट में शामिल होने में अधिक सफल होंगे, भले ही इसका नाम टैग न हो।

+1

ठीक है, जावा और मोनो दोनों शांत हैं, लेकिन कई उपयोगों के लिए भारी हैं और मास्टर के लिए बहुत कठिन हैं और एक विशेषज्ञ बन गए हैं। मैं एंटरप्राइज़ बाजार जीतने की कोशिश नहीं कर रहा हूं। वर्तमान में मैं, 2 अंशकालिक वोल्ंटर्स निश्चित 20 घंटे/सप्ताह और 1 पूर्णकालिक वेतन डेवलपर काम कर रहे हैं। – BarsMonster

+0

इसके अलावा, अगर यह सिर्फ buzzwords का एक सेट होगा, तो मैं # 1 और # 2 पर लैम्ब्डास और क्लोजर रखूंगा, लेकिन वे यहां बिल्कुल नहीं हैं :-) – BarsMonster

4

शायद आप एक महत्वपूर्ण शब्द चूक गए हैं। प्रदर्शन

किसी भी मामले में, जब तक कि इस नई भाषा में कुछ वास्तव में बाहर की दुनिया की विशेषताएं नहीं हैं (उदा: अन्य वेब विकास भाषाओं पर प्रदर्शन में 100% की वृद्धि), मुझे लगता है कि यह तालाब में एक और मछली होगी।

वर्तमान में मैं अपनी कंपनी द्वारा विकसित/स्वामित्व वाले ढांचे को बनाए रखने के लिए ज़िम्मेदार हूं। यह एक दुःस्वप्न है। जब तक कोई मुख्यधारा समुदाय नहीं है, इस पूर्ण समय पर काम करते हुए, यह वास्तव में एक हाथी है। मैं अपने स्वयं के ढांचे को विकसित करने के लिए मेरी कंपनी के फैसले की सराहना नहीं करता (क्योंकि यह "तेज" होना चाहिए) दिन की रात।

+0

ठीक है, यह शब्द है :-) यह जितना तेज़ है संकलित सी, जबकि एक ही अच्छा पायथनिक वाक्यविन्यास और इसकी कई विशेषताएं हैं। – BarsMonster

+1

एक वेब विकास भाषा, जिसे संकलित सी के रूप में तेज़ किया जा रहा है, कम से कम एक चमत्कार होना चाहिए! – pavanlimo

10

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

और आखिरकार, यह कई चीजों को लागू करता है जो वास्तविक टीमों को लागू करना है - जैसे एक क्रॉसप्लेटफार्म आईडीई, एक कोडस्टाइल, एक वेब ढांचा।

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

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

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

+0

'आपकी भाषा में कोई वास्तविक बिक्री बिंदु नहीं है। प्रोग्रामर कहां से आता है, इस पर निर्भर करता है कि सिंटैक्स और सेमेन्टिक्स के साथ यह सिर्फ एक दर्जन अन्य भाषाओं में पहले से ही किया गया है। 'यह कभी भी सी # को चोट नहीं पहुंचाता है। –

+0

@ बेउ: लेकिन ओपी दुनिया के सबसे बड़े निगमों में से एक को अपनी भाषा को धक्का नहीं देगा;) – delnan

+0

@ बेउ: सी # एक हत्यारा समारोह के साथ शुरू हुआ: .NET कार्यक्रम लिखना, खासकर उन लोगों के लिए जो लिखने के लिए शर्मिंदा होंगे VB.NET। जावा ने एक हत्यारा समारोह के साथ शुरू किया: एप्लेट लिखना, क्योंकि यह एक बार लिखा गया था, कहीं भी चलाएं। तथ्य यह है कि लगभग कोई भी ऐसा नहीं करता है और विज्ञापन के रूप में कभी काम नहीं करता है इसका मतलब यह नहीं है कि जावा शुरू करने में यह महत्वपूर्ण नहीं था। –

8

"वहाँ जो मैं याद किसी भी मौजूदा समान भाषाओं हैं?"

D? अपने सुविधाओं की तुलना में:

  1. compiler एक दोहरी लाइसेंस है - GPL और कलात्मक
  2. देखें उदाहरण कोड here
  3. LDC लक्ष्य एलएलवीएम। डी संस्करण 2 के लिए समर्थन विकास में है।
  4. Built-in garbage collection या स्पष्ट स्मृति प्रबंधन।
  5. core.thread
  6. Types
  7. Unit tests/Pre and Post Contracts
  8. try/catch/finally exception handling plus scope guarantees
+0

हाँ, सबसे पहले मैंने यह नहीं देखा कि वह अपनी भाषा बनाने के बारे में बात कर रहा है, और मैंने सोचा कि वह डी डब्ल्यू/ओ के नाम से इसका जिक्र करने की कोशिश कर रहा था। – dsimcha

1

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

http://en.wikipedia.org/wiki/List_of_programming_languages

नायब नाम जी और जी ++ ध्यान नहीं दिया जाता। ओह और पेटेंट ट्रोल के लिए बाहर देखो।

संपादित

उफ़ जी/जी ++ लिया जाता है ... अभी भी बहुत अधिक पत्र छोड़ दिया है।

+1

जी ++ जीएनयू सी ++ कंपाइलर है। हालांकि इसे तकनीकी रूप से नहीं लिया जा सकता है, इसे किसी और चीज के लिए उपयोग करने से भ्रम का एक बड़ा सौदा हो सकता है। –

5

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

भाषाओं में जड़ता है। लोगों को नई भाषाएं सीखना है, और कभी-कभी नए उपकरण भी सीखना पड़ता है।उन्हें ऐसा करने के लिए प्रोत्साहन की आवश्यकता है, और कुछ सुविधाओं में 20% सुधार इसे काट नहीं देता है।

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

आपको एक भाषा समुदाय बनाने की आवश्यकता है। उस समुदाय को पहले कुछ स्थानीयकरण की आवश्यकता है: जो लोग एक्स बड़ी कंपनी में काम करते हैं, जो लोग वाई करना चाहते हैं, जो भी हो। तय करें कि उस समुदाय की क्या संभावना है, और स्विच करने के एक बड़े कारण के साथ आते हैं और कुछ कारणों का मानना ​​है कि आपकी भाषा जो भी वादा करती है उसे वितरित कर सकती है।

+0

मेरे विचार ठीक है, +1 – delnan

+0

बहुत सच है। यह सब समय की योजना की आवश्यकता है। लेकिन कभी-कभी, चीजें बस होती हैं और जगह पर गिरती हैं। – pavanlimo

+0

एक दर्शन है: एकीकरण और सुरक्षा प्राप्त करने के लिए कुछ सुविधा बलिदान। यह डेवलपर्स नहीं, परियोजना प्रबंधकों के लिए इसे आकर्षित करेगा। डेवलपर्स इन वृद्धिशील सुधार और प्रदर्शन को पसंद कर सकते हैं। – BarsMonster

1

यह "वेब विकास भाषा" की बजाय "सिस्टम" भाषा की तरह लगता है। इस श्रेणी में प्रमुख भाषाएं (सी ++/सी के अलावा) D और Go हैं।

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

+0

खरोंच से जा रहा है एक विकल्प नहीं है। मैं केवल इसके लिए एलएलवीएम फ्रंटएंड बनाने के बारे में सोच रहा हूं, इसलिए बहुत सी चीजें स्वचालित रूप से की जाएंगी। – BarsMonster

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