it-swarm-es.com

¿Debería molestarme en aprender sobre idiomas pequeños o especializados?

Si navega por preguntas de golf de código en StackExchange , notará una tonelada de lenguajes no estándar pero del mundo real (por ejemplo, no brain-f * ck) como F # , - Scala , R , J y Clojure . Al visitar sus sitios web, algunos de los idiomas parecen interesantes para resolver problemas en cualquier idioma que ya esté usando.

Sin embargo, hay codificación en el tiempo libre y codificación por dinero. Lo más cercano que tenemos a la verdad sobre quién usa un idioma es el Índice TIOBE , que no enumera ninguno de los idiomas anteriores en el top 10-15. Lo que me hace preguntarme si alguna vez los usaré.

¿Debería molestarme en aprender algunos de los pequeños idiomas especializados? No parece que esté ganando dinero, y algunos probablemente fracasarán de todos modos.

22
TheLQ

La hipótesis de Sapir-Whorf . Afirma, más o menos, que lo que puede pensar está limitado por lo que tiene el lenguaje para describir. La consecuencia de esto es que las personas multilingües pueden pensar de una manera que los hablantes de un solo idioma tal vez no puedan.

Muchas personas (incluido yo mismo) piensan que esto también se aplica a la programación. Aprender LISP, por ejemplo, le enseña una forma completamente nueva de pensar sobre los problemas que puede aplicar a C # o Java o Python. Cuantos más paradigmas de lenguaje haya aprendido, más herramientas habrá en tu caja de herramientas mental, independientemente del idioma que estés usando.

25
Fishtoaster

Aprendería cualquier idioma que me introdujera en conceptos y paradigmas que nunca antes había visto. Es por eso que aprendí haskell y el esquema: me introdujeron a la programación de funciones y la programación principalmente funcional, respectivamente. No me hubiera importado menos si el esquema y haskell se usaban ampliamente, aparte de cómo eso afectaría la documentación y los recursos disponibles.

Entonces, básicamente, si un lenguaje de nicho pequeño le presenta nuevos conceptos y paradigmas (especialmente aquellos que puede aplicar a otros lenguajes), ¡entonces aprenda!

Otras razones por las que puede querer aprender un idioma 'pequeño/nicho':

  • El lenguaje le permite resolver un (tipo de) problema en particular 'mejor' (más rápido, con una mejor solución, más portátil, etc.) que cualquier otro idioma

  • El lenguaje le permite resolver problemas tan bien como un lenguaje popular, pero tiene algunas características interesantes que le gustan (por ejemplo, clojure)

  • Quieres ayudar a desarrollar el idioma
24
Cam

Bueno, estoy usando Clojure (uno de los "lenguajes de nicho" que mencionas) y descubrí que ha sido una experiencia muy valiosa.

  • Me ha hecho mucho más productivo (en comparación con Java y C # que usé principalmente anteriormente). Como dirijo mi propio negocio, la productividad es igual a dinero :-) así que en ese sentido Clojure ya ha tenido éxito, al menos desde mi perspectiva.
  • He aprendido nuevas técnicas que me han convertido en un mejor desarrollador (especialmente en lo que respecta a la concurrencia, la programación funcional, la abstracción, la metaprogramación, etc.). Incluso si volviera a escribir Java, aún podría hacer un buen uso de este conocimiento
  • Ha sido realmente agradable aprender un nuevo idioma muy diferente a todo lo que he hecho antes. Si realmente disfrutas lo que haces, vale la pena por derecho propio.
  • Debido a que es un lenguaje JVM, no importa si el conjunto de bibliotecas es relativamente pequeño porque aún tiene acceso a todo el conjunto de bibliotecas en el ecosistema Java/JVM. Esta es una ventaja grande para los lenguajes que se ejecutan en la JVM (lo mismo se aplicaría a Scala)

Personalmente, prestaría atención limitada a cosas como TIOBE; en realidad, no dicen mucho más allá de lo que ha sido popular en el pasado. Quizás sea útil si quieres un trabajo manteniendo sistemas antiguos, menos si quieres aprender y ampliar tus horizontes.

7
mikera

La razón para estudiar un idioma de nicho rara vez es la expectativa de que lo usará directamente (por dinero o de otra manera). Por lo general, es para aprender algún aspecto o estilo nuevo de programación. Si lo hace, probablemente lo convertirá en un programador mejor (y sí, probablemente más valioso), incluso si nunca usa ese lenguaje para producir código de "producción".

4
Jerry Coffin

Hablando como desarrollador profesional en un lenguaje de nicho , es posible ganarse la vida. Sin embargo, hay ventajas y desventajas.

Cosas que son más difíciles:

  • Encontrar trabajo lleva más tiempo
  • Es más probable que los trabajos requieran que se mude
  • Recibirá poco respeto por parte de los programadores convencionales (y, por lo tanto, más resistencia).

Cosas que son más fáciles:

  • El pequeño grupo de programadores facilita competir por trabajos
  • Puede conocer a todos los programadores importantes en su campo
  • Desarrollar una reputación es más fácil que en la corriente principal

Cosas que solo son :

  • La paga tiende a ser más variable, ya que existen pocos estándares
  • Se dedica mucho tiempo a educar a otros sobre las fortalezas y debilidades de su nicho.

En general, si lo que le preocupa es una carrera, nunca debe ser un pony de un solo truco, una corriente principal o un nicho.

4
Joe Z

Actualmente estoy aprendiendo Ruby usándolo para resolver Proyecto Euler problemas, solo porque paso la mayor parte de mi día programando en C o PHP (ya veces C #) y quiero ampliar mis horizontes. Hasta ahora, realmente me ha abierto los ojos a lo que se puede hacer. Incluso si nunca lo uso para ningún trabajo "real", creo que el tiempo dedicado a aprender valdrá la pena.

2
tcrosley

De acuerdo con todos los puntos mencionados. Otra motivación para aprender un idioma de nicho es la posibilidad de que algún día el idioma se vuelva muy popular. En esta situación, su inversión temprana en el idioma podría brindarle pistas para trabajar en marcos influyentes y elementos del idioma que podrían tener una gran demanda en el futuro.

Si el idioma se vuelve popular, ya será experto en él y, por lo tanto, tendrá una gran demanda.

Probabilidad baja, recompensas potencialmente altas.

1
MM01

Como casi han dicho otros, aprender un idioma de nicho solo porque es un idioma de nicho no tiene mucho sentido. A menudo, sin embargo, los lenguajes especializados exploran un concepto más o más profundamente de lo que los lenguajes convencionales pueden permitirse o desear.

Y, a veces, los lenguajes de nicho han existido mucho, mucho más tiempo que cualquiera de los lenguajes principales: Smalltalk, Prolog y los lenguajes LISP vienen a la mente. Puede que no sean populares, pero tampoco están desapareciendo.

1
Frank Shearar