기능 개발을위한 OS 선택


9

나는 주로 .NET 개발자이므로 Windows / VisualStudio를 정상적으로 사용합니다 (즉, 버릇이 있습니다). 그러나 여가 시간에 Haskell 및 기타 (대부분 기능적인) 언어를 즐기고 있습니다.

이제 Haskell의 경우 Windows 지원이 정상이지만 (Haskell-Platform을 얻을 수 있음) latley 기본 Clojure / Scheme 환경을 설정하려고 시도했지만 Windows에 통증이 있습니다.

그래서 더 나은 툴링과 언어 지원을 위해 다른 OS를 시도 할 생각입니다. 물론 그것은 MacOS 또는 일부 Linux 배포판을 남겨 둡니다.

필자는 MacOS를 사용하지 않았으며 물론 Linux가 더 저렴할 것입니다 (무료). 일반적인 PC 하드웨어에서 MacOS를 병렬 부팅 할 수 있다고 생각하지 않습니다. 플러스 : 나는 당신이 (나에게) forign OS에서 사용할 수있는 도구에 대한 실마리가 없습니다.

간단히 말하면 : 더 많은 Haskell, Clojure, Scala, Scheme을 탐색하고 JavaScript / HTML5 / Css에 대한 훌륭한 도구가 필요합니다. .NET / Mono / F #에 대한 지원은 훌륭하지만 Win7 부팅은 여전히 ​​가능합니다.

그래서 나는 알고 싶습니다 :-선호하는 OS는 무엇입니까, 배포 (우분투는 가능합니까?)-어떤 편집기 / IDE를 사용하고 있습니까?

도와 주셔서 감사합니다!

추신 : 이것이이 질문에 맞는 장소인지 확실하지 않지만 확실히 그렇게 희망합니다-그렇지 않으면 어디로 옮겨야하는지 알려주십시오 (StackOverflow가 올바른 장소 IMHO가 아닌 것 같습니다)


Cygwin을 설치하지 않으면 Windows에서 모든 것이 어려워집니다. Cygwin을 얻은 후에는 Windows에서 다른 곳으로 이동할 동기가 없습니다.
SK-logic

8
@ Sk-logic : Cygwin은 Windows 사용을 조금 덜 고통스럽게 만들지 만 결국에는 실제로 유닉스와 같은 OS로 옮기기를 원할 수 있습니다. ;-)
조르지오


2
@ vartec : 이것이 중복이라고 생각하지 않습니다.이 질문은 기능적 프로그래밍 언어 사용에 대해 구체적으로 묻습니다.
조르지오

3
Fedora, Mint 또는 Ubuntu와 같은 좋은 Linux로 시작하여 Mac에 부하를 불어 넣으십시오.
Rig

답변:


4

현재 이러한 언어와 다른 것들을 실험하기 위해 내가 사용하는 경로는 큰 성공과 사용 편의성을 제공합니다.

  • Windows 호스트에서 실행되는 VirtualBox VM 아래에 데비안 설치
  • 모든 코드를 호스트 또는 공유 네트워크 드라이브에 유지하고 즐겨 사용하는 편집기를 사용하여 호스트에서 편집하십시오 (여전히 메모장 ++와 SublimeText 사이에서 결정되지 않았습니다 .C ++의 경우 VS를 사용합니다)
  • 호스트에서 디렉토리를 공유하고 VM에 마운트
  • VM에서 코드 컴파일 / 실행 (또는 cygwin을 사용하여 ssh 가능)

이렇게하면 두 운영 체제의 장점을 모두 얻을 수 있습니다.


흠 ... 흥미 롭습니다.하지만 심층 다이빙을하고 우분 토를 병렬 컴퓨터에 설치하는 것 같습니다 (아직 작업 기계를 위험에 빠뜨리지는 않습니다)
Carsten

1
개인용 랩톱에서 나는 오랫동안 듀얼 부팅 Windows-Linux를 사용해 왔으며 아무런 문제가 없었습니다. 반면, 내 데스크톱에는 지난 10 년 동안 Windows를 설치하지 않았습니다. Windows에서만 사용할 수있는 특정 소프트웨어 (예 : 비디오 게임 또는 휴대폰 인터페이스 소프트웨어)가 필요한 경우를 제외하고는 Windows를 정말 놓치지 않습니다. 결론 : 적절한 도구에 익숙해지면 Linux에서 필요한 모든 (기능적) 프로그래밍을 수행 할 수 있습니다.
조르지오

실제로 오늘 데스크탑에서 이것을 시도했습니다 .VirtualBox VM의 Ubuntu는 2 개의 코어와 함께 SSD와 4GB Ram에서 30GB를주었습니다. 내가 시도한 몇 가지 사항으로 smoth 실행 지금이 내가 지금 우분투를 시도하는 방식이 될 것입니다 위해 - - 그) 아마 나중에하지만 내 노트북에 듀얼 부팅을 설치하려면이 대단한 듀얼 모니터 - 응답으로이를 즐겨 찾기에 추가되었습니다, 감사
카슨

18

짧은 답변 : 문제에 대한 간단한 해결책이 있습니다. Linux (Ubuntu)를 사용하여 가상 머신을 설치하기 만하면됩니다 ( 무료).

또한 다른 것을 실험하거나 다양한 프레임 워크 및 / 또는 개발 도구를 사용하는 것을 좋아하는 주로 .NET 개발자입니다. 여기서 중요한 것은 주요 개발 환경을 망치지 않는 것입니다. 따라서 수행하려는 개발 유형에 따라 가상 머신 (기본 OS, 프레임 워크, 구성 및 설정 등)에 모든 것을 설치하는 것이 가장 논리적이고 최적의 방법입니다.

편집 : 가상 머신을 구축하기 위해 다른 가상화 솔루션을 고려할 수 있습니다. 개인적으로 선호하는 것은 VirtualBox 입니다. Windows, DOS, BSD 또는 Linux와 같은 광범위한 x86 운영 체제를 Linux 시스템에서 실행할 수있는 무료 x86 가상화 솔루션입니다.


2
나중에 되돌릴 수있는 개발 환경의 스냅 샷을 만드는 기능은이 방법의 주요 이점입니다. 또한 개발 환경을 관심있는 동료들과 공유 할 수 있습니다
Arthur Ulfeldt

어떤 VM을 추천 하시겠습니까?
Carsten

1
이전에는 VMware를 사용하고 있었지만 이제는 VirtualBox를 선호합니다.
Yusubov

12

나는 Linux (Ubuntu)에서 Haskell과 Scala (그리고 Scheme, Common Lisp, SML, OCaml, Erlang)를 사용합니다.

위의 모든 언어 (컴파일러 및 인터프리터)는 매우 쉽게 설치할 수 있습니다 (apt-get 또는 다른 패키지 관리 시스템을 사용하여 설치할 수있는 패키지가 있습니다).

스칼라는 이클립스와 잘 통합되어 있으며 스칼라 플러그인이 활발히 개발되고있다. 자세한 내용을 알아 보려면 현재 Coursera 에서 실행중인 Scala에 대한 과정이 있으며 Windows, Linux 및 Mac에서 Scala를 사용하는 방법을 설명합니다. 어쩌면 Visual Studio의 모든 기능과 통합을 가지고 있지는 않지만 Eclipse에서 상당히 큰 프로젝트를 개발했으며 제대로 작동합니다.

Haskell (및 위에 나열된 다른 언어)을 편집하기 위해 작은 프로젝트에는 괜찮은 gvim을 사용합니다. Haskell에 대한 구문 강조 표시가있는 경우 다른 편집기 (예 : EMACS)를 사용할 수 있습니다. 그렇지 않으면, haskellwiki를 볼 수 있습니다 (제안을 위해 Zach L에게 감사드립니다).

소스 코드 (버전 관리)를 관리하기 위해이 모든 언어에 대해 Eclipse를 통해 SVN을 사용합니다.


고맙습니다-나는 대규모 haskell 프로젝트 (아직)를하지 않았으며 지금까지 Notepadd ++ (sic!)가 나를 위해 일했습니다. 어쩌면 VIM / EMACS를 살펴 봐야하지만 이것은 배우기가 더 어려워 질 수 있습니다. 다른 OS 문제를 ... 구멍을 뚫었습니다. IDE에 망쳤습니다. (이미 언급하지 않았습니까?)
Carsten

HaskellWiki 에는 Haskell IDE가 몇 가지 있습니다 .
Zach L

2
스칼라 코드를 편집하기 위해 Eclipse를 사용할 수 있습니다. 또한 Scala 워크 시트 Eclipse 플러그인이있어서 코드를 즉시 편집하고 테스트 할 수 있습니다. VIM (및 EMACS)은 어느 정도 익숙해 지지만 매우 강력합니다. 나는 Haskell 파일을 편집하는 것만 배우지 않을 것입니다. VIM을 범용 편집기로 배웠습니다.
조르지오

@ Zach L : 링크 주셔서 감사합니다. 허락하면 답변에 추가 할 수 있습니다. 나는 몇 달 전에 Leksah를 시험해 보았지만 기억할 수있는 한 아직 사용할 수 없었습니다. 지금까지 다른 Haskell 도구는 시도하지 않았습니다.
조르지오

@Giorgio 물론 추가 할 수 있습니다!
Zach L

10

MacOS에는 Mac 하드웨어가 필요하거나 VirtualBox에서 실행할 수 있지만 지난번에는 작동하지 않습니다. 그리고 현재 구성 / 설정 문제를 다른 문제로 바꾸고 싶지 않기 때문에 많은 돈을 쓰거나 리눅스를 사용해보십시오. Eclipse, Netbeans, IntelliJ 및 Emacs와 함께 Haskell, Scala 및 Lisp 개발에 Ubuntu를 사용했으며 그 설정에 많은 어려움을 겪지 않았습니다.


고맙습니다-Ubuntu는 창 상단에 (겉보기에는) 쉬운 설치로 인해 매우 유망 해 보입니다 ... 리눅스를 실제로 사용한 것은 오랜 시간입니다.
Carsten

@ CarstenKönig 예, 상용 제품이지만 강의실에서 사용하려는 경우 무료 라이센스를 받거나 오픈 소스 프로젝트를 유지 관리하는 데 사용할 수 있다고 생각합니다 (그리고 증명할 수 있음).
Daniel B

1
@ CarstenKönig IntelliJ에는 (무료) 커뮤니티 에디션이 있습니다.
yannis

IntelliJ 용 scala 플러그인도 무료이지만 여전히 Eclipse를 권장합니다.
Kim

Visual Studio에서 제공되는 IntelliJ는 훨씬 친숙한 환경이 될 것입니다. VS의 축소 버전 인 것 같습니다. 반면 Eclipse와 VS의 인터페이스 / 워크 플로우는 매우 다릅니다.
Dan은 불을 피우고있다

5

모든 유닉스 계열 OS는 매우 훌륭한 커맨드 라인 툴링을 가지고 있습니다. 나는 개인적으로 개발 및 배포에 대해 우분투에서 좋은 경험을했으며 많은 친구들이 MacOS를 맹세합니다. 나는 하나 또는 다른 것을 선호 해야하는 명백한 이유를 보지 못했지만 명령 줄 작업을 위해 Windows보다 모두 IMO가 더 좋습니다.

Clojure / Scala 측면에서, 적절한 Clojure / Java 플러그인과 함께 Java IDE 중 하나를 사용하는 경우 Windows가 실제로 매우 우수하다는 것을 알 수 있습니다. 개인적 으로 Windows 7의 기본 Clojure 개발 환경 으로 반 시계 방향 으로 Eclipse를 사용 합니다. 체크 아웃하는 Scala IDE 도 있습니다 . 완전한 기능을 갖춘 IDE를 좋아하거나 동일한 환경에서 폴리 글 로트 프로그래밍을 수행하려는 경우이 방법이 좋습니다. Eclipse와 같은 것을 사용하는 것의 추가 장점은 git / svn / maven 통합이 매우 우수하다는 것입니다.


3

나는 큰 맥과 리눅스 팬이지만 Windows에서 이러한 언어를 수행 할 수있는 이유는 없습니다. 또한 Windows에서 기능 언어를 원한다면 .net 언어 인 F #을 간과하지 마십시오.


4
F #은 내 주요 언어 중 하나입니다 (다른 꿀벌 C #) : D
Carsten

나는 아직 그것을 배우지 못했지만 꽤 멋진 언어처럼 보입니다. 나는 요즘 Erlang에서 대부분의 시간을 보낸다
Zachary K

2
F #은 .net 에코 시스템에서 가장 좋은 언어이며, 도구에 대한 관심이 부족합니다 (리팩토링 없음, 거의 존재하지 않는 솔루션 지원 (예 : 하위 폴더 없음)). Ocaml / C # hyprid
Carsten

그것이 내가 들었던 것입니다. 나는 F 번호가 하스켈에서 멋진 아이디어를 복용 및 .NET 세계로 이동 마이크로 소프트의 방법이라는 인상을 받았습니다
재커리 K를

@Carsten König : F #은 모르지만 Fcam은 대부분 Ocaml에서 파생 된 것입니다.
조르지오

3

Windows, OS X 및 (Ubuntu) Linux에서 Haskell을 사용 했으므로 이에 대해 몇 가지 언급 할 수 있습니다. 이제 Haskell 플랫폼에서 얻을 수있는 것은 무엇이든 상관없이 작동 할 것입니다.

  • 상대적으로 소수의 Haskell 프로그래머가 Windows를 사용합니다. Hackage에서 실제로 명시 적으로 언급하지 않고 유닉스와 같은 환경을 가정하는 것을 찾을 수 있습니다.

  • 많은 유용한 것들이 FFI 바인딩에서 C 라이브러리로 제공되며, Windows에 모호하고 일관되고 안정적인 C 컴파일 툴체인이 없다는 것은 필자의 경험에 따르면 해킹에서 FFI 바인딩을 설치하는 것이 최선의 방법이라는 것을 의미합니다.

  • 플랫폼 간 GUI 라이브러리를 포함하여 플랫폼에 따라 달라지는 것은 Linux에서 "작동"할 가능성이 높습니다.

  • Cygwin은 생각만큼 도움이되지 않습니다.

요약 : 모든 것이 Linux에서 작동하는 경향이 있지만 대부분의 경우 OS X에서 작동하지만 몇 가지가 이상합니다 .Windows에서는 라이브러리를 사용할 때 많은 두통이 발생할 것으로 예상됩니다.

재미있게 물건을 실험하고 Haskell을 배우고 싶다면 우분투 VM이나 무언가를 사용하십시오.

편집자와 그와 같은 일을하는 한, emacs와 vim은 언제나처럼 인기가 있습니다. 나는 (실제로 ...해야하지만) 사용하는 법을 배운 적이 없으며 대부분의 IDE를 신경 쓰지 않으므로 일반적으로 SciTE를 고집합니다 .SciTE는 Scintilla라는 편집기 위젯을 둘러싼 얇은 래퍼입니다. 메모장 ++가 사용합니다.


1

OS를 선택하는 대신 IDE 각도에서이 점을 살펴 보겠습니다. Scheme에 관심이 있다면 몇 년 전에 Scheme 정글에서 나온 DrRacket을 사용해 보시기 바랍니다. IDE는 Windows, OS X 및 Linux에서 잘 실행됩니다.

이제 다른 모든 기능적 언어 를 실행하려면 올바른 OS를 선택해야합니다 .


고맙습니다-어제 라켓에 대해서만 알게되었습니다-IDE / Lang을 살펴볼 시간이별로 없었습니다. "진짜"앱 개발에 실제로 가능한지 말할 수는 없지만 흥미 롭습니다.
Carsten

0

Haskell의 제작자 중 한 명인 Simon Peyton-Jones는 Windows 사용자이며 내가 수집 한 것 중에서 Haskell은 뛰어난 Windows 지원 기능을 제공합니다.

귀하의 질문은 솔직히 조금 모호하며, OS의 선택은 사용중인 언어의 패러다임과 관련이 없습니다.

개인적으로 C # 및 Java 세계 (개발 환경이 IDE에 의해 결정되는 곳) 외부에서 개발 환경은 항상 BSD, Linux 또는 OSX이든 Unix의 풍미가되어야한다고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.