Vova
https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=composite Сейчас асп.нет кор на шарпе входит в топ 10 самых быстрых фреймворков среди всех языков, при этом по фичам и подходу IoC это полный разрыв конкурентов Все что стоят выше аспа, это в основном либо микрофреймворки без фич либо низкоуровневые языки
Vova
И то это рейтинг по дотнету 5, недели 2-3 как вышел дотнет 6 - ещё быстрее
Bogdan
да асп.нет взлетел после дот нет кор 3.1 нифигово
Vova
Последние года 3 скорость очень сильно бустят
Mikhail
не знал про такой ресурс
Полезный, особенно когда переезжаешь в другую страну.
Vova
ну там кор какой-то появился, но я свалил с шарпов и вспоминаю как страшный сон
Рекомендую всё таки глазком глянуть, кор это совсем другой уровень и сейчас он уже в полном расцвете сил, не сырой
Bogdan
ну дот нет кор это уже далеко не C#
Bogdan
это уже сборная солянка
Bogdan
они намешали всего что только можно и с ФП, и ООП, и других языков
Nikolay
а код ради кода, не мое. Нужно реще задачи реальные решать
Bogdan
например Linq это ФП подход
Vova
Сам язык конечно в разы труднее стал, очень много сахара
Bogdan
F# тоже нифигово так вырос кстати
Vova
Труднее для изучения имею в виду, не написания
Vova
вот только сколько же они костылей принесли
Заметил только костыли с мультиархитектурность, особенно в докере Немного больная тема
Vova
Обещают к дотнету 7 пофиксить
Bogdan
MAUI костыль, нативное выделение памяти костыль
Bogdan
вообще в коре много чего за счёт костылей сделано
Vova
Ни то ни другое не пробовал, возможно ты прав
Bogdan
но эти самые костыли упрощают разработчику жизнь
Bogdan
как буд-то в других платформах и языках костылей нет
Avazart
Ну нет.
Avazart
Нужно знать что гуглить а что не гуглить
Vova
как буд-то в других платформах и языках костылей нет
В джаве может быть нет, иначе как объяснить настолько медленное развитие языка?)
Avazart
Спецификой?
Avazart
"Развитие языка" не всегда хорошо.
Andrii
например Linq это ФП подход
ФП подход это паттерн матчинг на алгебраических типах, в C# есть такое?
Avazart
Разве ФП ?
Bogdan
в F# есть, а в C# просто идеалогию некоторых плюшек взяли с ФП
Vova
"Развитие языка" не всегда хорошо.
В развитие входит в том числе реализация базовых повседневных методов, которые могут пригодиться разработчику, а не чтобы каждый свою реализацию писал
Avazart
Что Вы имеете ввиду под методами?
Bogdan
кстати F# прикольный хочу когда-то его выучить
Vova
ФП подход это паттерн матчинг на алгебраических типах, в C# есть такое?
Паттерн матчинг очень сильный завезли, хз что означает на алгебраических типах Типо if (array is { Length: > 1 }) ?
Bogdan
F# умеет и в ФП, и ООП
Дима
в общем я понял нужно знать и пайтон и js вместе =) а первым взять пайтон так как он основан на магии =)
Avazart
ЭЭ
Bogdan
Если кому интересно, я как C# разработчик, делюсь своей болью касательно JDK 17 версии (последняя версия джавы) Отсутствуют аналоги методов: 1) string.PadLeft 2) string.PadRight 3) Path.GetFileExtension 4) string.Split с перегрузками массив символов, массив строк, обрезка пустых вхождений и тримминг результатов (в джаве есть только регекс паттерн) 5) string.Trim / TrimStart / TrimEnd 6) File.ReadAllText 7) File.ReadAllLines 8) DirectoryInfo class - отсутствие аналога 9) LINQ, пример неполноценности - у метода .map нет банальной перегрузки с индексом .map((object, index) -> { }) Ну и про набор трудных методов типо Join, GroupJoin, Zip, Union и прочее даже речи не идёт 10) Банально даже нет интерполяции строк, в 2021 это выглядит максимально устаревше Дальше, думаю, можно не перечислять. С таким тулингом я бы работать не рекомендовал. Конечно, можно подключать внешние либы, но это не решение проблемы языка. Развитие очень медленное
кстати File.ReadAllLines упрощает жизнь но даже если бы его не было то можно StreamReader-ом было бы считывать но это дольше
Avazart
Попишите на С++ )
Bogdan
Попишите на С++ )
ну в С++ мало синтаксического сахара
Avazart
File.ReadAllLines это какая дичь как по мне.
Sergei
Коллеги, а что с вакансиями по С# в Москве? Что- то их прямо больше стало.
Vova
Попишите на С++ )
C++ не тягается с шарпом и джавой, не конкурент грубо говоря, язык совсем другого уровня
Bogdan
File.ReadAllLines это какая дичь как по мне.
чем дичь, ты можешь считать без циклов сразу все строки файла
Sergei
Вроде как С# пошел на спад...
Avazart
В С++ скудная стандартная библиотека
Bogdan
Вроде как С# пошел на спад...
эти качели всегда будут
Bogdan
всегда один язык будет прыгать выше другого и наоборот
Vova
Вроде как С# пошел на спад...
Это миф, с 2016 года идёт только вверх, гуглить .NET Core
Avazart
чем дичь, ты можешь считать без циклов сразу все строки файла
Дичь для ленивых плодить кучу методов на все случае жизни
Bogdan
пайтон тоже пошел на спад
Avazart
Когда пользователь может написать свою ф-цию засерающию память )))
Sergei
Так а зп погда у девов почему такие низкие?
Vova
Дичь для ленивых плодить кучу методов на все случае жизни
Это популярный случай, другое дело был бы метод File.ReadAllLinesAndSplitThemBy('-') - вот это была бы дичь
Алексей
Так а зп погда у девов почему такие низкие?
На плюсах тоже ниже джавы и шарплв
Sergei
На С# синьор как тестер получает
Bogdan
у меня знакомый сеньор 4к долларов получает
Vova
На С# синьор как тестер получает
Это сколько? И где ты такое нашел? Я в 20 лет 3к баксов получаю
Sergei
Да нет- реаль...
Bogdan
Так это зп мидла
в Украине есть такие зп, прикольно
Vova
Синьор 4к+
Avazart
Популярно читать как раз в буфер частями а читать весь файл как то ....
Vova
в Украине есть такие зп, прикольно
Продуктовая компания просто, не аутсорс
Bogdan
Популярно читать как раз в буфер частями а читать весь файл как то ....
а с помощью linq можно вообще циклы не использовать
Sergei
Я пошел на собес, представился как сеньор, 3 года стажа...И что...25 собесов...ВНИМАЕИЕ 150000 ПОТОЛОК...
Andrii
Паттерн матчинг очень сильный завезли, хз что означает на алгебраических типах Типо if (array is { Length: > 1 }) ?
Нет, а алгебраическая теория типов строится на типе 0 (мы не можем построить значения этого типа), на типе 1 (существуеи только одно значение этого типа), далее есть опарация сложения типов (значение или одного типа, или другого), например, 1+1 это какой-нить булев тип с двумя значениями, и умножение (два значения вместе, пара, кортеж, ..) Когда мы делаем на них паттерн-матчинг, то обычно должны перечислить все варианты, какие могут быть в типе. И тут компилятор легко может сказать, что какие-то варианты не перечислены. А в языках типа C# легче простого забыть про какой-то вариант, типа что object может быть null, не вставить проверку... Или забыть перекрыть виртуальный метод, и т. п.