F# вместо C#?) Наличия Discriminated Unions будет не достаточно.
Option уже давненько перекрыто nullable reference type.
Все просто
Ну во-первых, не перекрыто. Удачи отфильтровать null из массива. Во-вторых, я бы не стал объяснять необходимость, если честно. Или твоё или нет. Сишарп слишком удобен, даже если приходится больше писать.
null в массиве также перекрывается nullable reference type. Если контракты никто ни соблюдает, то никакой Option или Discriminated Unions не поможет.
Необходимость как таковая писать на конкретном языка возникает, но не так часто как некоторым бы хотелось
Так не перекрывается. Я ж говорю, попробуй отфильтровать null из массива. При помощи стандартного Linq.Where.
Вы имеет ввиду перевести nullable массив в НЕ nullable? Через Select() можно же сделать.
Через Select? Это что-то новое. Можно пример?
Вывод типов по ХМ мне достаточно, чтобы отказаться от C#. А если добавить DU с ломающимся компилером, при непокрытых кейсах, лаконичный дизайн рекордов с заточкой под работу с функциями в модулях, да еще с пайпом-то шарп вообще лесом идет. :)
- algebraic data types - immutability by default - computation expressions - concise syntax
Мне кажется что одного пункта два должно хватать, чтобы вопрос закрылся))
Автовывод типов по Хиндли-Милнеру же первым должен идти :)))
Хм, а чем immutable by default лучше настраиваемой имутабельности?
Меньшей суетой с ключевыми словами
Одна из них приводит к постоянным ошибкам
Тем, что когда дефолтом идут мутации и нули, это всегда вылезет. Чистота кода должна обеспечиваться самим языком, а не высокой дисциплиной и уровнем разработчиков.
Справедливости ради у шарпа нет UB(как в плюсах) по части неинициализированных переменных. Если конечно не страдать байтоёбием с SkipLocalsInit
как говорил многоуважаемый Джон Кармак: "худший код в вашем проекте будет настолько хуевым, насколько пропустит компилятор"
В сишарпе и такой нет пока)
у шарпа есть дофига неверифицируемого кода разной степени сломанности, как и у фарша, но ему я прощаю так как множества людей что на нем пишут и множество людей что ебется с этими вещами вмещает в себя человек 5
Факт. Нужно суетится много для её обеспечения :)
Этого должно быть достаточно, что бы перевесить рассуждения руководства о количестве доступных программистов на F#, коих значительно меньше чем C# или Scala, к примеру если очень хочется функциональности.
Проще когда обосрутся пару раз на шарпе предварительно
А не нужно искать F# программистов. Нужно искать просто хороших. Работает.
Тогда нужен бюджет на дообучение языку или даже платформе, а это снова дополнительные затраты...
Это все быстро приходит.
На фшарпе каждый калека писать может начать. Вон посмотри на меня. На сишарпе начинаются трехэтажные паттерны
Кстати, забавно
Обсуждают сегодня