¿Cuál entre Scala, Golang y Elixir es más beneficioso para un desarrollador web freelance (full-stack)?

Desafortunadamente, se aplica la salida habitual: depende de su cliente.

Sin embargo, recomendaría los siguientes consejos genéricos:

  • Para el kit funcional en su caja de herramientas: Scala (para cuando se hace funcional en una casa Java), Elixir (funcional, y mucho para recomendarlo). Clojure puede ser mejor que Scala, pero dependerá de la tienda en la que te encuentres.
  • Para Web, JavaScript, Elixir, Java (para tiendas empresariales que no se han convertido a nuevas opciones).
  • Para pan y mantequilla, Java, Node.JS JavaScript y C #.
  • Para ciencia de datos: Python, R
  • Lo importante es no tener una pulgada de ancho y una milla de profundidad (solo conozco un idioma realmente bien). Cada tipo de problema tiene un lenguaje que se adapta bien a ese tipo de problema, pero podría ser un mal ajuste para otros tipos de problemas.

Elija cuatro idiomas principales (recomendaría Elixir, JavaScript, Java, C #, Python) y haga cosas como ejercicios SICP, Project Euler y Advent of Code en cada uno de esos idiomas.

Sin embargo, esto es solo la primera mitad. Lo siguiente es comparar sus soluciones a un problema en los diferentes idiomas, incluida la evaluación comparativa de los resultados. ¿Qué idioma produce mejores resultados de referencia? ¿Cuál se ve más fácil de mantener? ¿Cuál es la complejidad de tiempo y espacio para la implementación habilitada por las características de cada idioma? ¿Qué idioma considerarías como el ganador general?

A partir de esto, habrá trabajado en la construcción del kit más importante que tiene como desarrollador … su conocimiento de la herramienta adecuada para el trabajo y las características de ese lenguaje que se aplican mejor a su problema actual.

También podrá hacer mejores soluciones híbridas. Realmente disfruto de Elixir, pero todavía me encanta el combo de Node.JS para el front end y Erlang para el backend.

Falta algún contexto en este caso. ¿Qué estás buscando? ¿Ya tiene un idioma de elección y está buscando uno nuevo solo para mejorar? ¿Estás buscando un nuevo idioma con alta demanda en el mercado? ¿Estás buscando un nuevo paradigma de programación? ¿Desea resolver diferentes problemas como freelance y necesita más concurrencia o solidez?

Trataré de dar una respuesta vaga aquí.

Según el índice tiobe (TIOBE – The Software Quality Company), puede elegir Ir . ¿Por qué estoy usando el índice Tiobe? Porque puede estar buscando un idioma con alta demanda en el mercado.

Go es un buen lenguaje, su demanda aumenta cada vez más. Es rápido y tiene un gran soporte para la concurrencia. Realmente me gusta crear API y CLI también.

No soy un gran admirador de Scala por varias razones. La falta de un paradigma definido lo hace extraño para mí, pero esa es mi opinión.

En caso de que planee trabajar con aplicaciones web de alto tráfico, Elixir sería una buena opción. Sería aún mejor si vienes de la comunidad Ruby, porque también hay muchos Rubyists allí.

Me gusta decir que Elixir tiene la genialidad del lenguaje Ruby con la robustez del mundo Erlang. Realmente te recomiendo que al menos lo pruebes.

Elegiré Golang. Si necesita elegir lenguajes de programación para su negocio como profesional independiente, Golang es su opción, ¿por qué? La razón principal por la que elijo Golang es la productividad, y la productividad es importante para su negocio, ¿verdad?

Golang es simple y muy adecuado para programadores pragmáticos. No necesita aprender muchas funciones de programación en Golang. No necesita aprender un nuevo paradigma de programación en Golang, es porque es simple.

Si necesita manejar cosas de concurrencia, sí, puede hacerlo con golang, aprender sobre goroutine & channel.

Para el desarrollo web, puedes probar Gin, Gorilla, Beego, Revel.

¿Necesita en tiempo real como aplicaciones de chat? Golang es compatible con Websocket y HTTP / 2.

Y para lo último, el tiempo de compilación de Golang es rápido y quiero decir muy rápido, intenta compararlo con Scala (no sé nada sobre Erlang).

No estoy seguro de que haya una sola respuesta a esto.

Scala es muy popular en muchas comunidades y puede abrir puertas a una gran cantidad de áreas donde reside un gran número de practicantes de JVM. Creo que a menudo está mucho más abajo de lo que mucha gente llama “pila completa”, pero esa definición es muy relativa.

Ir está apuntando directamente a esta área. Uno de sus aspectos más fuertes es ser la estructura debajo de un front-end de JavaScript. Si bien puede que no sea lo más importante para la pila completa, hay muchas posiciones fuertes para cualquiera que pueda usar código en ese caso y mejorará. Un ingeniero web de “pila completa” que usa Go tiene un brillante futuro inmediato.

Elixir y Erlang pueden no ser los más populares con diferencia, pero aquellos que lo saben pueden respirar un aire rarificado y trabajar en proyectos que no son como los demás. Erlang permite que un número menor de desarrolladores construya un respaldo escalable que puede ser increíblemente robusto, con bastante rapidez. Si bien sus equipos más grandes no pueden usarlo y seguir con Go, Scala o nombrar a otro técnico; Algunas de las startups más agresivas usan Erlang / elixir para obtener plataformas antes de la competencia. El desarrollador de pila completa Erlang no es algo que verá anunciado, pero es el asistente que crea sitios increíblemente escalables y robustos en muy poco tiempo. Eso es lo que los hará valiosos.

Al final, ser el tipo de persona que puede aprender cosas nuevas y hacer cosas es lo más importante.

Mi voto es para Elixir (+ marco de Phoenix)

Cuando se trata de la velocidad de desarrollo (que seguramente necesitas), Ruby on rails tiene el juego bloqueado. Y Phoenix es como Rails pero más rápido, concurrente y más en tiempo real.

El único inconveniente que veo es la cantidad de paquetes de código abierto disponibles.

More Interesting

Mi trabajo me parece aburrido. ¿Debería renunciar? Me gustaría poner mi propio negocio pero creo que aún no estoy listo. ¿Qué tengo que hacer?

¿Puedo colocar proyectos técnicos en mi currículum?

¿Cuáles son las perspectivas para completar una carrera de 10 años en la Armada de la India como oficial técnico?

¿Es usted un asistente legal o asistente legal? ¿Qué tipo de persona disfrutaría o haría bien en esta carrera?

¿Cuáles son algunas de sus estrategias 'recurrentes' que utiliza durante una entrevista de trabajo?

¿Qué harías cuando no pudieras diseñar nada en el trabajo?

Soy un mecánico más fresco (2014). ¿Qué debo hacer para conseguir un trabajo?

¿Cuál es el mejor instituto VLSI aparte de VEDA IIT, Maven Silicon, Sandeepani y RV-VLSI? ¿Hay un mejor instituto VLSI?

Soy un estudiante de ingeniería de pre-final, que estudio en uno de los prestigiosos institutos de la India. Estoy muy frustrado hoy en día debido a varios rechazos. ¿Qué tengo que hacer?

¿Cuál debería elegir: un trabajo como analista de tecnología en Morgan Stanley que paga alrededor de 13.6 LPA o seguir adelante y obtener una maestría en CS de los Estados Unidos?

¿Cuáles son los tipos de perfiles de trabajo ofrecidos durante las colocaciones después de haber completado el curso MHA (Master of Health Administration) en TISS?

¿Qué tan grave afecta una brecha de 3 años a mi carrera de desarrollador?

¿Debo ir al extranjero para obtener una maestría en automatización o debo trabajar en una empresa de automóviles y adquirir experiencia?

Cómo saber cuándo estoy listo para obtener un trabajo de ingeniería de software

Cómo enumerar en LinkedIn a un empleador anterior que haya sido adquirido por otra empresa