Тёмный

Сравнение C# с Python/C++/Java: почему C# мой любимый язык программирования? 

John Berden
Подписаться 230
Просмотров 1,4 тыс.
50% 1

Опубликовано:

 

31 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 8   
@nanoqsh
@nanoqsh 6 месяцев назад
В своё время ценил шарп по подобным причинам, изложенным в ролике. Это довольно хороший компромис, немного пожертвовать производительностью и памятью, но получить безопасный и удобный язык. Но потом я узнал про Rust. В нём не нужно жертвовать ни производительностью, ни безопасностью. Язык safe, но при этом позволяет делать всякие низкоуровневые штуки. Скажем, как и в Си ты сам решаешь, где размещать экземпляр объекта, на стеке или в куче (в C# насколько я знаю это свойство привязывается к типу). Можешь брать ссылку на объекты, где бы они ни были, хоть на стеке, хоть куче. Можешь как и в Си экономить аллокации, скажем, нужна тебе подстрока - тогда просто возьми ссылку на уже существующую без необходимости выделять новую строку в куче, а потом копировать её (в Си даже, порой, сделать это сложнее из за нул-терминации строк). И так далее, но при этом компилятор статически проверяет что всё safe. Более того, компилятор ещё и помогает писать многопоточный код, отслеживая, какие типы можно передавать в другие потоки, не будет ли где-то гонки данных из за многопоточной записи и так далее. И что наиболее важно для производительного языка, в расте как и в C++ есть понятие zero cost abstractions - то есть на расте можно довольно эффективно выстраивать оптимальные абстракции, которые при компиляции собираются в максимально эффективный ассемблер, словно ты руками написал одну длинную процедуру. Для примера возьмём лямбду из C# - чтобы её использовать мне нужна аллокация, мне нужно менеджить эту аллокацию сборщиком мусора, мне нужно делать виртуальные вызовы чтобы вычислить результат этой лямбды. Всё это требует какие-то дополнительные расходы памяти и перфоманса. В расте это не так. Лямбда (там это называется замыканиями/кложурами) размещает всё окружение по значению (то есть обычно в стеке) не требуя аллокации, никакой виртуальный вызов не требуется - раст статически знает тип лямбды. Сборщика мусора в расте и вовсе нет, так что ещё одно потенциальное снижение перфоманса отпадает. В итоге когда я использую разные абстракции, скажем итераторы и лямбды внутри, то в итоге компилятор генерирует мне такой же код, как если бы я написал его на обычных циклах, без какой-либо высокоуровневой магии. Что касается кроссплатформенности - она изумительна. Я собирал приложения под разные десктоп системы, под андроид и даже под браузер на wasm, также раст отлично подходит чтобы запускать его в embedded среде вообще без ОС. В общем, фактически, можно писать код под любую платформу. Но, конечно, ни один язык не обходится без недостатков. Я бы выделил два основных: Первое, язык довольно сложный, требует освоения довольно специфичных вещей. Скажем, лайфтаймы, система владения, понимание как работать с борроу чеккером и так далее. Основная сложность это переучиться писать код так, чтобы он лучше вписывался в систему владения и проверки заимствований. Например, по возможности избавляться от разделяемого и одновременно изменяемого состояния, что на самом деле плохо не только для раста, но и в целом сложнее отлаживать и при этом оно вредит производительности (скажем, такой код сложнее распараллелить). Второй недостаток: на данный момент не так много готовых библиотек, в целом язык ещё только развивается. Но потенциал у языка огромен
@Artem-k8y4v
@Artem-k8y4v 7 месяцев назад
Мужик,удачи тебе во всем!)
@_sergeevich5827
@_sergeevich5827 21 день назад
Питухон простой, до тех пор, пока на нем не пишешь, что-то сложнее хэллоу ворд. Питухон для небольших скриптов.
@ИванИванов-я8т2ц
@ИванИванов-я8т2ц 5 месяцев назад
Спасибо!
@alexreich8711
@alexreich8711 4 месяца назад
Наконец-то адекватное сравнение ЯП
@ZugDuk
@ZugDuk 3 месяца назад
Есть один фатальный недостаток, перечеркивающиц все - корпорация зла.
@dje848
@dje848 2 месяца назад
Корпорация зла в последние годы лояльная к опенсорсу, в том числе открыла .NET и C#, насколько я понимаю
Далее
Java vs C# (C Sharp). Что выбрать?
14:40
Просмотров 242 тыс.
ФИКСИМ БАГ
00:42
Просмотров 49 тыс.
A Monster is Chasing Me! 😭
00:19
Просмотров 1,2 млн
Avaz Oxun - E'lon, erga tegaman!!!
11:47
Просмотров 254 тыс.
C++ Разработчик учит Python
28:01
Просмотров 508 тыс.