2009-12-11 15 views
5

मैं कुछ पॉइंटर्स ढूंढ रहा हूं, मुझे इस साइट की ओर इशारा किया गया।नेटवर्क प्रोग्रामिंग: एक पूर्ण शुरुआत के लिए पायथन बनाम सी

मेरा प्राथमिक रुचि नेटवर्क प्रोग्रामिंग है। मैंने काफी पढ़ा और प्रयोग किया है और अधिकांश प्रोटोकॉल के तंत्र से परिचित हूं। अब मैं कोड लिखना शुरू करना चाहता हूं। मैंने अजगर पर प्रारंभिक सामान पढ़ा और इसे अच्छी तरह से पकड़ लिया। मैंने पाइथन मॉड्यूल के साथ अभी खेलना शुरू कर दिया था, जब मैं स्थानीय लग मीटिंग में किसी से मिला (एक लंबी प्रतिष्ठा के साथ) जिसने मुझे बताया कि मैं हमेशा बाद में पाइथन सीख सकता हूं लेकिन सी वह भाषा थी जिसे मुझे जानना चाहिए, विशेष रूप से मेरी रुचि नेटवर्क प्रोग्रामिंग पर। मैंने कुछ शोध किया और सोचा कि शायद लड़का सही है। तो मैं अब 4 सप्ताह के लिए के & आर के साथ रहा हूं। यह मुझे डराता नहीं था, लेकिन मैं बहुत धीरे-धीरे प्रगति कर रहा हूं और शायद यही कारण है कि थोड़ा सा slacking। मैं इसे पोस्ट कर रहा हूं क्योंकि मैं मंच पर हूं जहां यह अब भी मुझे चिंता कर रहा है। मैं हमेशा सोच रहा हूं कि अजगर में मैं अभी सामान बना सकता हूं। मुझे पता है कि पाइथन मुझे स्मृति प्रबंधन आदि जैसे निम्न स्तर की चीजें नहीं सिखाएगा, लेकिन मेरी प्रगति सी

प्रश्न: क्या मुझे सी के साथ लड़ना जारी रखना चाहिए जैसा कि मैं अब हूं और कुछ कामकाजी कोड लिखना चाहता हूं यह या पायथन पर स्विच करें जहां मैं थोड़ी अधिक आसानी से रहूंगा? क्या उच्च स्तर की भाषा मुझे सी में वापस आने के लिए बहुत अधिक खराब कर देगी?

+0

जाओ http://golang.org नेटवर्क प्रोग्रामिंग के लिए सी से बेहतर विकल्प हो सकता है। – jfs

+2

यदि आप 'पॉइंटर्स' की तलाश में हैं, सी रास्ता है ;-) अधिक गंभीरता से, पाइथन शायद इस स्थिति में एक और अधिक उपयुक्त दृष्टिकोण है ... – mjv

+0

xkcd comic, "pointers", यहां लिंक डालें। लेकिन हाँ। यदि आप इस व्यक्तिगत बिट के साथ क्या हुआ "पर नेटवर्किंग सीखना चाहते हैं तो आपको केवल सी को जानने की आवश्यकता होगी? स्तर। जो आप शायद कम से कम नहीं करते हैं। – neminem

उत्तर

14

बस पायथन का उपयोग करें। आपके पास एक ही समय में एक ही निम्न-स्तरीय सॉकेट एपीआई तक पहुंच होगी, बिना किसी संकेत के, संकेत और स्मृति प्रबंधन के बारे में सीखने के बिना।

बाद में, यदि आपको लगता है कि पाइथन आपके उद्देश्यों के लिए बहुत धीमा है, तो आप सी में कुछ हिस्सों को फिर से लिख सकते हैं। लेकिन इसे शुरू करने के लिए मत करो।

1

एक अजगर प्रोग्रामर के रूप में, मैं आपको विपरीत सलाह दूंगा। पहले पायथन सीखो। कम से कम जब तक आप सीमाओं और संभावनाओं को सीख नहीं लेते हैं, इसकी तुलना इसकी तुलना में सी में की जा सकती है। फिर उन दूर समस्याओं के लिए सी का उपयोग करें जिन्हें आप पायथन में ठीक नहीं कर सकते हैं। :)

5

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

7

यह आपके नेटवर्क नेटवर्किंग के लिए किस उद्देश्य पर निर्भर करता है इस पर निर्भर करता है। क्या आप एक बहुत ही स्थिर, सुरक्षित लेकिन धीमी उच्च स्तरीय भाषा चाहते हैं या आप थकाऊ (मेरी राय) लेकिन तेजी से निम्न स्तर की भाषा के साथ काम करना चाहते हैं।

जब यह गति पर निर्भर नहीं करता है, तो मैं पाइथन लेता हूं। आप इसके साथ बहुत सी चीजें कर सकते हैं। और आपको जो भी चाहिए वह पहले से ही है। पायथन सी पर बनाया गया है, इसलिए आपके पास एक ही एपीआई तक पहुंच है।

पायथन में यह आसान है लेकिन शक्तिशाली भी है।जब से तुम नए हैं, मैं कुछ लिंक है, जो आपकी मदद कर सकता है:

और सिर्फ मनोरंजन के लिए, कुछ कॉमिक्स:

मुझे आशा है कि यह है उपयोगी तुम्हारे लिए।

5

बीस साल पहले, यहां तक ​​कि दस, आप इसके बिना नहीं जी सकते थे।

अब कई लोग करते हैं।

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

एंबेडेड अक्सर सी का उपयोग करता है, लेकिन मैंने 2 एम्बेडेड प्लेटफ़ॉर्म (एक वेवफ़ॉर्म विश्लेषक और केबल बॉक्स) पर काम किया है जहां मैंने जावा काम के अलावा कुछ भी नहीं किया है।

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

1

मैं प्रोग्रामिंग में किसी भी पूर्ण शुरुआत के लिए पाइथन को सबसे अच्छा विकल्प के रूप में अनुशंसा करता हूं। और मुझे नेटवर्किंग के लिए लगता है, पायथन बहुत अच्छी तरह से काम करेगा।

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

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

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

इस समय मैं अपने दिन के काम के रूप में सी लिखता हूं और मैं मज़ा के लिए पायथन लिखें। मैं पाइथन की कुछ पंक्तियों में बहुत कुछ कर सकता हूं। आपको पाइथन के साथ सीखना आसान लगेगा, आप और अधिक काम करेंगे, आपके पास कम बगियां होंगी, और आप इसका अधिक आनंद लेंगे।

मैं Learning Python पुस्तक से शुरू करने का सुझाव देता हूं।

शुभकामनाएं, और मज़े करें!

1

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

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

2

मैं पायथन का उपयोग करने की सलाह दूंगा। चूंकि यह सी की तुलना में उच्च स्तर की भाषा है, इसलिए आप "कैसे" के बजाय "क्या" पर अधिक ध्यान केंद्रित कर सकते हैं। इसका मतलब यह है कि आप अभी प्राप्त करने के लिए आवश्यकतानुसार प्राप्त करने के लिए सी द्वारा आवश्यक विस्तार के स्तर से बच सकते हैं।

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

0

लिस्प सीखें, इसका प्रदर्शन सी के लगभग है और सीखना आसान है और आप पाइथन में जितना संभव हो उतना अधिक कर सकते हैं और सीखना मुश्किल नहीं है। आप समस्याओं को हल करने के लिए प्राकृतिक भाषा प्रोग्रामिंग भी कर सकते हैं। लिप जाओ

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