Haskell IDE от FP Complete

в 22:39, , рубрики: Без рубрики

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

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

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

Что это за 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 в год. Остальные варианты мы рассматривать не будем, кому интересно — взгляните сами.

К счастью, у них есть пробный период, составляющий 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

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

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-штуки в одноимённом поисковом сервисе:

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. Ради прикола я даже зашёл туда с iPad и запустил код на выполнение:

Haskell IDE от FP Complete

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

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

Автор: denisshevchenko

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js