Основатель F# сообщества: «ООП и ФП головного мозга должны умереть»// Мы обречены #7
Полтора года назад я писал статью про сообщество 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. Он не очень любит выезжать, но мы как комьюнити сформировали рынок потребностей. И, например, недавно он приезжал в Украину. Там тоже очень много наших ребят. И это был первый раз, когда он приезжал говорить с русскоязычными разработчиками.