2010-03-20 3 views
8

Мне нравится Python в основном для отличной переносимости и простоты кодирования, но мне было интересно, каковы некоторые из преимуществ, которые имеет C# над Python?Каковы преимущества C# над Python

Причина, по которой я спрашиваю, заключается в том, что один из моих друзей запускает частный сервер для онлайн-игры (UO), и он предложил сделать мне dev, если захочу, но программное обеспечение для сервера написано на C#. Я бы хотел это сделать, но на самом деле у меня нет времени, чтобы делать несколько языков, и я был сразу после нескольких причин, чтобы оправдать использование C# над Python для себя.

Я делаю это все-самоучку, как хобби, кстати

+2

В зависимости от того, что такого развития событий вы хотите сделать эту игру, вы можете быть в состоянии использовать IronPython, реализацию Python для .NET CLR - таким образом, вы могли бы использовать существующие языковые навыки при этом ваш код запускается в среде .NET вашего друга. Очевидно, что это сработало бы, только если бы вы, например, писали сценарии или что-то в этом роде, а не работали над существующей кодовой базой C#. (И вашему другу понадобится написать немного сантехники, чтобы вызывать сценарии IPy, но это довольно тривиально.) – itowlson

+0

Существует также Pooon-подобный язык Boo для.NET – Steve314

ответ

9

Существует множество различий, преимуществ и недостатков. Я полагаю, что основные преимущества будут в соответствии с принципами

  • Отличная интеграция с Windows, включая доступ ко всем стандартным функциям графического интерфейса и другим библиотекам.
  • JIT-компиляция, обеспечивающая лучшую производительность, чем Python, в некоторых или большинстве случаев. Как уже указывалось, теперь это возможно и в Python.
  • В Windows поддержка IDE, возможно, лучше для C#. Visual Studio - это хорошо зарекомендовавшая себя и развитая среда разработки, а «Экспресс» - бесплатные для личного пользования . В среде, отличной от Windows, это, вероятно, ничья между разными редакторами.

Остальное в основном зависит от личных предпочтений (статически типизировано по сравнению с динамическим, синтаксисом типа C или нет и т. Д.).

+3

Я уверен, что экспресс-выпуски Visual Studio 2008 бесплатны для коммерческого использования, если они все еще доступны. – Steve314

+0

@ Steve314 Действительно. –

+1

Не то, чтобы я работал над python над C# (мне нравятся как разные вещи, но обычно предпочитаю C#), но я хотел бы отметить, что существует несколько виртуальных машин python, которые делают компиляцию JIT, и есть планы объединить Unladen Ласточка (очень популярная, предлагаемая Google) в стандартную кодовую базу python. – Randolpho

11

Многих из нас действительно like working with strongly/statically-typed languages. Там большой.

+0

+1 Кроме синтаксиса, это, пожалуй, самое важное различие между C# и Python, и одно я считаю преимуществом. C# (в основном, .NET 4 вещи) - статически типизированный язык. Python - это язык, на котором запущен язык. – Randolpho

+1

+1, это большой, мне понадобилось много времени, чтобы выучить этот урок, и теперь я пою, это хвалит каждый шанс, который я получаю. – Mark

+1

Многим из нас очень нравится работать с сильно, * динамически * -типами. Там большой. :) – EOL

1

JITER, и тот факт, что он может создавать более жесткий код из-за его поддержки статического ввода. JITER можно обойти, используя одну из реализаций, отличных от CPython, или перейдя на i386 и используя psyco, но статическая типизация не может работать как тривиально (и я не верю, что она должна быть).

0

Я нашел полезным работать с разными языками, так как каждый из них имеет свои сильные стороны. Python чрезвычайно эффективен, но в значительной степени зависит от хороших правил и правил кодирования, чтобы поддерживать код в обслуживании. В частности, он не обеспечивает безопасность или изоляцию типа, что означает, что его легко злоупотреблять. C# - это современный объектно-ориентированный язык с сильной типизацией и другими функциями, которые помогают обеспечить изоляцию и инкапсуляцию. Это не так дико гибкое, но я также обнаружил, что программы больше C# гораздо легче поддерживать (особенно, если вы унаследовали их от других разработчиков.)

+5

Python также строго типизирован. Он не статически типизирован. –

+0

Это, но понятие «тип» гораздо более изменчиво, так как поля появляются по определению, а не по определению. В этом смысле Python строго типизирован, но сами типы могут быть изменены. Это может быть очень мощным, но есть также преимущества для работы на языке с хорошо продуманными ограничениями. –

0

Ну, легкость кодирования является дискуссионной. Я считаю, что C# проще кодировать, когда вы учитываете помощь, которую вы получаете от IDE (например, бесплатный Visual Web Developer).

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

Вы считаете IronPython? Если вы, ребята, захотите использовать один из .Net-дистрибутивов, в которых есть DLR (4.0 лучше всего там, но некоторые из бета-версий DLR в порядке), тогда вы можете написать код C# и код Python и иметь их работать вместе без каких-либо трудностей за пределами соглашений об именах, немного отличающихся друг от друга.

13
  1. Visual Studio - лучшая IDE.

  2. Из статически типизированных языков в обращении C# очень продуктивен.

+2

Я использую pytools для написания питона с помощью Visual Studio. http://pytools.codeplex.com/ –

0

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

+6

Так может python через привязки C. – Paul

+0

Я также нахожу, что типы Python находятся на одном уровне с .NET interop – Mark

3
  • C# поддерживается Microsoft;) (ожидающие комментарии)
  • C# является typesafe, которая приходит со своими преимуществами.
  • Ничего не лучше, если вы разрабатываете приложения для Windows.
  • Его синтаксис также очень хорошо разработан. Код выглядит неплохо.
  • Его стоит узнать, потому что в нем написано и написано много кода.
  • Это хорошо, когда вы вводите код C# в Visual Studio. Я все еще ищу такую ​​хорошую IDE для Python.
  • С # вы можете изучить множество интересных вещей, .NET, WPF, WCF, XNA, ASP.NET, Блог Джона Скита ... т.д.
+1

+1 для упоминания Джона Скита с удивительностью C# –

+1

Невозможно набрать эти 2 символа 'C#', не набрав эти 8 'Jon Skeet'. –

0

Если вы предпочитаете Python, но нужно написать код для .Net, помимо IronPython, также есть Boo, который является языком Python с высокой степенью Python (включая статические типы). Возможно, вы захотите попробовать.

0

Если вы не заинтересованы в использовании платформы .NET, вы можете использовать python и pyQt или Tkinter, поскольку теперь у Python есть поддержка IDE для Visual Studio под названием Python Tools для Visual Studio (PTVS), которая дает вам синтаксические подсказки просто как вы попадаете в VB и C# в visual Studio. Но если вам также нужно использовать .NET, используйте Iron Python, а затем Python Tools для Visual Studio и в visual studio выберите компилятор как Iron Python. Visual Studio поддерживается в версиях 2013 и 2012 годов. Я бы сказал, что это лучший IDE для питона и что больше оно поддерживается MSFT слишком

Проверьте ссылку здесь https://pytools.codeplex.com/

ПРИМЕЧАНИЕ: Вы можете использовать ptvs либо с версии 2.7 или 3.0 версия. Я использую версию 2.7, поскольку я привык к ней, но для начинающих я предлагаю использовать 3.0, поскольку у нее много преимуществ по сравнению с версией 2.7. НО ДОНОТ УСТАНАВЛИВАЕТ ИХ ИХ В ОДНОЙ СИСТЕМЕ. Также установите оболочку Visual Studio изолированную, а затем встроенную перед установкой PTVS. Также убедитесь, что ваша версия python соответствует версии бит операционной системы.

:)

Смежные вопросы