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


9

Я в основному .NET розробник, тому я нормально використовую Windows / VisualStudio (це означає, що я зіпсований), але я насолоджуюся Haskell та іншими (переважно функціональними) мовами у вільний час.

Тепер для Haskell підтримка windows нормальна (ви можете отримати Haskell-Platform), але без проблем я намагався створити базове середовище Clojure / Scheme, і це просто біль у windows.

Тому я думаю про те, щоб спробувати іншу ОС для кращого інструментарію та підтримки мови. Звичайно, це залишає мені MacOS або якийсь дистрибутив Linux.

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

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

Тож мені хотілося б знати: - яка у вас краща ОС, дистрибутив (чи Ubuntu життєздатний?) - який редактор / IDE ви використовуєте

Дякую за твою допомогу!

PS: Я не впевнений, що це правильне місце для цього питання, але я, безумовно, сподіваюся, що так - якщо ні, будь ласка, дайте мені знати, куди я повинен перемістити це (StackOverflow, здається, не є правильним місцем IMHO)


Все в пеклі сильно болить у Windows, якщо не встановити Cygwin. Після того, як ви отримаєте Cygwin, не буде жодних стимулів пересуватись кудись із Windows.
SK-логіка

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


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

3
Почніть з гарного Linux, наприклад, Fedora, Mint або Ubuntu, перш ніж завантажувати навантаження на Mac.
Ріг

Відповіді:


4

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

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

Таким чином ви отримуєте плюси обох операційних систем.


хм ... цікаво - але я думаю, що я роблю глибоке занурення і встановлюю Ubunto паралельно на свій іграючий ноутбук (не загрожуватиму моїй роботі - поки що)
Карстен,

1
На своєму особистому ноутбуці я використовував подвійну завантажувальну систему Windows - Linux протягом століть і ніколи не мав проблем з цим. З іншого боку, на своєму робочому столі я не встановлював Windows останні 10 років. Якщо мені не потрібне якесь певне програмне забезпечення, доступне лише для Windows (наприклад, відеоігри чи програмне забезпечення інтерфейсу стільникового телефону), я дійсно не сумую за Windows. Підсумок: Ви можете виконати всі (функціональні) програмування, які вам потрібні в Linux, коли ви ознайомилися з належними інструментами.
Джорджіо

Я дійсно спробував це сьогодні на своєму робочому столі - Ubuntu в VirtualBox VM - дав йому 30 Гб на моєму SSD і 4 ГБ оперативної пам’яті разом з двома ядрами - працює безперечно з декількома речами, які я спробував (а VM справді чудовий з не здавалосяю зміною розміру вікон і всіма що) - зараз це буде те, як я намагаюся зараз ubuntu - можливо, я встановлю подвійний завантажувач на свій ноутбук пізніше, але з подвійним монітором це чудово - Дякую, позначив це як відповідь
Карстен

18

Короткий відповідь: Існує просте рішення вашої проблеми. Просто встановіть віртуальну машину з Linux (Ubuntu) - це безкоштовно.

Я також в основному .NET розробник, який любить експериментувати з різними речами або пробувати різноманітні рамки та / або засоби розробки. Тут головне - не псувати ваше основне середовище розвитку. Таким чином, установка всього у віртуальній машині (рідна ОС, рамки, налаштування та налаштування їх тощо) для типу розробки, яку ви мали намір зробити, є найбільш логічним та оптимальним способом.

Редагувати: Ви можете розглянути різні рішення щодо віртуалізації для створення віртуальної машини. Мої особисті переваги стосуються VirtualBox . Це безкоштовне рішення для віртуалізації x86, яке дозволяє широкому спектру операційних систем x86, таких як Windows, DOS, BSD або Linux, працювати в системі Linux.


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

що VM ви пропонуєте?
Карстен

1
Раніше я використовував VMware, тепер я віддаю перевагу VirtualBox - менше клопоту мати справу.
Юсубов

12

Я використовую Haskell і Scala (а також роблю деякі схеми, Common Lisp, SML, OCaml, Erlang), все під Linux (Ubuntu).

Всі перераховані вище мови (компілятори та інтерпретатори) можна встановити досить легко (є пакети, які можна встановити за допомогою apt-get або іншої системи управління пакетами).

Scala має гарну інтеграцію з Eclipse, а плагіни Scala активно розвиваються. Якщо ви хочете дізнатися більше, на Coursera зараз працює курс Scala, який пояснює, як використовувати Scala для Windows, Linux та Mac. Можливо, у вас немає всіх можливостей та інтеграції Visual Studio, але я розробив досить великі проекти в Eclipse, і це працює чудово.

Для редагування Haskell (та інших перелічених вище мов) я використовую gvim, що нормально для невеликих проектів. Ви можете використовувати інший редактор (наприклад, EMACS), за умови, що він має виділення синтаксису для Haskell. В іншому випадку ви можете поглянути на haskellwiki (спасибі Заку Л за пропозицію).

Для управління вихідним кодом (версія) я використовую SVN через Eclipse для всіх цих мов.


дякую - я не робив жодного масштабного проекту haskell (поки що), і до цих пір Notepadd ++ (sic!) зробив роботу для мене - можливо, я повинен заглянути в VIM / EMACS, але це може в кінцевому підсумку бути важче навчитися тоді дірка інша річ ОС ... так, я мене зіпсували IDE (це вже згадувалося - чи не так?)
Carsten

На HaskellWiki вказано кілька IDE Haskell .
Зак Л

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

@Zach L: Дякую за посилання. Я можу додати його до відповіді, якщо ви дасте мені дозвіл. Я пробував Leksah кілька місяців тому, але, наскільки я пам’ятаю, він ще не був придатний. Поки що я не пробував жодних інших інструментів Haskell.
Джорджіо

@Giorgio Звичайно, ви можете додати його!
Зак Л

10

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


дякую - Ubuntu виглядає дуже перспективно через те, що (здавалося б, проста установка на вершині Windows ... це вже давно я справді використовував Linux - думаю, я спробую це спробувати - IntelliJ - комерційний продукт, правда?
Карстен

@ CarstenKönig Так, це комерційний продукт, проте я вважаю, що ви можете отримати безкоштовні ліцензії, якщо ви збираєтесь використовувати їх у класі або використовувати його для підтримки проекту з відкритим кодом (і це можна довести).
Даніель Б

1
@ CarstenKönig IntelliJ має (безкоштовну) версію для спільноти .
янніс

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

Починаючи з Visual Studio, IntelliJ буде набагато звичнішим середовищем для роботи. Це відчуває себе як скорочена версія VS; в той час як інтерфейси Eclipse та VS / робочий процес надзвичайно різні.
Ден піднімається Firelight

5

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

Зокрема, на Clojure / Scala ви можете виявити, що Windows насправді дуже хороший, якщо ви використовуєте одну з Java IDE з відповідним плагіном Clojure / Java. Я особисто використовую Eclipse з проти годинникової стрілки як моє основне середовище розробки Clojure в Windows 7. Існує також Scala IDE для перевірки. Це хороший підхід, якщо вам подобаються повнофункціональні IDE та / або хочете займатися програмуванням поліглотів у тому ж середовищі. Додатковим плюсом використання чогось типу Eclipse є те, що інтеграція git / svn / maven дуже хороша.


3

Хоча я є великим шанувальником Mac та Linux, немає жодної причини, що ти не можеш використовувати жодну з цих мов у Windows. Крім того, якщо ви хочете, щоб функціональна мова у Windows не забувала F #, що є .net мовою


4
F # - одна з моїх головних мов (інша, що належить C #): D
Карстен

Я цього ще не вивчив, але це виглядає як досить приємна мова. Я проводжу більшу частину свого часу в Ерланге в ці дні
Захарій К

2
F # - IMHO - найкраща мова в екосистемі .net, лише їй не вистачає певної любові до інструментів (відсутність рефакторингу, майже неіснуюча підтримка рішення (наприклад, немає папок, які не виходять із коробки)) - ви можете вважати це як деякий haskell / Ocaml / C # hyprid
Карстен

Це те, що я чув. У мене склалося враження, що F # - це спосіб Microsoft взяти круті ідеї від Haskell та перенести їх у світ .net
Zachary K

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

3

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

  • Порівняно небагато програмістів Haskell використовують Windows. На Hackage ви знайдете речі, які передбачають схоже на unix середовище, не кажучи про це явно.

  • Багато корисного матеріалу відбувається через прив'язку FFI до бібліотек C, а відсутність навіть нечітко узгодженої та надійної ланцюжка інструментів компіляції C для Windows означає, що, на мій досвід, встановлення прив'язок FFI від злому - це в кращому випадку.

  • Все, що обов'язково залежить від платформи, що досить забавно включає міжплатформенні бібліотеки графічного інтерфейсу, швидше за все, "просто працює" в Linux.

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

Підсумовуючи це: все, як правило, працює в Linux, більшість речей працює на OS X, але деякі речі дивні, і в Windows ви повинні очікувати, що під час використання бібліотек виникне безліч цікавих головних болів.

Якщо ви просто хочете розважитися, експериментуючи з речами та вивчаючи Haskell, зробіть собі прихильність і скористайтесь Ubuntu VM або чимось іншим.

Що стосується редакторів і таких користувачів - emacs і vim популярні, як завжди. Я ніколи не навчився користуватися будь-яким (хоча я справді повинен ...) і не хвилююсь більшості IDE, тому я, як правило, дотримуюся SciTE - це тонка обгортка навколо віджета редактора під назвою Scintilla, яку ви можете знати як те, що Блокнот ++ використовує.


1

Замість того, щоб вибрати ОС, дозвольте мені підійти до цього з точки зору IDE. Якщо вас зацікавила схема, я б закликав вас спробувати DrRacket, який вийшов із джунглів схеми кілька років тому. IDE працює добре в Windows, OS X та Linux.

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


дякую - я лише вчора дізнався про Ракетку - у нього було не так багато часу, аби 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.