websites used programming popular most languages examples programming-languages

programming-languages - examples - programming languages used in most popular websites



¿Ética de usar un lenguaje "marginal" para su trabajo? (30)

"Si tuviera que abandonar la empresa, básicamente no tendrían a nadie que mantener / agregar, a menos que me retengan como consultor".

¿Estás diciendo que nadie más puede aprender Python? Me parece difícil de creer.

La nueva tecnología a menudo se introduce en proyectos pequeños por personas conocedoras y se difunde a través de la organización porque los pequeños proyectos tuvieron éxito.

Utiliza Python. Tener éxito. Haga su caso basado en sus éxitos.

Solo quiero pedir algunas opiniones aquí. ¿Cómo se siente con respecto al uso de un lenguaje (y / o marco) que no se utiliza ampliamente en su ubicación para escribir software para una empresa? Por ejemplo, vivo en un área dominada por .NET, con el trabajo ocasional de PHP. Digamos que estoy aprendiendo Python y decido usarlo para escribir software para mi trabajo (soy un "Equipo de Uno", así que puedo usar todo lo que quiera).

Ahora su software está escrito en un lenguaje que prácticamente nadie en el área usa o sabe; si tuviera que abandonar la empresa, básicamente no tendrían a nadie que mantener / agregar, a menos que me consideren un consultor. Si bien eso es realmente bueno para mí, parece un poco "torcido" - concedido, así es como funciona el mundo de los negocios.

¿Cuáles son tus pensamientos?

Debo mencionar que esta es una empresa muy pequeña y yo soy la única persona de TI, por lo que tengo pleno derecho a elegir nuestra plataforma de desarrollo. No estoy usando específicamente Python, pero lo elegí como un ejemplo ya que mi área está basada casi totalmente en .NET; No obstante, ya no me importa .NET, y es por eso que no quiero considerar usarlo. Además, la compañía es ... ¿cómo diremos ... extremadamente frugal y no compraría los recursos necesarios para .NET (por ejemplo, licencias de servidor, licencias SQL, componentes de Visual Studio). Personalmente tengo una suscripción a MSDN, pero no puedo usar eso para ellos.

También FWIW hay personas en el área que usan el lenguaje que estoy considerando usar (Ruby on Rails), pero no hay tanta gente como los desarrolladores de .NET. No es como si estuviera usando algo que solo yo sé.


Con el lanzamiento de MVC Framework también he estado en una delema ética similar. Use WebForms o cambie a MVC Framework para todo. La respuesta es que debe hacer lo correcto y usar el estándar de la empresa. Si se desvía del estándar, crea muchos problemas para las personas.

Piensa cómo te sentirías si te vieran abandonado un proyecto en VB6 cuando todo lo que has estado haciendo durante años es .Net. Estas son las dos soluciones que he propuesto.

  1. Use sus lenguajes divertidos para consultar contratos que hace a un lado. Asegúrese de que el cliente sepa lo que está haciendo y si está de acuerdo en hacerlo.
  2. Intente convencer a su empresa actual para que migre a este excelente nuevo idioma con el que está trabajando.

Si sigues estas rutas aprenderás tu idioma y no enojarás a nadie en el proceso.


Creo que es una muy mala idea. Para ti, significa que no hay respaldo en caso de que quieras tener un día (o semana) libre. Para ellos, no hay nadie más si te vas o tomas un día libre. Es una estratagema bien conocida y, honestamente, podría ser una razón para no mantenerte cerca.

Sin embargo, esta también podría ser una oportunidad para introducir Python en el entorno. Podría enseñarles a otros sobre esto y explicarle a la gerencia mientras es un buen tercer idioma para tenerlo a disposición del grupo.


Creo que usar Python sería lo correcto si cumpliera con los requisitos de los clientes y les ahorraría dinero con la alternativa. Si no hay una gran variedad de caracteres para trabajar en la aplicación en el futuro es irrelevante, a menos que hayan especificado esto como un requisito no funcional.

Como de costumbre, usar la mejor herramienta para el trabajo a mano le servirá bien.


De hecho, es un poco torcido SI lo usa solo para ese propósito.

Sin embargo, si lo usa porque es la mejor solución, está limpio.

Además, pueden contratar a alguien que conozca Python.

Mi ética laboral no me permite hacer algo como esto solo para mantenerme en el negocio.


Depende. Hice algo de lo que normalmente sería solo un script bash, en lugar de Java en un solo lugar. ¿Por qué? Porque todos son programadores de Java y con frecuencia tienen internos / cooperativas que pueden o no saber nada más (y pueden incluso ser geniales con Java).

Sin embargo, otros lugares tienden a tener programadores más experimentados y espero que puedan descifrar otro idioma sin demasiado esfuerzo. Entonces, iría con lo que es "lo mejor" para el proyecto.


Estoy de acuerdo con lo que mquander dice más arriba, pero también es posible que deba estar preparado para justificar por qué desea utilizar este otro idioma para su gerente de desarrollo. Si él / ella acepta, tal vez el lenguaje podría ser adoptado más ampliamente dentro de la empresa.


Existe una gran diferencia entre el código ''prototipo'' o ''one-shot'' y el código de producción. Para prototipos, uso lo que sea que funcione más rápido, pero tengo muy claro su estado. El código de producción está escrito en uno de los entornos aprobados y compatibles.


La ética es usar la mejor herramienta para el trabajo. Si hay una herramienta que le toma solo el 20% del tiempo para codificar frente a otras opciones, y luego de no realizar mantenimiento y volver a factorizar fácilmente, tiene la obligación de elegir esa herramienta, suponiendo que sea extensible según lo necesite en el negocio.

Si hace un buen trabajo, contratar gente futura y entrenarlos en términos de CÓMO su negocio hace negocios debería ser la práctica de cualquier negocio en crecimiento. Podrán aprender el código si son la persona adecuada para el negocio.

En su caso, no estoy seguro de si desea usar Python, a menos que tenga soporte .NET nativo para permitir que su mundo .NET pueda interactuar con él.


Mi opinión personal es que debe intentar, siempre que sea posible, respetar las prácticas de trabajo de donde sea que esté, ya sea el estilo de sangría, la convención de nomenclatura, el procedimiento de prueba o el lenguaje de programación.

Si tiene la firme convicción de que un idioma diferente sería más adecuado para una determinada tarea, haga presión para que se acepte (con la capacitación necesaria de otros).

Dejar intencionalmente una aplicación que nadie más puede mantener es una conducta profesional muy mala, IMO.


Muchas respuestas han tocado esto, pero esta es mi opinión basada en el soporte de aplicaciones de producción.

Mi compañía tuvo una fase de inicio en la que los estafadores de códigos crearon soluciones en cualquier preferencia personal o sabor de la semana. Malo para facilidad de mantenimiento y compatibilidad.

Hacer un cambio está bien, sin embargo, siempre y cuando sea consistente. Si Python va a allanar el camino hacia el futuro, entonces ve por ello. No olvide que el código heredado .NET y PHP aún necesita ser admitido hasta el final de su vida útil. Construir un montón de plataformas y marcos creará más dificultades para usted en el trabajo y la empresa cuando ya no esté.


Muchas respuestas parecen ser inadecuadas para la pregunta. No estamos hablando de usar un lenguaje no aprobado en un entorno con estándares existentes. Estamos hablando de una situación en la que el póster es todo el departamento de TI y desarrollo de su empresa.

Sin duda, es importante tener en cuenta la disponibilidad de talento, pero Ruby no es un lenguaje marginal en estos días. En un entorno donde solo hay un desarrollador, la productividad también es una consideración muy importante. Ser capaz de construir y mantener el software de forma rápida y fácil sin un equipo grande requiere herramientas con características diferentes a las que un gran equipo podría requerir.

Creo que lo más importante es si usar Ruby o (algo más) es intentar elegir algo tan general como sea práctico y usarlo para todo a menos que haya una razón realmente buena para usar algo más. Si vas con Ruby, te quedas con Ruby para tus scripts de utilidad, trabajos cron y esa pequeña aplicación GUI, el jefe quería enviar un SMS al interno automáticamente cuando se toma más de cinco minutos para traerle su café.


Otros carteles han aportado algunos puntos positivos, pero este es uno que no he visto: Comunique la situación a la gerencia y déjelos decidir. En otras palabras, hable con su jefe y dígale que actualmente hay más desarrolladores .NET en su área, de modo que si un autobús lo golpea mañana sería más fácil encontrar a otra persona para mantener su código; Sin embargo, hay herramientas que necesita para hacer su trabajo de manera más eficiente y que cuestan dinero (y dígales cuánto). Alternativamente, puede hacer esto en Python o RoR (o lo que sea) y usar herramientas gratuitas, pero por lo que sabe, actualmente no hay mucha gente en el área que conozca esos idiomas. He usado "actualmente" un par de veces aquí porque esto puede cambiar con el tiempo.

Antes de tener esta conversación, sería bueno ver si puede encontrar grupos de usuarios para la tecnología alternativa en su área y qué tan grandes son. También puede preguntar en listserves si hay personas que conocen las alternativas en su área.

Por supuesto, el jefe puede decirle que siga usando .NET sin ninguna herramienta, pero en ese caso es su decisión dispararse en el pie. (Y el tuyo para decidir si quieres encontrar un nuevo trabajo.)


Para su propio desarrollo personal, si su área está dominada por .net, ¿por qué no quiere ponerse al día con eso en lugar de hacerlo con Python?

Desde un punto de vista ético, no escribiría algo que no podría ser fácilmente mantenido por otra persona.


Piénselo en términos de beneficios comerciales que aporta a la empresa, ahora y en el mediano plazo.

Si puede entregar algo mucho más rápido utilizando una tecnología diferente, y aún logra los objetivos, yo lo haría, pero aún así permitiría que otras personas conozcan y respeten la decisión final de la compañía. Sin embargo, si es solo para ti, entonces probablemente sería un poco más cuidadoso.


Puede desarrollar .NET adecuadamente con herramientas gratuitas; el costo no es una buena razón para evitar esa plataforma. Ruby on Rails se está convirtiendo razonablemente en la corriente principal para crear sitios web de Internet basados ​​en datos. Ni siquiera nos has dicho si ese es el tipo de software que estás construyendo.

En realidad, no hay manera de que la información que usted ha proporcionado pueda brindarle una única respuesta correcta.

Si está preguntando si es ético hacer su trabajo de tal manera que la empresa dependa de usted, por supuesto, la respuesta es no. Si está preguntando si es ético desarrollarse en RoR, la respuesta es "no sabemos", pero mi opinión es que probablemente estaría bien si fuera la herramienta adecuada para el trabajo.

Sin embargo, no subestime la capacidad de otra persona para respaldar su trabajo o reemplazarlo: si realiza su trabajo razonablemente bien una vez que la solución está implementada, cualquier programador que valga la pena debería ser capaz de aprender la plataforma lo suficientemente bien como para mantenerla. He depurado, migrado y soportado algunas aplicaciones PHP, por ejemplo, sin apenas aprender lo primero sobre PHP. Estaría perdido construyendo una nueva aplicación de PHP desde cero y nunca lo intentaría, pero no hay problema en admitir uno. Creo que lo mismo podría decirse de los idiomas que mencionas también: tienen la masa crítica que significa que hay muchos libros y foros, etc. Por supuesto, si está mal escrito en cualquier idioma, puede ser difícil apoyarlo. independientemente de la habilidad de alguien en el idioma ...


Puede pensar que este enfoque es bueno para usted. Pero, de hecho, todo lo que hace es llevarte a un rincón. La mejor forma de obtener una promoción dentro de una organización es hacerse innecesario en su posición actual. Eso puede parecer una tontería, pero de hecho es cierto. Piénselo así, si para la empresa es esencial que continúe manteniendo el código Python que escribió para ellos, y no pueden recurrir a nadie para obtener esa habilidad, entonces continuarán pagando (tal vez un poco). sobre las tasas de mercado) para mantener ese código.

Sin embargo, si escribe ese código en .net donde hay un suministro abundante en su área, entonces a medida que la empresa se expande y el código que ha escrito resulta exitoso, podrá contratar personas para mantener ese código y podrá mudarse. a diseñar otros sistemas. O pasar a administrar un equipo de codificadores de .net, si así lo desea.

Incluso si quiere irse, lo mejor para su carrera será obtener la mejor referencia posible. Para hacer eso, escríbeles un código que sea fácil de mantener. Ayúdelos a contratar a alguien para que lo reemplace y lo mantenga. Estarán agradecidos y lo recomendarán como asesor de sus amigos.

Codifique algo esotérico - para lo cual hay poco apoyo en su área - y le dirán a sus amigos en el campo de golf "no, no contraten a ese tipo, él escribió este sistema para nosotros que hace el trabajo, pero nadie de lo contrario, podemos mantenerlo. ¡Estamos atrapados con él para siempre y ahora está demasiado ocupado como para cuidarnos adecuadamente! "

Haz lo que sea mejor para la empresa, no lo que podría interesarte más, o aparenta ser así. Ganarás en el largo plazo.


Recientemente, tuvimos una mala contratación en mi tienda y decidió de forma inesperada que usaría Perl en lugar de cualquier versión de .NET para hacer algunas cosas simples de informes (eso podría haber sido hecho tan fácilmente en .NET). Fue atroz. Sugeriría usar la plataforma como se especifica y borrar cualquier desviación con las personas que dirigen la articulación ...


Ruby on Rails ciertamente no es un lenguaje marginal . Si la compañía es demasiado barata como para obtener la licencia adecuada para las herramientas de Microsoft, entonces no tendría más remedio que encontrar una alternativa. Definitivamente RoR sería una opción razonable y si ayuda a avanzar en su carrera también, ¡ambas partes ganan a la vez!


Si sientes en tu corazón que estás actuando deshonestamente, entonces probablemente lo estés.

A nadie le gusta una persona deshonesta. Eso no puede ser bueno para tu reputación.

Haga su mejor esfuerzo para elegir en función de lo que es realmente mejor, no lo que satisface algunos motivos ocultos.


Solía ​​estar en la escuela "use la mejor herramienta para el trabajo", pero he cambiado de opinión. No es suficiente preguntar "cómo puedo hacer este trabajo más rápido". Si crees que eres el único que alguna vez tendrá que mirar algún código, hay muchas posibilidades de que te equivoques. El costo total de introducir un nuevo idioma en un entorno es mayor de lo que imagina al principio.

Si solo necesitas producir un resultado, no un programa, entonces puedes usar lo que quieras. Supongamos que necesita un informe o necesita enviar algunos archivos. Si el resultado es realmente lo único que importa, digamos que es algo que podría haber elegido hacer a mano, puede practicar usando cualquier idioma que desee.


Solía ​​pensar que siempre debes elegir el idioma correcto para el trabajo en el trabajo. Aunque estoy revirtiendo mi opinión.

El problema surge cuando otro chico elige un idioma que no quiere aprender. Me preocupa que pueda ser el tipo que elige el idioma que nadie más quiere aprender. El hecho de que piense que Erlang podría ser la opción correcta para algo no significa que todos los demás quieran aprender Erlang o respetar mi decisión de usar Erlang.


Tuve este mismo problema muy a menudo. Casualmente, fue con esos dos idiomas que mencionas: .NET me forzó, cuando preferí usar Python (entre otros). Podría ser lo opuesto, no juzgo.

Me abstuve de usar Python, por las razones ya mencionadas en otras respuestas. Hice lo que pensé que era mejor para la compañía. El uso de IronPython no hará que su código python sea más fácil de mantener para un programador de Python inexperto.

Sin embargo, dejé la empresa y ahora trabajo en algo más acorde con mis gustos. Estoy mucho más feliz En esta economía, es posible que no tenga esta opción ... pero pasará. Hacer lo correcto.

Aclamaciones.


Creo que usted es responsable de decidir el idioma que mejor se adapte al trabajo. Eso incluye una evaluación objetiva de los méritos del lenguaje y el marco, incluye su propia habilidad personal con el idioma (ya que usted es el que hace el trabajo) e incluye la capacidad de mantenimiento de los demás. Solo usted y su empresa pueden decidir qué importancia asignar a cada uno de ellos.


Cuando en Roma, haz como los romanos.

Puede que no seas tú el que mantenga este código a largo plazo y no todos quieran aprender un "lenguaje marginal" para realizar correcciones de errores o mejoras.

Migré algunas cosas de VBA a Perl para su procesamiento en un trabajo anterior y aumenté la eficiencia en varios órdenes de magnitud, pero al final nadie más estaba dispuesto a aprender Perl, así que me quedé con esa tarea más tiempo del que yo quería.


Has enturbiado las aguas con todos los vagabundeos en la espesura de las motivaciones personales. La respuesta a eso es que sus motivaciones personales son irrelevantes a menos y hasta que haya formulado el caso de negocios para las posibles decisiones. Si lo has hecho y la respuesta aún no está clara, entonces, seguro, elegir la respuesta que más te guste es una de las cosas buenas de estar en condiciones de tomar decisiones técnicas en primer lugar.

En cuanto a la pregunta real, en mi opinión, si la opción más apta técnicamente es también una que poca gente trabaja, una de dos cosas está sucediendo: a) Es una buena opción, y la cantidad de personas que trabajan con ella es va a explotar en los próximos 18-24 meses (por ejemplo, Django), o b) Hay algo mal con mi análisis. Las tecnologías pueden estar al margen porque las personas tardan en adoptarlas, pero generalmente no es por eso que se quedan al margen.

Si te encuentras pensando: "No puedo elegir la tecnología X, eso hará que sea más fácil para ellos reemplazarme". estás en la línea de trabajo incorrecta. En casi cualquier empresa que no esté fallando realmente, el técnico de TI que se hace fácil de reemplazar tiende a pasar a un trabajo más difícil, más interesante y más lucrativo.


Lo hice, fue Delphi en mi caso. Creo que Delphi se usaba a menudo, sin embargo, cuando estaba buscando un trabajo ... Vi 3 ofertas de trabajo delphi en toda mi vida. También vi más ofertas de java / j2ee / php que puedo recordar. Creo que es una mala idea, con el tiempo que desperdicié en aprender la programación avanzada del delphi podría mejorar con j2ee y comenzar en mejor compañía y quizás ganar más dinero ahora.

Si no pueden encontrar a alguien para mantener la aplicación, siempre lo harás y cuando abandones tendrán que volver a escribirla. Creo que lo de consultor no se usa a menudo.


Respecto a la pregunta tal como fue formulada, no veo nada ético al respecto, siempre que:

  1. Es un lenguaje libremente disponible. Aunque soy una especie de partidista de FOSS, ese no es el objetivo de este criterio. Debe estar disponible libremente (no necesariamente FOSS) para que no imponga costos a la empresa y para que otros tengan la oportunidad de aprenderlo si alguna vez necesita ser reemplazado (o si quieren competir con usted). para tu trabajo).
  2. Está cambiando de idioma por razones sólidas y no por crear un bloqueo de proveedor (o, si prefiere pensarlo como tal, "seguridad en el trabajo"). Dejando a un lado la ética, realmente no quieres tener un trabajo donde te odien, pero estás atrapado contigo porque eres el único que puede mantener el lío que has creado de todos modos.

En el caso particular que ha descrito, sugeriría que cambiar a RoR puede ser la elección más ética, ya que sería decididamente poco ético (por no decir ilegal) usar .NET si hay recursos requeridos que son solo pagados y su empleador es demasiado barato para comprar licencias adecuadas para ellos.


Tanta discusión para una situación tan clara ...

No depende de usted, depende de ellos. Si no son lo suficientemente técnicos como para hacer la llamada, como parece, debes hacerlo de buena fe . Cualquier cosa menos es deshonesto, y estoy bastante seguro de que no está en la descripción de tu trabajo;)


No aportaría un nuevo idioma / framework / whatever en el lugar a menos que entendieran que eso es lo que estaba haciendo, y que si me fuera / me despidieran / fuera atropellado por un autobús, tendrían que encontrar / entrenar a alguien para que trabaje con eso.

Tengo cierta experiencia en un contratista que tira cosas solo porque le dio la gana. En algunos casos, fueron la mejor herramienta para el trabajo (en otros casos no lo fueron), pero en todos los casos no fueron la mejor herramienta para el equipo que tenía que mantener el código. En mi caso, el contratista fue un imbécil serio que no se preocupó por nadie más y creo que intentaba hacer más difícil reemplazarlo.

En tu caso, habla con tus jefes. Si realmente no quieren gastar el dinero necesario en .NET framework tools / libs, cambiar a otra cosa puede ser lo correcto para ellos, a largo plazo.

Y, como alguien que ha dedicado su carrera a los proyectos intermedios que otros ya han comenzado, gracias por pensar antes de agregar una nueva herramienta a la mezcla.