¿Cómo eliges usar un lenguaje de programación específico? [cerrado]

8

Estaba teniendo una pequeña charla entre compañeros de equipo sobre cómo elegir un lenguaje de programación para usar en un proyecto, lo que me lleva a pensar que hay muchos criterios para elegir uno al comienzo de un proyecto, pero no hay un estándar real.

¿Elegiste un lenguaje de programación para la sintaxis y la semántica? ¿O eliges uno porque tiene el mejor apoyo para hacer ciertas cosas? ¿O porque tienes mejores bibliotecas? ¿O lo eliges para el paradigma?

¿Qué criterio utiliza para elegir un idioma cuando va a hacer un proyecto?

Jesús
fuente
1
En realidad me sorprendí pensando const Haskell :: [Constraint] -> ProgrammingLanguage.
dan_waterworth

Respuestas:

15

Mis criterios, en orden:

  1. ¿Es la herramienta adecuada para el trabajo? Por ejemplo, si está compilando un cliente de escritorio gráfico y en red, desearía usar un lenguaje que admitiera ese tipo de cosas fuera de la caja como Java o C #. OTOH, si está trabajando en un sistema en tiempo real, querría algo que le diera más previsibilidad y control de bajo nivel (como C).

  2. ¿Es apropiado para el medio ambiente? ¿Los compiladores / intérpretes están disponibles para la plataforma de destino?

  3. ¿Es algo con lo que ya estoy familiarizado o es un idioma que puedo aprender rápidamente? Por ejemplo, dado que la mayor parte de mi experiencia es con C y C ++, puedo elegir rápidamente lenguajes con una sintaxis similar (de nuevo, Java o C #) fácilmente. Algo que pertenece a una familia completamente diferente (como Haskell) me tomaría más tiempo para sentirme cómodo.

  4. ¿Es algo bien respaldado, con muchas referencias tanto en línea como en papel?

John Bode
fuente
1
Para agregar al # 1: ¿Dónde se implementa esta cosa? ¿Son importantes las actualizaciones automáticas? Si no está basado en la web ¿Necesita ser multiplataforma? Si está basado en la web, ¿qué arquitectura de servidor está utilizando? Voté tu respuesta porque creo que la implementación es la primera pregunta que debes hacer. Es como preguntar 'qué' antes de preguntar 'cómo', especialmente en un proyecto de cara al cliente.
MetaGuru
5

Supongo que entrarían muchos factores

  1. ¿El lenguaje se presta bien al tipo de aplicación que va a codificar?

  2. ¿Qué tan versado estás en el lenguaje de programación? (Se vuelve más importante a medida que se reducen los plazos)

  3. Funciones de biblioteca y lenguaje para un área determinada en su aplicación.

  4. ¿Es un idioma nuevo? ¿Ha sido probado y probado en el dominio actual?

  5. ¿Cuántas personas realmente codifican en él? Importante si necesita ayuda y hay una comunidad activa y grande

JohnP
fuente
1

Los criterios importantes para mí son:

  • Experiencia previa con el idioma.
  • herramienta / soporte de proveedores para el idioma.
  • soporte de biblioteca / ecosistema para la tarea y el lenguaje.

Yo diría que la sintaxis y el paradigma no son tan importantes.

No elegiría un nuevo idioma porque me gustaba la sintaxis o el paradigma pero tenía herramientas que funcionaban mal y una biblioteca mínima que no podía hacer la mayor parte de lo que necesitaba.

FrustratedWithFormsDesigner
fuente
1

Los idiomas son herramientas. Como con cualquier herramienta, debe tener en cuenta varias cosas:

1) ¿Tiene acceso a la herramienta?
2) ¿Sabes cómo usar la herramienta?
3) De las herramientas que cumplen con los criterios 1 y 2, ¿cuál es la mejor para su trabajo?

Si solo tiene una herramienta, la respuesta es simple. Si tiene una docena de herramientas, debe considerar el alojamiento, los costos de mantenimiento y otros problemas periféricos.

Satanicpuppy
fuente
1

Esto probablemente me va a desestimar, pero lo más importante para mí es la sintaxis. Con los programas dedicando mucho más tiempo y esfuerzo en mantenimiento que en la escritura original en estos días, la capacidad de recoger un fragmento de código desconocido (el de otra persona o el mío si lo escribí hace más de 6 meses) y determinar rápidamente el La intención de esto es estadísticamente una de las habilidades más importantes que puede tener un programador moderno. Un lenguaje limpio y fácil de leer ayuda enormemente con esto.

Después de eso, sin ningún orden en particular,

  • Buena biblioteca estándar
  • Buen IDE y herramientas
  • Comunidad fuerte, especialmente el ecosistema de código abierto
  • La capacidad de generar un producto final rápido y eficiente
Mason Wheeler
fuente
2
Entonces, según ese argumento, para ti, Ada es tu primera opción y PERL es una invención del Diablo, ¿estoy en lo cierto?
John R. Strohm
@ John: Mi idioma de elección es en realidad Delphi, que es un primo lejano de Ada. La sintaxis derivada de Pascal es agradable, pero Ada nunca desarrolló realmente una comunidad fuerte. En cuanto a Perl, dejaré que Alan Kay responda eso. "Perl es otro ejemplo de satisfacer una pequeña necesidad a corto plazo, y luego ser un problema real a largo plazo". Cuando se considera cómo se usa el software en todos los aspectos de la vida en estos días, no es difícil argumentar que el mundo sería un lugar mucho mejor si Perl y C nunca hubieran sido tomados en serio por la industria informática. Pero en retrospectiva 20/20, como dicen ...
Mason Wheeler
1

Solo uso los idiomas que conozco mejor:

  • Java para casi todo
  • SQL para la base de datos
  • Pequeños scripts de shell y scripts de línea de comandos
  • HTML, CSS y JavaScript para front-end web

No intento aprender un nuevo idioma cuando comienzo un nuevo proyecto serio. Yo uso lo que sé.


fuente
-1 i) ¿Cómo responde eso a la pregunta de OP? ii) Lo siento, con tantos DSL nuevos que se crean cada día, realmente no creo que sea un comportamiento del que estar orgulloso. iii) El Programador pragmático da un consejo muy popular (y útil): aprender un nuevo idioma cada año.
rsenna
1
@rsenna: jugando Devil's Avocado, creo que a veces podemos ser un poco machos sobre nuestra capacidad para aprender nuevos idiomas. Hay algo que decir para comenzar a trabajar en idiomas que conoce bien primero, identificar dónde están sus puntos débiles y luego buscar idiomas que realmente lo ayuden a resolverlos.
Paul D. Waite
1
+1 para cancelar ese -1, porque en casi todas las situaciones del mundo real harás un mejor trabajo con el idioma que mejor conoces que con un idioma diferente que se adapte mejor al problema, pero que tú Estás menos familiarizado o desconocido.
Carson63000
0

El costo para construir una aplicación es casi proporcional al tamaño del código, por lo que para minimizar el costo elijo el lenguaje más poderoso que se ha utilizado para resolver problemas similares. No me preocupa la cantidad de programadores que conocen el idioma, ya que no necesitaré muchos. También trato de evitar el bloqueo de proveedores, por lo que prefiero soluciones abiertas.

Kevin Cline
fuente