Я почти год не писал код на C# и внезапно решил освежить знания .NET и C#.
Внезапно уже C# 7.2 в котором:
1) Есть локальные функции (привет всем функциональным языкам)
2) Есть кортежи и деконструкция (привет всем функциональным языкам)
3) Есть паттерн-матчинг (привет всем функциональным языкам)
4) Есть передача структур по ссылке (ref locals) и передача "констант" по ссылке (readonly ref) (привет C++)
5) Есть типы Span и Memory для безопасной работы с блоками памяти (массивами, строками) без аллокаций (привет C++)
Ну и для тех кто ранние версии не видел:
6) async (привет Go и вообще всем языкам)
7) Тип dynamic (привет всем динамическим языкам)
8) Linq (привет python, haskell и другим языкам с list comprehension)
9) generics (привет Go)
Есть вообще хоть один язык, который превосходит C# не по отдельным фичам, а по совокупности?
ЗЫ. Про кроссплатформенность не надо, C# гораздо более кроссплатформенный, чем многие другие языки.
Здравствуйте, Sharov, Вы писали:
S>Здравствуйте, gandjustas, Вы писали:
S>И? Кому все это нужно, если кроме венды платформа толком нигде не работает. А сколько там венды в мобайле?
У меня сейчас проект asp.net core крутится на линуксовом сервере, а прототип мобильного приложения (Xamarin\C#) запускается на ведроиде и ios.
Единственное где не работает C# — фронтэнд, там typescript заруливает.
Здравствуйте, gandjustas, Вы писали:
G>Внезапно уже C# 7.2 в котором: G>1) Есть локальные функции (привет всем функциональным языкам) G>2) Есть кортежи и деконструкция (привет всем функциональным языкам) G>3) Есть паттерн-матчинг (привет всем функциональным языкам) G>4) Есть передача структур по ссылке (ref locals) и передача "констант" по ссылке (readonly ref) (привет C++) G>5) Есть типы Span и Memory для безопасной работы с блоками памяти (массивами, строками) без аллокаций (привет C++)
G>Ну и для тех кто ранние версии не видел: G>5) async (привет Go и вообще всем языкам) G>6) Тип dynamic (привет всем динамическим языкам) G>7) Linq (привет python, haskell и другим языкам с list comprehension) G>8) generics (привет Go)
G>Есть вообще хоть один язык, который превосходит C# не по отдельным фичам, а по совокупности?
Ц++ превосходит, я думаю. Я не большой его знаток, насколько я помню: нет пунктов 2, 3, 5, 7, зато есть кроссплатформенность, семантика перемещения, выполнение функций во время компиляции, гораздо более мощные шаблоны — это все _гораздо_ круче. Конечно, и мусора там овер-дохрена, но это уже другой вопрос.
Re[2]: Где срачь про то, как C# порвал C++ (и все остальные языки)?
Здравствуйте, AlexRK, Вы писали:
ARK>зато есть кроссплатформенность
Кроссплатформенность в .NET уже давно есть, C# гораздо более кроссплатформенный язык, чем C++
Re[3]: Где срачь про то, как C# порвал C++ (и все остальные
Здравствуйте, gandjustas, Вы писали:
G>У меня сейчас проект asp.net core крутится на линуксовом сервере, а прототип мобильного приложения (Xamarin\C#) запускается на ведроиде и ios.
Не самая большая выборка, согласитесь.
Кодом людям нужно помогать!
Re[2]: Где срачь про то, как C# порвал C++ (и все остальные
Здравствуйте, AlexRK, Вы писали:
ARK>семантика перемещения, выполнение функций во время компиляции
Они не добавляют выразительности языку, все что можно написать на C++ можно написать и без constexpr и std::move, но некоторые вещи могут тормозить чуть больше.
ARK>гораздо более мощные шаблоны — это все _гораздо_ круче
Это мощность для писателей библиотек, но не для программиста приложений.
Здравствуйте, Sharov, Вы писали:
S>Здравствуйте, gandjustas, Вы писали:
G>>У меня сейчас проект asp.net core крутится на линуксовом сервере, а прототип мобильного приложения (Xamarin\C#) запускается на ведроиде и ios. S>Не самая большая выборка, согласитесь.
А мы все еще про возможности языка или про людей, которые их используют?
Или ты считаешь что программисты на C++ поголовно кроссплатформенный код пишут? Скорее наоборот.
Re[2]: Где срачь про то, как C# порвал C++ (и все остальные языки)?
Здравствуйте, gandjustas, Вы писали:
G>Я почти год не писал код на C# и внезапно решил освежить знания .NET и C#.
G>Есть вообще хоть один язык, который превосходит C# не по отдельным фичам, а по совокупности?
G>ЗЫ. Про кроссплатформенность не надо, C# гораздо более кроссплатформенный, чем многие другие языки.
Не хватает хвостовой рекурсии (или я пропустил ее появление?)
Да пребудет с тобой Великий Джа
Re[3]: Где срачь про то, как C# порвал C++ (и все остальные языки)?
Здравствуйте, gandjustas, Вы писали:
ARK>>зато есть кроссплатформенность G>Кроссплатформенность в .NET уже давно есть, C# гораздо более кроссплатформенный язык, чем C++
Не уверен.
Re[3]: Где срачь про то, как C# порвал C++ (и все остальные
Здравствуйте, gandjustas, Вы писали:
ARK>>семантика перемещения, выполнение функций во время компиляции G>Они не добавляют выразительности языку, все что можно написать на C++ можно написать и без constexpr и std::move, но некоторые вещи могут тормозить чуть больше.
Про выразительность языка речи не было, речь шла про важные фичи, если я правильно понял.
ARK>>гораздо более мощные шаблоны — это все _гораздо_ круче G>Это мощность для писателей библиотек, но не для программиста приложений.
Про программистов приложений вроде тоже речи не было.
Re[3]: Где срачь про то, как C# порвал C++ (и все остальные языки)?
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, gandjustas, Вы писали:
G>>Кроссплатформенность в .NET уже давно есть, C# гораздо более кроссплатформенный язык, чем C++
S>Да, безусловно, если под кросплатформенностью понимать окноплатформу плюс тепличные условия (с ограничениями в коде) на остальных.
Ты наверное не в курсе:
1) Довольно давно появился .NET Core, который запускается под mac, *nix и windows без ограничений.
2) Довольно давно появился Xamarin, в котором код на C# запускается под windows phone, ios и android
3) Относительно недавно появился .NET Standard с которым ты можешь написать dll на .net и подключить эту dll (без перекомпиляции) к веб-приложению на asp.net core, которое работает на ubuntu и к мобильному приложению на iOS.
4) C electron.net довольно легко сделать кроссплатформенное десктопное приложение на dotnetcore.
Re[4]: Где срачь про то, как C# порвал C++ (и все остальные
Здравствуйте, AlexRK, Вы писали:
ARK>Здравствуйте, gandjustas, Вы писали:
ARK>>>семантика перемещения, выполнение функций во время компиляции G>>Они не добавляют выразительности языку, все что можно написать на C++ можно написать и без constexpr и std::move, но некоторые вещи могут тормозить чуть больше. ARK>Про выразительность языка речи не было, речь шла про важные фичи, если я правильно понял.
А что ты счиаешь важными фичами?
ИМХО Важные фичи — которые помогают приложения делать. Меньше кода писать и меньше думать для достижения результата.
ARK>>>гораздо более мощные шаблоны — это все _гораздо_ круче G>>Это мощность для писателей библиотек, но не для программиста приложений. ARK>Про программистов приложений вроде тоже речи не было.
Любой язык в первую очередь нужен для разработки приложений.
Re[2]: Где срачь про то, как C# порвал C++ (и все остальные языки)?
Здравствуйте, Ведмедь, Вы писали:
В>Здравствуйте, gandjustas, Вы писали:
G>>Я почти год не писал код на C# и внезапно решил освежить знания .NET и C#.
G>>Есть вообще хоть один язык, который превосходит C# не по отдельным фичам, а по совокупности?
G>>ЗЫ. Про кроссплатформенность не надо, C# гораздо более кроссплатформенный, чем многие другие языки.
В>Не хватает хвостовой рекурсии (или я пропустил ее появление?)
Вообще в CLR хвостовая рекусрия всегда была. Некоторые компиляторы C# даже использовали, но текущая версия, насколько я знаю, таким не занимается.
Re[3]: Где срачь про то, как C# порвал C++ (и все остальные языки)?
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, Ведмедь, Вы писали:
В>>Не хватает хвостовой рекурсии (или я пропустил ее появление?) G>При наличии циклов не сильно нужна.
Понятно, что можно переделать на циклы, но рекурсия во многих случаях упрощает код и его понимание.
Почти весь список можно заменить(linq, патерн матчинг т.д.), но менее удобно и наглядно
Да пребудет с тобой Великий Джа
Re[5]: Где срачь про то, как C# порвал C++ (и все остальные языки)?
Здравствуйте, gandjustas, Вы писали:
G>>>Кроссплатформенность в .NET уже давно есть, C# гораздо более кроссплатформенный язык, чем C++
S>>Да, безусловно, если под кросплатформенностью понимать окноплатформу плюс тепличные условия (с ограничениями в коде) на остальных. G>Ты наверное не в курсе:
Пока еще не встречал софта на дотнете под линухом. Ну, кроме жутко тормозящего KeePass (который только стартует секунд 30 на моём i7 с 16Г и ссд). Где же софт, где? В энтерпрайзе? Ну, в энтерпрайзе можно и на брейнфаке, там можно любые условия (в том числе и тепличные) в договоре написать, лишь бы заказчик согласился и платил.