¿Qué tan difícil es aprender Clojure?

Aprender un lenguaje de programación no es solo encender un interruptor y ser totalmente fluido. Está el lenguaje en sí, luego la biblioteca incorporada, las expresiones idiomáticas adecuadas (y las razones detrás de esas expresiones idiomáticas), luego la imagen más amplia: las herramientas, bibliotecas y marcos más allá del lenguaje en sí. Además, suponiendo que está conectando a Clojure desde un lenguaje más tradicional (presumiblemente Java), necesita comprender la “programación funcional” y el estilo de datos persistentes (por ejemplo, inmutables) de Clojure.

Es un proceso; Mientras codificaba Java todos los días durante una década, mi enfoque de codificación cambió y evolucionó constantemente; y recuerdo claramente que Java parecía muy extraño en comparación con mi primer lenguaje OO, Objective-C.

He estado codificando Clojure a tiempo completo durante aproximadamente 18 meses, y mi estilo todavía está evolucionando. El código que escribí hace 18 meses parece razonable, pero hoy no lo escribiría de la misma manera.

Dicho esto, Clojure es muy fácil de aprender. La sintaxis es radicalmente simple. Pasas rápidamente de la etapa de “bueno, ¿cómo defino una clase” (generalmente, no lo haces) a la etapa de “¿por qué Java necesita toda esa basura?”.

Es importante destacar que debido a que Clojure tiene un REPL puede probar cosas de forma rápida e interactiva. Cada vez que estoy confundido acerca de lo que hace exactamente una función de biblioteca, puedo experimentar.

Debido a que Clojure es un lenguaje funcional impuro (le permite hacer algunas cosas inseguras, como E / S y mutaciones cuidadosamente controladas), creo que es más fácil de aprender que Haskell, por ejemplo. Puede recurrir a los viejos malos hábitos como un puente, y luego dejar esos malos hábitos atrás.

El hecho de que Clojure esté tan ligado a Java es tanto un beneficio como una maldición. El beneficio es que le brinda un modelo mental particular de cómo se ejecuta el código Clojure: todavía se trata de clases y métodos. Montones y montones de clases. La maldición es que siempre que tengo problemas con Clojure generalmente está relacionado con la interoperabilidad con el código Java de alguna manera.

More Interesting

¿Cuál es la arquitectura de Spotify?

¿Cuáles son los pecados más comunes de los programadores perezosos?

¿Cómo es la pasantía en Palantir?

¿Qué herramienta es la más utilizada para la evaluación de seguridad?

¿Qué tan importante es la capacidad de resolución de problemas para obtener un trabajo tecnológico?

¿Cuáles son los problemas abiertos en la estimación del esfuerzo de desarrollo de software? ¿Qué métodos se practican actualmente en las empresas con el fin de estimar el esfuerzo? ¿En qué se diferencia la estimación ágil de otros enfoques de estimación tradicionales?

Una calculadora cayó al suelo. ¿Cómo procederías para probar si aún funciona?

¿Cuáles son las mejores prácticas de programación que son fáciles de seguir, pero que tienen importancia en el uso de RAM?

¿Es una buena idea desarrollar ERP en PHP? ¿Cuáles son los pros y los contras involucrados?

¿Cuáles son las mejores bibliotecas para la detección de dispositivos móviles?

Cómo aplicar la regla 80/20 para leer libros de programación y mejorar las habilidades de resolución de problemas como programador

¿Cuál es la filosofía de los buenos codificadores? Solía ​​poner mucho esfuerzo en mis cursos, pero siento que los proyectos paralelos y la construcción de cosas que son importantes para el mundo exterior importan mucho más.

¿Cuál debería ser mi plan para ser un buen ingeniero de software durante mi B.Tech?

¿Cuáles crees que son las razones principales por las que la mayoría de los equipos de ingeniería son tan homogéneos?

Cómo encontrar personas que puedan estar interesadas en colaborar en un proyecto Github