Soy desarrollador de Java desde hace 6 años. Quiero comenzar a aprender un nuevo idioma. Estoy realmente confundido, ¿cuál debo elegir? Python, ruby ​​o scala?

Debes tratar de aprender idiomas que sean fundamentalmente diferentes entre sí. Python y ruby ​​son similares entre sí. Ambos son lenguajes de script (aquí se habla en términos generales). Pero debe aprender uno de esos si no conoce ninguno de los lenguajes de ‘scripting’. Son fáciles de aprender y son muy útiles en muchas situaciones.

Scala, por otro lado, es predominantemente un lenguaje de programación funcional. Es fundamentalmente diferente en ese sentido de python / ruby ​​o java. Entonces diría que deberías aprenderlo independientemente de si aprendes python / ruby.

También hay otras alternativas en ambos lados que definitivamente debes considerar. Por ejemplo, (perl, python, ruby, groovy, etc.) son todos lenguajes de ‘scripting’ y (clojure, haskell, ocaml, etc.) son lenguajes de programación funcionales. Cuál elegir de cada categoría realmente se reduce a preferencias personales. Si está más interesado en el análisis de datos o la computación matemática / científica, debe optar por python. Si no, le sugiero que pruebe Ruby y Python y vea por usted mismo cuál le gusta más. Del mismo modo, en el caso de la programación funcional, creo que clojure gana en el caso del trabajo de análisis de datos, y scala gana en el caso del desarrollo web.

Estaba en una posición similar en algún momento. Elijo Scala y no podría estar más feliz. Breve resumen:

Scala sobre python / ruby ​​para:

  1. Mecanografía estática. Es una elección personal, pero creo firmemente que la escritura estática es reconfortante en proyectos más grandes. Aunque la inferencia de tipo Scala es bastante fuerte y en la mayoría de los casos no hay necesidad de mencionar explícitamente los tipos.
  2. Sistema de tipos. Polimorfismo ad-hoc, etc. Si desea escribir el código de tipo Haskell, puede hacerlo perfectamente. Créame, esto hace que su productividad aumente en un 200%. El compilador hace mucho por ti. Esto para mí es una característica asesina. Aunque hay una curva de aprendizaje empinada.
  3. Rendimiento JVM. Hilos reales y sin problemas de GIL (a menos que use Jython / JRuby)

Python / ruby ​​sobre scala para:

  1. Web-stack. Rails y Django están mucho más maduros en comparación con Play / Lift. Aunque el juego está creciendo agresivamente, no está más cerca de otras contrapartes.
  2. Curva de aprendizaje. Puede estar en funcionamiento y no le llevará más de un par de meses comenzar a crear un código de nivel de producción. Si viene directamente de Java, Scala requerirá mucho más esfuerzo (el compilador de scala hace tanta magia que le tomará bastante tiempo (6 meses para mí) ponerse cómodo con él).
  3. Compatibilidad con versiones anteriores. A veces te volverás loco con Scala tratando de usar una biblioteca para una versión particular de Scala. Las bibliotecas compiladas con la versión específica del compilador scala deberán ejecutarse solo con esa versión de scala.

Ruby sobre python si es que planeas usar Rails. De lo contrario, elegiría python (@Python Vs Ruby lo responde de manera justa). En el resto de los casos, casi proporcionan la misma funcionalidad, ya que cada uno tiene sus propias bibliotecas extensas.

Si tienes que elegir uno, diría “Ve por Scala”. Es mucho más estimulante y divertido.

¿Deberías estar aprendiendo idiomas en el vacío?
Conozco bien Java ya que la mayoría de los proyectos que he realizado han estado en Java. Pero he incursionado en c # algunas veces cuando surgió la necesidad … Hecho perl (cosas viejas de cgi … Ok saliendo conmigo aquí☺️) incluso tckl / tk. Pl / sql ..jQuery Etc, etc., cuando surgió la necesidad.
Ok, eso dijo que no soy ajeno a otros idiomas … He buscado en secreto todos los idiomas que has mencionado. Pero no tiene necesidad y, por lo tanto, no está estudiando profundamente en el vacío. Si conoce uno, especialmente Java, los demás serán muy fáciles. Cuando un caso de uso lo respalde, saltaré a lo que sea necesario y estudiaré más a fondo (por ejemplo, datos grandes, entonces tal vez busque usar Python en la mezcla). Si estudias en el vacío, lo perderás después de un mes. Estudié react js hace 3 meses … Rem el tema básico pero nada más … Personalmente estoy en un punto donde puedo aprender cualquier idioma dentro de una semana … Quizás tú también puedas … Pero no se quedará si no haces un proyecto y corriges algunos errores …

Lo que voy a decir probablemente ya sea obvio para ti. Pero en caso de que no sea …

Es imposible responder a su pregunta sin saber por qué quiere aprender otro idioma.

scala se encuentra en una categoría diferente de las otras dos lenguas candidatas. Parece recibir algunas críticas de los puristas sobre la programación funcional, que prefieren Haskell o Clojure. Pero elegí Scala como el nuevo lenguaje que estoy aprendiendo porque (1) creo que la programación funcional me será útil; (2) Scala me parece tener la mayor tracción en el mercado; y (3) Me gusta el hecho de que es un lenguaje JVM y que el mar de bibliotecas Java disponibles está directamente disponible.

Los tres idiomas candidatos están estrechamente asociados con los marcos de desarrollo de aplicaciones web: Scala-Play, Python-Django y Ruby-Rails. No puedo hablar por experiencia personal sobre esto. Las personas que conozco y respeto que hacen esto generalmente critican el marco de Scala’s Play. Iba a mencionar mi impresión de que Ruby on Rails ya pasó sus días de gloria, pero recientemente Ruby subió un par de por ciento en TIOBE. Si cree que el desarrollo rápido de aplicaciones web podría ser importante para usted, elija python o ruby.

Si tiene que hacer muchas “disputas de datos” de una vez o solo unas pocas veces (por ejemplo, formatear archivos sin formato, extraer html y extraer información de él, etc.), querrá aprender un general- Propósito lenguaje interpretado. Ruby se puede usar para este propósito, pero no conozco a nadie que lo use de esta manera: todos los que conozco que lo usan lo están usando en el marco de Rails. Creo que el ganador en esta categoría entre sus tres idiomas candidatos es probablemente Python.

Estas consideraciones generales se ofrecen con la esperanza de que puedan ayudar a guiar su elección.

Déjame ponerlo de esta manera para que puedas entender.

Pasado – Python
Presente – Ruby on Rails
Futuro – Scala

More Interesting

¿Es posible hacer CA mientras hago MBA a tiempo completo en India?

¿Qué cosas debo tener en cuenta antes de ir a una entrevista de trabajo?

¿Puedo conseguir trabajo en TCS fácilmente?

Soy un estudiante de II semestre en una reputada universidad de ingeniería india, y quiero obtener una pasantía durante mis vacaciones de verano para ganar experiencia. ¿Dónde puedo solicitar esto?

Estoy en 3er año ECE. Estoy buscando un buen tema para mi mini proyecto. ¿Cuáles son algunos buenos temas?

¿Cuáles son los pros y los contras de Google Kubernetes vs Docker Swarm?

Mi gerente me pidió que trabajara 12 horas, incluidos los fines de semana. ¿Puedo estar en desacuerdo frente a mi gerente como pasante?

Si estoy interesado en compañías de software, ¿qué debería preferir estudiar, Java o Linux? ¿Cuál tiene una mayor demanda?

¿Qué sucede después de un B.Tech en Ingeniería Química?

Siendo estudiante de ingeniería química b.tech, ¿cómo y qué prepararse para el examen psc?

Cómo descifrar IIFT en el tiempo mínimo y ser un empleado que trabaja lado a lado

¿Por qué no soy feliz incluso después de conseguir el trabajo que siempre quise (Sector de Defensa) después de tanto esfuerzo y trabajo duro?

Estoy realmente interesado en actuar pero no tengo suficiente dinero para unirme a una escuela de cine, ¿qué debo hacer?

¿Cuál es la carrera más adecuada en términos de respeto y dinero en PAKISTÁN?

¿Dónde en Delhi se puede hacer un curso de maquillaje profesional?