हां और ना।
वाक्यविन्यास के लिए कुछ अलग पहलू हैं।
- पठनीयता
- expressivity
- parsability
पठनीयता का उल्लेख पहले ही किया जा चुका है।
स्पष्टता एक दिलचस्प मामला है। मैं एक उदाहरण के रूप में फ़ंक्शन-पासिंग का उपयोग करने जा रहा हूं, क्योंकि यह अर्थ / वाक्य-संबंधी दर्द के विभक्ति बिंदु की तरह है।
उदाहरण के लिए C ++ लेते हैं। मैं इस फैशन के बाद पहला क्रम बना सकता हूं:
class funcClass
{
int operator()(int);
}
funcClass fun;
void run_func(funcClass fun)
{
fun();
}
इस विशेष मुहावरे का इस्तेमाल आमतौर पर स्टेपनोव के एलिमेंट्स ऑफ प्रोग्रामिंग में किया जाता है ।
दूसरी ओर, मैं इसे आम लिस्प में कुछ इस तरह से नकल कर सकता हूं :
(defun myfunc() )
(defun run_func(fun)
(fun))
या, पर्ल में -
sub myfunc
{
}
sub run_func
{
my $func = shift;
$func->(); #syntax may be a little off.
}
या, पायथन में -
def myfunc():
pass
def run_func(f):
f()
इन सभी में अनिवार्य रूप से - एक ही अर्थ सामग्री है, हालांकि सी ++ उदाहरण कुछ प्रकार के मेटाडेटा को वहन करता है। कौन सी भाषा एक उच्च-क्रम फ़ंक्शन को पारित करने के विचार को सबसे अच्छा व्यक्त करती है? आम लिस्प मुश्किल से एक वाक्यात्मक बदलाव करता है। C ++ को फंक्शन को 'कैरी' करने के लिए एक वर्ग बनाने की आवश्यकता होती है। कुछ अलग स्तर बनाने के बारे में पर्ल बहुत सीधा है। तो पायथन है।
कौन सा दृष्टिकोण समस्या डोमेन के लिए सबसे उपयुक्त है? कौन सा दृष्टिकोण आपके सिर में विचारों को कम से कम 'प्रतिबाधा बेमेल' के साथ व्यक्त कर सकता है?
पार्सबिलिटी है - मेरे दिमाग में- एक बड़ी बात। विशेष रूप से, मैं त्रुटियां किए बिना आईडीई को भाषा को पार्स करने और काटने की क्षमता का उल्लेख करता हूं। रिफॉर्मेटिंग उपयोगी है। टोकन-सीमांकित भाषाएं अच्छी तरह से पार्स करती हैं - रूबी / सी / पास्कल, आदि।
यद्यपि विचार करें - वास्तविक दुनिया के मुद्दों को हल करने के लिए हर गंभीर भाषा के साथ सभी प्रकार की प्रमुख प्रणालियां बनाई गई हैं। हालाँकि सिंटैक्स कुछ चीज़ों को व्यक्त करने के लिए एक बाधा है, लेकिन यह एक काम-के-सक्षम बाधा है। ट्यूरिंग तुल्यता और वह सब।