2012-02-13 10 views
10

मैं 2000 से या तो इसे छूने के बाद सी रिलीज़ कर रहा हूं। मैं तब से रूबी में काम कर रहा हूं, और मैंने प्रोग्रामिंग मुहावरों की पूरी दुनिया की खोज की जो मुझे कभी पता नहीं था।पुनर्नवीनीकरण सी: नए मुहावरे?

पिछले दशक में क्या महत्वपूर्ण सी तकनीकें, किताबें, मुहावरे आदि उत्पन्न हुई हैं, यदि कोई है? मुझे सी 99 और सी 11 मानकों के बारे में पता है, लेकिन मुझे और कहां दिखना चाहिए? या सी शैली स्थिर रही है, भले ही ओओपी और एफपी मानक बन गए हैं?

+4

क्या आप सी 8 9 या सी 99 लिख रहे थे? – Joe

+4

यह उत्तर देने का एक मुश्किल सवाल है। मुझे याद नहीं है कि प्रोग्रामिंग 10 साल पहले की तरह थी! –

+2

मुझे यकीन नहीं है कि यह [रचनात्मक] है (http://stackoverflow.com/faq#dontask) ... हालांकि दिलचस्प सवाल है, इसलिए मैं फ़्लैगिंग नहीं कर रहा हूं। – cha0site

उत्तर

4

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

आखिरकार, सी ++ और ऑब्जेक्टिव सी पैदा होने का एक कारण है: सी को अपना डिज़ाइन दर्शन रखना है, और लोगों को वास्तव में भाषा को फोर्क करना अधिक अमूर्त सामान जोड़ना है।

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

+0

यही कारण है कि यह बहुत अच्छा बनाता है। कोई विरोधी पैटर्न शामिल नहीं है। या पैटर्न। बस इसे स्वयं बनाने के लिए उपकरण। –

+0

@ जोसेफलेब्रेच: एक परियोजना के लिए सी ++ और पायथन के बीच स्विचिंग मैंने खुद को देखा कि जब आपको अपने पैटर्न के साथ एक तेज भाषा का प्रयोग करने की आवश्यकता होती है और इसकी चीजें तैयार होती हैं तो यह एक बेहतरीन विकल्प है, लेकिन जब आपको इसे चलाने के लिए * तेज * और/या पूरी तरह से आपकी आवश्यकताओं के अनुरूप समाधान तैयार करें, यह अक्सर ऐसी भाषा होती है जो आपको कुछ भी मजबूर किए बिना उपकरण देती है। हमेशा के रूप में, सही उपकरण की पसंद आप जो करने की कोशिश कर रहे हैं उससे निर्भर करती है। –

+0

@ जोसेफ: हालांकि, इसमें पूंछ कॉल अनुकूलन गारंटी जैसी कार्यक्षमता की कमी है जो प्रभावी रूप से आपको कुछ प्रकार के पैटर्न को लागू करने से रोकती है। –

2

यह संस्कृति द्वारा भिन्न होता है, और यह वास्तव में विकसित नहीं होने वाली अन्य भाषाओं के रूप में विकसित नहीं होता है। मैंने देखा है:

  • अधिक प्रकार सुरक्षा
  • बेहतर टूलींग
  • 32/64 बिट संगत कोड और निश्चित चौड़ाई प्रकार
  • पुस्तकालयों, विशेष रूप से POSIX
  • अधिक वस्तु उन्मुख

हर बिंदु के लिए बिल्कुल नए मुहावरे नहीं - जहां तक ​​कार्यक्रमों का निर्माण और संपर्क किया जाता है, ये स्रोत स्तर पर कुछ अधिक ध्यान देने योग्य परिवर्तन हैं ।

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