Как стать автором
Обновить
8

F# *

Язык из семейства языков .NET Framework

Сначала показывать
Порог рейтинга
Уровень сложности

DotNext 2018 Piter Release Notes

Время на прочтение 10 мин
Количество просмотров 3.8K
22-23 апреля в Петербурге состоится DotNext 2018 Piter — наша следующая большая .NET-конференция.


Развитие конференции очень похоже на развитие программной платформы. Наши языки и динамические рантаймы постоянно конкурируют между собой: например, Java гонится за .NET по синтаксису основного языка, а .NET пытается догнать Java по кроссплатформенности.


IDE для наших платформ эволюционируют более непосредственно. Представьте обновление Rider — одного из основных IDE для .NET, построенного на основе IntelliJ Platform. Каждый раз, когда обновление получает базовая платформа, обновляются и все связанные проекты. Теоретически, если улучшить механизм PSI, апгрейд будет не только у Rider, но и у IntelliJ IDEA — самой популярной IDE для Java. Но некоторые фичи, возможно, потребуют дополнительного допиливания.


Наши конференции устроены еще лучше. Каждый раз, когда обновление получает главная .NET-конференция (DotNext) или главная Java-конференция (Joker), обновления совершенно кроссплатформенно распространяются на все продукты.

Читать дальше →
Всего голосов 32: ↑31 и ↓1 +30
Комментарии 4

Бесплатная YouTube-трансляция DotNext 2017 Moscow: Перформанс .NET, AI, микросервисы и немного F#

Время на прочтение 12 мин
Количество просмотров 14K

Говорят, бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и как работают другие люди. То есть, идеальный объект для наблюдений — прямая трансляция большой конференции.


И кстати, у нас есть для вас одна такая. В это воскресенье и понедельник проходит DotNext 2017 Moscow — крупнейшая в России конференция, посвященная разработке на платформе .NET. Три десятка спикеров выступят с докладами о настоящем и будущем платформы .NET, об оптимизации производительности и многопоточности, о внутреннем устройстве платформы .NET и CLR, о профилировании и отладке .NET-кода, и так далее.


И у вас есть возможность поучаствовать в этом — без необходимости куда-то лететь или ехать через полгорода, на YouTube, бесплатно. Как именно — читайте дальше.


Всего голосов 53: ↑51 и ↓2 +49
Комментарии 8

DotNext 2017 Moscow: возвращение хардкора

Время на прочтение 25 мин
Количество просмотров 7.3K


12-13 ноября (то есть всего через пару недель) состоится DotNext 2017 Moscow, крупнейшая в России конференция, посвященная разработке на платформе .NET. Среди наших докладчиков — ведущие отраслевые эксперты из России, Европы и США. Основные темы конференции — внутренности работы платформы (CLR, GC, JIT), лучшие практики по использованию инструментов, профилирование и оптимизация производительности, многопоточное программирование, нововведения платформы, решения сложных кейсов.


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

Читать дальше →
Всего голосов 35: ↑34 и ↓1 +33
Комментарии 11

Функционал F#, который потихоньку появляется и в C#

Время на прочтение 7 мин
Количество просмотров 15K

Почему-то мы зачастую не используем этот функционал. Может быть еще не успели к нему привыкнуть. А иногда используем, при этом не имея представления, что это функционал из F#.
Читать дальше →
Всего голосов 33: ↑26 и ↓7 +19
Комментарии 42

Истории

Погружение в F#. Пособие для C#-разработчиков

Время на прочтение 12 мин
Количество просмотров 81K

Этот пост будет не о том, как «перевести» код с C# на F#: различные парадигмы делают каждый из этих языков лучшим для своего круга задач. Однако вы сможете оценить все достоинства функционального программирования быстрее, если не будете думать о переводе кода из одной парадигмы в другую. Настало время любопытных, пытливых и готовых изучать совершенно новые вещи. Давайте начнем!



Все материалы из серии переводов русскоязычного сообщества F#-разработчиков вы сможете найти по тегу #fsharplangru.
Читать дальше →
Всего голосов 48: ↑47 и ↓1 +46
Комментарии 74

Мониторинг акторов в Akka.Net, но на F#

Время на прочтение 15 мин
Количество просмотров 6.2K
Сразу скажу, хаба для F# на хабре нет, поэтому пишу в C#.

Для тех кто не знаком с F#, но знаком с C#, рекомендую наисвежайшую статью от Microsoft.
Она поможет Вам испытывать меньше WTF моментов при прочтении, т.к. моя статья не туториал к синтаксису.


Контекст задачи


Есть сервис, написанный на Akka.NET, он вываливает в разные текстовые логи кучу инфы. Отдел эксплуатации грепает эти логи, жарит по ним регекспами, чтобы узнать о кол-ве ошибок (бизнесовых и не очень), о кол-ве входящих в сервис сообщений и кол-ве исходящих. Далее эта информация заливается в ElasticDB, InfluxDB и показывается в Grafana и Kibana в разных срезах и агрегациях.

Звучит сложно, да и парсить текстовые логи сервиса, который генерит несколько десятков ГБ текстового мусора в день — занятие неблагодарное. Поэтому встала задача — сервис должен быть способен поднять ендпоинт, который можно дёрнуть и получить сразу всю инфу о нём.

Решать задачу будем так:

  1. Напишем доменную модель для метрик
  2. Замапим доменную модель метрик на реализацию App.Metrics и поднимем апишечку
  3. Сделаем структурированный доменный логгер, который натянем на внутренний логгер Akka
  4. Сделаем обёртку для функциональных акторов, которая спрячет работу с метриками и логгером
  5. Соберём всё вместе и запустим
Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 3

Разбор доклада Романа Неволина про F#

Время на прочтение 7 мин
Количество просмотров 3.7K
С предыдущего разбора прошло много времени, но я не бросил затею. Сегодня предлагаю вашему вниманию доклад Романа nevoroman Неволина, посвящённый тому, какой выход есть у человека, если он, во-первых, data scientist, а во-вторых, почему-то любит .NET.

Вполне логично, что это выступление состоялось на DotNext в декабре 2016 года:


Слайды можно найти тут.

Традиционный дисклеймер: про .NET только разбираемый в статье доклад, а не сама статья.
Всего голосов 24: ↑18 и ↓6 +12
Комментарии 0

Стратегия развития языков программирования .NET

Время на прочтение 7 мин
Количество просмотров 21K
Мэдс Торгерсен (Mads Torgersen), занимающийся больше 11 лет развитием .NET-языков в Microsoft, поделился описанием принципов, которыми руководствуется его команда, принимая решения о развитии каждого языка. Передаю слово Мэдсу.


Читать дальше →
Всего голосов 36: ↑30 и ↓6 +24
Комментарии 30

Тестируем Web UI на F# и canopy

Время на прочтение 3 мин
Количество просмотров 6K
Доброго времени суток! С недавнего времени я начал увлекаться функциональным программированием, поэтому в этой статье я бы хотел поделиться с вами моими находками. Мне очень симпатизирует минимализм синтаксиса функциональных языков. Сила и красота, которую несут за собой несколько строк кода.

В процессе UI тестирования своего рабочего проекта на C# и selenium, я задумался о том, как будут выглядеть тест сценарии на одном из функциональных языков. Мой выбор пал на F#. Поискав, я наткнулся на очень интересный фреймворк под названием canopy, который базируется на всем известном selenium и полностью реализованном на языке F#. С первых же строк кода он произвел на меня впечатление своей простотой и минимализмом синтаксиса, который позволяет упрощать сложные вещи.
Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Комментарии 3

Композиция функций на F# и Scala

Время на прочтение 7 мин
Количество просмотров 13K

Проще говоря о чем все это


Я начал думать о написании данной статьи несколько недель назад, после того, когда я старался объяснить моему 7 летнему чаду что такое математические функции. Мы начали с рассмотрения очень простых вещей. Это прозвучит безумно и наверное несуразно, но я закончил мое вводное объяснение повествованием о композиции функций. Это казалось настолько логичным разъясняя что такое функции, приводя примеры их использования из окружающего мира, говорить о композиции. Цель данной статьи — показать насколько простой и мощной является композиция функций. Начну я с рассмотрения понятия чистой композиции и приземленного разъяснения, после чего мы попробуем немного карри и позабавимся с монадами. Надеюсь вам понравится.

Далее
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 15

Тестирование в F#

Время на прочтение 4 мин
Количество просмотров 6.6K

Введение


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

Далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 9

fsharpConf 2016 — прямая трансляция виртуальной конференции по F#

Время на прочтение 1 мин
Количество просмотров 3.2K


Всем привет! Сегодня, 4 марта, состоится виртуальная конференция fsharpConf 2016, посвящённая языку функционального программирования F# и связанным технологиям и инструментам.

Начало трансляции — в 19:30 (по Москве).

Не упустите возможность услышать о языке F# от его создателя, Дона Сайма, послушать о применении F# в production в компании jet.com, а также узнать много нового о персонажах звёздных войн на основе анализа данных в докладе Эвелины Габасовой (20:00). И конечно один из самых интересных и ожидаемых докладов — демонстрации Шона и Фила Трелфолдов в 21:30.

Подробная программа конференции
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 0

Используем сборочные скрипты на F# / C# в TFS 2012

Время на прочтение 8 мин
Количество просмотров 7.4K
Думаю, не я один вспоминаю Microsoft нехорошими словами, когда приходится модифицировать и/или расширять так называемый шаблон сборочного процесса (build process template) в TFS. Под катом история о том, как мы перешли от Xaml к скриптам на F# / C#. Как мы пытались интегрировать Fake в TFS, но в итоге получилось собственное решение — AnFake.

Статья будет полезна тем, кто использует TFS как CI-решение, но не в восторге от его шаблонов сборочного процесса.
Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 4

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

DevCon Digest #1. Погружаемся в .NET

Время на прочтение 4 мин
Количество просмотров 17K


Привет, Хабр! Пока мы во всю готовимся к нашей ежегодной большой конференции DevCon, мы решили, что разработчикам, которые будут смотреть и слушать доклады конференции и общаться с экспертами, хорошо бы тоже углубить и освежить свои знания до конфернции.

Поэтому мы решили делать еженедельные тематичные подборки материалов по одному из направлений конференции, собрав в одном месте недавние новости, новые учебные материалы, анонсы параллельных мероприятий и другие полезные ресурсы.
Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Комментарии 3

F# адвент календарь по английски на 2014

Время на прочтение 1 мин
Количество просмотров 3.6K
У наших друзей из Японии есть замечательное событие, называемое F#-ский адвентский календарь. Каждый день, начиная с первого декабря по 31 декабря, один класный чел-доброволец пишет новую статью о F#. Это же просто замечательный подход для празднования Рождества, не правда ли?

Давайте же поддержим эту инициативу и сделаем английскую версию такого календаря. Две блог статьи в день лучше одного, неправда ли? Нам нужен 31 доброволец, готовый подготовить и опубликовать статью о F# в назначенный день.
Подробности
Всего голосов 11: ↑7 и ↓4 +3
Комментарии 0

Message Passing в F#. Применение MailboxProcessor

Время на прочтение 8 мин
Количество просмотров 4.3K
Данная статься продолжает серию публикаций о технологиях, которые мы используем для разработки сервиса проверки доступности веб сайтов HostTracker.
Сегодня речь пойдет о…

MailboxProcessor


image

Читать дальше →
Всего голосов 8: ↑6 и ↓2 +4
Комментарии 0

Реализация стека, очереди и дека на языке F# в функциональном стиле

Время на прочтение 5 мин
Количество просмотров 5.3K
Недавно я познакомился с концепцией функционального программирования. Возможно, в этой статье я изобретаю велосипед, однако я считаю, что эти действия являются весьма полезными для обучения, а также для более чёткого понимания функционального программирования.

Давайте попробуем реализовать основные типы данных: стек, очередь и дек — на языке F#, по возможности используя чистые функции. Естественно, они будут основаны на списках.

Прежде всего, необходимо дать определение чистой функции. Самое простое определение звучит так: функция называется чистой, если она детерминирована и не имеет побочных эффектов

Детерминированность функции означает то, что она выдаёт одинаковый результат для одинакового набора аргументов.
Побочными эффектами функций являются изменение глобальных переменных, обработка исключений, операции ввода-вывода, и т. д.

Стек


Прежде всего начнём со стека. В F# основным типом данных для хранения нескольких однотипных элементов является не массив, а список. Если перед нами стоит задача превратить список в стек, то какие функции нам понадобятся?

Во-первых, нам необходима функция для добавления элемента в вершину стека. Эта функция традиционно называется push. Однако эта функция нас особо не интересует, поскольку она очень просто реализуется:

let push stk el = el :: stk


Довольно простая функция, которая имеет тип 'a list -> 'a -> 'a list, однако не все дальнейшие функции позволят обращаться с собой таким простым способом.

Куда интереснее дело обстоит с выталкиванием вершины из стека, особенно, если мы ограничиваем себя чистыми функциями. Как же нам справиться с этой задачей?

Читать дальше →
Всего голосов 14: ↑11 и ↓3 +8
Комментарии 11

Разработка приложения на Android с помощью Xamarin и F#

Время на прочтение 10 мин
Количество просмотров 16K
image

Привет!

Недавно Xamarin объявил конкурс на разработку мобильного приложения на функциональном языке программирования F#.
Это было связано с выходом Xamarin 3 с полной поддержкой F#. Я решил отвлечься от повседневных задач и попробовать поучаствовать, тем более что я давно смотрю на F#, но шансов познакомиться с ним подробнее у меня не было. Для участия в соревновании я решил разработать приложение идея которого была предложена кем-то в процессе обсуждения внезапного взлета мобильного приложения Yo. Вот цитата:
Идея для стартапа, рабочее название «ты где?».

Смысл прост, девушка устанавливает приложение, указывает в нем номер своего молодого человека и после этого появляется большая гнопка отправки сообщения «ты где?» #startup #idea

Почему бы и нет?

Примечание
Я писал этот пост параллельно работая над приложением. Поэтому он большой и местами не очень логичный.

Читать дальше →
Всего голосов 24: ↑17 и ↓7 +10
Комментарии 8

Неизменяемая очередь на F#

Время на прочтение 4 мин
Количество просмотров 7.7K

Введение


Прочитав недавно статью про список на Haskell, решил тоже немного рассказать о реализации базовых структур на ФЯП (F#). Статья не несёт практической ценности, поскольку готовых реализаций полно в интернете. Цель статьи — рассказать о том, как можно реализовать неизменяемую очередь на F# и как она работает.
Для начала немного терминологии.
F# — это язык программирования из семейства .NET, который, помимо объектно-ориентированного и императивного подходов, реализует функциональный подход в программировании.
Неизменяемые объекты – это такие объекты, которые будучи созданными один раз, в дальнейшем не могут быть изменены. Например, в C# есть такой тип данных, как string, экземпляры которого являются неизменяемыми. Добавляя символ в строку, вы получаете новую строку и имеете неизменной старую. Подробнее тут.
Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Комментарии 4

Жизнь Конвея на F# + OpenGL

Время на прочтение 5 мин
Количество просмотров 6.1K

Почему F#?



Просто потому что он мне нравится. Решив пару десятков задач на projecteuler я решил найти более практическое применение знаниям и написать нечто не сложное, но осязаемое.

Кому интересно — добро пожаловать под кат.
Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Комментарии 15

Вклад авторов