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# экономит время, позволяет создавать более качественные конечные продукты для личных и профессиональных целей.
Читайте также:
Читайте нас в Telegram, VK и Дзен
Перевод статьи keypressingmonkey: Why I Stopped Using Python in Favor of C#