2008-10-30 25 views
10

He estado tratando de justificar el uso de Python en mi trabajo. Usamos C# y ASP.NET para básicamente todo nuestro desarrollo. El 80% o más de nuestros proyectos son aplicaciones web. Parece natural que veamos algunos de los buenos lenguajes web dinámicos (Ruby, Python, etc.), y con cosas como IronRuby y IronPython, empecé a investigar seriamente.Necesito una muy buena razón para usar Python

I love Python. Es un lenguaje bello y expresivo. Es un placer codificar, seguro. La multitud de módulos y frameworks de python lo hacen muy atractivo. El problema es que no puedo pensar en ningún problema específico, ningún obstáculo específico que requiera un lenguaje como Python. ASP.NET nos proporciona RAD, nos brinda un marco completo y todas esas cosas buenas. Además, ya todos sabemos C# y tenemos muchos proyectos en C#, aprendiendo un nuevo idioma solo porque no funciona del todo.

¿Pueden ayudarme a pensar en algo para finalmente convencer a mi jefe de realmente aprender Python y comenzar a usarlo en proyectos?

Editar: Sé que ningún problema requiere un solo idioma, lo que quiero decir es que hay problemas específicos en los que los lenguajes dinámicos sobresalen en los idiomas estáticos.

Editar nuevamente: Permítanme mencionar que mi jefe me incitó a investigar esto. Ha reservado horas para investigar estos idiomas, encontrar uno bueno, aprenderlo y luego descubrir cómo podemos usarlo. Estoy en el último paso aquí, no necesito una conferencia sobre por qué debería considerar mi motivación para cambiar algo que hace mi empresa porque lo hacen por una razón.

+0

"Editar nuevamente: Permítanme mencionar que mi jefe me incitó a investigar esto". "No necesito una conferencia". Si no necesita una conferencia, proporcione TODOS los hechos por adelantado. Esta edición hace que tu pregunta esté fuera del objetivo. –

Respuesta

28

"¿Pueden ayudarme a pensar en algo para finalmente convencer a mi jefe de realmente aprender Python y empezar a usarlo en proyectos?"

Nope.

Nada tiene tanto éxito como el éxito. Utiliza Python. Tener éxito. Haz que la gente se ponga celosa.

Cuando se le preguntó por qué tiene éxito, puede hablar sobre Python. No antes.

Elija los proyectos sabiamente: cosas donde un lenguaje dinámico tiene ventajas significativas. Cosas donde los requisitos son no detallados. Cosas como transformaciones de datos, raspado de archivos de registro y reemplazos súper sofisticados para archivos BAT.

Utilice Python para comenzar a hacer algo útil mientras todos los demás están tratando de obtener suficiente información comercial y de dominio para iniciar un proyecto para desarrollar un diseño complicado de MVC.


Editar: Algunas historias de Python to the Rescue.

Y eso es sólo conmigo.


Editar: "el jefe me pidió que investigue", "descubra cómo podemos usarlo" cambia todo.

El "finalmente convencer a mi jefe para realmente aprender Python" es engañoso. No estás nadando río arriba. Ver How Do I Make the Business Case for Python para el problema de "convencer a mi jefe". La edición dice que has pasado esta fase.

Los idiomas dinámicos ofrecen flexibilidad. Explota eso. Mis dos conjuntos de ejemplos anteriores son dos áreas donde la flexibilidad es importante.

  • Los requisitos no están totalmente definidos. Con un lenguaje dinámico, puede comenzar. La reanudación no será un factor decisivo. Con Java (y C++ y C#) es reacio a hacer frente a los cambios de diseño devastadores porque es difícil romper todo y hacer que compile y funcione nuevamente. En Python, los cambios devastadores no son tan costosos.

  • El diseño está en constante cambio porque no puede elegir componentes. Puede escribir Envolturas y Fachadas muy fácilmente en Python. Es un lenguaje de scripting. Y, los módulos de Python se componen en grandes agregados de manera muy simple.

  • La codificación está cambiando porque los requisitos y el diseño siguen cambiando. Está escrito, no compilado. Usted acaba de hacer un cambio en el código y está listo y en funcionamiento. Las pruebas son más fáciles porque el ciclo de trabajo es más corto. No es code-compile-build-test es una prueba de código.

  • Las pruebas están cambiando porque los requisitos siguen cambiando. Lo mismo que arriba. El ciclo de trabajo es más corto y más rápido.

+0

Gracias, esta fue una gran publicación. Por alguna razón, nunca pude encontrar información sobre qué cosas hacían mejor los lenguajes dinámicos, si conoces algún blog o artículo que hable sobre las muchas cosas que los lenguajes dinámicos hacen mejor, ¡me encantaría tenerlos! – goldenratio

12

Casi no hay problema requiere un lenguaje de programación específico, simplemente no es así como funcionan las cosas.

La manera más fácil de obtener un nuevo idioma en un entorno como el suyo es comenzar un nuevo proyecto de trabajo en su propio tiempo en el nuevo idioma. Haga que haga algo que necesita hacer, y escríbalo en su propio tiempo. Úselo usted mismo, y otras personas probablemente lo notarán. Luego dicen "¿Puedes enviarme ese programa?" y boom, están usando tu nuevo idioma.

Si realmente quieres algo, probablemente escribiría un sitio en Django, simplemente porque su interfaz de administración hace volar a todos.

El punto principal a recordar es que si comienza a usar Python, esa es una cosa más que todos los demás tienen que aprender, y es otro punto importante que deberá estar en el currículum de cada posible empleado. Eso puede ser costoso, y a la administración no le gustará.

+0

¿Hay algún problema específico que sea tratado mejor, más fácil, etc. por Python? Sé que ningún problema requiere un idioma, eso no es lo que quise decir, solo quise decir cuáles son algunos "obstáculos" comunes o, lo que sea, que los lenguajes dinámicos pueden funcionar mejor que los lenguajes estáticos. – goldenratio

+0

Definitivamente hay cosas que son más fáciles de hacer en Python, la pregunta es "¿Es más fácil aprender un idioma completamente nuevo que simplemente implementarlo en lo que sabemos?" –

+0

También debo mencionar que en mi posición anterior implementé un sitio de Django y múltiples programas de python en un entorno .Net, y aunque fue genial para mí, y la compañía se benefició considerablemente, una vez que me fui, estaban en una especie de se unen, y si hubieran sabido lo que estaba haciendo cuando comencé ... –

3

Pueden ustedes ayudarme a pensar en algo para convencer a mi jefe, finalmente realmente aprender Python y empezar a utilizar que en los proyectos?

Lamentablemente, la respuesta es no. Como dijo Harley, no hay problema con que requiera un idioma específico. El enfoque que Harley sugirió también es bueno.Aprende sobre tu tiempo, construye una aplicación útil en tu tiempo, y tal vez, solo quizás, alguien en tu trabajo quiera usarla, gustarla, amarla y luego querer aprender más sobre ella.

Otro enfoque que podría tomar es obtener una mejor comprensión de por qué su empresa usa .Net (por lo tanto, Windows Server, y probablemente servidor SQL) para casi todo el desarrollo. Una vez que tenga una buena comprensión de por qué no están abiertos a otros idiomas, entonces usted tiene algo de poder de fuego para construir un caso de negocios para el "¿por qué no?".

¿Por qué pagar los costos de licencia cuando tiene herramientas que pueden lograr las mismas cosas? Existen alternativas gratuitas, como Python, que se ejecutan en servidores gratuitos.

¿Por qué no le da a su equipo la oportunidad de hacer crecer su cinturón de herramientas profesional? Esta es mi opinión, pero un buen desarrollador es un desarrollador que no teme aprender nuevas formas de hacer lo mismo que antes.

Pero, al final, no me gustaría tener sus esperanzas. En pocas palabras, cuesta dinero introducir un nuevo idioma/entorno en una tienda de TI. Ya sea software, capacitación o transferencia de empleados, existe una razón comercial detrás de la utilización de un solo idioma para una empresa y atenerse a ello.

Estoy en la situación exacta en la que se encuentra. Trabajo en una tienda .Net, y eso no va a cambiar pronto. Me paso, trabajando en mis propios proyectos en mi tiempo "libre". Lo disfruto, y hace un buen equilibrio.

Espero que esto ayude.

3

Da un paso atrás y mira tu enfoque. "Sé lo que quiero que sea la respuesta, pero no puedo encontrar ninguna evidencia que lo respalde".

A pesar de que Python es mi primer idioma de elección actual, ¡me temo que me encuentro del lado de su jefe! Lo siento.

Creo que debe tener en cuenta todas las opciones desde el punto de vista del mejor interés de su organización, y ver si no llega a una conclusión diferente sobre el mejor idioma.

Hay muchos factores en la elección del idioma, y ​​lo bonito que es es bastante menor. La disponibilidad del personal es clave. El costo del readiestramiento, la disponibilidad de las bibliotecas y las metaherramientas, el rendimiento, etc.

Una vez que haya considerado todos los diferentes factores (y no solo "¡Oooh! ¡Sería divertido!") Y realizó una evaluación equilibrada (en lugar de una respuesta predeterminada), es posible que su jefe esté más dispuesto a escuchar.

p.s. La sugerencia de usar Python para el código de trabajo en secreto, y dejar a la compañía con un terrible endeudamiento en un idioma para el que no están preparados, me parece muy poco profesional.

+0

Ah, bueno, debería mencionar que mi jefe me incitó a investigar esto, pero estoy de su parte, y necesito una razón para usarlo primero. No estoy intentando desesperadamente saber, realmente me gusta Python y sería bueno usarlo en el trabajo. Pero sí, él me preguntó al respecto y me hizo aprenderlo ... – goldenratio

6

El escabullirse de un idioma a menudo se realiza mediante la automatización de tediosas tareas manuales (especialmente lenguajes dinámicos/de scripting como Python/Ruby, etc.). Configúrelo para que sea algo así como implementar compilaciones o reorganizar las copias de seguridad, o lo que sea que se haga con Python.

A continuación, deslícese casualmente sobre lo fácil que era hacer, y trate de difundir parte del entusiasmo.

La aceptación y el conocimiento deben crecer lentamente a partir de eso, y antes de que te des cuenta, la administración está considerando seriamente Python para un nuevo proyecto.

2

El mejor apalancamiento que es probable que tenga es herramientas y bibliotecas; como otros han señalado, ningún idioma es requerido para resolver cualquier programa en particular. Así que vamos a ver cosas que usted puede aprovechar Al utilizar Python:

  • Google App Engine
  • SciPy
  • pywinauto
  • Django

Esos son la parte superior de la cabeza; encontrar lo que es aplicable a su equipo y su empresa se deja como un ejercicio para el encuestador :)

1

Bueno, here's a view de por qué los programadores de Python hacen mejores programadores de Java; los conceptos son muy parecidos a tu situación.

Básicamente, las personas que aprenden un idioma porque quieren demostrar que disfrutan de la programación, les gusta aprender cosas nuevas y es más probable que piensen de manera diferente.

... si una empresa elige para escribir su software en un lenguaje comparativamente esotérica, van a ser capaces de contratar a mejores programadores, porque que van a atraer sólo a los que se preocupaba suficiente para aprender eso. Y para los programadores la paradoja es aún más pronunciado: el idioma para aprender, si desea obtener un buen trabajo, es un lenguaje que la gente no aprende simplemente para conseguir un trabajo.

No solo eso, sino que Python aplica el código de "buena apariencia" y no tiene que hacer toda la rutina de código/compilación. Con IronPython, simplemente puede codificar en Python y usarlo tal cual; solo otra herramienta .NET.

1

El lenguaje casi nunca es la clave del éxito. Los buenos programadores pueden tener éxito en una variedad de idiomas, y encontrará proyectos exitosos en casi cualquier idioma. No encontrará tanto los fallos porque esos proyectos simplemente desaparecen y nunca se vuelve a saber de ellos. Si está buscando un nuevo idioma porque no tiene buenos programadores, incluso el mejor idioma del mundo no lo ayudará.

Y, no ha dicho nada sobre el tipo de trabajo que está haciendo. Python podría ser una buena opción, ya que cuenta con bibliotecas bien admitidas y ampliamente utilizadas que son fundamentales para usted. Por otro lado, C# podría tener un mejor soporte para las cosas que desea hacer. Una herramienta fuera del contexto no tiene ningún mérito intrínseco. Puede que te gusten los destornilladores, pero eso no te ayuda a remar en un bote.

Si quiere usar Python, o cualquier otro idioma, simplemente porque le gusta, sea honesto consigo mismo y con quienes le rodean. Parece que tomó la decisión de cambiar, no sabe por qué se está cambiando, y ahora necesita racionalizarlo con razones que no tienen nada que ver con su deseo de cambiar. Si tuviera una buena razón, no estaría preguntando aquí :)

Sin embargo, eso no es del todo malo. La programación es una empresa humana. Si los programadores (en cualquier nivel) adoran locamente un idioma en particular, no importa cuán estúpido sea el motivo, probablemente producirán más. Sin embargo, no es una solución tecnológica.

Buena suerte, :)

1

Python tiene un buen comienzo en el mundo Java como Jython para las pruebas unitarias. De hecho, muchas personas de Java comenzaron a usarlo primero de esa manera. Su naturaleza dinámica de scripting lo hace ideal para pruebas unitarias. Justo ayer deseaba poder usarlo o algo así para las pruebas unitarias que estaba escribiendo para un proyecto de VB.Net. Debo decir que no se trata tanto del lenguaje individual IronRuby o IronPython como del estilo de desarrollo que permiten. Puede escribir un lenguaje estático como el código en cualquiera de los dos, pero no obtiene los beneficios por completo hasta que pueda comenzar a pensar de forma dinámica. Una vez que comprenda esos conceptos, comenzará a cambiar lentamente la forma en que codifica y sus proyectos requerirán menos clases y menos código para implementar. Las pruebas, en particular las pruebas unitarias, se convertirán en una necesidad, ya que usted renuncia a la cálida manta conocida como compilador con controles de seguridad de tipo para otras eficiencias.

0

Estoy bastante seguro (100%) de que no necesita usar Python para MS Windows al menos.

En el caso de otras plataformas, puede usar cualquier idioma que desee.

Cuestiones relacionadas