El lenguaje Nim llega a su versión 1.0

El equipo que desarrolla el lenguaje de programación Nim ha anunciado que han llegado ya oficialmente a la versión 1.0. Nim es un lenguaje compilado, de tipos estáticos, el cual se enfoca en la eficiencia, facilidad para ser leído y flexibilidad.

Los desarrolladores de Nim han dicho que la versión 1.0 marca el inicio de una base estable para las versiones futuras del lenguaje, el cual funcionará tanto para la versión actual como para las que vengan más adelante.

Nim es un lenguaje de programación fuertemente tipificado. Es orientado a objetos, pero con la composición que tiene preponderancia sobre la herencia, uno de los conceptos básicos de la programación orientada a objetos. Nim compila a C como su default, es decir quede alguna manera es un pre-procesador. Sin embargo, también puede compilar a Javascript, C++ u Objective-C.

Entre las opciones de Nim, se incluye un recolector de basura de referencia diferida, lo que es más rápido, incremental y sin pausa. Vamos, que de alguna manera podemos pensar como un recolector de basura en tiempo real en donde el tiempo de espera máximo lo da el usuario.

Esto se usa cuando se intenta liberar el espacio en donde hay variables que ya no se usan, que ya no apuntan a ninguna variable, etcétera y en el mundo moderno de la programación el recolector de basura existe, aunque en muchas ocasiones se esconde y se usa a discreción. Al día de hoy, hay más de 1000 paquetes disponibles para Nim, y los desarrolladores esperan más paquetes desarrollados en Nim ahora que están en la versión 1.0.

Pequeño pero muy útil

En una entrada del blog sobre esta nueva versión, Andreas Rumpf, el desarrollador inventor de Nim, dijo que la meta más importante es que Nim sea un lenguaje pequeño con un sistema de macros que pudiese extenderse para así usarlo con un núcleo pequeño.

El compilador y las partes  la biblioteca básica (estándar) tiene cerca de 140 mil líneas de código y corre en muchos sistemas operativos. Igualmente sobre la idea de que Nim pueda compilar a C++ o a Javascript, Rumpf dice:

«Queremos enfocar a Nim sobre sus herramientas, incluyendo Nimsuggest (la forma en que Nim completa el código dependiendo del editor que se use). Personalmente pienso que la «compilación incremental»es el siguiente paso para el compilador de Nim. este tipo de compilación permite generar código mucho más rápido, resultando en expansiones de macros y otras construcciones».

Personalmente pienso que la «compilación incremental»es el siguiente paso para el compilador de Nim. este tipo de compilación permite generar código mucho más rápido, resultando en expansiones de macros y otras construcciones».

Las ventajas de Nim

Nim parece ser una buena idea de lenguaje. En esta versión se tiene:

* Generación de código ejecutable que no depende de una máquina virtual, que son ejecutables pequeños que permiten una fácil redistribución.
* Se soporta Windows, Linux, BSD y MacOS.
* Manejo de memoria diferido (a través de su recolector de basura), que soporta sistemas en tiempo real.
* Conceptos modernos como iteratores de zero-overhead y evaluación en tiempo de compilación de las funciones del usuario.
* Soporte para compilar en C, C++ o Javascript, de manera que el lenguaje Nim pueda usarse tanto en escenarios «backend»o «frontend».

He aquí un ejemplo de Nim, en donde se resuelve el cifrado César…

El cifrado César escrito en Nim

La entrada El lenguaje Nim llega a su versión 1.0 se publicó primero en unocero.

Etiquetado: / / /

Placa histórica por los 50 años del lenguaje BASIC

BASIC fue para muchos programadores, hoy maduros, su primer lenguaje de programación. Las primeras computadoras tenían poca memoria, pocos recursos, y BASIC podía ser el «caballito de batalla» que cupiese en muy pocos bytes y que diera una serie de posibilidades para los que se entregaban al arte de la programación.

BASIC pasó por muchísimas transformaciones y quizás eso habla de las posibilidades que ofrecía originalmente y de cómo se iban incorporando nuevas ideas al lenguaje.

La placa instalada en New Hampshire Route se debe a los esfuerzos de David Brooks, un periodista del Concord Monitor, quien habiendo tomado nota de 255 marcadores históricos en las carreteras mantenidas por New Hampshire, no había uno que celebrara los méritos científicos y técnicos.

Para rectificar esto, propuso crear un placa que marcara la creación de BASIC junto con el sistema Dartmouth Time-Sharing, un importante precursor de Internet en donde se compartían ya recursos de cómputo. Sin embargo, debido al espacio de la placa, no se podían tener ambos temas en la misma.

Placa en homenaje al BASIC

«BASIC (Beginner’s All-purpose Symbolic Instruction Code), ha hecho probablemente mucho más para introducir a las personas a la programación de computadoras que cualquier otra cosa jamás creada. Y eso me incluye: el único programa funcional que escribí fue en un BASIC simple y aún recuerdo con satisfacción cuando escribí 100 END», escribió Brooks.

Pero BASIC no fue un lenguaje de juguete. Se demostró lo suficientemente robusto para sobrevivir por décadas, ayudando a lanzar través de Microsoft, a sus descendientes, que aún están en uso.

El inicio de una era

Fue en 1956 cuando dos matemáticos, John Kemeny y Thomas Kurtz, resolvieron una mejor manera de enseñar esta disciplina emergente de la computación a los alumnos.

Nacido en Hungría, Kemeny emigró a los Estados Unidos a los doce años, en 1940. Estudió matemáticas en Princeton y se doctoró a la edad de 23 años. Kurtz también recibió su doctorado por parte de Princeton en 1956 y se unió al departamento de Dartmouth el mismo año.

Kemeny y Kurtz aprendieron Share Assembly Language y pronto se dieron cuenta que esta no era la manera de enseñar programación. Se necesitaba un nuevo lenguaje y se dieron a la tarea. Su primer lenguaje: DARtmouth SIMplified COde (DARSIMCO) , era un sistema de machotes, cada uno con una serie de comandos en ensamblador.

Kedro: una nueva biblioteca para aprendizaje de máquinas

Afortunadamente, en 1957 vieron la aparición de FORTRAN que les dio el modelo para lo que debería ser un lenguaje de alto nivel. Al inicio, BASIC iba a ser un subconjunto de Fortran, pero Kemeny decidió que este subconjunto no sería suficiente.

En 1959, Dartmouth College adquirió una máquina LGP-30, con 4K en palabras de 30 bits, con un tambor magnético y un conjunto de 16 instrucciones. El problema es que correr un programa usando procesos batch y tarjetas llevaba una semana. Fue entonces cuando John McCarthy sugiriera a Kemeny y Kurtz hacer «time-sharing» y en 1964, se pudo comprar en la institución una computadora GE-255.

Incluso antes de que llegase esta máquina, Kemeny y un grupo de estudiantes estaban ya trabajando en un compilador para su lenguaje BASIC.

El primer programa escrito en BASIC se ejecutó a las 4 de la mañana, el primero de mayo de 1964. Entonces el lenguaje cobró auge poco a poco y con la explosión de las microcomputadoras, se tuvo en los años 1980s diversas versiones de BASIC. Y aunque la gente se entusiasmaba con este lenguaje, en la academia había voces en contra.

La principal de Edsger Dijkstra, uno de los pioneros de la programación estructurada, que en un brevísimo artículo dijo que «el GOTO se consideraba dañino en programación». Dijkstra comentó sin pelos en la lengua que quienes aprendían BASIC eran dañados cerebralmente de forma irrevocable y que nunca podrían reformarse y aprender un lenguaje estructurado.

Kurtz y Kemeny

La respuesta de Kemeny y Kurts fue crear lo que llamaron True BASIC, un lenguaje compilado estructurado, que aún está disponible como un producto comercial y que en su versión más reciente va en la número 6. Y hoy tenemos una placa que le rinde un merecido honor al BASIC como el primer lenguaje que hizo que muchos programadores aprendieran a generar código. Y hay quien piensa que aún el BASIC no ha escrito su historia final.

La entrada Placa histórica por los 50 años del lenguaje BASIC se publicó primero en unocero.

Etiquetado: / / /