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

F# на Linux как лекарство для души

А у вас никогда не возникало ощущения, что "вот это" уже надоело? Что хочется чего-то нового? "Вот этим" может быть что угодно: игра, работа, машина. Что-то любое, что повторяется изо дня в день. А в программировании? Под катом вы найдете историю об усталости от C# и выборе более интересного подхода.

F# на Linux как лекарство для души - 1

Передаю слово автору.

В последнее время я немного устал от C#, бесконечные строчки однотипного кода перестают со временем греть душу. В такие моменты иногда хочется заняться чем-то для души. В моем случае это Linux и F#.

По большей части для меня важно, чтобы я вышел из зоны комфорта. В общем-то я так и сделал, сменил систему и язык.

Организуя свой отдых, я столкнулся с тем, что немного непонятно с чего начать. Давайте же немного разберемся как дело обстоит с F# на Linux.

Основное:

  • Нужен легковесный редактор с поддержкой синтаксиса
  • Нужна поддержка F# Interactive
  • Нужна среда .NET
  • Нужен отладчик (впрочем, как и всегда)

Искушенные хаброжители уже смекнули, что "легковесный редактор" + Microsoft = Visual Studio Code [1]. Надеюсь, она у вас уже стоит :)

Приступим к делу

Итак, с выбором редактора разобрались, теперь со всем остальным по порядку:

  • Вам необходимо поставить пакет mono и fsharp, для большинства Linux систем инструкцию вы найдете здесь [2]. Хоть в инструкции нет Arch Linux (и основанных на нем дистрибутивов), в стандартном репозитории pacman'a эти пакеты, впрочем, присутствуют, да и в инструкции показано как собрать из исходников, так что проблем возникнуть не должно.

В принципе, чтобы что-то [3] уже запустить хватит и этого, но тогда статья быстро бы закончилась.

  • Также поставим .NET Core 2.0.0 (Runtime + SDK), опять же для большинства систем, вы найдете инструкцию здесь [2]. Для Arch Linux проще всего будет поставить пакеты dotnet [4] и dotnet-sdk-2.0 [5] из AUR. Если что, то вот github [6] После этого, перейдем непосредственно уже к подготовке VS Code к нашей работе.

Поставим расширения для поддержки синтаксиса F#, сборки и управлением пакетами Nuget

F# на Linux как лекарство для души - 2

Для полноты можно поставить Nuget manager совместимый с .Net Core

F# на Linux как лекарство для души - 3

Поставим расширение для отладки (Да, все правильно, написано C#)

F# на Linux как лекарство для души - 4

После этого клоним вот этот реп [7], и далее по инструкции делаем: bash dotnet restore && code. Теперь перезагружаем VS Code и ждем пока расширение "отладчика" докачает свои пакеты и нормально развернется.

На самом деле сейчас уже почти все готово, осталось только протестировать

  • Создаем где-нибудь папку, запускаем там консоль. Далее выполняем: bash dotnet new console lang F# dotnet run. Получаем заветные Hello World from F#!
  • Открываем VS Code в этой папке code .
  • Идем в Program.fs и выделяем кусочек кода и жмем Alt+Enter:

F# на Linux как лекарство для души - 5

запустится долгожданный F# Interactive.

F# на Linux как лекарство для души - 6

Его также можно использовать для более полезных целей:

F# на Linux как лекарство для души - 7

Далее посмотрим сборку и отладку.

  • Для настройки директивы сборки нажимаем Ctrl+Shift+B и выбираем .Net Core

F# на Linux как лекарство для души - 8

Автоматически сконфигурированный файл нам менять не нужно.

  • После этого снова нажимаем Ctrl+Shift+B и видим, что сборка происходит успешно:

F# на Linux как лекарство для души - 9

  • После этого F5, выбираем также .Net Core и дальше просто меняем путь до программы

F# на Linux как лекарство для души - 10

  • Все, после этого можно поставить точку останова (F9) на нашей единственной строчке и проверить отладчик:

F# на Linux как лекарство для души - 11

Итак, ваша машина настроена и готова к новым свершениям на замечательном функциональном языке. Приятным бонусом будет то, что ваши наработки можно будет встроить в C# проект (посредством подключения .dll)

Ну мало ли кто не знал)

Об авторе

F# на Linux как лекарство для души - 12

Максимилиан Спиридонов [8] — разработчик C#, студент МАИ, Microsoft Student Partner. В профессиональную разработку на .NET пришёл ещё в школе. Более 2,5 лет работает с реальными проектами на WPF(MVVM)+C#, MySQL, более 5,5 лет разрабатывал на C#. Основная сфера интересов сейчас — это мобильная разработка на Xamarin. Также, по воле случая в сфере интересов оказались С/С++ и Linux.

Предыдущая статья [9] Максимилиана о С/С++ на Linux в Visual Studio Code.

Также приглашаем вас в чат [10] по F# в Telegram.

Автор: sahsAGU

Источник [11]


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

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

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

[1] Visual Studio Code: https://code.visualstudio.com/

[2] здесь: https://www.microsoft.com/net/core

[3] что-то: http://fsharplang.ru/

[4] dotnet: https://aur.archlinux.org/packages/dotnet/

[5] dotnet-sdk-2.0: https://aur.archlinux.org/packages/dotnet-sdk-2.0/

[6] github: https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.0.0-download.md

[7] этот реп: https://github.com/enricosada/vscode-debugging-repro

[8] Максимилиан Спиридонов: https://habrahabr.ru/users/maxspt/

[9] Предыдущая статья: https://habrahabr.ru/company/microsoft/blog/333680/

[10] чат: https://t.me/Fsharp_chat

[11] Источник: https://habrahabr.ru/post/343864/?utm_campaign=343864