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

22

Si explora las preguntas de código de golf en StackExchange , observará un montón de idiomas 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é utilizando.

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 estaría ganando dinero, y algunos probablemente fracasarán de todos modos.

TheLQ
fuente
44
Si todo lo que le importa es ganar dinero, ¿por qué hace esta pregunta?
ChaosPandion
44
F # es un lenguaje de primera clase a partir de VS2010. No diría que no es estándar, y creo que pronto obtendrá una amplia adopción.
Brian R. Bondy
8
Si todo lo que quieres es ganar dinero, será mejor que te alejes de la programación. ¿Qué tal convertirse en una actriz popular?
P Shved
2
@TheLQ: ¿Quieres ser mainstream? ¿Temes dar un paso y no sabes cuánto dinero traerá antes de hacerlo? Entonces, por favor, conténtese también con el pago convencional. Esto es todo lo que obtendrás con tu mentalidad, si es que lo haces.
Ingo
1
Algunos idiomas especializados pueden hacerlo más productivo, lo que le permite ganar más dinero que los idiomas convencionales.
Giorgio

Respuestas:

25

La hipótesis de Sapir-Whorf . Establece, 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 pueden no ser capaces de hacerlo.

Muchas personas (incluido yo mismo) piensan que esto también es válido para la programación. Learning 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 su caja de herramientas mentales, independientemente del idioma que esté utilizando.

Fishtoaster
fuente
1
Exactamente. Por ejemplo, encuentro que en algunas situaciones, un lenguaje puramente funcional simplemente no es suficiente. Sin embargo, constantemente encuentro conceptos funcionales en lenguajes que admiten programación funcional (por ejemplo, javascript, c ++ 0x, etc.).
Cam
44
Me divierte que la gente continúe usando la hipótesis de Sapir-Whorf (en gran medida, aunque no completamente desacreditada en lingüística) como analogía. Definitivamente estoy de acuerdo con el sentimiento con respecto a la programación, pero creo que sería mejor encontrar una analogía diferente si queremos que la gente nos tome en serio.
Jonathan Sterling
1
No creo la hipótesis, de lo contrario nunca hubiéramos ido más allá de los gruñidos. Del mismo modo para la programación, no piense que las personas están limitadas por el lenguaje.
John Smith
24

Aprendería cualquier lenguaje que me presentara conceptos y paradigmas que nunca antes había visto. Es por eso que aprendí haskell y esquema: me presentaron a la programación funcional y principalmente a la programación funcional, respectivamente. No me habría importado menos si el esquema y el haskell se usaran ampliamente, aparte de cómo eso afectaría la documentación y los recursos disponibles.

Básicamente, si un pequeño nicho de lenguaje te presenta nuevos conceptos y paradigmas (especialmente aquellos que puedes aplicar a otros idiomas), ¡entonces aprende!

Otras razones por las que es posible que desee aprender un idioma 'pequeño / nicho':

  • El idioma le permite resolver un problema (tipo de) 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 lenguaje
Leva
fuente
7

Bueno, estoy usando Clojure (uno de los "idiomas 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 solía usar anteriormente). Mientras 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.
  • Aprendí nuevas técnicas que me han hecho un mejor desarrollador (particularmente en torno a la concurrencia, programación funcional, abstracción, metaprogramación, etc.). Incluso si volviera a escribir Java, aún podría hacer un buen uso de este conocimiento
  • Ha sido realmente divertido aprender un nuevo idioma muy diferente de 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 gran ventaja para los idiomas que se ejecutan en la JVM (lo mismo se aplicaría a Scala)

Personalmente, prestaría atención limitada a cosas como TIOBE: realmente no te dicen mucho más allá de lo que ha sido popular en el pasado. Útil tal vez si desea un trabajo de mantenimiento de sistemas antiguos, y menos si desea aprender y ampliar sus horizontes.

mikera
fuente
4

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

Jerry Coffin
fuente
4

Hablando como desarrollador profesional en un idioma específico , es posible ganarse la vida. Sin embargo, hay ventajas y desventajas.

Cosas que son más difíciles:

  • Encontrar un trabajo lleva más tiempo
  • Es más probable que los trabajos requieran que te mudes
  • Obtendrá poco respeto 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 la competencia por los 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 simplemente son :

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

En general, si una carrera es su preocupación, nunca debe ser un pony, mainstream o nicho de un solo truco.

Joe Z
fuente
2

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

tcrosley
fuente
+1 para el proyecto euler. Hice lo mismo mientras estaba aprendiendo Python
1

De acuerdo con todos los puntos mencionados. Otra motivación para aprender un idioma específico 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 lenguaje podría darle pistas para trabajar en marcos influyentes y elementos del lenguaje que podrían tener una gran demanda en el futuro.

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

Baja probabilidad, recompensas potencialmente altas.

MM01
fuente
2
Personalmente, siempre intentaré aprender conceptos en lugar de idiomas ... espacio cerebral limitado si sabes a lo que me refiero.
ChaosPandion
1

Como otros casi han dicho, aprender un idioma de nicho solo porque es un idioma de nicho no tiene mucho sentido. Sin embargo, a menudo, los lenguajes de nicho exploran un concepto más allá / más profundamente de lo que los lenguajes convencionales pueden permitirse o quieren.

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

Frank Shearar
fuente