आप अपने वेब ऐप्स के लिए C का उपयोग क्यों नहीं करते हैं?


101

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

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

इसलिए मैंने इसे आपके पास रखा: आप अपने वेब एप्लिकेशन के लिए C का उपयोग क्यों नहीं करते हैं?


34
हम स्टोव का उपयोग क्यों करते हैं और हमारे भोजन को सीधे आग से नहीं पकाना है? हम कारों का उपयोग क्यों करते हैं, हालांकि पैदल चलना या बाइक का उपयोग करना अधिक स्वस्थ है? क्यों ... मैं जा सकता था ...
फेलिक्स क्लिंग

16
@ फेलिक्स - जैसा कि मैंने कहा, इसके अलावा अन्य कारणों को नाम दिया जाना मुश्किल है। तात्पर्य मुझे पता है कि अन्य भाषाओं में अमूर्त कठिनाई मौजूद है।
Abs

15
वास्तव में कभी सी डिफॉल्ट नहीं माना जाता है।
डीवेव

10
@ डेविड जीवंत यदि आप उद्देश्य पर मुश्किल में 'ग' लगाने में असफल रहे, तो यह वास्तव में काफी मज़ेदार है। शाबाश :)
punkrockbuddyholly

11
@MrMisterMan को उस व्यक्ति को स्पॉट करने में केवल चार महीने लगे। =)
3Dave

जवाबों:


79

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

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

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


48
वाह, पुस्तकालयों के कारण C के खिलाफ .NET के लिए एक तर्क ? ज़रूर, stdlib छोटा है, लेकिन हमारे पास दशकों के पुस्तकालय (कई ओपन-सोर्स) हैं। सी। में मुझे कुछ भी सोचने में परेशानी हो रही है। .NET stdlib में एक परिपक्व और मुफ्त सी लाइब्रेरी नहीं है।
केन

3
मुझे नहीं लगता कि वह विशेष रूप से .NET के लिए बहस कर रहा था, मुझे लगता है कि उसका मतलब सिर्फ वहाँ से बाहर की भाषाएं हैं जिनमें बहुत सारे सामंजस्यपूर्ण पुस्तकालय हैं। मुझे यकीन है कि सी में भार है, लेकिन ईमानदार होने के लिए मैं किसी भी तरह के रेपो में नहीं आया हूं जो उन सभी को एक ही स्थान पर इकट्ठा करता है या उन्हें पैकेज करता है।
Abs

16
@ केन स्ट्रिंग हेरफेर वास्तव में एक सामान्य वेब-ऐप कार्य है। सी लाइब्रेरी उस के लिए मौजूद हैं, लेकिन वे [उच्च स्तरीय भाषा चुनने] में लाइब्रेरी के रूप में लगभग कई या उपयोग करने योग्य नहीं हैं।
एंड्रेस जान टैक

23
@Ken: जब आप एक एकल, अच्छी तरह से समर्थित कार्यक्षमता बनाम छोटे पुस्तकालयों का ढेर जो सुविधा सेट, लाइसेंसिंग और समर्थन में व्यापक रूप से भिन्न है, में अंतर का एक ब्रह्मांड है।
डेव मार्कल

49

हम ...

ऐसा लगता है कि मुझे इस चर्चा में थोड़ी देर हो गई है - लेकिन मैंने अभी इसे खोज लिया है। और इतने इनपुट के लिए मैं आप सभी का आभारी हूं।

मैं G-WAN का लेखक हूं, जो यह स्पष्ट करता है कि मैंने इस मामले पर गंभीरता से काम किया है: G-WAN अन्य सभी वेब सर्वर (कोई प्रोसेसिंग नहीं) और अन्य सभी वेब एप्लिकेशन सर्वर (कोई भी प्रोसेसिंग जिसकी आप कल्पना कर सकते हैं) की तुलना में तेज है ।

हां, एएनएसआई सी ने अधिक स्थिर सामग्री को संसाधित करना संभव बना दिया - कम शक्तिशाली सीपीयू के साथ (एएनएसआई सी केवल गतिशील सामग्री बनाने के बारे में नहीं है)।

वैसे, G-WAN C स्क्रिप्ट (कोई C कंपाइलर और लिंकर की जरूरत नहीं है) का उपयोग करता है इसलिए संकलन / लिंकिंग चक्र / विलंब मौजूद नहीं है।

G-WAN को .NET Java और PHP से तुलना करने की प्रक्रिया में, मैंने सभी 4 भाषाओं में समान अनुप्रयोग लिखे : http://gwan.ch/ource/

और, मेरे निराशा के लिए, आधुनिक स्क्रिप्टिंग भाषाओं का उपयोग करना आसान नहीं था

नौकरी का एक हिस्सा जो विशेष रूप से निराशाजनक है , वह 'जादू' एपीआई कॉल के लिए सख्त खोज करना है जो आप करना चाहते हैं।

इस बारे में सोचें कि 'सुंदर हजारों' कैसे करें:

सी#

String.Format("{0:n}"...

जावा

new DecimalFormat("0.00"); ...

पीएचपी

number_format($amount, 2); ...

ANSI सी

sprintf("%'.2f", amount);

"..." का अर्थ है कि कुछ पूर्व-विन्यास, या पोस्ट प्रोसेसिंग आवश्यक है। एएनएसआई सी स्पष्ट रूप से उपयोग करने और याद रखने में आसान है।

जब PHP में 5900 से अधिक एपीआई कॉल (C # और Java दूर नहीं) हैं, तो सही API कॉल को ढूंढना अपने आप में एक चुनौती है। इसे खोजने के लिए व्यर्थ समय (और फिर मूल एपीआई कॉल को कितनी बुरी तरह से लागू किया गया है) यह जानने के लिए, अगली बार जब आपको इसकी आवश्यकता हो, तो इसे सीखने का समय, यह सब समय आपके आवेदन को हल करने के लिए आवश्यक समय से आपको वंचित कर रहा है। समस्या।

मैंने पढ़ा है (ऊपर) कि PHP ANSI C से अधिक संक्षिप्त है? तो "//:: this is a comment ::"बजाय उपयोग क्यों "// this is a comment"? एक मूर्खतापूर्ण जटिल 'सुंदर हजारों' वाक्य रचना क्यों है?

अन्य सामान्य तर्क यह है कि जावा और जैसे वेब अनुप्रयोगों के लिए समर्पित कॉल प्रदान करते हैं।

मुझे जावा में HTML से बचने के लिए कुछ भी नहीं मिल रहा था इसलिए मैंने इसका संस्करण लिखा:

  // all litteral strings provided by a client must be escaped this way
  // if you inject them into an HTML page
  public static String escape_html(String Name) {
      int len = Name.length();
      StringBuffer sb = new StringBuffer(len);
      boolean lastWasBlankChar = false;
      int c;

      for(int i=0; i<len; i++) {
          c = Name.charAt(i);
          if(c == ' ')  sb.append("&#32;");  else
          if(c == '"')  sb.append("&quot;"); else
          if(c == '&')  sb.append("&amp;");  else
          if(c == '<')  sb.append("&lt;");   else
          if(c == '>')  sb.append("&gt;");   else
          if(c == '\n') sb.append("&lt;br/&gt;"); else {
             c = c&0xffff; // unicode
             if(c < 32 || c > 127) {
                sb.append("&#");
                sb.append(new Integer(c).toString());
                sb.append(';');
             } else
                sb.append(c);
          }
      }
      return sb.toString();
      //szName = sb.toString();
  }

क्या आप वास्तव में मानते हैं कि ANSI C में समान कोड अधिक जटिल होगा? नहीं, यह बेहद सरल और तेज दोनों होगा ।

जावा (सी से प्राप्त) है की आवश्यकता होती है के साथ एक '+' लिंक बहु लाइन तार करने के लिए प्रोग्रामर
सी # (सी से प्राप्त) है की आवश्यकता होती है एक '+' के साथ लिंक बहु लाइन तार करने के लिए प्रोग्रामर
पीएचपी (सी से प्राप्त) है की आवश्यकता होती है करने के लिए प्रोग्रामर लिंक मल्टी-लाइन स्ट्रिंग्स के साथ '।'

ANSI C के पास अब यह पूरी तरह से बेवकूफ (अप्रचलित) आवश्यकता नहीं है।

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

निष्ठा से,

पियरे।


10
मैं काफी हजारों की अतिरिक्त प्रसंस्करण के बारे में आपकी टिप्पणी को नहीं समझता; C # के लिए आपने छोड़ दिया , amount), PHP जैसा है ठीक है, और आपके ANSI C उदाहरण को दो और तर्क (बफर और बफर लंबाई) की आवश्यकता है। जावा के उल्लेखनीय अपवाद के साथ, आपका उदाहरण विपरीत बिंदु साबित होता है। इसके अतिरिक्त, मैंने पहले कभी उस //:: comment ::वाक्य रचना को नहीं देखा है ; PHP निश्चित रूप से इसकी आवश्यकता नहीं है।
icktoofay

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

यदि दोनों को C में लिखा गया है, तो G-WAN NGINX के साथ कैसे तुलना करता है?
m4l490n

47

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


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

@ जोर्डन: मुझे लग रहा है कि आपने सी में कोई वेब प्रोग्रामिंग नहीं की है। आप जो कह रहे हैं वह वेब प्रोग्रामिंग के मॉडल के अनुकूल नहीं है।

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

3
sigh @Kinopiko: यदि आपको नहीं पता कि बफर अतिप्रवाह क्या है, तो आपको C. 'nuff' में कोडिंग नहीं करनी चाहिए अधिक जानकारी के लिए: Securecoding.cert.org/confluence/display/seccode/…
L̲̳̳o̲̳̳n̲̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳

29

अधिकांश नेटवर्क एप्लिकेशन, विशेष रूप से वेब सर्वर, अधिक "I / O बाध्य" हैं - यानी वे नेटवर्क को स्वीकार करने की तुलना में कहीं अधिक तेजी से डेटा पंप करने में सक्षम हैं। इसलिए कुछ जो अत्यधिक सीपीयू कुशल है वह बहुत बड़ी जीत नहीं है, जबकि कुछ ऐसा है जो स्केलेबल और मेंटेनेबल है। इसलिए सी की कमियों को स्वीकार करने और जावा, .NET, पायथन, पर्ल या अन्य भाषाओं जैसे प्रबंधित वातावरण के फायदे खोने का कोई कारण नहीं है।


1
सी हालांकि टन तेजी से है।

14
यदि मैं जावा या पर्ल (और मैं कर सकता हूं) के साथ नेटवर्क पाइप भर सकता हूं, तो यह तथ्य कि सी तेज है अप्रासंगिक है।
पॉल टॉम्बलिन

1
@Kinopiko, क्या आप कह रहे हैं कि आपके पास ईबे (जावा), स्टैक ओवरफ्लो (C # /। NET) की तुलना में अधिक बड़ा पाइप, अधिक पृष्ठ हिट और अधिक डेटा है, Google या उच्च स्तर में लिखित एक लाख उच्च उपयोग की जाने वाली वेब साइटों में से कोई भी। ?
पॉल टॉम्बलिन

1
@ पाओल टॉम्बलिन: एक वेब एप्लिकेशन का उद्देश्य नेटवर्क पाइप को भरना नहीं है, बल्कि कुछ प्रोसेसिंग करना है। यदि आपको केवल कुछ पाठ और छवियों की सेवा करने की आवश्यकता है, तो आपको स्थिर HTML पृष्ठों का उपयोग करना चाहिए, जो बेहतर प्रदर्शन देते हैं। ज्यादातर मामलों में, स्थैतिक पृष्ठों को कैश से परोसा जाता है, इसलिए आपके सर्वर को कुछ भी नहीं करना चाहिए। ओटीओएच, जब प्रसंस्करण की आवश्यकता होती है, तो यह अच्छी तरह से अड़चन हो सकती है (हालांकि अधिक सामान्यतः डिस्क अड़चन है)।
पॉलि

4
आपको यह याद रखना होगा कि वेब एप्लिकेशन केवल "सर्वर-स्टैक" का एक अंश है जो उपयोगकर्ता के अनुरोधों को संभालता है, और ऐसा हिस्सा नहीं है जो प्रदर्शन-महत्वपूर्ण हो। अन्य भाग हैं - ओएस कर्नेल (आमतौर पर सी में लिखा गया), फाइलसिस्टम (सी), वेब सर्वर (आमतौर पर सी), भाषा दुभाषिया (सी), डेटाबेस (आमतौर पर सी या सी ++)। वेब एप्लिकेशन आमतौर पर केवल एक भाग से दूसरे भाग में डेटा भेजता है, उस पर कुछ बुनियादी ऑपरेशन को लागू करता है, और यह प्रदर्शन बिल्कुल भी महत्वपूर्ण नहीं है।
el.pescado

15

सी तार में हेरफेर करने के लिए एक सुविधाजनक भाषा नहीं है।

C # की तुलना करें:

string foo = "foo";
string bar = "bar";
string foobar = foo + bar;

संवाददाता सी:

const char* foo = "foo";
const char* bar = "bar";
char* foobar = (char*)malloc(strlen(foo)+strlen(bar)+1);
strcpy(foobar, foo);
strcat(foobar, foo);
//todo: worry about when/where the foobar memory
//which was allocated by malloc will be freed

4
PHP यूनिकोड को ठीक से संभालती नहीं है, लेकिन बहुत लोकप्रिय वेब-उन्मुख भाषा है।
el.pescado

12
तो हमें C ++ का उपयोग करना चाहिए, क्योंकि यह C के समान प्रदर्शन के बारे में हो जाता है, लेकिन एक आकर्षण की तरह आपके C # उदाहरण को संकलित करता है?
टेंटनर

2
स्ट्रिंग हेरफेर के रूप में - वेब अभिलेखन आमतौर पर केवल आउटपुट स्ट्रिंग्स, इसलिए सी की printfनौकरी करनी चाहिए।
el.pescado

5
C रनटाइम लाइब्रेरी फ़ंक्शंस के माध्यम से मल्टीबाइट और यूनिकोड को ठीक करता है। इस तरह से सुरक्षित कार्य का उपयोग करना और इसे बहुत सुरक्षित भी बनाता है।
justinhj

2
या आप asprintf (& foobar, "% s% s", फू, बार) का उपयोग कर सकते हैं;
पैट्रिक लोरियो

11

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

सी का उपयोग करने के लिए (विधानसभा के बजाय, या कुछ उच्च-स्तरीय) यह सुझाव देना है कि सी प्रोग्रामर दक्षता और कंप्यूटर दक्षता का मीठा स्थान है।

मेरे द्वारा लिखे जाने वाले कार्यक्रमों के लिए, यह ऐसा नहीं है: C उन कार्यक्रमों के प्रकारों के लिए एक खराब मेल है, जिन्हें मैं लिखना चाहता हूं, और एक सभ्य मैक्रो असेंबलर के ऊपर इसके फायदे बस उतना महत्वपूर्ण नहीं हैं। अभी जो कार्यक्रम मैं लिख रहा हूं, वह मेरी पसंद के HLL में कठिन नहीं है, लेकिन असेंबली या C में इसकी जटिलता इतनी अधिक होगी कि यह कभी समाप्त नहीं होगी। मैं स्वीकार करता हूं कि पर्याप्त समय के साथ एक पर्याप्त स्मार्ट प्रोग्रामर इसे असेंबली या सी में तेजी से चला सकता है, लेकिन मैं ऐसा प्रोग्रामर नहीं हूं।


7
  • यह असुरक्षित है
  • यह पढ़ने के लिए मुश्किल
  • इसे बनाए रखना कठिन है, विकास का समय एक परिमाण के क्रम पर धीमा है
  • आपका अधिकांश वेब सामान संभवतः I / O बाध्य है, इसलिए स्पीडअप भी कोई मायने नहीं रखेगा, खासकर जब आप जावा या C # जैसी तेज़ भाषा का उपयोग करते हैं

2
"फास्ट भाषा जैसे जावा या सी #" का क्या अर्थ है?
रॉस

3
@ किनोपिको: गतिशील भाषाओं में क्या कमजोरियां हैं? जब एक noob प्रोग्रामर स्पष्ट रूप से कहता है कि वह evalphp के माध्यम से मनमाना कोड निष्पादित करना चाहता है include? कृपया, C / C ++ में आप यह नहीं कहते हैं कि आप मनमाने कोड को निष्पादित करना चाहते हैं, यह सिर्फ करता है। evalबग नहीं है, यह प्रोग्रामर का इरादा है। C / C ++ में, किसी भी बग को गतिशील भाषाओं में दूरस्थ कोड निष्पादन के लिए नेतृत्व किया जा सकता है, यह मामला नहीं है जब तक कि कुछ मूर्ख के साथ खिलवाड़ न हो eval
L̲̳̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e

1
हो सकता है कि आप जो कर रहे हैं, उसके आधार पर "और C या C ++ से अधिक तेज या तेज हो, लेकिन आप अभी भी जावा और C # दोनों के साथ एक प्रबंधित मेमोरी वातावरण के साथ काम कर रहे हैं, जो उच्च यातायात परिदृश्यों में काफी कमियां बन सकता है।
रॉस

5
"और निश्चित रूप से किसी भी गतिशील भाषा के रूप में कई सुरक्षा कमजोरियां नहीं होती हैं" जो कि , मेरे दोस्त, पूरी बकवास है। उस टिप्पणी में 3 उत्थान क्यों हैं?
L̲̳̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e

2
@Kinopiko: वास्तव में, आप इसे कहीं भी नहीं समझा सकते हैं। इसका कोई स्पष्टीकरण नहीं है। C की किसी भी गतिशील भाषा की तुलना में बहुत बड़ी समस्या है। एक गतिशील भाषा में सबसे खराब बात यह हो सकती है कि "विशेषता नहीं मिली है, जो डोप डू है"।
L --o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e

7

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

  1. शामिल, उपयोगी समुदाय, उर्फ ​​लोग जो पहले से ही मेरी समस्या का समाधान कर चुके हैं। यह बहुत आसान है कि Google को noobiest भी नहीं क्यों वे "हेडर पहले से ही भेज रहे हैं" PHP में त्रुटियां हैं, जबकि यह जानकारी फ्रेमवर्क या भाषा के लिए उपलब्ध नहीं हो सकती है जो दृश्य के लिए नया है, या अन्यथा नहीं है क्रांतिक द्रव्यमान।
  2. फ्रेमवर्क, ताकि अधिकांश प्रोग्रामर व्यावसायिक समस्याओं को हल करने और कोड हैकिंग के लिए एक साथ मिल सकें।

यदि मेरे पास एक महत्वपूर्ण ऐप है जिसे चरम प्रदर्शन की आवश्यकता है, तो मैं सी का उपयोग करूंगा, लेकिन इसे लिखने में इतना अधिक समय लगेगा, कि मुझे कभी भी बाजार नहीं मिलेगा। जब तक # 1 या # 2 नहीं है तब तक इसका उपयोग करना मेरे लिए संभव नहीं है।


6

सी कई उद्देश्यों के लिए काफी निम्न स्तर की भाषाएं हैं: नो-ओओपी, मैनुअल संसाधन प्रबंधन के बहुत सारे।

वेब के लिए C का सीमित उपयोग है, उदाहरण के लिए Klone । यह ज्यादातर कम संसाधन एम्बेडेड अनुप्रयोग मामलों के लिए उपयोग किया जाता है।

हालाँकि CppCMS जैसे C ++ वेब फ्रेमवर्क हैं जो उच्च प्रदर्शन वेब अनुप्रयोगों के विकास के लिए उपयोग किए जाते हैं।

सी ++ आपको उच्च अमूर्तता और ठीक-ठाक पहुंच का आनंद लेने की अनुमति देता है जो आप बड़े अनुप्रयोगों को तैनात करने और विकसित करने के लिए बिल्कुल बेहतर विकल्प दे रहे हैं।

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

तो यह प्राथमिकताओं का सवाल है, सी ++ वेब विकास के लिए भी कम उपकरण हैं तो पीएचपी / पायथन / पर्ल या जावा के लिए।


2
दिलचस्प है, मैं CppCMS के बारे में C ++ में लिखे गए निम्न स्तर के वेब ढांचे के बारे में नहीं जानता था। C और वेब भाषाओं के बीच बैठे दोनों दुनिया के सर्वश्रेष्ठ हो सकते हैं।
Abs

यह अब निम्न स्तर की रूपरेखा है, यह एमवीसी वेब फ्रेमवर्क है जो बहुत ही तेज है।
अरतोम

क्षमा करें, मैं केवल ऐसी किसी भी चीज़ का संदर्भ देता हूं जो निम्न स्तर की वेब भाषा नहीं है। मैं समझता हूं कि इसका एमवीसी वेब ढांचा है।
ABS

"वेब भाषा" जैसी कोई चीज नहीं है, शायद केवल PHP को वेब कहा जा सकता है। जावा, पायथन, पर्ल, रूबी और सी # सहित अन्य सभी भाषाएं सामान्य प्रयोजन की भाषाएं हैं जो वेब के लिए उपयोग की जाती हैं।
अरटम

1
वैसे अगर हम विशिष्ट होना चाहते हैं तो सामान्य प्रयोजन की प्रोग्रामिंग भाषाओं जैसी कोई चीज नहीं है। केवल प्रोसीड्यूरल, स्ट्रक्चर्ड, ऑब्जेक्ट-ओरिएंटेड, फंक्शनल ... आदि हैं ...
ABS

5

@ जोरी सेबर्ट्स

कार्रवाई में FUD:

PHP, पायथन और इतने पर समस्या को हार्डवेयर फेंककर स्केल करना आसान है।

खैर, वास्तव में नहीं। वे सभी लंबवत पैमाने पर नहीं हैं और बहुत खराब क्षैतिज पैमाने पर हैं। देखें: http://gwan.ch/en_scalability.html जहां यह समझाया जाता है कि बुरे प्रदर्शन करने वालों के आगे कितनी परेशानी होती है।

मान लीजिए कि PHP में ऐप विकसित करने के लिए 1 व्यक्ति के 1 वर्ष का समय लगता है, और C में इसे करने के लिए उन्हें 3 साल का समय लगता है (क्योंकि C को समान कार्य करने के लिए और अधिक प्रयास करने की आवश्यकता होती है)।

फिर से गलत। यदि PHP लाइब्रेरीज़ को C में लिखा गया है, तो वे C- से सीधे प्रयोग करने योग्य हैं जो 'अद्वितीय उत्पादकता' प्रदान कर रहे हैं जो आप दावा कर रहे हैं कि PHP के पास है।

इसका मतलब है कि सी कोड की कम हार्डवेयर आवश्यकता को आकर्षक बनने के लिए सी के लिए 2 साल की मजदूरी का प्रतिनिधित्व करना होगा। व्यवहार में वह (लगभग) कभी नहीं होता है।

शुद्ध FUD (ऊपर का उत्तर देखें)।

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

हिपहॉप PHP की तुलना में बहुत तेज है, उस पर कोई संदेह नहीं है। लेकिन अगर आप हिपहॉप की तुलना सादे-सी कार्यान्वयन से करते हैं, तो आपके ओवरहेड की दो परतें हैं:

  • PHP से C ++ इंटरफेस (जो फूले हुए C ++ पुस्तकालयों का उपयोग करते हैं);
  • C ++ ब्लोट स्वयं (जो सादे सी की तुलना में C ++ 2-10 गुना धीमा बनाता है)।

साथ ही, हिपहॉप को क्लूलेस अकुशल शैक्षणिक मोड (किसी भी वास्तविक दुनिया से अलग किया गया) में लिखा गया है। यकीन है, यह PHP कोडर्स को प्रभावित कर सकता है, लेकिन इस कोड को एक एम्बेडेड प्रोग्रामर को दिखा सकता है और वह फेसबुक के लिए खेद महसूस करेगा।

"एक ऐसी भाषा जिसके पास सब कुछ नहीं है वास्तव में कुछ करने की तुलना में प्रोग्राम करना आसान है" - डेनिस एम। रिची

प्रोग्रामिंग भाषा END- USERS (अधिकांश) के विपरीत, डेनिस को इस मामले के बारे में कुछ बातें पता थीं, ऐसा लगता है।


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

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

कुछ "लंबवत पैमाने नहीं" कैसे करता है? क्या आप इसका मतलब यह है कि यह तेजी से एकल कोर प्रदर्शन और तेजी से स्मृति प्रदर्शन से लाभ नहीं है?
राकसलिस

5

इसके और भी कारण हो सकते हैं कि हम सभी PHP, पायथन, रूबी आदि का उपयोग करते हैं, इसके अलावा इन भाषाओं में इसे विकसित करना आसान है

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

और "जीत" से मेरा मतलब है कि आप हारेंगे नहीं। आपके प्रतियोगी अपनी साइटों को विकसित करने के लिए उच्च-स्तरीय भाषाओं और चौखटे का उपयोग कर रहे हैं, इसलिए यदि आप C का उपयोग करते हैं, तो आप अन्य लोगों के साथ प्रतिस्पर्धा नहीं कर रहे हैं जो C का उपयोग करते हैं, आप अन्य लोगों के खिलाफ हार रहे हैं जो C का उपयोग नहीं करते हैं। बस प्रतिस्पर्धा करने के लिए, आपके पास है अमूर्त के समान स्तरों वाले उपकरणों का उपयोग करना।

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

इसका मतलब यह है कि यदि आप पायथन या रूबी की तुलना में उच्च स्तर की भाषा का उपयोग कर सकते हैं, तो आप पायथन या रूबी का उपयोग कर लोगों के खिलाफ जीत सकते हैं। पॉल ग्राहम की कहानी है कि कैसे उन्होंने और उनकी टीम ने LISP का इस्तेमाल वेब साइट्स को विकसित करने में "गुप्त हथियार" के रूप में किया। http://www.paulgraham.com/avg.html

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


आप भूल रहे हैं कि वेब के माध्यम से बिट वॉल्यूम ऑर्डर प्रोसेसिंग बिट सी में लिखा गया था । paulgraham.com/avg.html के नीचे नोट्स देखें ।
जाइल्स रॉबर्ट्स

4

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


6
अंतिम प्रदर्शन प्राप्त करने के लिए आपको न केवल C की आवश्यकता होती है, बल्कि अंतिम C प्रोग्रामर की भी आवश्यकता होती है। और वे लोग आमतौर पर जावा / पी * प्रोग्रामर की तुलना में अधिक पैसा चाहते हैं।
el.pescado

4

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

क्या वेब साइट केवल एक भाषा में लिखी गई है? गंभीरता से यह धागा लगता है कि एक हथौड़ा सभी नाखूनों पर फिट बैठता है।

जब पिछली बार किसी ने सीरियसली कहा था कि सी कॉम्प्लेक्स था? मेरा मतलब है कि वास्तव में लोग आपको अधिक निम्न स्तर नहीं दिला सकते। मैं यहाँ C ++ की बात नहीं कर रहा हूँ क्योंकि दोनों को सामूहिक रूप से संदर्भित किया जाता है।

C के पास सुरक्षा संबंधी चिंताएँ हैं, जिन्हें नकारा नहीं जा सकता है, लेकिन क्या वे किसी भी तरह से कम हैं, जिसे PHP & Perl नाम के कीलेज में देखा जाता है? या तो मामले में एक सुरक्षित वेब साइट प्रोग्रामर अनुशासन का एक कार्य है।

किसी भी घटना में टिप्पणी करने के लिए। किसी भी दी गई भाषा का उपयोग करने की कठिनाई हाथ की समस्या पर बहुत निर्भर है और विशेष रूप से C ++ अनुभवी हाथों में समस्या का तेजी से समाधान कर सकती है।

वेब सर्वरों के लिए औद्योगिक उपयोग, जो कि एम्बेडेड सर्वर / साइटें हैं, उनके पास सामान्य वेब सर्वर के लिए भाषा के विकल्प नहीं हैं। तो आप अंत में C का एक प्रकार या संभवतः BASIC जैसे किसी चीज़ का उपयोग कर रहे हैं। आपका लक्ष्य उस उपकरण की कार्यक्षमता की पेशकश करना है जो भाषाओं की चिंता नहीं करता है। मुख्य धारा के वेब सर्वर पर ऐसा करने का तरीका उच्च स्तरीय भाषाओं के साथ होता है। बड़े लोहे से दूर चलो और अपनी प्रोग्रामिंग स्वतंत्रता दरवाजा बाहर चला जाता है।

सही पुस्तकालयों के बिना सी में एक वेब प्रोजेक्ट करने के लिए ज्यादातर मामलों में यह मूर्खतापूर्ण होगा। अच्छे मानकीकृत पुस्तकालयों की कमी यहां एक बड़ी नकारात्मक है।


3

यहाँ C में कुछ और वेब-संबंधित कोड लिखे गए हैं जो वेब के लिए अपनी स्वयं की C लाइब्रेरी बनाते समय देखने लायक है:

  • cgic: CGI प्रोग्रामिंग के लिए एक ANSI C लाइब्रेरी
  • cgit: git रिपॉजिटरी के लिए एक वेब फ्रंटेंड
  • wbox: HTTP टेस्टिंग टूल
  • wget html-parse.c
  • कर्ल कुकी
  • डिस्काउंट, डेविड पार्सन्स का सी.एच. कार्यान्वयन जॉन ग्रुबर के मार्कडाउन पाठ को html भाषा में
  • प्रोटोथ्रेड्स (esp एम्बेडेड सिस्टम्स के लिए), http://www.sics.se/~adam/software.html
  • लैरीट्रान द्वारा Google कोड परियोजना का विरोध किया गया
  • uriparser sourceforge परियोजना
  • http-parser, http रिक्वेस्ट / रिस्पॉन्स पार्सर c के लिए c रेयान डाहल द्वारा github पर
  • nginx
  • ...

2

खैर, इस तथ्य को देखते हुए कि वेब विकास उपयोगी पुस्तकालयों (PHP द्वारा उपयोग किए जाने वाले प्रकार) का मामला है, तब मैं यह नहीं देखता कि सी कैसे उपयोगी नहीं होगा।

आखिरकार, प्रक्रियात्मक तर्क समान है: जबकि, के लिए, यदि फिर, आदि, तो यह सी, पीएचपी, नेट या पर्ल है।

और C लूप या टेस्ट लिखना ज्यादा मुश्किल नहीं है क्योंकि यह C में लिखा गया है।

अधिकांश PHP पुस्तकालय सी में बने होते हैं इसलिए लापता-सी-लाइब्रेरी-फॉर-द-वेब तर्क को इतना ठोस नहीं लगता है।

मेरा अनुमान है कि जावा (SUN) और .Net (MICROSOFT) के प्रमोटर्स द्वारा सी को एक वेब प्रोग्रामिंग भाषा के रूप में विज्ञापित नहीं किया गया था क्योंकि उन्हें गोद लेने के लिए धकेलने के लिए उनकी अपनी स्वामित्व (भारी पेटेंट वाली) बौद्धिक संपदा थी।

एक नि: शुल्क (असंगत) मानक के रूप में, C डेवलपर्स पर कोई 'लॉक-इन' ग्रिप प्रदान नहीं करता है ... इसलिए, शायद यह सुनिश्चित करने के लिए कि स्कूलों और विश्वविद्यालयों में लॉबिंग का भारी हाथ यह सुनिश्चित करने के लिए है कि कर-दाता धन को अपनाने के लिए फंड देगा निजी हितों द्वारा समर्थित अवर तकनीक।

यदि C IBM और MICROSOFT के लिए पर्याप्त है (वे अपने उत्पादों को PHP या .Net में विकसित नहीं करते हैं) लेकिन एंड-यूज़र्स के लिए पर्याप्त नहीं हैं, तो एंड-यूज़र आश्चर्यचकित हो सकते हैं कि उन्हें इस दोयम दर्जे का नुकसान क्यों न हो।


1
Uhhhh Microsoft.com और sharepoint दोनों ASP.NET में हैं। Visual Studio 2010 का अधिकांश भाग .NET (WPF) में है। यह कथन झूठा है। उच्चतम स्तर की भाषा का उपयोग करें जो आपकी डिज़ाइन आवश्यकताओं को पूरा करती है। वेब के लिए, इसका मतलब है कि C # / Python / etc, और C / C ++ / etc में घटक जहाँ प्रदर्शन एक समस्या बन जाता है, जो लगभग कभी नहीं होता है।
3Dave

2

मैं एक वेब ऐप के लिए C का उपयोग करूंगा यदि:

  1. मेरे पास होस्टिंग सर्वर (छोटा VPS) के लिए थोड़ा बजट है और मेरा समय महंगा नहीं है।
  2. मैं फ़ेसबुक, ट्विटर या किसी ऐसे व्यक्ति के लिए काम कर रहा हूं जिसे इस्तेमाल किए जाने वाले सर्वरों की मात्रा कम करने की आवश्यकता है (हजारों से लाखों उपयोगकर्ताओं के साथ)।
  3. मैं सी सीखना चाहता हूं और मुझे एक वास्तविक विश्व ऐप खोजने की आवश्यकता है जहां मैं इसका उपयोग कर सकता हूं।
  4. मैं C को अन्य स्क्रिप्टिंग भाषाओं की तुलना में बहुत बेहतर जानता हूं।
  5. मैं एक इको आदमी हूं और मैं अपने ऐप के कार्बन फुटप्रिंट को कम करना चाहता हूं।

G-WAN स्क्रिप्ट के रूप में कोड चलाता है, हां C स्क्रिप्ट जैसे प्ले! जावा के लिए फ्रेमवर्क करता है। G-WAN बहुत तेज़ है और इसमें एक आसान API है। G-WAN वेब ऐप्स के लिए C / C ++ का उपयोग करना संभव बनाता है जब अन्य सर्वर ऐसा करने में विफल रहे हैं।

एक बात स्पष्ट है: आपको सी में एक वेब साइट लिखने के लिए एक अच्छे प्रोग्रामर की आवश्यकता है, कोई भी भद्दा डेवलपर स्पेगेटी PHP के साथ एक साइट बना सकता है :-) सी के लिए लीक डिटेक्टर और यहां तक ​​कि कचरा संग्रहकर्ता भी हैं।


2

आपके द्वारा उल्लिखित सभी भाषाएं वास्तव में C / ++ में लिखी गई हैं। अंतर केवल उन्नत वर्गों और पुस्तकालयों का है जो C से बनाए गए थे जो बनाते हैं कि अब ये अन्य दुभाषिया भाषाएं क्या हैं। यह भी है कि उन्हें स्क्रिप्टिंग भाषाओं के रूप में संदर्भित किया जाता है।

केक को बेक करने जैसा सोचें (PHP / JS):

  • 2 अंडे, 1 कप दूध, 2 मक्खन का टुकड़ा, 4 कप आटा, 1 कप चीनी, बेकिंग सोडा

लेकिन उन सभी तत्वों को बनाने की कल्पना करें जिनसे वे चीजें बनी हैं। (सी / ++)

  • 17 मिलीग्राम सोडियम बाइकार्बोनेट, 15 टन प्रोटीन, 12 टन विटैलिन मेम्ब्रेन, अमीनो एसिड, सल्फर, ... न्यूट्रॉन कण

सी कई आधुनिक भाषाओं की नींव है। यह महान और विधानसभा के तहत लगभग सबसे शक्तिशाली भाषाएं हैं। आप यह कर सकते हैं कि आपको उन सभी कोड के निर्माण में निवेश करने की ज़रूरत है जो इन अन्य भाषाओं ने पहले से ही किया था। जैसे आवर्त सारणी से केक बनाना।

इसे जानें आप सचमुच इसे कुछ भी कर सकते हैं!


1

सी में स्ट्रिंग हैंडलिंग को आसान बनाया जा सकता है:

डेटा प्रकार (libslack का हिस्सा)

लिब्स्लैक एक सामान्य ग्रोथ योग्य पॉइंटर ऐरे डेटा टाइप प्रदान करता है, जिसे लिस्ट कहा जाता है, एक जेनेरिक ग्रोथेबल हैश टेबल डेटा प्रकार जिसे मैप कहा जाता है और एक सभ्य स्ट्रिंग डेटा प्रकार जो कार्यों के ढेर के साथ आता है (कई पर्ल से उठा हुआ)। वैकल्पिक, "बढ़ने योग्य" फ्रीलास्ट के साथ एकवचन और दोगुनी लिंक की गई डेटा प्रकार भी हैं।

या:

प्रबंधित स्ट्रिंग लाइब्रेरी (C के लिए)

http://www.cert.org/secure-coding/managedstring.html


1

"डोमचाइन" ने लिखा:

प्लेटफ़ॉर्म निर्भरता: C को मूल कोड में संकलित करने की आवश्यकता है। यह कोड सभी प्लेटफार्मों पर नहीं चलता है। इंटरप्रिट की गई भाषाएं (जैसे PHP) एक दुभाषिया मौजूद होती हैं। बेशक यह समस्या हल हो सकती है लेकिन आप इस विशेष मामले में PHP में विकसित होने का लाभ देखते हैं।

क्या आपने कभी सोचा है कि पोर्टेबल PHP दुभाषिया किस भाषा में लिखी जाती है?

ANSI सी में।

इसलिए, इससे पहले कि आप एएनएसआई सी की पोर्टेबिलिटी को फिर से खारिज कर दें, अपने आप से पूछें कि आपकी पसंदीदा प्रोग्रामिंग भाषा किस भाषा में लिखी गई है ... (टिप: लगभग सभी सी / सी ++ में लिखे गए थे)।

ANSI C कंपाइलर उन सभी प्लेटफार्मों पर उपलब्ध हैं जिन पर मुझे काम करना था और वही PHP और इसके विशाल रनटाइम के लिए सही नहीं है।

पोर्टेबिलिटी के तर्क के लिए बहुत कुछ ।


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

0

जी-वान के समान है, लेकिन कोको / ऑब्जेक्टिव-सी के लिए बोम्बैक्स, एक वेब एप्लीकेशन फ्रेमवर्क है।

http://www.bombaxtic.com

ऑब्जेक्टिव-सी की बात करें तो मैं MacRuby को इंगित करने का विरोध नहीं कर सकता, जिसमें एक दिन हम वेब एप बनाने के तरीके में क्रांति लाने की क्षमता है।


खैर MacRuby अब मर चुका है।
बैंजोकेट

0

एक और बिंदु मंच की निर्भरता हो सकती है। C को मूल कोड में संकलित करने की आवश्यकता है। यह कोड सभी प्लेटफार्मों पर नहीं चलता है।

व्याख्याकार जहां भी दुभाषिया मौजूद होता है, वहां भाषाएं चलती हैं। उदाहरण के लिए कई प्रदाता अपने सर्वर पर स्थापित किए गए PHP-Interpreters प्रदान करते हैं लेकिन एक विंडोज ओएस के साथ। यदि आप अब लिनक्स-मशीन पर विकसित कर रहे हैं। तुम्हारे पास समस्या है।

बेशक यह समस्या हल हो सकती है लेकिन आप इस विशेष मामले में PHP में विकसित होने का लाभ देखते हैं।

आशा है कि यह मदद करता है, अधिवास के संबंध में


0

PHP, पायथन और इतने पर समस्या को हार्डवेयर फेंककर स्केल करना आसान है।

मान लीजिए कि PHP में ऐप विकसित करने के लिए 1 व्यक्ति के 1 वर्ष का समय लगता है, और C में इसे करने के लिए उन्हें 3 साल का समय लगता है (क्योंकि C को समान कार्य करने के लिए और अधिक प्रयास करने की आवश्यकता होती है)। इसका मतलब है कि सी कोड की कम हार्डवेयर आवश्यकता को आकर्षक बनने के लिए सी के लिए 2 साल की मजदूरी का प्रतिनिधित्व करना होगा। व्यवहार में वह (लगभग) कभी नहीं होता है।

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


0

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


0

आपको परिणाम प्राप्त करने के लिए आप जो कर रहे हैं उससे प्यार करना होगा। जावा और php जैसी भाषाओं को लोगों के जीवन को आसान बनाने के लिए बहुत प्रयास के साथ बनाया गया था। Php ने विशेष रूप से कई स्व-सीखा वेब प्रोग्रामर्स को आज लाभान्वित किया है। आप वेब विकास की दुनिया में इसे किस तरह का समर्थन देख सकते हैं।

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

मैं एक सी भक्त हूं और आंशिक रूप से यह कुछ सीमाओं के कारण है जो मुझे php जैसी अन्य भाषाओं पर एक नज़र देने से रोकता है। मैं सी दैनिक में लिख रहा हूं और हर दिन मुझे ई पर गर्व है और एक नई चीज भी सीख रहा हूं। यह मुझे बहुत अच्छा लगता है और मैंने यह भी सीखना शुरू कर दिया है कि Cgi के माध्यम से वेबसाइटों के लिए आवेदन लिखते समय C का डिफ़ॉल्ट विकल्प कैसे था। यह अन्य प्लेटफार्मों में अमूर्त है और जब आप ऐसी वेबसाइटें विकसित करते हैं जिनका डेटाबेस और वेब सेवाओं के साथ क्या करना है, तो आपको यह जानना होगा कि पर्दे के पीछे क्या हो रहा है।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.