Lựa chọn hệ điều hành để phát triển chức năng [đã đóng]


9

Tôi chủ yếu là một nhà phát triển .NET nên tôi thường sử dụng Windows / VisualStudio (có nghĩa là: Tôi hư hỏng) nhưng tôi thích Haskell và các ngôn ngữ khác (chủ yếu là chức năng) trong thời gian rảnh rỗi.

Bây giờ đối với Haskell, hỗ trợ windows đã ổn (bạn có thể lấy Haskell-Platform) nhưng latley tôi đã cố gắng thiết lập môi trường Clojure / Scheme cơ bản và nó chỉ là một nỗi đau trên windows.

Vì vậy, tôi đang suy nghĩ về việc thử một hệ điều hành khác để có công cụ hỗ trợ và công cụ tốt hơn. Tất nhiên, điều đó khiến tôi bị MacOS hoặc một số bản phân phối Linux.

Tôi chưa bao giờ sử dụng MacOS trước đây và tất nhiên Linux sẽ rẻ hơn (miễn phí) và tôi không nghĩ rằng tôi có thể khởi động song song MacOS trên PC-Phần cứng thông thường của bạn (bạn có thể không?). CỘNG VỚI: Tôi không có manh mối về các công cụ bạn có thể sử dụng trên các hệ điều hành đó (đối với tôi).

Nói ngắn gọn: Tôi muốn khám phá thêm Haskell, Clojure, Scala, Scheme và tất nhiên cần ít nhất là công cụ tốt cho JavaScript / HTML5 / Css. Hỗ trợ cho .NET / Mono / F # sẽ rất tuyệt nhưng vì điều này tôi vẫn sẽ có khởi động Win7 của mình.

Vì vậy, tôi muốn biết: - Hệ điều hành ưa thích của bạn là gì, Phân phối (có khả thi với Ubuntu không?) - bạn đang sử dụng Trình chỉnh sửa / IDE nào

Cảm ơn sự giúp đỡ của bạn!

Tái bút: Tôi không chắc đây có phải là nơi phù hợp cho câu hỏi này không nhưng tôi chắc chắn hy vọng vậy - nếu không xin vui lòng cho tôi biết tôi nên chuyển nơi này đến đâu (StackOverflow dường như không phải là nơi phù hợp IMHO)


Mọi thứ đều là một nỗi đau trong Windows trừ khi bạn cài đặt Cygwin. Khi bạn đã có Cygwin, sẽ không có bất kỳ ưu đãi nào để di chuyển bất cứ nơi nào từ Windows.
SK-logic

8
@ Sk-logic: Cygwin làm cho việc sử dụng Windows bớt đau đớn hơn một chút, nhưng cuối cùng người ta có thể muốn có đồ thật và chuyển sang một số HĐH giống Unix. ;-)
Giorgio


2
@vartec: Tôi không nghĩ đây là một bản sao: câu hỏi này hỏi cụ thể về việc sử dụng các ngôn ngữ lập trình chức năng.
Giorgio

3
Bắt đầu với một linux tốt như Fedora, Mint hoặc Ubuntu trước khi tải tải của bạn trên máy Mac.
Giàn khoan

Câu trả lời:


4

Lộ trình tôi hiện đang thực hiện để thử nghiệm các ngôn ngữ như vậy và những thứ khác, rất thành công và dễ sử dụng:

  • cài đặt Debian theo VirtualBox VM, chạy trên máy chủ Windows
  • giữ tất cả mã của tôi trên máy chủ hoặc trên ổ đĩa mạng chung, chỉnh sửa máy chủ bằng trình chỉnh sửa yêu thích (vẫn chưa quyết định giữa Notepad ++ và SublimeText; đối với C ++ tôi chỉ sử dụng VS)
  • chia sẻ thư mục trên máy chủ, gắn kết nó trong VM
  • biên dịch / chạy mã trong VM (hoặc thậm chí bạn có thể ssh với nó bằng cygwin)

Bằng cách này bạn có được ưu điểm của cả hai hệ điều hành.


hmm ... thú vị - nhưng tôi nghĩ rằng tôi thực hiện việc lặn sâu và cài đặt song song Ubunto trên máy tính xách tay đồ chơi của mình (sẽ không gây nguy hiểm cho máy công việc của tôi - chưa)
Carsten

1
Trên máy tính xách tay cá nhân của tôi, tôi đã sử dụng Windows khởi động kép - Linux từ lâu và chưa bao giờ gặp sự cố với nó. Mặt khác, trên máy tính để bàn của tôi, tôi đã không cài đặt Windows trong 10 năm qua. Trừ khi tôi cần một số phần mềm cụ thể chỉ có sẵn cho Windows (ví dụ: trò chơi video hoặc phần mềm giao diện điện thoại di động) Tôi thực sự không bỏ lỡ Windows. Điểm mấu chốt: Bạn có thể thực hiện tất cả các chương trình (chức năng) bạn cần trên Linux khi bạn đã quen thuộc với các công cụ thích hợp.
Giorgio

Tôi thực sự đã thử điều này trên máy tính để bàn của mình ngày hôm nay - Ubuntu trong VirtualBox VM - đã cho nó 30 GB trên SSD và 4GB Ram cùng với hai Cores - chạy mượt mà với vài điều tôi đã thử (và VM thực sự tuyệt vời với các cửa sổ dường như thay đổi kích thước và tất cả đó) - bây giờ đây sẽ là cách tôi thử ubfox ngay bây giờ - có thể tôi sẽ cài đặt khởi động kép trên máy tính xách tay của mình sau đó nhưng với màn hình kép thì điều này thật tuyệt - Cảm ơn bạn, đã trình bày câu trả lời này
Carsten

18

Câu trả lời ngắn: Có một giải pháp đơn giản cho vấn đề của bạn. Chỉ cần cài đặt máy ảo với Linux (Ubuntu) - nó là miễn phí.

Tôi cũng là một nhà phát triển .NET chủ yếu thích thử nghiệm những thứ khác nhau hoặc thử nhiều khung và / hoặc các công cụ phát triển. Điều chính ở đây là không làm xáo trộn môi trường phát triển chính của bạn. Do đó, cài đặt mọi thứ trong một máy ảo (HĐH gốc, khung, cấu hình và thiết lập chúng, v.v.) cho loại phát triển bạn định làm là cách hợp lý và tối ưu nhất.

Chỉnh sửa: Bạn có thể xem xét giải pháp ảo hóa khác nhau để xây dựng Máy ảo của mình. Sở thích cá nhân của tôi đi với VirtualBox . Đây là một giải pháp ảo hóa x86 miễn phí cho phép một loạt các hệ điều hành x86 như Windows, DOS, BSD hoặc Linux chạy trên hệ thống Linux.


2
khả năng tạo ảnh chụp nhanh môi trường phát triển của bạn mà bạn có thể hoàn nguyên sau này là một lợi thế lớn của phương pháp này. bạn cũng có thể chia sẻ env phát triển với các đồng nghiệp quan tâm
Arthur Ulfeldt

bạn đề nghị VM gì?
Carsten

1
Trước đây tôi đang sử dụng VMware, bây giờ tôi thích VirtualBox - ít gặp rắc rối hơn.
Yusubov

12

Tôi sử dụng Haskell và Scala (và cũng đang thực hiện một số Scheme, Common Lisp, SML, OCaml, Erlang) đều thuộc Linux (Ubuntu).

Tất cả các ngôn ngữ trên (trình biên dịch và trình thông dịch) có thể được cài đặt khá dễ dàng (có các gói có thể được cài đặt bằng apt-get hoặc hệ thống quản lý gói khác).

Scala có sự tích hợp tốt với Eclipse và (các) plugin Scala được tích cực phát triển. Nếu bạn muốn tìm hiểu thêm, có một khóa học về Scala hiện đang chạy tại Coursera giải thích cách sử dụng Scala trên Windows, Linux và Mac. Có thể bạn không có tất cả các tính năng và tích hợp của Visual Studio, nhưng tôi đã phát triển các dự án khá lớn trong Eclipse và nó hoạt động rất tốt.

Để chỉnh sửa Haskell (và các ngôn ngữ khác được liệt kê ở trên) tôi sử dụng gvim, điều này phù hợp với các dự án nhỏ. Bạn có thể sử dụng một trình soạn thảo khác (ví dụ EMACS), miễn là nó có tô sáng cú pháp cho Haskell. Nếu không, bạn có thể xem haskellwiki (nhờ Zach L cho gợi ý).

Để quản lý mã nguồn (phiên bản), tôi sử dụng SVN thông qua Eclipse cho tất cả các ngôn ngữ này.


cảm ơn bạn - Tôi chưa thực hiện bất kỳ dự án haskell quy mô lớn nào và cho đến nay Notepadd ++ (sic!) đã làm công việc đó cho tôi - có lẽ tôi nên xem xét VIM / EMACS nhưng điều này có thể sẽ khó học hơn lỗ hổng điều hệ điều hành khác ... vâng Tôi bị hư hỏng bởi các IDE (đã đề cập đến điều này - phải không?)
Carsten

Có một vài IDE Haskell được liệt kê trên HaskellWiki .
Zach L

2
Để chỉnh sửa mã Scala, bạn có thể sử dụng Eclipse. Ngoài ra còn có một plugin Eclipse bảng tính Scala cho phép bạn chỉnh sửa và kiểm tra các đoạn mã một cách nhanh chóng. VIM (và EMACS) có một số quen thuộc nhưng chúng rất mạnh mẽ. Tôi sẽ không học ai trong số họ chỉ để chỉnh sửa các tệp Haskell. Tôi đã học VIM như một biên tập viên có mục đích chung.
Giorgio

@Zach L: Cảm ơn đã liên kết. Tôi có thể thêm nó vào câu trả lời nếu bạn cho phép tôi. Tôi đã thử Leksah vài tháng trước nhưng theo tôi có thể nhớ nó vẫn chưa thể sử dụng được. Cho đến nay tôi chưa thử bất kỳ công cụ Haskell nào khác.
Giorgio

@Giorgio Chắc chắn bạn có thể thêm nó!
Zach L

10

MacOS yêu cầu phần cứng Mac hoặc bạn có thể chạy nó trên VirtualBox, nhưng lần trước tôi đã thử rằng nó không hoạt động. Và vì bạn không muốn thay thế các vấn đề về cấu hình / thiết lập hiện tại của mình bằng các vấn đề khác, tôi khuyên bạn nên chi nhiều tiền hoặc dùng thử linux. Tôi đã sử dụng Ubuntu để phát triển Haskell, Scala và Lisp với Eclipse, Netbeans, IntelliJ và Emacs và tôi không gặp nhiều khó khăn khi thiết lập chúng.


cảm ơn bạn - Ubuntu trông rất hứa hẹn do cài đặt dễ dàng (dường như) trên các cửa sổ ... đã lâu tôi thực sự sử dụng linux - Tôi nghĩ rằng tôi sẽ dùng thử - IntelliJ là một sản phẩm thương mại phải không?
Carsten

@ CarstenKönig Vâng, đó là một sản phẩm thương mại, tuy nhiên tôi tin rằng bạn có thể nhận được giấy phép miễn phí nếu bạn có ý định sử dụng nó trong lớp học hoặc sử dụng nó để duy trì một dự án nguồn mở (và có thể chứng minh điều đó).
Daniel B

1
@ CarstenKönig IntelliJ có phiên bản cộng đồng (miễn phí) .
yannis

plugin scala cho IntelliJ cũng miễn phí, nhưng tôi vẫn muốn giới thiệu Eclipse.
Kim

Đến từ Visual Studio, IntelliJ sẽ là một môi trường quen thuộc hơn nhiều để làm việc. Cảm giác giống như một phiên bản rút gọn của VS; trong khi các giao diện / quy trình làm việc của Eclipse và VS cực kỳ khác nhau.
Dan đang loay hoay bởi Firelight

5

Tất cả các hệ điều hành giống Unix đều có công cụ dòng lệnh rất tốt . Cá nhân tôi đã có những trải nghiệm tốt với Ubuntu cho cả phát triển và triển khai, nhiều người bạn của tôi cũng thề với MacOS. Tôi chưa thấy một lý do rõ ràng nào để thích cái này hay cái kia, tất cả chúng đều IMO tốt hơn Windows để làm việc với dòng lệnh.

Về phía Clojure / Scala, bạn có thể thấy Windows thực sự khá tốt nếu bạn sử dụng một trong các IDE Java với plugin Clojure / Java thích hợp. Cá nhân tôi sử dụng Eclipse với Ngược chiều kim đồng hồ làm môi trường phát triển Clojure chính của tôi trong Windows 7. Ngoài ra còn có Scala IDE để kiểm tra. Đây là một cách tiếp cận tốt nếu bạn thích các IDE đầy đủ tính năng và / hoặc muốn thực hiện lập trình polyglot trong cùng một môi trường. Một điểm cộng nữa của việc sử dụng một cái gì đó như Eclipse là tích hợp git / svn / maven là rất tốt.


3

Mặc dù tôi là một fan hâm mộ lớn của mac và linux, không có lý do gì bạn không thể thực hiện bất kỳ ngôn ngữ nào trên windows. Ngoài ra, nếu bạn muốn một ngôn ngữ chức năng trên windows, đừng bỏ qua F # là ngôn ngữ .net


4
F # là một trong những ngôn ngữ chính của tôi (C # nuôi ong khác): D
Carsten

Tôi chưa học nó, nhưng nó có vẻ là một ngôn ngữ khá hay. Tôi dành phần lớn thời gian của tôi ở Erlang những ngày này
Zachary K

2
F # là IMHO ngôn ngữ tốt nhất trong hệ sinh thái .net, chỉ thiếu một số công cụ yêu thích (không có cấu trúc lại, hỗ trợ giải pháp gần như không tồn tại (ví dụ: không có thư mục con nào trong hộp)) - bạn có thể nghĩ về nó như một số haskell / Ocaml / C # hyprid
Carsten

Đó là những gì tôi đã nghe. Tôi có ấn tượng rằng F # là cách Microsoft lấy ý tưởng hay từ Haskell và chuyển chúng vào thế giới .net
Zachary K

@Carsten König: Tôi không biết F # nhưng theo như tôi biết thì nó hầu hết có nguồn gốc từ Ocaml.
Giorgio

3

Tôi đã sử dụng Haskell trên Windows, OS X và (Ubuntu) Linux, vì vậy tôi có thể đưa ra một vài nhận xét về điều đó. Bây giờ, bất cứ điều gì bạn có thể nhận được từ Nền tảng Haskell có thể sẽ hoạt động tốt dù có chuyện gì, nhưng sau đó:

  • Tương đối ít lập trình viên Haskell sử dụng Windows. Bạn sẽ tìm thấy những thứ trên Hackage giả định một môi trường giống như unix mà không thực sự nêu rõ điều đó.

  • Rất nhiều công cụ hữu ích đến từ các liên kết FFI với các thư viện C và việc thiếu một công cụ biên dịch C đáng tin cậy và thậm chí mơ hồ trên Windows có nghĩa là, theo kinh nghiệm của tôi, cài đặt các liên kết FFI từ hackage là tốt nhất.

  • Bất cứ điều gì nhất thiết phải là nền tảng cụ thể, đủ thú vị bao gồm các thư viện GUI đa nền tảng, có nhiều khả năng "chỉ hoạt động" trên Linux.

  • Cygwin không giúp đỡ nhiều như bạn nghĩ.

Tóm lại: Mọi thứ có xu hướng hoạt động trên Linux, hầu hết mọi thứ đều hoạt động trên OS X nhưng một số điều kỳ lạ và trên Windows, bạn sẽ gặp phải nhiều vấn đề đau đầu thú vị khi sử dụng thư viện.

Nếu bạn chỉ muốn vui vẻ thử nghiệm các công cụ và học Haskell, hãy tự mình làm và sử dụng Ubuntu VM hoặc một cái gì đó.

Theo như các biên tập viên và như vậy - emacs và vim là phổ biến như mọi khi. Tôi chưa bao giờ học cách sử dụng (mặc dù tôi thực sự nên ...) và không quan tâm đến hầu hết các IDE, vì vậy tôi thường gắn bó với SciTE - đó là một trình bao bọc mỏng xung quanh một tiện ích soạn thảo có tên là Scintilla, mà bạn có thể biết là Notepad ++ sử dụng.


1

Thay vì chọn một hệ điều hành, hãy để tôi xem xét điều này từ góc độ IDE. Nếu bạn quan tâm đến Scheme, tôi sẽ khuyến khích bạn dùng thử DrRacket, xuất hiện từ rừng Scheme vài năm trước. IDE chạy tốt trên Windows, OS X và Linux.

Bây giờ, bạn chỉ cần chọn đúng hệ điều hành để chạy tất cả các ngôn ngữ chức năng khác của bạn .


cảm ơn bạn - tôi mới phát hiện ra về vợt ngày hôm qua - không có nhiều thời gian để xem xét nó ngoài IDE / Lang. có vẻ thú vị đối với tôi - mặc dù tôi không thể nói nếu nó thực sự khả thi để phát triển ứng dụng "thực sự".
Carsten

0

Simon Peyton-Jones, một trong những người tạo ra Haskell là một người dùng Windows và từ những gì tôi thu thập được, Haskell có hỗ trợ cửa sổ tuyệt vời.

Câu hỏi của bạn hơi mơ hồ để thành thật, sự lựa chọn hệ điều hành của bạn không gắn liền với mô hình ngôn ngữ bạn đang sử dụng.

Cá nhân tôi tin rằng bên ngoài thế giới C # và Java (nơi môi trường phát triển được quy định bởi IDE của bạn), môi trường phát triển phải luôn là hương vị của Unix, cho dù đó là BSD, Linux hay OSX.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.