All streams
Search
Write a publication
Pull to refresh
15
0

User

Send message
В том же F# кстати это было исправлено, там асинки честно ждут пинка от рантайма.

Фшарповые Асинки появились на пару лет раньше тасков. Так что это скорее авторы сишарпа не смогли списать домашку и запороли дизайн Тасков

(1..n)

Хе-хе. Границы ренжей в сишарпе 8 имеют разную инклюзивность.

Есть хороший выпуск намберфила по этой же теме
https://youtu.be/AxJubaijQbI

Вызовут кого-нибудь другого.

По-моему этой фразой вы перечеркнули все свои доводы ранее.
Незаменимых людей нет, бывают лишь мудаки-работодатели которые экономят на заменах и сношают своих работников pager-duty обязанностями 24x7

На хабре есть компания (она ещё любит мониторить своих сотрудников чуть ли не поминутно с фотками вебки), бодишоп для удалёнщиков, там зп около этой суммы. Есть меньше, есть больше.

Превосходно, просто превосходно.


Инженеры в IT есть, но сам программист это проф образование — пара лет вечерки и ты программист (или токарь, или шофёр, по желанию).
Инженер же это образование ВУЗа, ну там структуры данных, архитектуры, матаны, алгоритмы, то есть именно та база которая позволит разбираться в библиотечных проблемах, а не просто "пишу на C#".


Как "батя", который, получив инженерное образование в ВУЗе (теплотехнику, физику, сопромат, электротехнику, детмаш и т.д.), может не только гаечным ключом работать, но и в смежных инженерных делах не быть профаном. Автомобиль он может и не задизайнит сам, с нуля, но разобраться в проблемах вполне по силам.

В тегах вроде так и написано :)

Поэтому если в .Net FW решили внедрить TPL (Task — это фича фреймворка, а не языка), то это значит что нужно привести синтаксис языка под эту новую функциональность, как это сделали в C#

Поддержку Task конечно же ввели сразу же, добавив Async.AwaitTask и Async.StartAsTask. Я вот лично не видел чтобы авторы C# вводили интероп с Async :)

Если пользоваться этими методами неудобно (можно понять), то вам никто не мешает расширить базовый AsyncBuilder для работы с тасками:
image


Или взять taskBuilder, который используется в Giraffe (кстати второй после Zebra Fullstack фреймворк на дотнете по скорости)

Через строчку писать |> ignore — это не то, что хотелось бы от современного языка.

Можете выключить этот варнинг навсегда через:
#nowarn "0020"
и говнокодить как на C# сколько влезет.


разработчики языка решили, что просто сменить язык — это недостаточно круто, и поэтому они отрешились от привычного для c# разработчиков linq.

open System.Linq

[1..10].Select(fun x -> x + 1)
       .Where(fun x -> x % 2 = 0)
       .ToArray()

Но если что, то Дон Сайм (автор языка), является мейнтейнером либы FSharp.Core.Fluent.
Она даёт доступ к функциям "через точку" для List, Array, Array2D, Array3D, Seq, Event и Observable. Так что там ещё авторы языка сделали плохого?)


Ну и конечно же, LINQ появился позже чем этот синтаксис:


[1..10]
|> Seq.map (fun x -> x + 1)
|> Seq.filter (fun x -> x % 2 = 0)

Поэтому "отрешиться" от LINQ авторы F# не могли в принципе.


Ещё авторы языка решили, что привычные для c# разработчиков Task — это нечто чуждое для такого прекрасного функционального языка, поэтому все вызовы к асинхронным функциями из .Net фреймворка должны сопровождаться |> Async.AwaitTask вместо привычного лаконичного ключевого слова await.

Авторы языка запилили async/await в F# за 2 года до появления async/await в C# :)
Поэтому и Async<T>, и асинхронные методы в стримах и HttpRequestMessage появились сильно раньше. Авторы языка C# решили что они хотят свой Async<T> и назвали его Task<T>.


image


Вы постоянно путаете причину и следствие.
Почти все фичи в начале появлялись в F#, поэтому авторы языка просто не могли скопировать дизайн из C#. Дизайна просто не было!

Ну да, ну да.


А LISP как интересно существовал? На нём писались и пишутся (на диалектах) очень сложные программы.

Что читать по F#?

Можно начать отсюда:
https://fsharpforfunandprofit.com/why-use-fsharp/


По мнению подавляющего большинства F#истов, лучший сайт для обучения

Ваше резюме было заточено именно на F#-вакансии? Или в нем был также указан C# и сопутствующие технологии?

Никакой заточки, просто перечислил что знаю. У F# те же технологии.
Но указано было F#/C# Developer, да.

так а какая замена скажем интерфейсам и DI в F# есть?

Ну для начала, в F# есть интерфейсы и DI :)
Но чаще всего можно обойтись partial apply.


Марк Симан (автор Dependency Injection in .NET) рассказал об этом на прошлом DotNext:
https://www.youtube.com/watch?v=xG5qP5AWQws

ЗЫ: про amazon вон 180 items, включая обновлявшиеся совсем недавно.

3050 пакетов
https://www.nuget.org/packages?q=azure
1109 пакетов
https://www.nuget.org/packages?q=aws


Экосистема всё ж не пустой звук.

внезапно, hackage.haskell.org/packages/search?terms=azure (8 items). Большинство, правда, давно не обновлялось, но по-моему тут уже эффект положительной обратной связи: если бы на хаскеле писало больше народу, то библиотеки к ажуре обновлялись бы почаще.

Ясно же что этого недостаточно. там только способов аутентификации в облаке с десяток. Managed ID, AD, Azure AD, OAuth, ApiKey и пр… Видов сервисов несколько сотен, а тут всего 8 либ.


Очевидно что для работы с Ажуром на Хаскеле мне придётся велосипедить не один месяц.

Ну для начала вам никто не запрещает делать классы в ФП :)


Но если хочется чистоты и фпшности (в описанном случае смысла вижу мало упарываться), то делаем одну функцию с параметром dbClient, которая возвращает рекорд (тупль) из 3х функций (create/read/delete), которые работают с этой db. Во все три уже будет вшит dbClient.


Я бы так не делал.

Ой, а для тех, кто в танке — «точечка нет» за пределы винды вышла в промышленных масштабах?

Я для винды уже пару лет ничего не писал, всё кросс платформенное.
Даже не задумывался о "пределах винды", оно просто уже давно по умолчанию такое, вне виндовое.

Ну так насуёт. Библиотек действительно мало, пакетного менеджера нет (ipkg несерьёзно), баги в тайпчекере есть и немало.

Я слишком общо сказал про "по всем статьям". Я имел в виду только систему типов и всякие мозговзрывные вещи. Как хасель умеет в монад трансформер по сравнению с F#, так и Идрис умеет много чего по сравнению с Хаскелем.


Интереса ради, а в какой области вы занимаетесь? А то я бы не сказал, что я испытываю какой-то недостаток библиотек в хаскеле. Даже наоборот, хочешь что-то этакое запилить — а оно уже, блин, сделано :(

облачные микросервисы, ETL.
На прошлой работе Azure, на новой тоже Azure.


У F# фора — все SDK для Azure уже написаны)

Information

Rating
Does not participate
Registered
Activity