2010-03-20 37 views
8

Me gusta Python sobre todo por la gran portabilidad y la facilidad de codificación, pero me preguntaba, ¿cuáles son algunas de las ventajas que C# tiene sobre Python?Cuáles son las ventajas de C# sobre Python

La razón por la que pregunto es que uno de mis amigos tiene un servidor privado para un juego en línea (UO), y me ofreció convertirlo si quisiera, pero el software para el servidor está escrito en C#. Me encantaría hacer esto, pero realmente no tengo tiempo para hacer varios idiomas, y estaba buscando algunas razones más para justificar tomar C# sobre Python para mí.

que estoy haciendo esto todo autodidacta como un hobby, por cierto

+2

Dependiendo de qué tipo de desarrollo que quiere hacer de este juego, es posible que pueda utilizar IronPython, una implementación de Python para el CLR .NET - de esa manera se podría aprovechar sus habilidades lingüísticas existentes mientras sigue ejecutando su código en el entorno basado en .NET de su amigo. Obviamente, esto solo funcionaría si estuviera, por ejemplo, escribiendo scripts o algo así, en lugar de trabajar en la base de código C# existente. (Y su amigo necesitaría escribir un poco de plomería para llamar a los scripts de IPy, pero eso es bastante trivial.) – itowlson

+0

También existe el lenguaje de Python Boo para.NET – Steve314

Respuesta

9

Existen muchas diferencias, ventajas y desventajas. Supongo que las principales ventajas serían las siguientes:

  • Excelente integración de Windows, incluido el acceso a todas las funciones de la GUI estándar y otras bibliotecas.
  • compilación JIT, lo que resulta en un mejor rendimiento que Python, en algunas o la mayoría de las circunstancias. Como se ha señalado, esto ahora también es posible en Python.
  • En Windows, el soporte IDE es posiblemente mejor para C#. Visual Studio es un entorno de desarrollo avanzado y bien establecido, y las ediciones "Express" son gratuitas para uso personal . En un entorno que no es de Windows, probablemente sea un empate entre diferentes editores.

El resto depende básicamente de las preferencias personales (estáticamente estático frente a dinámicamente, sintaxis tipo C o no, etc.).

+3

Estoy bastante seguro de que las ediciones Express de Visual Studio 2008 son gratuitas para uso comercial, si todavía están disponibles. – Steve314

+0

@ Steve314 De hecho. –

+1

No es que sea pro python sobre C# (me gustan ambas cosas diferentes pero generalmente prefiero C#) pero me gustaría señalar que hay varias máquinas virtuales python que hacen compilación JIT, y hay planes para fusionar Unladen Swallow (uno muy popular ofrecido por Google) en la base de código python predeterminada. – Randolpho

11

Muchos de nosotros realmente like working with strongly/statically-typed languages. Esa es una gran allí.

+0

+1 Aparte de la sintaxis, esta es probablemente la diferencia más importante entre C# y Python, y una que cuento con una ventaja. C# es (principalmente; .NET 4 cosas) un lenguaje estáticamente tipado. Python es un lenguaje de tiempo de ejecución. – Randolpho

+1

+1, esta es una gran pregunta, me llevó mucho tiempo aprender esta lección y ahora canto, lo elogio cada vez que puedo. – Mark

+1

A muchos de nosotros nos gusta trabajar con lenguajes fuertemente, * dinámicamente *. Esa es una gran allí. :) – EOL

1

JITer, y el hecho de que puede producir un código más ajustado debido a que admite el tipado estático. El JITer se puede solucionar utilizando una de las implementaciones que no son CPython, o bajando a i386 y utilizando psyco, pero el tipado estático no se puede trabajar de manera tan trivial (ni tampoco creo que deba ser así).

0

He encontrado que es útil trabajar con diferentes idiomas, ya que cada uno tiene sus puntos fuertes. Python es extremadamente poderoso, pero depende en gran medida de las buenas convenciones y prácticas de codificación para mantener el código mantenible. En particular, no impone el tipo de seguridad o aislamiento, lo que significa que es fácil de abusar. C# es un lenguaje orientado a objetos moderno, con un tipado fuerte y otras características para ayudar a reforzar el aislamiento y la encapsulación. No es tan tremendamente flexible, pero también descubrí que los programas mayores de C# son mucho más fáciles de mantener (especialmente cuando los heredas de otros desarrolladores).

+5

Python está fuertemente tipado también. No está tipado estáticamente. –

+0

Lo es, pero la noción de 'tipo' es mucho más mutable, ya que los campos aparecen por uso en lugar de por definición. En este sentido, Python está fuertemente tipado, pero los tipos en sí están sujetos a cambios. Esto puede ser muy poderoso, pero también existen ventajas al trabajar dentro de un lenguaje con restricciones bien pensadas. –

0

Bueno, la facilidad de codificación es discutible. Encuentro que C# es más fácil de codificar cuando se tiene en cuenta la ayuda que se obtiene de los IDE (por ejemplo, el desarrollador web visual gratuito).

Por lo tanto, la portabilidad es un problema menor si se tiene en cuenta el factor Mono. El rendimiento puede ser mejor en algunos escenarios. Encuentro que la documentación en línea es generalmente mejor en .NET.

¿Has considerado IronPython? Si están dispuestos a usar una de las distribuciones .Net que tienen el DLR (la mejor apuesta es 4.0, pero algunas de las betas DLR están bien), entonces pueden escribir el código C# y el código Python y tenerlos Trabajar juntos sin dificultades fuera de las convenciones de nombres es un poco diferente.

13
  1. Visual Studio - el mejor IDE que existe.

  2. De los lenguajes tipados estáticamente en circulación, C# es muy productivo.

+2

He estado usando pytools para escribir Python usando Visual Studio. http://pytools.codeplex.com/ –

0

C# puede acceder directamente a los punteros a través de "código no administrado", que puede darle una ventaja de rendimiento en algunas situaciones.

+6

Lo mismo puede hacer Python a través de enlaces C. – Paul

+0

También encuentro que los tipos de Python están a la par con .NET interop – Mark

3
  • C# es soportado por Microsoft ;) (comentarios) que esperan
  • C# es typesafe que viene con sus ventajas.
  • Nada es mejor cuando está desarrollando aplicaciones de Windows.
  • Su sintaxis también está muy bien diseñada. El código se ve bastante bien.
  • Vale la pena aprenderlo porque se escribe mucho código y se escribe en él.
  • Se siente tan bien cuando codifica en C# en Visual Studio. Todavía estoy buscando un IDE tan bueno para Python.
  • con C# se puede explorar un montón de cosas interesantes .NET, WPF, WCF, XNA, ASP.NET, Blog de Jon Skeet ... etc.
+1

+1 por mencionar a Jon Skeet con la genialidad de C# –

+1

Me resulta imposible escribir estos 2 caracteres 'C#' sin escribir estos 8 'Jon Skeet'. –

0

Si prefiere Python, pero necesita escribir código para .Net, además de IronPython también hay Boo, que es un lenguaje .Net fuertemente inspirado en Python (incluidos los tipos estáticos). Es posible que desee intentarlo.

0

Si no está interesado en utilizar .NET Framework, puede utilizar python y pyQt o Tkinter, ya que Python ahora tiene un soporte IDE para Visual Studio llamado Python Tools para Visual Studio (PTVS) que le proporciona solo sugerencias de sintaxis como la forma en que obtienes VB y C# en Visual Studio. Pero si necesita usar .NET también, use Iron Python y luego Python Tools para Visual Studio y en el estudio visual elija el compilador como Iron Python. Visual Studio es compatible con las versiones de 2013 y 2012. Yo diría que es el mejor IDE para Python y lo más es que está siendo apoyado por MSFT demasiado

Compruebe el enlace aquí https://pytools.codeplex.com/

NOTA: Puede utilizar PTVs, ya sea con la versión 2.7 o 3.0 versión. Uso la versión 2.7 porque estoy acostumbrado, pero para los principiantes sugeriría usar 3.0 ya que tiene muchas ventajas sobre la versión 2.7. PERO NO DEBA INSTALAR AMBOS EN EL MISMO SISTEMA. También instale Visual Studio Shell Isolated y luego Integrated antes de instalar PTVS. También asegúrese de que su versión de Python coincida con la versión de Bit del sistema operativo.

:)

Cuestiones relacionadas