ทางเลือกระบบปฏิบัติการสำหรับการพัฒนาฟังก์ชั่น [ปิด]


9

ฉันเป็นนักพัฒนา. NET เป็นหลักดังนั้นฉันจึงใช้ Windows / VisualStudio (นั่นหมายถึง: ฉันนิสัยเสีย) แต่ฉันสนุกกับ Haskell และภาษาอื่น ๆ (ส่วนใหญ่ใช้งานได้) ในเวลาว่าง

ตอนนี้สำหรับ Haskell การสนับสนุน windows ก็โอเค (คุณสามารถรับ Haskell-Platform) แต่ latley ฉันพยายามที่จะได้รับสภาพแวดล้อม Clojure / Scheme พื้นฐานติดตั้งและมันก็แค่ความเจ็บปวดบน windows

ดังนั้นฉันจึงคิดว่าจะลองใช้ระบบปฏิบัติการอื่นเพื่อการใช้เครื่องมือและการสนับสนุนที่ดีขึ้น แน่นอนว่าทำให้ฉันใช้ MacOS หรือ Linux ได้บ้าง

ฉันไม่เคยใช้ MacOS มาก่อนและแน่นอนว่า Linux จะมีราคาถูกกว่า (ฟรี) และฉันไม่คิดว่าฉันจะสามารถบูต MacOS แบบขนานบนฮาร์ดแวร์พีซีปกติของคุณได้ไหม บวก: ฉันไม่มีเงื่อนงำเกี่ยวกับเครื่องมือที่คุณสามารถใช้กับ (สำหรับฉัน) เพื่อกำหนด OS

เพื่อให้สั้น: ฉันต้องการสำรวจ Haskell, Clojure, Scala, Scheme และแน่นอนต้องมีเครื่องมืออย่างน้อยดีสำหรับ JavaScript / HTML5 / Css การสนับสนุนสำหรับ. NET / Mono / F # นั้นยอดเยี่ยม แต่สำหรับตอนนี้ฉันยังคงมีการบูต Win7

ดังนั้นฉันชอบที่จะรู้ว่า: - ระบบปฏิบัติการที่คุณต้องการ, การกระจาย (Ubuntu ทำงานได้อย่างไร) - คุณใช้ Editor / IDE รุ่นใด

ขอขอบคุณสำหรับความช่วยเหลือของคุณ!

PS: ฉันไม่แน่ใจว่านี่เป็นสถานที่ที่เหมาะสมสำหรับคำถามนี้หรือไม่ แต่ฉันหวังว่าจะเป็นเช่นนั้น - หากไม่ใช่โปรดแจ้งให้เราทราบว่าฉันควรย้ายไปที่ใด (StackOverflow ดูเหมือนจะไม่ถูกที่ IMHO)


ทุกอย่างเป็นความเจ็บปวดใน Windows เว้นแต่คุณจะติดตั้ง Cygwin เมื่อคุณได้ Cygwin แล้วจะไม่มีแรงจูงใจใด ๆ ที่จะย้ายจาก Windows
SK-logic

8
@ Sk-logic: Cygwin ทำให้การใช้ Windows นั้นเจ็บปวดน้อยลง แต่ในที่สุดก็อาจต้องการมีของจริงและย้ายไปใช้ระบบปฏิบัติการ Unix ที่คล้ายกัน ;-)
Giorgio


2
@vartec: ฉันไม่คิดว่ามันจะซ้ำกัน: คำถามนี้ถามโดยเฉพาะเกี่ยวกับการใช้ภาษาโปรแกรมการทำงาน
Giorgio

3
เริ่มต้นด้วย linux ที่ดีเช่น Fedora, Mint หรือ Ubuntu ก่อนที่จะระเบิดภาระของคุณบน Mac
Rig

คำตอบ:


4

เส้นทางที่ฉันกำลังทำการทดลองกับภาษาเช่นนี้และสิ่งอื่น ๆ ด้วยความสำเร็จและใช้งานง่าย:

  • ติดตั้ง Debian ภายใต้ VirtualBox VM ซึ่งทำงานบนโฮสต์ Windows
  • เก็บรหัสของฉันทั้งหมดบนโฮสต์หรือบนไดรฟ์เครือข่ายที่ใช้ร่วมกันแก้ไขบนโฮสต์โดยใช้ตัวแก้ไขรายการโปรด (ยังไม่แน่ใจระหว่าง Notepad ++ และ SublimeText สำหรับ C ++ ฉันเพิ่งใช้ VS)
  • แบ่งปันไดเรกทอรีบนโฮสต์ติดตั้งใน VM
  • คอมไพล์ / รันโค้ดใน VM (หรือคุณสามารถทำได้โดยใช้ cygwin)

วิธีนี้คุณจะได้รับข้อดีของระบบปฏิบัติการทั้งสอง


อืมม ... น่าสนใจ - แต่ผมคิดว่าผมทำดำน้ำลึกและติดตั้ง Ubunto ขนานบน toying แล็ปท็อปของฉัน (จะไม่เป็นอันตรายต่อการทำงานในเครื่องของฉัน - ยัง)
คาร์สเท

1
ในแล็ปท็อปส่วนตัวของฉันฉันใช้ dual boot Windows - Linux มานานและไม่เคยมีปัญหากับมัน บนเดสก์ท็อปของฉันฉันไม่ได้ติดตั้ง Windows ในช่วง 10 ปีที่ผ่านมา ถ้าฉันไม่ต้องการซอฟต์แวร์เฉพาะที่พร้อมใช้งานสำหรับ Windows เท่านั้น (เช่นวิดีโอเกมหรือซอฟต์แวร์ส่วนต่อประสานโทรศัพท์มือถือ) ฉันไม่พลาด Windows จริงๆ บรรทัดล่าง: คุณสามารถทำการเขียนโปรแกรม (การทำงาน) ทั้งหมดที่คุณต้องการบน Linux เมื่อคุณคุ้นเคยกับเครื่องมือที่เหมาะสม
Giorgio

ฉันลองสิ่งนี้บนเดสก์ท็อปของฉันวันนี้ - Ubuntu ใน VirtualBox VM - ให้มัน 30GB บน SSD และ 4GB Ram พร้อม Cores สองตัว - ทำงานได้ไม่ดีกับสิ่งที่ฉันได้ลอง (และ VM นั้นยอดเยี่ยมมากด้วยการปรับขนาด windows นั้น) - สำหรับตอนนี้จะเป็นวิธีที่ผมลองอูบุนตูสำหรับวันนี้ - บางทีฉันอาจจะติดตั้งอัลบูตแล็ปท็อปของฉันในภายหลัง แต่มีจอภาพคู่นี้เป็นที่ดี - ขอขอบคุณคุณ flaged นี้เป็นคำตอบ
คาร์สเท

18

คำตอบสั้น ๆ :มีวิธีแก้ไขปัญหาของคุณง่ายๆ เพียงติดตั้งเครื่องเสมือนด้วย Linux (Ubuntu) - ฟรี

ฉันยังเป็นนักพัฒนา. NET ส่วนใหญ่ที่ชอบทดลองสิ่งต่าง ๆ หรือลองใช้เฟรมเวิร์กและ / หรือเครื่องมือในการพัฒนาที่หลากหลาย สิ่งที่สำคัญที่นี่ไม่ได้ไปยุ่งสภาพแวดล้อมการพัฒนาหลักของคุณ ดังนั้นการติดตั้งทุกอย่างในเครื่องเสมือน (ระบบปฏิบัติการดั้งเดิม, กรอบงาน, การกำหนดค่าและการตั้งค่าเป็นต้น) สำหรับประเภทของการพัฒนาที่คุณตั้งใจจะทำคือวิธีที่เหมาะสมที่สุดและเหมาะสมที่สุด

แก้ไข:คุณอาจพิจารณาโซลูชันการจำลองเสมือนที่แตกต่างกันเพื่อสร้างเครื่องเสมือนของคุณ ความชอบส่วนบุคคลของฉันไปกับVirtualBox เป็นโซลูชั่น virtualization x86 ฟรีที่ช่วยให้ระบบปฏิบัติการ x86 หลากหลายเช่น Windows, DOS, BSD หรือ Linux ทำงานบนระบบ Linux


2
ความสามารถในการสร้างภาพรวมของสภาพแวดล้อมการพัฒนาของคุณที่คุณสามารถย้อนกลับไปสู่ภายหลังได้เป็นข้อได้เปรียบที่สำคัญของวิธีการนี้ คุณสามารถแบ่งปัน env การพัฒนากับเพื่อนร่วมงานที่สนใจ
Arthur Ulfeldt

คุณแนะนำ VM แบบไหน?
Carsten

1
ก่อนหน้านี้ฉันใช้ VMware ตอนนี้ฉันชอบ VirtualBox - ลดความยุ่งยากในการจัดการ
Yusubov

12

ฉันใช้ Haskell และ Scala (และทำบางโครงการ, Common LISP, SML, OCaml, Erlang) ทั้งหมดภายใต้ Linux (Ubuntu)

ภาษาทั้งหมดข้างต้น (คอมไพเลอร์และล่าม) สามารถติดตั้งได้ค่อนข้างง่าย (มีแพ็คเกจที่สามารถติดตั้งได้โดยใช้ apt-get หรือระบบการจัดการแพ็คเกจอื่น)

Scala มีการรวมที่ดีกับ Eclipse และปลั๊กอิน Scala ได้รับการพัฒนาอย่างแข็งขัน หากคุณต้องการเรียนรู้เพิ่มเติมมีหลักสูตรเกี่ยวกับ Scala ที่ทำงานอยู่ที่Courseraซึ่งจะอธิบายวิธีการใช้ Scala บน Windows, Linux และ Mac บางทีคุณอาจไม่มีคุณสมบัติทั้งหมดและการรวมเข้ากับ Visual Studio แต่ฉันได้พัฒนาโครงการขนาดใหญ่ใน Eclipse และใช้งานได้ดี

สำหรับการแก้ไข Haskell (และภาษาอื่น ๆ ที่ระบุไว้ข้างต้น) ฉันใช้ gvim ซึ่งใช้ได้สำหรับโครงการขนาดเล็ก คุณสามารถใช้โปรแกรมแก้ไขอื่น (เช่น EMACS) หากมีโปรแกรมเน้นไวยากรณ์สำหรับ Haskell มิฉะนั้นคุณสามารถดูhaskellwiki (ขอบคุณ Zach L สำหรับคำแนะนำ)

สำหรับการจัดการซอร์สโค้ด (เวอร์ชัน) ฉันใช้ SVN ถึง Eclipse สำหรับภาษาเหล่านี้ทั้งหมด


ขอบคุณ - ฉันไม่ได้ทำโครงการ haskell ขนาดใหญ่ (ถึง) และถึงตอนนี้ Notepadd ++ (sic!) ทำงานให้ฉัน - บางทีฉันควรดู VIM / EMACS แต่สิ่งนี้อาจจบลงด้วยความยากลำบากในการเรียนรู้มากกว่า รูระบบปฏิบัติการอื่น ๆ ... ใช่แล้วฉันถูก IDEs เสีย (พูดถึงเรื่องนี้แล้ว - ไม่ใช่เหรอ)
Carsten

มี IDEs Haskell ไม่กี่จดทะเบียนในเป็นHaskellWiki
Zach L

2
สำหรับการแก้ไขรหัส Scala คุณสามารถใช้ Eclipse นอกจากนี้ยังมีปลั๊กอิน Eclipse ของเวิร์กชีท Scala ที่ให้คุณแก้ไขและทดสอบโค้ดได้ทันที VIM (และ EMACS) รับความคุ้นเคยบางอย่าง แต่มีประสิทธิภาพมาก ฉันจะไม่เรียนรู้อย่างใดอย่างหนึ่งของพวกเขาเท่านั้นที่จะแก้ไขไฟล์ Haskell ฉันได้เรียนรู้ VIM เป็นเครื่องมือแก้ไขวัตถุประสงค์ทั่วไป
Giorgio

@Zach L: ขอบคุณสำหรับลิงค์ ฉันสามารถเพิ่มลงในคำตอบหากคุณให้สิทธิ์ฉัน ฉันลอง Leksah มาหลายเดือนแล้ว แต่เท่าที่ฉันจำได้ว่ามันยังใช้ไม่ได้ จนถึงตอนนี้ฉันยังไม่ได้ลองใช้เครื่องมือ Haskell อื่น ๆ
Giorgio

@Giorgio แน่นอนว่าคุณสามารถเพิ่มได้!
Zach L

10

MacOS ต้องใช้ฮาร์ดแวร์ Mac หรือคุณอาจให้มันทำงานบน VirtualBox แต่ครั้งล่าสุดที่ฉันลองแล้วว่ามันไม่ทำงาน และเนื่องจากคุณไม่ต้องการแทนที่ปัญหาการกำหนดค่า / การตั้งค่าปัจจุบันของคุณด้วยปัญหาอื่น ๆ ฉันขอแนะนำให้คุณใช้เงินเป็นจำนวนมากหรือลองใช้ลินุกซ์ ฉันใช้ Ubuntu กับ Haskell, Scala และ Lisp กับ Eclipse, Netbeans, IntelliJ และ Emacs และฉันไม่ได้มีปัญหาในการตั้งค่าเหล่านั้น


ขอบคุณ - อูบุนตูดูมีแนวโน้มมากเนื่องจากติดตั้งง่าย (ดูเหมือน) บนหน้าต่าง ... เป็นเวลานานที่ฉันใช้ลินุกซ์จริงๆ - ฉันคิดว่าฉันจะลองดู - IntelliJ เป็นผลิตภัณฑ์เชิงพาณิชย์ใช่มั้ย
Carsten

@ CarstenKönigใช่มันเป็นผลิตภัณฑ์เชิงพาณิชย์ แต่ฉันเชื่อว่าคุณสามารถได้รับใบอนุญาตฟรีหากคุณต้องการใช้ในห้องเรียนหรือใช้เพื่อรักษาโครงการโอเพนซอร์ซ (และสามารถพิสูจน์ได้)
Daniel B

1
@ CarstenKönig IntelliJ มี (ฟรี) ฉบับชุมชน
yannis

ปลั๊กอินสกาล่าสำหรับ IntelliJ นั้นฟรี แต่ฉันก็ยังอยากแนะนำ Eclipse
Kim

มาจาก Visual Studio, IntelliJ จะเป็นสภาพแวดล้อมที่คุ้นเคยมากขึ้นในการทำงานมันรู้สึกเหมือนเวอร์ชัน VS ที่ถูกตัดทอนลง ในขณะที่อินเตอร์เฟส / เวิร์กโฟลว์ของ Eclipse และ VS นั้นแตกต่างกันอย่างมาก
Dan Is Fiddling โดย Firelight

5

ทั้งหมดของระบบปฏิบัติการยูนิกซ์เหมือนมีเครื่องมือบรรทัดคำสั่งที่ดีมาก ฉันเองมีประสบการณ์ที่ดีกับ Ubuntu สำหรับการพัฒนาและการปรับใช้เพื่อนของฉันหลายคนก็สาบานด้วย MacOS ฉันไม่เห็นเหตุผลที่ชัดเจนว่าต้องการเลือกอย่างใดอย่างหนึ่งเนื่องจาก IMO ทั้งหมดดีกว่า Windows สำหรับการใช้งานบรรทัดคำสั่ง

ที่ด้าน Clojure / Scala โดยเฉพาะคุณอาจพบว่า Windows ค่อนข้างดีถ้าคุณใช้ Java IDEs กับปลั๊กอิน Clojure / Java ที่เหมาะสม ฉันเองใช้Eclipse กับทวนเข็มนาฬิกาเป็นสภาพแวดล้อมการพัฒนา Clojure หลักของฉันใน Windows 7 นอกจากนี้ยังมีScala IDEเพื่อตรวจสอบ นี่เป็นวิธีการที่ดีถ้าคุณชอบ IDEs ที่มีคุณสมบัติครบถ้วนและ / หรือต้องการที่จะเขียนโปรแกรมหลายภาษาในสภาพแวดล้อมเดียวกัน ข้อดีอีกอย่างของการใช้บางอย่างเช่น Eclipse คือการรวม git / svn / maven นั้นดีมาก


3

ในขณะที่ฉันเป็นแฟนตัวยงของแม็คและลินุกซ์ไม่มีเหตุผลที่คุณไม่สามารถทำภาษาเหล่านี้บน windows ได้ นอกจากนี้หากคุณต้องการภาษาที่ใช้งานได้บน windows อย่ามองข้าม F # ซึ่งเป็นภาษา. net


4
F # เป็นหนึ่งในภาษาหลักของฉัน (อีก beeing C #): D
Carsten

ฉันยังไม่ได้เรียน แต่ดูเหมือนว่าภาษาที่ดีงาม ฉันใช้เวลาส่วนใหญ่ใน Erlang วันนี้
Zachary K

2
F # เป็น IMHO ภาษาที่ดีที่สุดใน. net eco-system ขาดความรักในเครื่องมือเพียงอย่างเดียว (ไม่มีการปรับโครงสร้างการสนับสนุนโซลูชันที่แทบจะไม่มีเลย (ตัวอย่างเช่นไม่มีโฟลเดอร์ย่อยออกมาจากกล่อง)) - คุณสามารถนึกได้ว่า haskell / Ocaml / C # hyprid
Carsten

นั่นคือสิ่งที่ฉันเคยได้ยิน ฉันได้รับความประทับใจว่า F # เป็นวิธีการของ Microsoft ในการนำไอเดียดีๆจาก Haskell และย้ายพวกเขาไปสู่โลก. net
Zachary K

@ Carsten König: ฉันไม่รู้ F # แต่เท่าที่ฉันรู้ว่าส่วนใหญ่มาจาก Ocaml
Giorgio

3

ฉันเคยใช้ Haskell บน Windows, OS X และ (Ubuntu) Linux ดังนั้นฉันจึงสามารถพูดอะไรได้บ้าง ตอนนี้ทุกสิ่งที่คุณจะได้รับจากแพลตฟอร์ม Haskell อาจจะใช้ได้ดีไม่ว่าจะเกิดอะไรขึ้น แต่หลังจากนั้น:

  • โปรแกรมเมอร์ Haskell ค่อนข้างน้อยใช้ Windows คุณจะพบสิ่งต่าง ๆ ใน Hackage ที่ถือว่ามีสภาพแวดล้อมคล้ายยูนิกซ์โดยไม่ได้ระบุไว้อย่างชัดเจน

  • สิ่งที่มีประโยชน์มากมายมาจากการผูก FFI ไปยังไลบรารี C และการขาด toolchain การคอมไพล์ C ที่สม่ำเสมอและน่าเชื่อถือบน Windows หมายความว่าจากประสบการณ์ของฉันการติดตั้ง FFI bindings จากแฮกเกอร์เป็นสิ่งที่ดีที่สุด

  • สิ่งใดก็ตามที่จำเป็นต้องใช้แพลตฟอร์มเฉพาะซึ่งพอรวมถึงห้องสมุด GUI ข้ามแพลตฟอร์มมีแนวโน้มที่จะ "เพิ่งทำงาน" บน Linux

  • Cygwin ไม่ได้ช่วยอะไรมากเท่าที่คุณคิด

โดยสรุป: ทุกอย่างมีแนวโน้มที่จะทำงานบน Linux ส่วนใหญ่ทำงานบน OS X แต่มีบางสิ่งที่แปลกและบน Windows คุณควรคาดหวังว่าจะมีอาการปวดหัวที่น่าสนใจมากมายเมื่อใช้ห้องสมุด

หากคุณแค่อยากสนุกกับการทดลองกับสิ่งต่าง ๆ และเรียนรู้ Haskell ทำตัวเองให้เป็นที่โปรดปรานและใช้ Ubuntu VM หรืออะไรบางอย่าง

เท่าที่บรรณาธิการและคนที่ชอบ emacs และกลุ่มที่เป็นที่นิยมเช่นเคย ฉันไม่เคยเรียนรู้ที่จะใช้อย่างใดอย่างหนึ่ง (แต่ฉันควร ... ) และไม่สนใจ IDEs ส่วนใหญ่ดังนั้นฉันมักจะติดกับ SciTE - มันเป็นเสื้อคลุมบาง ๆ รอบ ๆ เครื่องมือแก้ไขที่เรียกว่า Scintilla ซึ่งคุณอาจรู้ว่าเป็นสิ่งที่ ใช้ Notepad ++


1

แทนที่จะเลือกระบบปฏิบัติการให้ฉันมาที่นี่จากมุม IDE หากคุณสนใจโครงการฉันขอแนะนำให้คุณลองใช้ DrRacket ซึ่งโผล่ออกมาจากป่าโครงการเมื่อไม่กี่ปีก่อน IDE ทำงานได้ดีบน Windows, OS X และ Linux

ตอนนี้คุณเพียงแค่ต้องเลือกระบบปฏิบัติการที่เหมาะสมเพื่อใช้งานฟังก์ชั่นภาษาอื่น ๆของคุณทั้งหมด


ขอบคุณ - ฉันเพิ่งค้นพบเกี่ยวกับแร็กเก็ตเมื่อวานนี้ - ไม่มีเวลามากพอที่จะดู แต่ IDE / Lang ดูน่าสนใจสำหรับฉัน - แม้ว่าฉันจะไม่สามารถบอกได้ว่ามันเป็นไปได้จริง ๆ สำหรับการพัฒนาแอพ "ของจริง"
Carsten

0

Simon Peyton-Jones หนึ่งในผู้สร้างของ Haskell เป็นผู้ใช้ Windows และจากสิ่งที่ฉันรวบรวม Haskell ได้รับการสนับสนุน windows ที่ยอดเยี่ยม

คำถามของคุณค่อนข้างคลุมเครือที่จะซื่อสัตย์การเลือกระบบปฏิบัติการของคุณไม่ได้เชื่อมโยงกับกระบวนทัศน์ของภาษาที่คุณใช้

โดยส่วนตัวฉันเชื่อว่านอกโลก C # และ Java (ที่สภาพแวดล้อมการพัฒนาถูกกำหนดโดย IDE ของคุณ) สภาพแวดล้อมการพัฒนาควรเป็น Unix ไม่ว่าจะเป็น BSD, Linux หรือ OSX

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.