Выбор ОС для функциональной разработки [закрыто]


9

Я в основном разработчик .NET, поэтому я обычно использую Windows / VisualStudio (что означает: я испорчен), но я наслаждаюсь Haskell и другими (в основном функциональными) языками в свободное время.

Теперь для Haskell поддержка окон в порядке (вы можете получить платформу Haskell), но в последнее время я попытался настроить базовую среду Clojure / Scheme, и это просто боль для окон.

Поэтому я думаю о том, чтобы опробовать другую ОС для лучшего инструментария и поддержки. Конечно, это оставляет меня с MacOS или некоторым дистрибутивом Linux.

Я никогда раньше не использовал MacOS, и, конечно, Linux будет дешевле (бесплатно), и я не думаю, что смогу параллельно загружать MacOS на вашем обычном ПК-оборудовании (не так ли?). ПЛЮС: Я не имею понятия об инструментах, которые вы можете использовать в этих (для меня) внешних ОС.

Короче говоря: я хочу изучить больше Haskell, Clojure, Scala, Scheme и, конечно, нужен хотя бы хороший инструментарий для JavaScript / HTML5 / Css. Поддержка .NET / Mono / F # была бы отличной, но для этого у меня все еще будет загрузка Win7.

Поэтому мне хотелось бы знать: - какая у вас предпочитаемая ОС, дистрибутив (подходит ли Ubuntu?) - какой редактор / IDE вы используете

Спасибо за помощь!

PS: я не уверен, что это правильное место для этого вопроса, но я, безусловно, надеюсь на это - если нет, пожалуйста, дайте мне знать, куда я должен переместить это (StackOverflow не кажется правильным IMHO)


В Windows все очень больно, если вы не установите Cygwin. Как только вы получите Cygwin, у вас не будет никаких стимулов для перехода с Windows.
SK-logic

8
@ Sk-logic: Cygwin делает использование Windows немного менее болезненным, но в конце концов можно захотеть получить реальную вещь и перейти на какую-то Unix-подобную ОС. ;-)
Джорджио


2
@vartec: Я не думаю, что это дубликат: этот вопрос конкретно касается использования функциональных языков программирования.
Джорджио

3
Начните с хорошего linux, такого как Fedora, Mint или Ubuntu, а затем загрузите Mac.
Рог

Ответы:


4

Маршрут, который я сейчас выбираю для экспериментов с такими языками и другими вещами, с большим успехом и простотой использования:

  • установить Debian под виртуальной машиной VirtualBox, работающей на хосте Windows
  • сохранить весь мой код на хосте или на общем сетевом диске, отредактировать на хосте с помощью любимого редактора (все еще не определено между Notepad ++ и SublimeText; для C ++ я просто использую VS)
  • расшарить каталог на хосте, смонтировать его в ВМ
  • скомпилируйте / запустите код на виртуальной машине (или вы можете использовать ssh для этого, используя cygwin)

Таким образом, вы получите плюсы обеих операционных систем.


хм ... интересно - но я думаю, что я делаю глубокое погружение и устанавливаю параллель Ubunto на своем играющем ноутбуке (пока не подвергну опасности мою рабочую машину - пока)
Carsten

1
На моем персональном ноутбуке я использовал двойную загрузку Windows - Linux целую вечность, и у меня никогда не было проблем с этим. С другой стороны, на моем рабочем столе я не устанавливал Windows в течение последних 10 лет. Если мне не нужно какое-то специальное программное обеспечение, доступное только для Windows (например, видеоигры или программное обеспечение интерфейса мобильного телефона), я действительно не скучаю по Windows. Итог: вы можете выполнять все (функциональное) программирование, которое вам нужно в Linux, когда вы ознакомитесь с соответствующими инструментами.
Джорджио

Я действительно попробовал это на своем настольном компьютере сегодня - Ubuntu в виртуальной машине VirtualBox - выделил 30 ГБ на моем SSD и 4 ГБ оперативной памяти вместе с двумя ядрами. что) - сейчас я буду пытаться использовать Ubuntu сейчас - может быть, позже я установлю двойную загрузку на свой ноутбук, но с двумя мониторами это здорово - Спасибо, отметили это как ответ
Carsten

18

Краткий ответ: есть простое решение вашей проблемы. Просто установите виртуальную машину с Linux (Ubuntu) - это бесплатно.

Я также в основном разработчик .NET, который любит экспериментировать с разными вещами или пробовать различные фреймворки и / или инструменты разработки. Здесь главное не испортить вашу главная среда разработки. Таким образом, установка всего на Виртуальной машине (нативная ОС, фреймворки, их настройка и т. Д.) Для того типа разработки, который вы намеревались выполнить, является наиболее логичным и оптимальным способом.

Изменить: Вы можете рассмотреть различные решения для виртуализации для создания вашей виртуальной машины. Мои личные предпочтения идут с VirtualBox . Это бесплатное решение для виртуализации x86, позволяющее запускать в системе Linux широкий спектр операционных систем x86, таких как Windows, DOS, BSD или Linux.


2
возможность сделать снимок вашей среды разработки, к которому вы можете вернуться позже, является основным преимуществом этого подхода. Вы также можете поделиться разработкой env с заинтересованными коллегами
Артур Ульфельдт

какую ВМ вы предлагаете?
Карстен

1
Раньше я использовал VMware, теперь я предпочитаю VirtualBox - меньше проблем, чтобы иметь дело с.
Юсубов

12

Я использую Haskell и Scala (а также делаю некоторые Scheme, 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, но это может оказаться более трудным для изучения, чем Отверстие от другой ОС ... да, я избалован IDE (уже упоминал об этом - не так ли?)
Карстен

На HaskellWiki есть несколько IDE Haskell .
Зак Л

2
Для редактирования кода Scala вы можете использовать Eclipse. Существует также плагин Eclipse для рабочего листа Scala, который позволяет редактировать и тестировать фрагменты кода на лету. VIM (и EMACS) нужно привыкнуть, но они очень мощные. Я не научился бы ни одному из них только редактировать файлы на Haskell. Я изучил VIM как редактор общего назначения.
Джорджио

@ Зач L: Спасибо за ссылку. Я могу добавить его к ответу, если вы дадите мне разрешение. Я опробовал Лексу несколько месяцев назад, но, насколько я помню, он еще не использовался. До сих пор я не пробовал другие инструменты на Haskell.
Джорджио

@ Джорджио Конечно, вы можете добавить его!
Зак Л

10

MacOS требует аппаратного обеспечения Mac, иначе вы можете запустить его на VirtualBox, но в прошлый раз я попытался, чтобы он не работал. А поскольку вы не хотите заменять текущие проблемы с настройкой / настройкой другими проблемами, я предлагаю вам либо потратить много денег, либо попробовать Linux. Я использовал Ubuntu для разработки на Haskell, Scala и Lisp с Eclipse, Netbeans, IntelliJ и Emacs, и у меня не было особых проблем с их настройкой.


спасибо - Ubuntu выглядит очень многообещающе из-за того, что он (на первый взгляд) легко устанавливается поверх окон ... давно я действительно использовал linux - думаю, я попробую - IntelliJ - коммерческий продукт, верно?
Карстен

@ CarstenKönig Да, это коммерческий продукт, однако я считаю, что вы можете получить бесплатные лицензии, если собираетесь использовать его в классе или использовать его для поддержки проекта с открытым исходным кодом (и можете это доказать).
Даниэль Б.

1
@ CarstenKönig IntelliJ имеет (бесплатную) версию сообщества .
Яннис

плагин для Scala для IntelliJ также бесплатный, но я все равно рекомендую Eclipse.
Ким

Исходя из Visual Studio, IntelliJ станет гораздо более привычной средой для работы. Похоже на урезанную версию VS; в то время как интерфейсы / рабочие процессы Eclipse и VS чрезвычайно различны.
Дэн возится с огнем

5

Все Unix-подобные ОС имеют очень хорошие инструменты командной строки . У меня лично был хороший опыт работы с Ubuntu как для разработки, так и для развертывания, многие из моих друзей также клянутся MacOS. Я не видел очевидной причины отдавать предпочтение одному или другому, они все IMO лучше, чем Windows для работы в командной строке.

Что касается Clojure / Scala, в частности, вы можете обнаружить, что Windows на самом деле довольно хороша, если вы используете одну из Java IDE с соответствующим плагином Clojure / Java. Я лично использую Eclipse с Counterclockwise как свою основную среду разработки Clojure в Windows 7. Также есть Scala IDE, чтобы проверить. Это хороший подход, если вам нравятся полнофункциональные среды разработки и / или вы хотите заниматься программированием полиглотов в одной среде. Дополнительным плюсом использования чего-то вроде Eclipse является то, что интеграция git / svn / maven очень хороша.


3

Хотя я большой поклонник Mac и Linux, нет никаких причин, по которым вы не можете использовать ни один из этих языков в Windows. Также, если вы хотите функциональный язык в Windows, не забывайте F #, который является языком .net


4
F # - один из моих основных языков (другой - C #): D
Карстен

Я еще не изучил это, но это похоже на довольно хороший язык. Я провожу большую часть своего времени в Эрланге в эти дни
Захари К

2
F # - ИМХО лучший язык в экосистеме .net, в котором не хватает какой-то любви к инструменту (нет рефакторингов, почти отсутствует поддержка решений (например, нет подпапок из коробки)) - вы можете думать о нем как о некотором haskell / Ocaml / C # Hyprid
Карстен

Это то, что я слышал. У меня сложилось впечатление, что F # - это способ Microsoft взять классные идеи от Haskell и перенести их в мир .net
Захари К

@Carsten König: я не знаю F #, но насколько я знаю, он в основном происходит от Ocaml.
Джорджио

3

Я использовал Haskell в Windows, OS X и (Ubuntu) Linux, поэтому могу предложить несколько замечаний по этому поводу. Теперь все, что вы можете получить с платформы Haskell, вероятно, будет работать нормально, несмотря ни на что, но после этого:

  • Относительно мало программистов на Haskell используют Windows. На Hackage вы найдете вещи, которые предполагают юниксоподобную среду, не указав этого явно.

  • Множество полезных вещей происходит от привязок FFI к библиотекам C, и отсутствие даже смутно непротиворечивой и надежной цепочки инструментов для компиляции C в Windows означает, что, по моему опыту, установка привязок FFI из хакерских сетей - в лучшем случае подделка.

  • Все, что обязательно зависит от платформы, что довольно забавно, в том числе кроссплатформенные библиотеки GUI, с большей вероятностью «просто работает» в Linux.

  • Cygwin не помогает так сильно, как вы думаете.

Итак, все работает на Linux, большинство работает на OS X, но некоторые вещи странные, а на Windows вы должны ожидать множество интересных головных болей при использовании библиотек.

Если вы просто хотите весело поэкспериментировать с материалом и изучить Haskell, сделайте себе одолжение и используйте виртуальную машину Ubuntu или что-то в этом роде.

Насколько редакторы и подобные go - emacs и vim популярны как всегда. Я никогда не учился использовать (хотя я действительно должен ...) и не заботился о большинстве IDE, поэтому я обычно придерживаюсь SciTE - это тонкая оболочка вокруг виджета редактора под названием Scintilla, который вы, возможно, знаете как Блокнот ++ использует.


1

Вместо того, чтобы выбирать ОС, позвольте мне взглянуть на это с точки зрения IDE. Если вы заинтересованы в Схеме, я бы посоветовал вам попробовать DrRacket, который появился из джунглей Схемы несколько лет назад. Среда хорошо работает в Windows, OS X и Linux.

Теперь вам нужно просто выбрать правильную ОС для запуска всех ваших других функциональных языков.


спасибо - я узнал только о Racket вчера - было не так много времени, чтобы разобраться в этом, но в IDE / Lang. выглядит интересно для меня - хотя я не могу сказать, действительно ли это действительно для "настоящей" разработки приложений.
Карстен

0

Саймон Пейтон-Джонс, один из создателей Haskell, является пользователем Windows, и, насколько я понимаю, Haskell имеет отличную поддержку Windows.

Если честно, ваш вопрос немного расплывчат, ваш выбор ОС не связан с парадигмой языка, который вы используете.

Лично я считаю, что за пределами мира C # и Java (где среда разработки определяется вашей IDE), среда разработки всегда должна быть разновидностью Unix, будь то BSD, Linux или OSX.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.