- PVSM.RU - https://www.pvsm.ru -
Приветствую всех Хабражителей!
Многие люди, интересующиеся языком Haskell, высказывают пожелание, что неплохо было бы иметь хорошую IDE. Но, как известно, с IDE для Haskell дела обстоят неважно. Да, есть Leksah [1], но, по мнению большинства, эта IDE откровенно сыровата. Признаюсь, лично мне она вообще не понравилась. Поэтому сегодня мы взглянем на IDE от компании FP Complete [2].
{- Будет много картинок -}
Эта компания известна как популяризатор 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:
Как обычно, всё сводится к количеству пользователей и к уровню техподдержки. Совсем бесплатный вариант подразумевает, фактически, ознакомительный уровень использования (подробности чуть позже). Самый недорогой вариант из платных — индивидуальный, он значительно более полезный для реальной жизни. Цена вопроса — $99 в год. Остальные варианты мы рассматривать не будем, кому интересно — взгляните сами [3].
К счастью, у них есть пробный период, составляющий 4 недели бесплатного использования со всеми возможностями. Для этой заметки я пошёл именно этим путём.
После регистрации [4] (или же входа через ваш профиль Google+) создаём новый пустой проект:
Сразу после создания мы попадаем в IDE:
Перед нами — стандартная «Hello World»-заготовка. Обращаю ваше внимание на зелёный квадратик с весёлой рукой:
Это индикатор успешной компиляции проекта. Если этот индикатор желтоватого цвета — компилятор о чём-то вас предупреждает, если же красного — компилятор высказывает своё категорическое нежелание собирать ваш проект. Но в данный момент всё хорошо, поэтому жмём на стандартный значок «Play» синего цвета, рядом с зелёной рукой — и внизу получаем ожидаемый вывод на консоль:
Итак, начало положено.
Как обычно, начинаем с репозитория. К счастью, FP IDE крепко дружит с GitHub. В верхней части вы увидите значок со знакомым осьмикотом, нажатие на который открывает список привычных действий:
Помните, выше я сказал, что бесплатный режим использования является по сути ознакомительным? Вот первое ограничение: работать с GitHub вы сможете только в платной версии.
Обратите внимание, что операции Push
и Pull
пока недоступны. Дабы исправить это, жмём на кнопку «Unauthorized» и переносимся в GitHub:
После того, как связь с GitHub налажена, указываем наш пустой репозиторий (который у нас уже есть):
и теперь — долгожданный push:
Теперь откроем наш проект на GitHub:
и видим, что всё уже тут. Теперь дружбу FP IDE и GitHub водой не разлить. Кстати, к этому моменту вам уже придёт письмо о том, что в ваш GitHub-аккаунт был добавлен новый SSH-ключик.
Здесь выбор небогат: вы можете только выбрать одну из предложенных цветовых тем, а также изменить размер шрифта. Умолчальную тему вы уже видели, а есть ещё такая:
и такая:
Чтобы изменить тему или шрифт, нажмите на значок с картиной справа:
Итак, наш проект работает. Можно вносить изменения, компилировать и смотреть результат. Для простых учебных целей этого уже достаточно. Но что если мы захотим получить наш исполняемый файл? Для этого жмём на значок с грузовичком и выбираем пункт «Download»:
Начнётся загрузка архива. Внутри вы найдёте исполняемый файл Main
. Но не спешите запускать его, как это кинулся делать я. К сожалению, на моём Mac это хозяйство не заработало:
$ ./Main
-bash: ./Main: cannot execute binary file
Изучение документации [5] открыло правду:
Ну что ж, пусть будет 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: скачать исполняемый файл можно лишь в платной версии.
Вернёмся к коду. Для нашего удобства нам доступны некоторые клавиатурные сочетания:
Я попробовал — работают. Например, по нажатию на Ctrl-i
, когда курсор стоял на функции putStrLn
, внизу появляется мини-подсказка:
Если мы хотим писать нечто более сложное, чем «Hello World», нам понадобится настройка проекта. Нажатие на значок с тремя горизонтальными полосками (справа вверху) откроет нам список настроек:
Тут можно сделать весьма многое: выбрать среду сборки, указать расширения языка Haskell, дописать флаги компилятора, и так далее в том же духе. Очень важной является также возможность установки стороннего пакета. В качестве примера я выбрал пакет MissingH
. Учитывая, что этот пакет живёт в Hackage, пишем так:
То есть указываем не только имя пакета, но и его полную версию. И как только вы это сделаете — пакет немедленно будет установлен и готов к использованию, никаких дополнительных действий с вашей стороны не понадобится.
Внизу вас ожидают ещё четыре кнопки:
Слева направо: Reformat code
, Info of identifier (Ctrl-i)
, Autocomplete identifier (Ctrl-space)
, Go to definition (Ctrl-B)
. Всё стандартно. Кстати, реформат откровенно слабый: кое-что выравнивает, но сильные форматные огрехи не правит. Жаль.
Чуть ниже этих кнопок мы видим пять вкладок, среди которых History
, для просмотра истории изменений:
Обратите внимание, что имена авторов изменений разные. Это потому что последнее изменение я сделал в GitHub-репозитории, а потом запуллил сюда.
Вкладка Hoogle
позволяет искать разные Haskell-штуки в одноимённом поисковом сервисе [6]:
А последняя вкладка поможет нам искать внутри проекта:
Добавим дополнительный модуль в наш проект:
Готово. Разумеется, модуль можно не только добавить, но и удалить, и скачать.
Чтобы сделать проект публичным (то есть доступным даже для тех, у кого нет аккаунта FP Complete), следует воспользоваться кнопкой со стрелочкой, вверху:
Теперь наш проект открыт всему миру. Чтобы убедиться в этом, зайдём с другого, неавторизованного браузера:
Работает.
Уфф, много получилось, но короче никак. В общем, штуку они сделали перспективную, на мой взгляд. Лично я вижу два основных применения этой IDE:
Причём всё это — без привязки к компьютеру с установленной Haskell Platform [7]. Ради прикола я даже зашёл туда с iPad и запустил код на выполнение:
Так что теперь разработку на 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/
Нажмите здесь для печати.