A2A, gracias.
Mi respuesta a esto es elegir un lenguaje moderno, “multi-paradigma”, “dinámico” (interpretativo) con una “cadena de herramientas corta”, que le permita escribir un código de paradigma “imperativo” directo.
Por “cadena corta de herramientas”, quiero decir que a menudo con lenguajes “no divertidos”, uno tiene que estar familiarizado con varias herramientas y / o entornos además del lenguaje en sí mismo, para producir código de ejecución real de alta calidad. En C, por ejemplo, la cadena de herramientas a menudo consiste en
- el preprocesador C,
- el propio compilador de lenguaje,
- un enlazador,
- biblioteca / repositorios que contienen módulos de código de objeto “estándar” precompilados, algunos de los cuales deben formar parte de su imagen de código, a través del vinculador.
- un IDE o editor para crear y modificar la parte del código que escribe.
- Un depurador.
- Un sistema de control de versiones que le permite administrar potencialmente muchas “versiones” de su software, como una que funciona en Windows y una diferente que funciona en Linux, o varias versiones propietarias de UNIX. Cada “versión”, aunque pueden ser lógicamente idénticas con respecto a “lo que hacen” para un usuario, por lo general requiere un código fuente ligeramente diferente y procedimientos de “compilación” bastante diferentes, que también son código de texto (código de script) dirigido al SO línea de comandos, para invocar y animar la “cadena de herramientas” para producir la versión particular que desee. Para mantener todo esto en orden, a menudo se necesita un sistema de “control de versión” o “control de código fuente”.
Obviamente, aprender todas estas herramientas y detalles del entorno, “por diversión”, solo para hacer que una parte del código de los aficionados suba y baje, es difícil de manejar, en el mejor de los casos, insostenible en el peor de los casos. Para divertirse, simplemente desea escribir un programa, decirle a la computadora lo que quiere / necesita que se haga y luego simplemente ejecutarlo.
- ¿Cómo se puede aprender a leer partituras rápidamente?
- ¿Cuál es el mejor recurso en línea para aprender a entender los balances / declaraciones de ingresos?
- ¿Qué importancia tiene la curiosidad y el hambre de conocimiento en la vida? ¿Se puede inculcar en adultos? ¿Si es así, cómo?
- ¿Cuál es la mejor manera de comenzar a aprender matemáticas formales fuera de la escuela?
- ¿Has aprendido a resolver las cosas por ti mismo? ¿Si es así, cómo?
Algunos intérpretes, especialmente el BASIC que convirtió a Bill Gates en un multimillonario, son “su propia cadena de herramientas” y su propio REPL (google: esta respuesta ya es TL: DR). Escribe BASIC en la línea de comando del SO para ingresar al entorno BASIC; entonces usted puede escribir un código BASIC válido; (o el código de CARGA que escribiste ayer); y simplemente ejecuta el código. Si desea conservar el programa para mañana, simplemente GUARDE el texto del programa que escribió.
Hay otros lenguajes más modernos, en particular Python y Ruby, que tienen algunas o todas estas características de “cadena de herramientas corta”. Python le permite escribir un código de paradigma imperativo simple al principio y luego pasar a un código de paradigma más seguro y mejor orientado a objetos (OO) más adelante. Ruby está completamente orientada a los objetos desde el principio, lo que (para mí) lo hace menos amigable como un lenguaje “solo por diversión” y simple. Smalltalk es otra de esas “cadenas cortas de herramientas”, pero completamente en lenguaje OO, una diseñada para niños, aunque en la práctica no es muy utilizada por los niños. Sostengo que Smalltalk es menos usado como lenguaje de inicio, simplemente divertido, ya que OO es en sí un poco abstruso y no obvio, incluso desagradable, aunque sin duda produce un código de mayor calidad, más sólido y reutilizable en manos de un profesional descifrador.
Hay una buena razón por la que esencialmente todos los idiomas de los primeros treinta a cincuenta años de historia de la computación fueron paradigmas “imperativos” o “declarativos”, y OO solo se inventó más adelante en esa historia.
Explore los lenguajes dinámicos de la “cadena de herramientas corta”, con un modo de paradigma imperativo. Yo diría que empezar con Python. Elija un idioma que “lo llame a usted”, y vaya con él para divertirse.