कार्यात्मक विकास के लिए ओएस पसंद [बंद]


9

मैं मुख्य रूप से एक .NET डेवलपर हूं इसलिए मैं सामान्य रूप से विंडोज / विज़ुअलस्टडियो का उपयोग करता हूं (इसका मतलब है: मैं खराब हो गया हूं) लेकिन मैं अपने खाली समय में हास्केल और अन्य (ज्यादातर कार्यात्मक) अपशगनों का आनंद ले रहा हूं।

अब हास्केल के लिए विंडोज़-सपोर्ट ठीक है (आप हास्केल-प्लेटफॉर्म प्राप्त कर सकते हैं) लेकिन लेटली मैंने कोशिश की कि एक बेसिक क्लोजर / स्कीम का माहौल तैयार किया जाए और यह सिर्फ विंडोज़ पर एक दर्द है।

तो मैं बेहतर टूलींग और सुस्त समर्थन के लिए एक और ओएस की कोशिश करने के बारे में सोच रहा हूं। बेशक जो मुझे MacOS या कुछ लिनक्स वितरण के साथ छोड़ देता है।

मैंने पहले कभी भी MacOS का उपयोग नहीं किया और निश्चित रूप से लिनक्स सस्ता (मुक्त) होगा और मुझे नहीं लगता कि मैं अपने सामान्य पीसी-हार्डवेयर (क्या आप?) पर MacOS को समानांतर-बूट कर सकता हूं। प्लस: मेरे पास उन उपकरणों के बारे में कोई सुराग नहीं है जिनका उपयोग आप उन पर (मेरे लिए) कर सकते हैं।

इसे छोटा करने के लिए: मैं अधिक हास्केल, क्लोजर, स्काला, स्कीम का पता लगाना चाहता हूं और निश्चित रूप से जावास्क्रिप्ट / एचटीएमएल 5 / सीएसएस के लिए कम से कम अच्छी टूलिंग की आवश्यकता है। .NET / मोनो / F # के लिए समर्थन बहुत अच्छा होगा लेकिन इसके लिए मेरे पास अभी भी मेरा Win7 बूट होगा।

इसलिए मुझे यह जानना पसंद है: - आपका पसंदीदा ओएस क्या है, वितरण (उबंटू व्यवहार्य है?) - आप किस संपादक / आईडीई का उपयोग कर रहे हैं

आपके सहयोग के लिए धन्यवाद!

पुनश्च: मुझे यकीन नहीं है कि यह इस प्रश्न के लिए सही जगह है, लेकिन मैं निश्चित रूप से आशा करता हूं - यदि कृपया मुझे यह न बताएं कि मुझे इसे कहां स्थानांतरित करना चाहिए (StackOverflow सही जगह IMHO नहीं लगता है)


जब तक आप Cygwin स्थापित नहीं करते हैं तब तक सब कुछ विंडोज में एक नरक का दर्द है। एक बार जब आप साइग्विन प्राप्त कर लेते हैं, तो विंडोज से कहीं भी जाने के लिए कोई प्रोत्साहन नहीं होगा।
एसके-तर्क

8
@ Sk- तर्क: Cygwin विंडोज का उपयोग कम दर्दनाक बनाता है, लेकिन अंततः कोई वास्तविक चीज़ को लेना चाहता है और कुछ यूनिक्स जैसे OS में स्थानांतरित हो सकता है। ;-)
जियोर्जियो


2
@vartec: मुझे नहीं लगता कि यह कोई डुप्लिकेट है: यह प्रश्न विशेष रूप से कार्यात्मक प्रोग्रामिंग भाषाओं का उपयोग करने के बारे में पूछता है।
जियोर्जियो

3
एक मैक पर अपना भार उड़ाने से पहले फेडोरा, टकसाल, या उबंटू जैसे अच्छे लिनक्स के साथ शुरू करें।
ऋग्वेद

जवाबों:


4

इस समय मैं ऐसी भाषाओं और अन्य चीजों के साथ प्रयोग कर रहा हूं, जो बड़ी सफलता और उपयोग में आसानी के साथ हैं:

  • एक वर्चुअलबॉक्स VM के तहत डेबियन स्थापित करें, जो विंडोज होस्ट पर चल रहा है
  • होस्ट पर या साझा नेटवर्क ड्राइव पर मेरे सभी कोड रखें, पसंदीदा संपादक का उपयोग करके होस्ट पर संपादन करें (अभी भी नोटपैड ++ और सबमिलीटेक्स्ट के बीच अनिर्णीत; सी ++ के लिए मैं सिर्फ वीएस का उपयोग करता हूं;
  • मेजबान पर निर्देशिका साझा करें, इसे वीएम में माउंट करें
  • VM में कोड संकलित / चलाएं (या आप इसे cygwin का उपयोग करके भी ssh कर सकते हैं)

इस तरह से आप दोनों ऑपरेटिंग सिस्टम के पेशेवरों को प्राप्त करते हैं।


हम्म ... दिलचस्प - लेकिन मुझे लगता है कि मैं डीप-डाइव करता हूं और Ubunto को अपने toying- लैपटॉप पर समानांतर स्थापित करता हूं (मेरे काम-मशीन को खतरे में नहीं डालेगा - अभी तक)
Carsten

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

मैंने वास्तव में आज अपने डेस्कटॉप पर यह कोशिश की - उबंटू एक वर्चुअलबॉक्स वीएम में - इसने मेरे एसएसडी पर 30GB और 4GB Ram को दो करोड़ के साथ दिया - मैंने जो कुछ कोशिश की, उसके साथ स्मूथ चलता है (और VM वास्तव में दिखने वाली खिड़कियों के आकार और सभी के साथ बढ़िया है वह) - अभी के लिए यह उसी तरह होगा जैसे मैं अब के लिए ubuntu का प्रयास करता हूं - शायद मैं बाद में अपने लैपटॉप पर एक डुअल-बूट स्थापित करता हूं, लेकिन दोहरे-मॉनिटर के साथ यह बहुत अच्छा है - धन्यवाद, इसका जवाब के रूप में fluted
Carsten

18

संक्षिप्त उत्तर: आपकी समस्या का एक सरल समाधान है। बस लिनक्स (उबंटू) के साथ वर्चुअल-मशीन स्थापित करें - यह मुफ़्त है।

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

संपादित करें: आप अपनी वर्चुअल मशीन बनाने के लिए विभिन्न वर्चुअलाइजेशन समाधान पर विचार कर सकते हैं। मेरी व्यक्तिगत प्राथमिकता VirtualBox के साथ जाती है । यह एक नि: शुल्क x86 वर्चुअलाइजेशन समाधान है जो लिनक्स सिस्टम पर चलने के लिए विंडोज, डॉस, बीएसडी या लिनक्स जैसे x86 ऑपरेटिंग सिस्टम की एक विस्तृत श्रृंखला की अनुमति देता है।


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

आप क्या सुझाव देते हैं?
कार्स्टन

1
पहले मैं VMware का उपयोग कर रहा था, अब मैं VirtualBox को पसंद करता हूं - इससे निपटने के लिए कम परेशानी।
युसुबोव

12

मैं सभी लिनक्स (उबंटू) के तहत हास्केल और स्काला का उपयोग करता हूं (और कुछ स्कीम, कॉमन लिस्प, एसएमएल, ओकेमेल, एर्लांग) भी करता हूं।

उपरोक्त सभी भाषाएं (कंपाइलर और इंटरप्रिटर्स) काफी आसानी से स्थापित की जा सकती हैं (ऐसे पैकेज हैं जिन्हें एप्ट-गेट या किसी अन्य पैकेज प्रबंधन प्रणाली का उपयोग करके स्थापित किया जा सकता है)।

Scala का ग्रहण के साथ एक अच्छा एकीकरण है और Scala प्लगइन (s) सक्रिय रूप से विकसित हुए हैं। यदि आप अधिक सीखना चाहते हैं, तो वर्तमान में कोर्टेरा में चल रहे स्काला पर एक कोर्स है जो बताता है कि विंडोज, लिनक्स और मैक पर स्काला का उपयोग कैसे करें। हो सकता है कि आपके पास विज़ुअल स्टूडियो की सभी सुविधाएँ और एकीकरण न हों, लेकिन मैंने ग्रहण में काफी बड़ी परियोजनाएँ विकसित की हैं और यह ठीक काम करती है।

हास्केल (और ऊपर सूचीबद्ध अन्य भाषाएं) के संपादन के लिए मैं gvim का उपयोग करता हूं जो छोटी परियोजनाओं के लिए ठीक है। आप एक अन्य संपादक (जैसे EMACS) का उपयोग कर सकते हैं, बशर्ते इसमें हास्केल के लिए वाक्यविन्यास हाइलाइटिंग हो। अन्यथा, आप haskellwiki (सुझाव के लिए Zach L के लिए धन्यवाद) पर एक नज़र डाल सकते हैं ।

स्रोत कोड (संस्करण) के प्रबंधन के लिए मैं इन सभी भाषाओं के लिए ग्रहण के माध्यम से एसवीएन का उपयोग करता हूं।


धन्यवाद - मैंने कोई बड़े पैमाने पर हैस्केल प्रोजेक्ट (अभी तक) नहीं किया और अब तक Notepadd ++ (sic!) ने मेरे लिए काम किया - शायद मुझे VIM / EMACS में देखना चाहिए लेकिन यह सीखने के लिए और अधिक कठिन मधुमक्खी को समाप्त कर सकता है। छेद अन्य ओएस बात ... हाँ, मैं आईडीई द्वारा खराब कर रहा हूं (पहले से ही यह उल्लेख किया गया था - मैंने नहीं?)
कार्स्टन

HaskellWiki पर सूचीबद्ध कुछ हास्केल IDE हैं ।
Zach L

2
स्काला कोड के संपादन के लिए आप ग्रहण का उपयोग कर सकते हैं। एक स्कैला वर्कशीट एक्लिप्स प्लगइन भी है जो आपको मक्खी पर कोड के टुकड़ों को संपादित करने और परीक्षण करने की अनुमति देता है। VIM (और EMACS) का उपयोग कुछ हो रहा है, लेकिन वे बहुत शक्तिशाली हैं। मैं उन दोनों में से केवल हास्केल फ़ाइलों को संपादित करने के लिए नहीं सीखूंगा। मैंने वीआईएम को एक सामान्य-उद्देश्य संपादक के रूप में सीखा है।
जियोर्जियो

@Zach L: लिंक के लिए धन्यवाद। यदि आप मुझे अनुमति देते हैं तो मैं इसे उत्तर में जोड़ सकता हूं। मैंने कुछ महीने पहले लीक्साह की कोशिश की है लेकिन जहां तक ​​मुझे याद है यह अभी तक प्रयोग करने योग्य नहीं था। अब तक मैंने किसी अन्य हास्केल टूल को आज़माया नहीं है।
जियोर्जियो

@Giorgio यकीन है कि आप इसे जोड़ सकते हैं!
ज़ैक एल

10

MacOS को Mac हार्डवेयर की आवश्यकता होती है या आप इसे VirtualBox पर चलाने के लिए प्राप्त कर सकते हैं, लेकिन पिछली बार मैंने कोशिश की थी कि यह काम न करे। और जब से आप अपने वर्तमान कॉन्फ़िगरेशन / सेटअप समस्याओं को अन्य समस्याओं से बदलना नहीं चाहते हैं, मेरा सुझाव है कि आप या तो बहुत पैसा खर्च करें या लिनक्स का प्रयास करें। मैंने ग्रहण, स्केबला और लिस्प विकास के लिए उबंटू का उपयोग ग्रहण, नेटबीन्स, इंटेलीज और एमएसीएस के साथ किया है, और मुझे उन लोगों को स्थापित करने में बहुत परेशानी नहीं हुई है।


धन्यवाद - उबंटू इसकी वजह से बहुत ही आशाजनक लग रहा है (प्रतीत होता है) खिड़कियों के शीर्ष पर आसान स्थापित करें ... यह एक लंबा समय है जब मैंने वास्तव में लिनक्स का उपयोग किया है - मुझे लगता है कि मैं इसे आज़माऊंगा - IntelliJ एक comercial उत्पाद सही है?
कार्स्टन

@ CarstenKönig हां, यह एक वाणिज्यिक उत्पाद है, हालांकि मेरा मानना ​​है कि यदि आप इसे कक्षा में उपयोग करने का इरादा रखते हैं, या एक ओपन सोर्स प्रोजेक्ट को बनाए रखने के लिए इसका उपयोग कर सकते हैं (और इसे साबित कर सकते हैं)।
डैनियल बी

1
@ CarstenKönig IntelliJ का एक निःशुल्क (स्वतंत्र) सामुदायिक संस्करण है
यानिस

IntelliJ के लिए scala प्लगइन भी मुफ़्त है, लेकिन मैं फिर भी ग्रहण की सिफारिश करूंगा।
किम

विजुअल स्टूडियो से आने वाले, इंटेलीज में काम करने के लिए एक अधिक परिचित वातावरण होगा। यह वीएस के कट डाउन संस्करण की तरह लगता है; जबकि ग्रहण और वीएस के इंटरफेस / वर्कफ़्लो बेहद अलग हैं।
डैन इज फायरिंग बाइ फिद्लिग सेप

5

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

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


3

जबकि मैं एक बड़ा मैक और लिनक्स प्रशंसक हूं, कोई कारण नहीं है कि आप उन भाषाओं में से कोई भी विंडोज़ पर नहीं कर सकते। इसके अलावा अगर आप खिड़कियों पर एक कार्यात्मक भाषा चाहते हैं तो F # को न देखें जो एक .net भाषा है


4
F # मेरी मुख्य भाषाओं में से एक है (अन्य मधुमक्खी सी #): D
Carsten

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

2
F #, .net Eco-system में IMHO सबसे अच्छी भाषा है, केवल कुछ टूल लव (नो रिफ्लेक्टरिंग, लगभग-नॉन-सॉल्यूशन सॉल्यूशन-सपोर्ट) (उदाहरण के लिए बॉक्स के बाहर कोई सबफ़ोल्डर नहीं) का अभाव है - आप इसे कुछ हैस्केल के रूप में सोच सकते हैं / Ocaml / C # पाखंड
Carsten

वही मैंने सुना है। मुझे यह आभास हुआ कि F # माइक्रोसॉफ्ट के हास्केल से शांत विचारों को लेने और उन्हें .net दुनिया में ले जाने का तरीका है
Zachary K

@Carsten कोनिग: मुझे F # नहीं पता है लेकिन जहां तक ​​मुझे पता है कि यह ज्यादातर Ocaml से लिया गया है।
जियोर्जियो

3

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

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

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

  • कुछ भी जरूरी प्लेटफॉर्म-विशिष्ट, जो पर्याप्त रूप से पर्याप्त है जिसमें क्रॉस-प्लेटफॉर्म जीयूआई लाइब्रेरी शामिल हैं, लिनक्स पर "बस काम" करने की अधिक संभावना है।

  • साइगविन आपकी उतनी मदद नहीं करता जितना आप सोचते हैं।

संक्षेप में: सब कुछ लिनक्स पर काम करने के लिए जाता है, ज्यादातर चीजें ओएस एक्स पर काम करती हैं लेकिन कुछ चीजें अजीब हैं, और विंडोज पर आपको पुस्तकालयों का उपयोग करते समय बहुत सारे दिलचस्प सिरदर्द का सामना करना चाहिए।

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

जहां तक ​​संपादकों और इस तरह के जाने - emacs और विम हमेशा की तरह लोकप्रिय हैं। मैंने कभी भी उपयोग करना नहीं सीखा (हालांकि मुझे वास्तव में ...) और अधिकांश आईडीई के लिए परवाह नहीं है, इसलिए मैं आम तौर पर SciTE के साथ रहता हूं - यह स्किनटिला नामक एक संपादक विजेट के चारों ओर एक पतली आवरण है, जिसे आप जानते हैं कि क्या हो रहा है नोटपैड ++ का उपयोग करता है।


1

OS चुनने के बजाय, मुझे IDE कोण से इस पर आने दें। यदि आप योजना में रुचि रखते हैं, तो मैं आपको DrRacket को आज़माने के लिए प्रोत्साहित करूंगा, जो कुछ साल पहले स्कीम जंगल से निकली थी। आईडीई विंडोज, ओएस एक्स और लिनक्स पर अच्छी तरह से चलता है।

अब, आपको बस अपनी अन्य कार्यात्मक भाषाओं को चलाने के लिए सही OS चुनना होगा ।


धन्यवाद - मुझे कल ही रैकेट के बारे में पता चला - इसे देखने का ज्यादा समय नहीं था, लेकिन आईडीई / लैंग। मेरे लिए दिलचस्प लगता है - हालांकि मैं यह नहीं कह सकता कि यह "वास्तविक" ऐप विकास के लिए अभी तक व्यवहार्य है।
कार्सन

0

साइमन पेयटन-जोन्स, हास्केल के रचनाकारों में से एक विंडोज उपयोगकर्ता है और मैं जो इकट्ठा करता हूं, उसमें से हास्केल को अन्य विंडोज समर्थन है।

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

व्यक्तिगत रूप से मेरा मानना ​​है कि C # और Java दुनिया के बाहर (जहाँ विकास का वातावरण आपके IDE द्वारा निर्धारित होता है), एक विकास वातावरण हमेशा यूनिक्स का स्वाद होना चाहिए, चाहे वह बीएसडी, लिनक्स या ओएसएक्स हो।

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