2012-05-17 8 views
7

मुझे लगता है कि इस ओपन एंडेड प्रकृति के कारण इस सवाल को बंद कर दिया जा सकता है, लेकिन मैं उत्सुक नहीं हूं।स्थैतिक रूप से टाइप किए गए क्रॉस-ओएस वेब प्लेटफार्म: जावा, मोनो, और और क्या?

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

(जब मैं कहता पार मंच, मैं Windows मतलब और लिनक्स के कम से कम एक आम स्वाद)

उत्तर

3

कई उच्च प्रदर्शन हास्केल वेब चौखटे कि मजबूत स्थिर शुद्धता पर जोर के होते हैं:

लक्ष्य के प्रकार प्रणाली पर दुबला करने के लिए है अत्यधिक अनुकूल कोड प्रदान करें, और रनटाइम विफलता का शून्य मौका।

संकलन समय त्रुटियों में बदलें क्रम कीड़े

Yesod संकलक अपने सहयोगी नहीं अपने दुश्मन बनाने का दर्शन में विश्वास रखता है:

Yesod वेब साइट के शब्दों में। हम का उपयोग करने के लिए समस्याओं का उपयोग करने के लिए, लिंक उत्पन्न करने से, लिंक उत्पन्न करने से, लिंक उत्पन्न करने के लिए को लागू करने के लिए टाइप सिस्टम का उपयोग करें। सामान्यतः, यदि आपका कोड संकलित करता है, तो यह काम करता है। और के बजाय हर जगह घोषित करने के बजाय आप संकलक को के लिए टाइप अनुमान के साथ बाहर निकालने दें।

+0

ये मेरे लिए पूरी तरह से नए हैं, जानकारी के लिए धन्यवाद! हालांकि, मैं 'शून्य रनटाइम विफलता' टिप्पणी के बारे में संदेह कर रहा हूं - कृपया आप इस पर विस्तृत जानकारी दे सकते हैं? स्टेटिक टाइपिंग व्यवहारिक बग को नहीं हटाती है ... –

+1

मुझे स्पष्टीकरण देना चाहिए: * लक्ष्य * सीमा प्रणाली में रनटाइम विफलता की शून्य संभावना तक पहुंचने के लिए टाइप सिस्टम में यथासंभव कई गुणों को एन्कोड करना है। इसका मतलब यह नहीं है कि आपके पास औपचारिक रूप से सत्यापित वेब ऐप है, लेकिन यह इसके लिए एक कदम है। –

+0

बहुत बढ़िया, मैं वर्तमान में कोड अनुबंधों के माध्यम से .NET में औपचारिक सत्यापन का उपयोग कर रहा हूं। मेरी तरह की भाषाओं की तरह ये आवाज :) –

1

मेरा मानना ​​है कि Ruby पुरज़ोर लिखा गया है, तो Ruby on Rails इस के लिए एक अच्छा विकल्प हो सकता है।

+0

क्या आप वाकई रूबी को दृढ़ता से टाइप कर रहे हैं? विकिपीडिया अन्यथा सोचने लगता है ... –

+4

हां, लेकिन रूबी ** स्थिर रूप से टाइप नहीं है **। दृढ़ता से टाइप किया गया है कि प्रोग्रामिंग सिस्टम अभिव्यक्ति/संचालन को अस्वीकार करता है जहां प्रकार मेल नहीं खाते हैं। लेकिन यह रनटाइम पर लागू हो सकता है, जैसे रूबी में। –

+0

आह हाँ हां, इसे साफ करने के लिए धन्यवाद। मैं सवाल अपडेट करूँगा! –

4

आप दोनों क्लाइंट और सर्वर भागों के लिए एक भाषा का प्रयोग कर सकते हैं:

  1. जावा
  2. सी #
  3. गूगल के जाओ
  4. स्काला
  5. GWT (जावा ढांचा)
  6. हास्केल वेब ढांचे
+0

PHP और पायथन स्थिर रूप से टाइप की गई भाषा नहीं हैं। तो उनके ढांचे सर्वर को तोड़ने से रनटाइम पर टाइप त्रुटियों को नहीं रोकते हैं। –

+0

आप फ्रेमवर्क और भाषाएं मिश्रण कर रहे हैं। जीडब्ल्यूटी एक ढांचा है जो जावा का उपयोग करता है। यह IMHO भ्रामक हो सकता है। –

+0

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

2

यदि आपका मतलब सांख्यिकीय रूप से टाइप किया गया है, तो दुर्भाग्यवश वह विकल्प नहीं है। Google की Go भाषा वेब एप्लिकेशन स्पेस में बढ़ने लगती है (Google के ऐप इंजन और GoWeb जैसी परियोजनाओं के लिए गो समर्थन है), लेकिन ये प्रयास शायद अभी तक बहुत परिपक्व नहीं हैं।

Scala एक और संभावित विकल्प हो सकता है। हालांकि यह जेवीएम पर भी चलता है, इसकी वेब ढांचे भाषा की उन्नत विशेषताओं के कारण बहुत अलग हैं (उदाहरण के लिए Lift देखें) और एक अलग रूप के लायक हो सकते हैं।

2

जावा और सी # (मोनो के माध्यम से) के अलावा, आप भी (आधुनिक) सी ++
Wt (C++ Web Toolkit) के रूप में इस्तेमाल कर सकते हैं। अब सी ++ के सी पीछे की संगतता भाग दृढ़ता से टाइप नहीं किया गया है, लेकिन अन्यथा C++ प्रोग्राम सुरक्षित हैं।

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

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