Bonart
Это правда про книгу Дмитрия Сошникова? Книга тяжела в понимании, особенно тем, кто никогда не сталкивался с функциональным программированием. Опишу как идет повествование в книге: 0.Введение - "Пасаны, до этого вы жили-не тужили и понятия не имели, что есть функциональное программирование и плевать, что оно нужно в очень узких кругах" Глава 1 - Ну вот посмотрите, как я красиво решаю квадратное уравнение и трачу на это 17 строк. И не важно, что на C# это занимает меньше 7 строк...главное процесс Глава 2 - Смотрите, что еще умеет F#. Вон как классно... В общем все в таком духе идет. Автор общается с читателем так, словно они давние приятели и находятся на одной волне. Книга похожа на стиль преподавания в наших вузах - говорят о том, как все классно и легко, но не говорят ответа на главный вопрос - "А зачем все это и почему так, а не иначе?"
Это комментарий какого-то идиота.
Vasiliy
Так а может быть в этом и смысл? Что голый фп не нужен?
у F поддержка ООП, ибо CLR поддерживает изначально ооп, как я понимаю.
Hog
Я посмотрю, у вас тут весеннее обострение в полном разгаре!
Vasiliy
Но есть же Хаскель. там ооп нет, же?
Pavel
у F поддержка ООП, ибо CLR поддерживает изначально ооп, как я понимаю.
Я не про это, я про то, что полный отказ от ООП фич глуп
Roman
Но есть же Хаскель. там ооп нет, же?
насколько я знаю, нет. Это типа труЪ ФП. Но там гораздо мощней система типов, чем в фш. Так что там это не так болезненно ощущается, хотя иногда, конечно, ООП там должно сильно не хватать
Ayrat
Но есть же Хаскель. там ооп нет, же?
смотря что ты понимаешь под ооп. объекты там есть, методы к ним прицепить можно https://www.schoolofhaskell.com/user/fumieval/encoding-objects
Pavel
@SWATOPLUS Короче, суть ФП — чистые функции. То есть функции, которые отвечают следующим критериям: 1. Они не имеют сайд-эффектов. То есть никак не мутируют какое-либо внешнее состояние 2. Они всегда для одного и того же инпута дают одинаковый аутпут. 3. Они корректно обрабатывают любой возможный инпут (то есть не кидают исключения, например) И, конечно, ФП это про композицию функций. Если всем этим правильно пользоваться, то ты получаешь гранулярный слабосвязанный читаемый код, который к тому же всегда корректно работает, что можно доказать математически. Это в противовес сегодняшнему ООП, где никаких гарантий нет и быть не может ввиду вездесущих мутаций, неявных взаимодействий, эксепшенов повсюду и тд. * Само собой, сайд-эффекты необходимы. И они есть, просто ФП позволяет их изолировать, чтобы их было легче контролировать. Бизнес логика может быть построена целиком на чистых функциях. А (де)сериализация, доступ к БД и прочее — может и должно быть вынесено на границы приложения за пределы бизнес логики
Я все это понимаю и пишу так же на c#, мне не понятно, что же f# даёт такого, что я не сделаю на c#?
Roman
Я не про это, я про то, что полный отказ от ООП фич глуп
конечно глуп. Как и полный отказ от ФП. Благодаря чему мы наблюдаем во всех популярных языках фичи из обеих парадигм. Цимес в том, что ФП незаслуженно мало внимания и признания сегодня. Для многих сегодняшних ынтерпрайзных задач оно подходит гораздо лучше, чем ООП
Roman
Я все это понимаю и пишу так же на c#, мне не понятно, что же f# даёт такого, что я не сделаю на c#?
по-англицки читаешь? Я про это целую статью написал https://medium.com/@liman.rom/f-spoiled-me-or-why-i-dont-enjoy-c-anymore-39e025035a98
Ayrat
Обнимемся? :)
мы вообще можем не расцепляться!!1
Roman
Так ок, а зачем нужен f# тогда, если все то же самое можно делать на с#?
скинул тебе статью. Если вкратце, то меньше бойлерплейта и в целом кода нужно писать, для достижения того же результата
Roman
То есть фшарп тупо удобней. Ты можешь накладывать суп чайной ложкой, но лучше уж взять половник, правда?
Vasiliy
Я просмотрел, по-быстрому понял о чем речь. Жду с# 9.0 c тип-суммами
лол. Кто то тут жаловался на неделе, что c# уже стал помойкой :D :D :D
Roman
Я просмотрел, по-быстрому понял о чем речь. Жду с# 9.0 c тип-суммами
ну.. Удачи. Сколько времени мы ждем рекорды? Защиту от нуллов (вменяемую)?
Roman
Быстрее ты станешь гуру фшарпа, чем в сишарп завезут типы суммы
Ayrat
Не, сишарп отличный язык и фичи в него хорошие внедряют, бойлерплейт убирают постоянно. Но с лагом в 5 лет от F#
Roman
Ну, не всегда.
конечно. Это среднее по больнице же, а как иначе?
Ayrat
рекорды бляха муха хз когда будут ещё
Ayrat
патерн матчинг наконец-то юзабельный в зачаточном виде появился
Pavel
рекорды бляха муха хз когда будут ещё
В этом месяце должны релизнуть все
Roman
Не, сишарп отличный язык и фичи в него хорошие внедряют, бойлерплейт убирают постоянно. Но с лагом в 5 лет от F#
о том и речь. Язык хороший, но кому нужен хороший язык, когда есть охуительный?)
Vasiliy
рекорды бляха муха хз когда будут ещё
не, ну обещают же уже в 8.х 😂😂
Hog
Там в порнете уже написали. Не в 8.0.
Hog
А в 8.9.99(9)
Pavel
с чего ты взял-то?
Они где-то об этом писали раньше, что в марте релиз, но могли потом сроки перенести
Ayrat
блин, там какой-то дурачёк увидел пропозал про рекорды хз какой давности и статью написал о том что РЕКОРДЫ В C#8.0 только майкрософт не в курсе
Ayrat
надо им сказать чтобы работать начинали над пропозалом
Roman
Они где-то об этом писали раньше, что в марте релиз, но могли потом сроки перенести
а собсно что тебя останавливает от того, чтобы попробовать фшарп и преодолеть порог вхождения?
Ayrat
а то боюсь не успеют!11
Ayrat
и вот все эту статью мусолят как будто фича готова, а там как бы конь не валялся и активности никакой
Ayrat
Ну хуй с ними с рекордами, ещё бы патернов докинули в патерн матчинг, на массивы и слайсы например, об активных патернах как в F# даже не прошу, не осилят
Ayrat
вот в F# патерн матчинг от бога ваще. от бога нашего Сайма
Igor
Не, сишарп отличный язык и фичи в него хорошие внедряют, бойлерплейт убирают постоянно. Но с лагом в 5 лет от F#
Лол, хороший прям как C++ да ок, там тоже с каждой версией бойлеплейт убирают
Roman
я, если честно, наоборот хочу, чтобы сишарп не внедрял ни рекорды, ни ДУ, ничего
Pavel
а собсно что тебя останавливает от того, чтобы попробовать фшарп и преодолеть порог вхождения?
Ну скажет так, хэлло вордя я уже писал, а по работе его просто так не внедришь. У меня раньше был случай, когда наличие тип-сумм здорово бы упростило код, но тогда политика партии была, нет эф-шарпу. А в моем текущем проекте, он не особо нужен.
Roman
Пушто даже если внедрят, будет хуже, чем фшарп, но уже будет меньше импульса на то, чтоб с него перелезть
Ayrat
я, если честно, наоборот хочу, чтобы сишарп не внедрял ни рекорды, ни ДУ, ничего
ну уж нет, пусть внедряют. Но есть мнение что DU не будут делать, т.к. enum
Hog
А @AnutaU с гендерным праздником уже поздравляли? :)
Ayrat
Лол, хороший прям как C++ да ок, там тоже с каждой версией бойлеплейт убирают
ну вот C++ кстати пример языка который не стесняется развиваться. Ты прикинь как сложно в язык фичи добавлять, а они ж там постоянно пихают кучу нового. Да, разрастается стандарт, но пока под собственным весом не упал
Ayrat
я бы от c++ отпочковал какой-нибудь C++ Lite, где нет старого говна
Igor
ну вот C++ кстати пример языка который не стесняется развиваться. Ты прикинь как сложно в язык фичи добавлять, а они ж там постоянно пихают кучу нового. Да, разрастается стандарт, но пока под собственным весом не упал
Я не знаю, имхо это уже живой труп. На работе ребята пишут на C++ и постоянно абсолютно непонятные сигфолты фиксят, при том то используют маленький сабсет фич. На Rust одна надежда
J. A. R. Kotlien
В OCaml уже что-то типа билдеров появилось. https://caml.inria.fr/pub/docs/manual-ocaml-4.08/manual046.html Или билдеры мощнее?
Roman
Зачем раст, го? asm + c + c# это стек будущего.
ты там вернул свой 1997й что ли?
Hog
Ну я пока не заинтерисован в смене работы только ради f#
Если тебе подкатят - бросай ц# за +20%? Т.е. всё то же самое (предметная область, сложность задач), но на ф#?
Roman
Если тебе подкатят - бросай ц# за +20%? Т.е. всё то же самое (предметная область, сложность задач), но на ф#?
оставьте ваши жалкие попытки, сэр. Джентльмен не сильно заинтересован, пить его не заставишь
Igor
хз, есть мнение чот у ребят не так, они поди руками память выделяют?
Ну они пользуются тем что позволяет C++ 🤷‍♀️
Roman
Ну они пользуются тем что позволяет C++ 🤷‍♀️
кухонный нож позволяет резать хлеб и людей. Если кто-то режет людей, это проблема ножа или того, кто режет?
Ayrat
Ну они пользуются тем что позволяет C++ 🤷‍♀️
понимаю, но вот F# например тоже позволяет поинтерами кидаться, память вне хипа аллоцировать и черел рефлексию гет онли проперти мутировать но это ж не значит что так надо делать
Pavel
Если тебе подкатят - бросай ц# за +20%? Т.е. всё то же самое (предметная область, сложность задач), но на ф#?
Оу, ну с вы бором места работы, у меня все сложно, я сейчас всем доволен, вмеми мелочами в компинии и меня на кота в мешке за большую зп не очень хочеться. Тут ответ зависит от различных нюансов компании нанимателя.
Hog
Ну они пользуются тем что позволяет C++ 🤷‍♀️
Мне кажется, автопоинтеры уже лет 10 назад были
Hog
А это уже почти манажед-память
Pavel
.NET Core 3.0 Final version in second half of 2019 - здавствуйте, вторая половина 2019
Pavel
https://github.com/dotnet/core/blob/master/roadmap.md
Ayrat
ну и хуй с ним, нам бы на 2ой мигрировать :D
Vasiliy
ну и хуй с ним, нам бы на 2ой мигрировать :D
воу, держитесь там и мигрируйте резче
Roman
не видим никакой зависимости