Основатель F# сообщества: «ООП и ФП головного мозга должны умереть»// Мы обречены #7

c9b72d548a9e518d127e0b832c42fc49.jpg?v=1

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

Но внутри я встретил самое дружелюбное и живое сообщество разработчиков из всех, с кем общался. Пацаны приводили много логичных доводов почему они выбрали F#, но у меня все равно осталось впечатление, что они выбирают не умом, а сердцем. Очень необычная фигня для такой прагматичной индустрии.

Спустя полтора года после статьи я позвал Романа Мельникова на подкаст и обсудил, как все обстоит сейчас.

Несколько цитат Романа изнутри:

Для чего начал собирать сообщество

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

В 2014 году я сделал бизнес — заказную разработку — и мечтал собрать команду, которая писала бы только на F#. Это была просто блажь — мне хотелось стать тем работодателем, который пишет на F#.

Но не получилось, я закрыл это дело. Зато начал расти чат в телеграм и, и мы решили собирать вокруг него сообщество, примерно в 2016 году. Я планировал возродить старую идею, собрать комьюнити, чтобы у меня была куча разработчиков, которые хотят писать на F# и стать титульной компанией для этого языка. Например, есть компания Jet.com. Это e-commerce, и там сотни разработчиков пишут только на F#. Потом их купил Wallmart, и это крутой кейс. Мне хотелось стать таким русским Jet.com

Но и это тоже не получилось. Зато я получил кучу знаний, в сообщество приходят очень умные ребята. Был даже ученый-физик, который использовал F# в моделировании, и у него отлично получалось. Язык реально позволял это делать. Я пообщался с кучей умных ребят, и это как минимум подняло мой уровень. Через какое-то время меня просто стали звать на работу туда, где был нужен F#.

Почему выбрал F#

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

Я понимаю, что все это спорная вещь, и люди будут говорить — да ну нахер ваш F#. Можно по разному относиться, но один хороший F# разработчик реально может заменить двух средних сишарперов.

Если у тебя есть поле для экспериментов, например совсем свежий стартап, то можно взять неплохих сишарперов, научить их F#. Адекватным .Net разработчикам, которые знают стандартную библиотеку — им пофигу, пишешь ты на C# или F#. Когда ты .Net разработчик, ты знаешь .Net, а C# просто в придачу, по умолчанию. Поэтому легко вкатишься и F#. Сначала на F# ты можешь даже писать так же как на C#, и от этого уже будет профит, потому ты будешь писать меньше. Если человек видит, что язык помогает сократить ему 15% кода — он возьмет и сократит. Меньше кода — меньше багов.

Конечно, как менеджер я бы наверное не менял парадигму, если у меня уже есть 26 C# разработчиков, и мне нужно в срок сдать проект. Но если бы я начинал проект с нуля — F# идеально заходит.

О непопулярности языка

У F# никогда не будет большинства. Но знание F# и особенно желание писать на нем, понимание его плюсов — это отличнейший флаг при выборе программистов. Я сразу понимаю, что человек шарит. Он понимает в .Net, а не только C#, он понимает, как можно делать по другому. 

F# позиционировался как язык для обработчиков данных, для data science. Хотя это хороший язык и для фронта, и для веб-разработки. Той же жертвой, например, пал Rust — все говорят, это язык для системой разработки, хотя на нем очень хорошо писать веб-приложения и бэкенды. Он отлично подходит для WebAssembly.

Про сравнения с C#

Новые фичи, которые появляются в C#, идут только на пользу F#. Например, движения C# 9 с кучей атрибутов против null — у меня от них взрывается мозг, когда я читаю, как этим пользоваться. А в F# по умолчанию не может быть null рефов, и ты не пишешь ничего для этого. Поэтому когда они портят C# — для это F# лучше. F# становится для C# своего рода Котлином для Джавы.

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

Про дружелюбность сообщества

Я сразу хотел построить комьюнити, которое будет добрым. Первые три года все, абсолютно все, говорили, как у нас уютно. Я понимал, что если ты топишь за язык, который сейчас не очень популярен, и если ты будешь всех посылать, люди которые интересуются языком, так к тебе и не придут. 

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

Это комьюнити не вызывает ассоциаций со стереотипными ФП-шниками. Кажется, что мы сильно другие ребята, не такие как хаскелисты и остальные. Даже не такие как дотнетчики. Зайди в фиолетовый чат .Net ru — и все, капец, сплошные срачи.

Наше комьюнити скорее выработало подход, что мы не ФП-разработчики — мы прагматичные разработчики. Когда надо, мы используем классы, когда можно — фп-подходы. И это не только локальная тема. Дон «святой наш» Сайм говорил, что F# — это язык не функциональный, а functional first. Потому что где надо, ты используешь ФП, а где не надо — используешь ООП, потому что это тоже нормальная разумная практика там.

ООП головного мозга должно умереть, так же как и ФП головного мозга должно умереть. 

Я не супер фанат Дона Сайма, и его святость — это конечно шутка. Он просто хороший чувак, у которого есть видение языка, и он его транслирует. Комьюнити языка движется скорее другими людьми. К Дону есть претензии, когда он закрывает некоторые проблемы by design. Он не очень любит выезжать, но мы как комьюнити сформировали рынок потребностей. И, например, недавно он приезжал в Украину. Там тоже очень много наших ребят. И это был первый раз, когда он приезжал говорить с русскоязычными разработчиками.

© Habrahabr.ru