2011-01-04 16 views
5

मुझे पता है कि पावरहेल को आम तौर पर विंडोज़ के लिए आईटी प्रबंधन भाषा माना जाता है, लेकिन आप इसके बजाय एफ # क्यों चुनते हैं, जिसे दृढ़ता से टाइप किया जाता है और 'इंटेलिसेंस' होता है?आईटी कार्य: एफ # स्क्रिप्ट बनाम पावरहेल स्क्रिप्ट

+0

स्क्रिप्टिंग बनाम प्रोग्रामिंग ... फिर से नहीं। –

+5

@ फिलिप मुझे लगता है कि यह वास्तव में स्क्रिप्टिंग बनाम स्क्रिप्टिंग है। हालांकि मुझे व्यक्तिगत रूप से हल करने के लिए इस तरह के प्रश्न मिलते हैं। –

+1

@ कॉनराड, एफ # स्क्रिप्टिंग afaik नहीं है। –

उत्तर

5

मैं उस कंपनी के लिए बेहतर फिट था जब मैं उस कंपनी के लिए बेहतर फिट था, जिस टीम का उपयोग किया जा रहा था, और हाथ में कार्य। अन्यथा मैं कुछ और चुनूँगा।

मुझे लगता है कि अधिक जानकारी के बिना की तुलना में अधिक विशिष्ट नहीं किया जा सकता है, लेकिन मैं कुछ सवाल आप से पूछना चाहिए सुझाव है कि कर सकते हैं:

  1. क्या समस्या आप को सुलझाने रहे है?
  2. समस्या के समाधान को व्यक्त करना किस भाषा में आसान है?
  3. मौजूदा कर्मचारी एफ # डेवलपर स्वयं हैं (यानी सीखने की अवस्था में शामिल हैं)?
  4. क्या इस कोड को बनाए रखने वाले लोग प्रशासकों (जो आमतौर पर पावरहेल, & से परिचित हैं, एफ # से परिचित नहीं हैं)?

एक संबंधित संकेत: अपने उत्पादन कोड और आधारभूत संरचना में भाषाओं का विकास करने की अनुमति न दें।

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

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

2

यह आपकी समस्या पर निर्भर करता है और कौन स्क्रिप्ट बनाए रखेगा।

पावरशेल प्रशासन क्षेत्रों में बहुत मजबूत है (फाइलों, सक्रिय निर्देशिका, सीएसवी/एक्सएमएल, कंप्यूटर इत्यादि के साथ काम करना), लेकिन यह प्रोग्रामिंग क्षमता काफी सीमित है (उदाहरण के लिए जेनेरिक का मामला)। PowerShell में थ्रेडिंग उतना आसान नहीं है जितना हो सकता है। लेकिन प्रशासकों से कोई भी उम्मीद नहीं करता कि वे धागे का उपयोग करेंगे। इसके बजाय पृष्ठभूमि नौकरियां हैं जो प्रशासक की जरूरतों को संतुष्ट करती हैं।

दूसरी तरफ, एफ # वास्तविक प्रोग्रामिंग भाषा है, जिसका अर्थ है कि यह काफी कम स्तर है और इसलिए वर्बोज़ (पावरशेल की तुलना में)। पावरशेल में लिखे गए कुछ कार्य एक-लाइनर हैं, जबकि एफ # में आप बहुत सारे कोड लिखेंगे। इसके अलावा - आप दूरस्थ कंप्यूटर (Invoke-Command -computer myserver ...) पर चल रहे कमांड को कैसे प्राप्त करेंगे?

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

1

यह संभवतः एक बुरा विचार है, इस समय, एफ # में लिपियों को लिखना चुनने के लिए यदि उन्हें स्वयं के अलावा किसी अन्य व्यक्ति की आवश्यकता हो सकती है ...

  1. एफ # बोलने वाले लोगों का कैडर बहुत छोटा है, इसलिए आप स्क्रिप्ट बना रहे हैं जो बहुत कम लोग पढ़ या संपादित कर सकते हैं।
  2. एफएसआई निष्पादन योग्य नेट फ्रेमवर्क के साथ नहीं आता है, न ही यह एफ # रनटाइम पुनर्वितरण पैकेज (जहां तक ​​मैं बता सकता हूं) का हिस्सा है। इसका अर्थ यह है कि स्क्रिप्ट केवल निष्पादित की जा सकती हैं जहां एफ # टूल्स के साथ विजुअल स्टूडियो स्थापित किया गया है।

स्पष्ट अपवाद, ज़ाहिर है, है अगर आप एक डेवलपर, एक परियोजना जहां एफ # एक प्राथमिक भाषा है पर काम कर के बाद से इसका मतलब यह होगा कि हर किसी कि मायने रखती है चलाने के लिए और संपादित करने के लिए सक्षम हो जाएगा रहे हैं आपकी स्क्रिप्ट

हालांकि, मैं कहना है कि मैं इस आदर्श/असाधारण मामले में भी लगता है कि है, यह शायद एफ # उपयोग करने के लिए करता है, तो अपना स्क्रिप्टिंग कार्य कार्य जिसके लिए वहाँ PowerShell में पहले से मौजूद cmdlets हैं शामिल अधिक काम होगा (यानी: फाइल सिस्टम कार्य, रजिस्ट्री, डेटाबेस रखरखाव, सक्रिय निर्देशिका, विनिमय, सूची चालू और चालू होती है)। बेशक, आप अभी भी ऐसा करना चुन सकते हैं यदि आप भाषा सीखने का अवसर के रूप में इन स्क्रिप्ट का उपयोग कर रहे हैं, लेकिन दिमाग में 1 & 2 ;-)

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