sistemas programacion principales para multiplataforma mejor lenguajes lenguaje escritorio elegir datos como aplicaciones administrativos design project-planning

design - programacion - ¿Cómo seleccionar un lenguaje de programación para un proyecto?



mejor lenguaje de programacion para base de datos (12)

Además, es importante la plataforma en la que está desarrollando y la plataforma en la que está desarrollando. Si se trata de un proyecto personal de código abierto, utilice la última tecnología que pueda encontrar para que pueda divertirse mientras aprende algo nuevo que sabe que no va a utilizar en su lugar de trabajo a corto plazo. Por ejemplo, hice la misma aplicación cliente para KDE y GNOME, para la primera vez que usé Python, y para la segunda C # incluso cuando mi trabajo diario es en una tienda Java.

¿Alguien puede decir las razones para elegir un lenguaje de programación particular sobre otros para un proyecto? Quiero decir, ¿este pensamiento cruza las mentes en las fases de diseño de un proyecto, o todo esto es simplemente teórico, y en realidad las personas usan los idiomas con los que están familiarizados?


Algunos aspectos a tener en cuenta:

  • Productividad del lenguaje (incluyendo herramientas - IDE, depurador, etc.)
  • Empleable conjunto de personas que tienen esa habilidad lingüística particular
  • "popularidad" del idioma
  • Personas en su organización que tienen las habilidades de lenguaje
  • dificultad para aprender el idioma
  • portabilidad del idioma / soporte de la plataforma
  • aplicabilidad al dominio del problema (lo más probable es que el controlador de dispositivo IE y python no sean una buena idea)

Hay otros.

En algunos lugares, he visto mandatos horribles sobre la elección de idiomas por parte de gerentes que no entendían las nuevas lenguas como C ++, por lo que solo permitían C. O hay gerentes que creen en todo el bombo y presionan y eligen, por ejemplo, Ruby, donde no tiene negocios.

En la mayoría de los casos, se trata de uno con el que su organización tiene competencia y es principalmente adecuado para el doamin.

Si desea incorporar un nuevo idioma para su organización, impleméntelo con proyectos de prueba / pequeños / de prueba.


Como si las respuestas ya proporcionadas no demostraran qué problema tan complicado es, tenga en cuenta que un proyecto no necesita estar restringido a un solo idioma.

  • Puede optar por implementar el proyecto en un lenguaje de scripting, luego crear perfiles y crear implementaciones rápidas de las partes críticas para el rendimiento en un lenguaje compilado de nivel inferior
  • Puede escribir un motor central de alto rendimiento en un lenguaje de bajo nivel, incorporar un motor de script y escribir el resto en el lenguaje de script incrustado (muchos videojuegos lo hacen)
  • Puede ir a SOA, en cuyo caso puede elegir un idioma diferente para cada servicio si así lo desea
  • Puede ser cliente-servidor, en cuyo caso el cliente y el servidor se pueden escribir en diferentes idiomas. Caso común: aplicaciones web con Javascript.

Al elegir idiomas para este tipo de escenario, debe pensar en el "pegamento" que permite que estos idiomas interactúen.

  • Python y ciertas implementaciones de Scheme son fuertes en embedability
  • Perl tiene herramientas para escribir módulos en C
  • Java tiene JNI para invocar código nativo compilado
  • JRuby te permite usar la sintaxis de Ruby para conducir programas Java
  • ... y mucho más

Depende de una serie de factores.

Si está en un equipo y está programando un proyecto en la empresa, probablemente elija el idioma con el que el equipo esté más familiarizado.

Si está desarrollando un proyecto para un cliente, y el cliente ha especificado el idioma porque le estará entregando el código fuente, usará ese idioma.

Si intenta aprender un nuevo idioma, usará ese idioma.

Si eres un aficionado con un idioma favorito, lo usarás.

O cualquier cantidad de otras razones.


Dependiendo de su entorno, existen varios factores:

  • ¿La organización tiene un mandato para qué idioma (s) se debe (n) usar?

  • ¿Qué idiomas sabe el equipo?

  • ¿Cuáles son los objetivos del proyecto? Exploración de tecnología? ¿Prueba de concepto? ¿Ampliando las habilidades técnicas? ¿Rápido desarrollo de un sistema de producción?

  • ¿Puede el cronograma del proyecto absorber la sobrecarga de próxima aparición si el idioma elegido no es bien conocido por todos los miembros del equipo?

  • ¿Cuáles son los recursos disponibles para aprender el idioma?

  • ¿Cuáles son los requisitos y opciones para el mantenimiento a largo plazo del proyecto? ¿Es un descarte? ¿Necesitará tener soporte de producción por diez años? ¿Quién en la organización tiene las habilidades para apoyarlo a largo plazo?

  • ¿Cuál es la recompensa por elegir un idioma candidato? ¿Ofrece alguna ventaja particular que compensa cualquier curva de aprendizaje? ¿Es "la mejor opción" para el entorno de despliegue? ¿Tiene un conjunto de bibliotecas disponibles adecuadas para la tarea?

Como se puede imaginar, esta lista se puede extender; la clave en mi humilde opinión es mirar a la organización y la visión a largo plazo para el proyecto, no solo los gustos del equipo de desarrollo actual.


En la mayoría de los casos, el lenguaje se repara no solo por la experiencia del desarrollador, sino también por el contexto de la aplicación: la mayoría de las aplicaciones necesitan interactuar con otras aplicaciones, lo que generalmente es más fácil de hacer en el mismo idioma. Estos dos puntos a menudo se fusionan y se afianzan, de modo que las empresas terminan siendo una "tienda de Microsoft" o una "tienda de Java".

En el caso relativamente raro de que inicie un nuevo proyecto sin dependencias y aún no haya contratado desarrolladores, los principales factores serían:

  • ¿Qué tan difícil / costoso es obtener suficientes programadores que sean competentes en un idioma, y ​​/ o cuánto tiempo toma llegar a ser competente en él?
  • ¿Qué bibliotecas o frameworks hay que puedan ahorrarle tiempo?
  • ¿Qué tan "poderoso" es el lenguaje?

Probablemente en ese orden.


No conozco a nadie que elija una tecnología en un vacío basado solo en el proyecto. Por lo general, sus opciones están limitadas por las tecnologías que usted conoce y debe preguntarse a sí mismo que el proyecto se puede lograr con esas tecnologías. Si tiene la posibilidad de elegir entre más de uno, elegirá el que mejor se adapte al proyecto. Por ejemplo, un proyecto puede ser más susceptible a una solución de secuencias de comandos para que pueda elegir Perl o PowerShell.

Si el proyecto no se puede lograr con su conjunto de tecnología actual, debe abandonarlo o aprender uno que funcione. Supongamos que necesita absolutamente el máximo rendimiento, por lo que puede elegir recoger C o C ++. O bien, puede tener soluciones existentes con las que necesite integrarse o utilizar un componente externo que sea más fácil de usar del lenguaje / marco que no conoce. En ambos casos, puede alejarte del idioma con el que te sientes más cómodo.

El caso difícil es cuando puedes hacer el proyecto con las herramientas que conoces, pero sería mucho más fácil hacerlo con otro conjunto de tecnología. Luego debe decidir si el dolor de aprender y mantener otra tecnología vale la pena en cuanto a facilidad de desarrollo con la nueva tecnología.


Si no sabe qué idioma elegir, busque a alguien con experiencia . No tiene sentido para mí (ni para nadie) describir algún algoritmo para elegir un idioma. Es más una combinación de presentimiento y experiencia que una decisión similar a un diagrama de flujo.


Sugiero una lista de lenguajes de programación que se ajustan a la ley y empiezo a escribir sus pros y sus contras.

Pero, por lo general, es el idioma con el que las personas se sienten más cómodas lo que hace el truco.


  • ¿Su proyecto requiere velocidad? Si es así, use un idioma de nivel inferior
  • ¿Desea facilidad de uso, un idioma con una biblioteca incorporada llena de todo lo que necesita?
  • ¿Quieres un proyecto de bajo presupuesto? Si es así, usa algo con lo que todos estén más familiarizados
  • ¿Estás trabajando en la plataforma independiente? De nuevo, si es así, use un lenguaje sin plataforma, ¿quizás Java?

Hay una gran variedad de factores que influyen en la decisión del uso del lenguaje.


  • El idioma con el que uno está familiarizado

  • El lenguaje que tiene todas (o la mayoría de) las bibliotecas necesarias libremente disponibles

  • Si el proyecto va a ser algo nuevo, aún no conocido, considere algún lenguaje que permita crear rápidamente prototipos (como Python). Entonces puedes hacer un borrador rápido y ver qué está pasando allí.
  • El lenguaje con IDE agradable y amigable (posiblemente también uno barato :-)).

En primer lugar, los componentes de la calidad del código están familiarizados con la tarea, con el idioma y con el conjunto de herramientas disponible aparte del idioma. Una vez que hay un conocimiento aceptable de un lenguaje de programación sano, ese es el elemento menos importante para la productividad (si necesita ser un asistente para hacer algo, eso sugiere que las bibliotecas o el lenguaje no están en su sano juicio).

Entonces, después de todo, uno elegiría según la ayuda que tenga para los tipos de tareas que uno necesita hacer: en general, cualquier entorno que requiera menos texto repetitivo será más productivo.

Finalmente, uno debe considerar las compensaciones entre usar un elemento nuevo y más deseable (lenguaje, herramienta o biblioteca) en comparación con los costos de hacerlo. Si el equipo realiza esa tarea todo el tiempo, es probable que la actualización sea valiosa; por el contrario, si el equipo está en un estado de caos, los costos pueden ser particularmente altos.