Python занимает особое место в моем сердце. Все просто: я писал на нем первые успешные программы и в результате научился намного большему, чем во времена своего профессионального обучения. 

Но с недавних пор я перешел исключительно на C# и объясню почему. 

C#: упрощенная установка

Я начал программировать на Python прежде всего потому, что на создание простейшего консольного приложения уходило много времени, тогда как скрипт на Python можно было написать буквально за 5 минут. Кроме того, приходилось платить даже за использование Visual Studio, да и во всем остальном проблемы громоздились одна на другую. 

Сейчас ситуация кардинально изменилась. Например, не прошло и 10 минут, как я скачал и установил Visual Studio на компьютер для 3D-рендеринга и приступил к работе. 

Теперь можно спокойно скачивать файлы .dll, искать информацию на форумах  —  и все это бесплатно. Работается легко, быстро и позитивно  —  кому это не понравится! 

C#: наличие мощного инструмента LinQ

Для тех, кто не знает, что такое LinQ, опишу в нескольких словах. Это  —  инструмент, который экономит тысячи строк вложенных циклов ForEach.

Инструкции select для объектов списка пишутся так:

string BlaBla = ListA.Where(element => element.Contains("Bla"));

Вы можете написать несколько строк для сравнения одного или двух списков, проверить каждый элемент и связать все это в цепочки, избавляясь от спагетти-кода. 

В Python тоже есть похожий механизм, но у него странный и перегруженный синтаксис: приходится постоянно пользоваться шпаргалками, чтобы понять принцип написания такого кода. В C# вы пишите одну строку за минуту и переходите к следующим сложным задачам.

C#: превосходство ReSharper над инструментами Python от JetBrain

Расширение ReSharper установлено почти у всех профессиональных разработчиков C#. Оно значительно повышает продуктивность рабочих процессов. Из личного опыта: я еще не установил его на свой компьютер для рендеринга, в связи с чем чувствуется колоссальная разница. Работа замедлилась в разы. 

ReSharper выступает в роли личного помощника, который неустанно напоминает о вновь допущенной глупой ошибке, после чего рекомендует эффективный и оптимальный способ ее исправления одним нажатием кнопки. 

PyCharm, аналогичный инструмент для Python, уступает ReSharper. Бесспорно, PyCharm обладает отличными возможностями, но при непосредственном сравнении с ReSharper выглядит как дешевая подделка оригинала. 

C#: беспроблемная компиляция и совместное использование исполняемых файлов

Казалось бы, самый простой этап разработки  —  поделиться кодом с другими пользователями. Но нет! Когда-то с этим у меня были большие проблемы. 

Прежде всего, компиляция в .exe подразумевала установку совершенно нового сложного инструмента Python. В итоге я не мог поделиться файлами из-за проблем с подписями. Как Windows, так и Google Drive характеризовали их как вирусные файлы. А это совсем не то, чем хотелось бы поделиться с конечными пользователями. 

В C# об этом даже не приходится думать: после сборки программного решения сразу появляется соответствующий исполняемый файл .exe.

C#: непринужденная работа с классами

Как бы мне не нравилась простота Python, нельзя не отметить один недостаток этого стиля программирования: все в одном файле, почти никаких классов и функций, процесс медленный, как бы с запозданием. 

В C# вы начинаете с классов и заканчиваете ими же, а путь между ними вымощен функциями, методами и параметрами. 

C#: удобный рефакторинг

Как только вы устанавливаете ReSharper, то погружаетесь в новый мир рефакторинга буквально за пару нажатий кнопок.

В целом в C# отлично налажен рабочий процесс для рефакторинга. Он перемещает объявления пространств имен, переименовывает файлы и извлекает сложные функциональности в простые и понятные методы. Эта процедура с извлечением метода  —  просто волшебство, особенно принцип, по которому вводятся контекстно-зависимые параметры и все остальное.  

C#: фиксированные типы переменных

Я люблю Python и его причудливые способы выполнения определенных действий. Но никогда не пойму стратегическое решение делать “переменные переменными”.

Как только вы начинаете работать с несколькими классами, появляются проблемы с порядком параметров, присвоением строк целочисленным переменным или, что еще хуже, присвоением целых чисел строковым переменным, которые даже не вызывают ошибки. 

C#: дружелюбная экосистема .Net

Опять же, в старые добрые времена Python поражал одной потрясающей особенностью  —  люди с радостью делились кодом. Тут бывало, что коллеги по работе, сидящие за соседними столами, не хотели делиться написанным кодом. Здесь же целое сообщество программистов создавало сложный код, а затем часами дорабатывало его, делая удобным и доступным для общественности. 

В настоящее время в обоих языках ведется большая работа по созданию ПО с открытым исходным кодом. В распоряжении программистов доступные и полезные активы (англ. assets) и менеджеры пакетов. Зачастую можно бесплатно использовать код для проектов, которые вы не то, что в указанный срок, а за миллион лет не написали бы сами.  

Вывод: C# стал бесплатным и удобным инструментом

Я до сих пор рад, что освоил на работе C# до того, как открыл для себя Python. Будь иначе, я бы не стал заморачиваться изучением .Net, поскольку со стороны он кажется необоснованно сложным. 

Но стоит научиться использовать этот строго соблюдаемый, разумный и серьезный подход, как работать становится намного легче. Программирование на C# экономит время, позволяет создавать более качественные конечные продукты для личных и профессиональных целей. 

Читайте также:

Читайте нас в TelegramVK и Дзен


Перевод статьи keypressingmonkey: Why I Stopped Using Python in Favor of C#

Предыдущая статьяСоздание общей библиотеки Linux
Следующая статьяФайл package-lock.json: полное руководство