- PVSM.RU - https://www.pvsm.ru -

Haskell IDE от FP Complete

Приветствую всех Хабражителей!

Многие люди, интересующиеся языком Haskell, высказывают пожелание, что неплохо было бы иметь хорошую IDE. Но, как известно, с IDE для Haskell дела обстоят неважно. Да, есть Leksah [1], но, по мнению большинства, эта IDE откровенно сыровата. Признаюсь, лично мне она вообще не понравилась. Поэтому сегодня мы взглянем на IDE от компании FP Complete [2].

{- Будет много картинок -}

Что это за FP Complete?

Эта компания известна как популяризатор Haskell. Причём замахнулись они на эту популяризацию весьма серьёзно:

FP Complete is dedicated to bringing the Haskell programming language into the mainstream software market by being the leading developer of commercial Haskell software tools and services."

И вот среди прочих их творений выделяется онлайн-IDE, которую они всячески продвигают. Да, речь идёт о веб-приложении, так что ничего скачивать и устанавливать не придётся. По правде говоря, я весьма скептично относился к идее онлайн-IDE, однако, после знакомства с их системой, моё отношение начало меняться. На мой взгляд, их IDE по меньшей мере заслуживает нашего внимания.

Сколько это стоит

Есть несколько вариантов использования их IDE:

  1. Совсем бесплатный.
  2. Недорогой.
  3. (Относительно) дорогой.

Как обычно, всё сводится к количеству пользователей и к уровню техподдержки. Совсем бесплатный вариант подразумевает, фактически, ознакомительный уровень использования (подробности чуть позже). Самый недорогой вариант из платных — индивидуальный, он значительно более полезный для реальной жизни. Цена вопроса — $99 в год. Остальные варианты мы рассматривать не будем, кому интересно — взгляните сами [3].

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

Приступим

После регистрации [4] (или же входа через ваш профиль Google+) создаём новый пустой проект:

Haskell IDE от FP Complete

Сразу после создания мы попадаем в IDE:

Haskell IDE от FP Complete

Перед нами — стандартная «Hello World»-заготовка. Обращаю ваше внимание на зелёный квадратик с весёлой рукой:

Haskell IDE от FP Complete

Это индикатор успешной компиляции проекта. Если этот индикатор желтоватого цвета — компилятор о чём-то вас предупреждает, если же красного — компилятор высказывает своё категорическое нежелание собирать ваш проект. Но в данный момент всё хорошо, поэтому жмём на стандартный значок «Play» синего цвета, рядом с зелёной рукой — и внизу получаем ожидаемый вывод на консоль:

Haskell IDE от FP Complete

Итак, начало положено.

Дружба с GitHub

Как обычно, начинаем с репозитория. К счастью, FP IDE крепко дружит с GitHub. В верхней части вы увидите значок со знакомым осьмикотом, нажатие на который открывает список привычных действий:

Haskell IDE от FP Complete

Помните, выше я сказал, что бесплатный режим использования является по сути ознакомительным? Вот первое ограничение: работать с GitHub вы сможете только в платной версии.

Обратите внимание, что операции Push и Pull пока недоступны. Дабы исправить это, жмём на кнопку «Unauthorized» и переносимся в GitHub:

Haskell IDE от FP Complete

После того, как связь с GitHub налажена, указываем наш пустой репозиторий (который у нас уже есть):

Haskell IDE от FP Complete

и теперь — долгожданный push:

Haskell IDE от FP Complete

Теперь откроем наш проект на GitHub:

Haskell IDE от FP Complete

и видим, что всё уже тут. Теперь дружбу FP IDE и GitHub водой не разлить. Кстати, к этому моменту вам уже придёт письмо о том, что в ваш GitHub-аккаунт был добавлен новый SSH-ключик.

Внешний вид

Здесь выбор небогат: вы можете только выбрать одну из предложенных цветовых тем, а также изменить размер шрифта. Умолчальную тему вы уже видели, а есть ещё такая:

Haskell IDE от FP Complete

и такая:

Haskell IDE от FP Complete

Чтобы изменить тему или шрифт, нажмите на значок с картиной справа:

Haskell IDE от FP Complete

А где же наш исполняемый файл?

Итак, наш проект работает. Можно вносить изменения, компилировать и смотреть результат. Для простых учебных целей этого уже достаточно. Но что если мы захотим получить наш исполняемый файл? Для этого жмём на значок с грузовичком и выбираем пункт «Download»:

Haskell IDE от FP Complete

Начнётся загрузка архива. Внутри вы найдёте исполняемый файл Main. Но не спешите запускать его, как это кинулся делать я. К сожалению, на моём Mac это хозяйство не заработало:

$ ./Main
-bash: ./Main: cannot execute binary file

Изучение документации [5] открыло правду:

Haskell IDE от FP Complete

Ну что ж, пусть будет Ubuntu. А поскольку мой рабочий Linux — это именно Ubuntu 12.04 LTS, я попробовал. Работает. И не тянет за собой никаких хитрых зависимостей, только стандартные:

$ ldd Main 
	linux-vdso.so.1 =>  (0x00007ffffaffe000)
	libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007ff96e3b0000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff96e0b4000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff96deab000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff96dca7000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff96d8e7000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff96d6c9000)
	/lib64/ld-linux-x86-64.so.2 (0x00007ff96e636000)

Кстати, вот вам и второе ограничение бесплатной версии IDE: скачать исполняемый файл можно лишь в платной версии.

Клавиатурные сочетания

Вернёмся к коду. Для нашего удобства нам доступны некоторые клавиатурные сочетания:

Haskell IDE от FP Complete

Я попробовал — работают. Например, по нажатию на Ctrl-i, когда курсор стоял на функции putStrLn, внизу появляется мини-подсказка:

Haskell IDE от FP Complete

Настройка проекта

Если мы хотим писать нечто более сложное, чем «Hello World», нам понадобится настройка проекта. Нажатие на значок с тремя горизонтальными полосками (справа вверху) откроет нам список настроек:

Haskell IDE от FP Complete

Тут можно сделать весьма многое: выбрать среду сборки, указать расширения языка Haskell, дописать флаги компилятора, и так далее в том же духе. Очень важной является также возможность установки стороннего пакета. В качестве примера я выбрал пакет MissingH. Учитывая, что этот пакет живёт в Hackage, пишем так:

Haskell IDE от FP Complete

То есть указываем не только имя пакета, но и его полную версию. И как только вы это сделаете — пакет немедленно будет установлен и готов к использованию, никаких дополнительных действий с вашей стороны не понадобится.

Помощники

Внизу вас ожидают ещё четыре кнопки:

Haskell IDE от FP Complete

Слева направо: Reformat code, Info of identifier (Ctrl-i), Autocomplete identifier (Ctrl-space), Go to definition (Ctrl-B). Всё стандартно. Кстати, реформат откровенно слабый: кое-что выравнивает, но сильные форматные огрехи не правит. Жаль.

Чуть ниже этих кнопок мы видим пять вкладок, среди которых History, для просмотра истории изменений:

Haskell IDE от FP Complete

Обратите внимание, что имена авторов изменений разные. Это потому что последнее изменение я сделал в GitHub-репозитории, а потом запуллил сюда.

Вкладка Hoogle позволяет искать разные Haskell-штуки в одноимённом поисковом сервисе [6]:

Haskell IDE от FP Complete

А последняя вкладка поможет нам искать внутри проекта:

Haskell IDE от FP Complete

Работа с модулями

Добавим дополнительный модуль в наш проект:

Haskell IDE от FP Complete

Готово. Разумеется, модуль можно не только добавить, но и удалить, и скачать.

Публикация проекта

Чтобы сделать проект публичным (то есть доступным даже для тех, у кого нет аккаунта FP Complete), следует воспользоваться кнопкой со стрелочкой, вверху:

Haskell IDE от FP Complete

Теперь наш проект открыт всему миру. Чтобы убедиться в этом, зайдём с другого, неавторизованного браузера:

Haskell IDE от FP Complete

Работает.

Заключение

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

  1. обучение Haskell,
  2. возможность коллективной онлайн-работы над кодом.

Причём всё это — без привязки к компьютеру с установленной Haskell Platform [7]. Ради прикола я даже зашёл туда с iPad и запустил код на выполнение:

Haskell IDE от FP Complete

Так что теперь разработку на Haskell можно вести и с планшета. :-)

Всё. Теперь хочу услышать ваше мнение об этой IDE, уважаемые Хабрахаскеллеры.

Автор: denisshevchenko

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/news/61662

Ссылки в тексте:

[1] Leksah: http://leksah.org/

[2] FP Complete: https://www.fpcomplete.com/

[3] взгляните сами: https://www.fpcomplete.com/business/pricing/fp-haskell-ide-pricing/

[4] регистрации: https://www.fpcomplete.com/auth/login

[5] документации: https://www.fpcomplete.com/page/running-binaries

[6] поисковом сервисе: http://www.haskell.org/hoogle/

[7] Haskell Platform: http://www.haskell.org/platform/

[8] Источник: http://habrahabr.ru/post/225393/