Esta es una respuesta de nivel ultra alto, y ciertamente espero que alguien de Twitter pase por allí, pero probablemente eligieron Scala porque necesitaban exactamente lo que Scala estaba destinado a hacer: escalar. Quiero decir, la escalabilidad está literalmente en los nombres de Scala.
Su arquitectura original era notoriamente inestable, pero incluso al nivel de una compañía como Twitter, no querían cambiar a un lenguaje de bajo nivel como C. Java es la opción obvia. Ha existido por veinte años. Es maduro como todos salen. Y tiene un GRAN grupo de desarrolladores calificados. Pero Java tiene sus propios problemas, uno de los cuales es Oracle, pero eso es para otra publicación.
Entonces, ¿qué más hay por ahí? Los lenguajes de alto nivel como Python, PHP, Perl y Vanilla Ruby tendrían los mismos problemas a escala. Lisp, Scheme y Haskell tienen grupos de desarrolladores mucho más pequeños en el mercado abierto. Para una gran empresa, tener proyectos ralentizados porque no pueden obtener desarrolladores no es una opción. Entonces, si bien los lenguajes funcionales son geniales, puedo apreciar por qué las compañías elegirían evitarlos.
- Aprendo ambos, front y back end del desarrollo web. ¿Dónde puedo encontrar algunos proyectos para practicar?
- ¿Qué tan difícil sería aprender SQL y PHP sin ningún conocimiento previo en desarrollo de backend?
- ¿Cuál es la mejor manera de asegurarle al usuario que el código que se ejecuta en el backend es el mismo que se anunció?
- ¿Cuál es la hoja de ruta completa para el desarrollo web backend?
- ¿Cuándo debería un principiante de programación comenzar a aprender el desarrollo de backend y la implementación en la nube?
¡Pero hey! Scala tiene todas las ventajas de Java (rápido, recolección de basura, estable) y abandona algunas de las idiosincrasias sintácticas que a muchos no les gustan, al tiempo que agrega muchas cosas interesantes. Cuando se mira desde esta perspectiva, leer el artículo de Scala en Wikipedia hace que parezca bastante obvio por qué Twitter lo integraría en su pila. Se ejecuta en la JVM, incluye formas maravillosas de expresar el pensamiento e incluye muchas de las habilidades funcionales que mencioné anteriormente. Con Scala, una empresa puede ser tan rápida como Java, aprovechar los paquetes públicos de Java, aprovechar el conjunto de desarrolladores de OOP que existen y también estar atentos a los desarrollos futuros en el mundo funcional. Demonios, ahora que lo pienso, ¡siento que debería aprender Scala!
O no. Si me preguntas, deberían haberse ido con Smalltalk. ٩ (● ̮̃ •) ۶