TLDR; Nim en Spanish
Tags: spanish, nim, c, javascript
Published: 2019-06-09 19:54:44

---
title: TLDR; Nim en Spanish
published: true
description: TLDR Nim lang en Spanish
tags: spanish, nim, c, javascript
---

![](https://thepracticaldev.s3.amazonaws.com/i/t3oi35bp5v2ls0b3rrnk.png)

Nim es un nuevo lenguaje de programacion compilado de tipado estatico con inferencia,
se siente como Python, se ejecuta como C,
funciona en Frontend y Backend,
compila a C, C++, JavaScript, ObjectiveC, NodeJS.

Targets adicionales compilan a Python, LLVM, Vulkan, OpenGL, WebAssembly, Dalvik, etc etc.

Permite projectos con 1 solo lenguaje para todo el stack, 
pero tiene performance destacable con menos recursos, 
posee una libreria standard muy completa con documentacion online y 
librerias creadas por la comunidad en un registro de paquetes,
viene con un administrador de paquetes de gran utilidad,
compila a binario nativo optimizado de 1 solo archivo sin dependencias.


![](https://thepracticaldev.s3.amazonaws.com/i/i2dw8k76d28eav1eksll.png)


Tu codigo compila y genera un ejecutable nativo,
que podes copiar y pegar en cualquier computadora y funcionara.
Los programas en Nim no necesitan "preparar un ambiente" especial.
Los programas en Nim no necesitan Nim instalado para funcionar.

Usualmente lleva menos codigo que lenguajes como Ruby, Rust, PHP, etc
Menos codigo, mas performance.

El compilador posee un AutoDocumentador que genera un HTML simple y elegante,
tomando el codigo, leyendo comentarios en ReSTructuredText o Markdown,
generando HTML o LaTex, con LaTex puedes generar PDF.

# Hola Mundo

```nim
echo "Hola Mundo"
```

[Jugar con codigo desde el browser aqui.](https://play.nim-lang.org/index.html?ix=1Llj)

Si sos DevOps o SysAdmin puedes utilizar Nim de manera interpretada,
puede ser muy util para reemplazar scripts de BAT o PowerShell o Bash,
debido que el mismo Script correra en todas las plataformas, sin compilar.
La syntaxis de NimScript es la misma que la de Nim, 
asi que no hay nada extra que aprender de syntaxis,
puede detectar arquitecturas de hardware, sistemas operativos y hasta en que Distro de Linux esta corriendo.

Si haces Python pero buscas algo para ejecutar Python en el Browser,
Nim puede ser una opcion, debido que compila a JavaScript,
y funciona sin ningun peso extra ni problemas de performance,
existen librerias solo-Frontend y se integra transparentemente y 
bi-direccionalmente con JavaScript del browser, 
tambien permite correr en NodeJS, y tiene API del DOM, todo builtin.


![](https://thepracticaldev.s3.amazonaws.com/i/jvrroehev64d7bf41ag7.png)


Posee caracteristicas avanzadas, pero a su vez es facil de aprender,
por ser similar la syntaxis a Python, como un Python Tipado y Compilado,
viene con AutoFormateador de codigo en el compilador 
(similar a `gofmt` o `autopep8`, corrije Estilo tambien).

Cuando estas usando algo que va a cambiar en el lenguaje,
se muestran mensajes coloreados de Deprecacion al compilar
(usualmente con la sintaxis nueva o sugerencia).

Las caracteristicas nuevas del lenguaje que vendran a futuro estan ocultas detras de parametros de compilacion Experimentales,
permitiendo ver claramente hacia donde va el lenguaje hoy mismo.

Compilando a C standard, permite a software Nim ejecutarse en cualquier lugar que apenas pueda compilar C, 
permitiendo tambien interoperabilidad transparente con cualquier cosa que tenga API en C,
brinda resistencia contra la obsolescencia programada del software,
50 anios en el pasado podias compilar C, 
100 anios en el futuro vas a poder compilar C.

Es 100% software libre, bajo licencia MIT, esta todo en Github,
Nim esta escrito en completamente en Nim, documentacion esta toda online.


```bash
$ echo 'echo "Hola Mundo"' > hola.nim

$ nim c -r hola.nim          # C
Hola Mundo

$ du -h hola
20K     hola

$ nim cpp -r hola.nim        # C++
Hola Mundo

$ nim objc -r hola.nim       # ObjectiveC
Hola Mundo

$ nim c --os:windows hola.nim
$ wine hola.exe              # Windows
Hola Mundo

$ nim js -d:nodejs hola.nim  # NodeJS
$ nodejs hola.js
Hola Mundo

$ nim e hola.nim             # Interpretado (Sin Compilar)
Hola Mundo

$ nim js hola.nim            # Web (Frontend)
```

- [Visita la web de Nim para descargarlo y aprender mas...](https://nim-lang.org/learn.html)
- [Nimble](http://nimble.directory)
- [NimWC](https://nimwc.org/login)
- [Grupo de Telegram en Español](https://t.me/NimArgentina)
- [Telegram English Group](https://t.me/nim_lang)

Dennis Ritchie tenia razon...
👑