Οι προγραμματιστές της γλώσσας προγραμματισμού Nim κυκλοφόρησαν την έκδοση 1.0, υποσχόμενοι στους προγραμματιστές μια “σταθερή βάση” για τον κώδικα τους που δεν θα σπάσει από τις μελλοντικές εκδόσεις της Nim.

Η Nim είναι μια στατική γλώσσα προγραμματισμού που βασίζεται σε έννοιες από τις γλώσσες Modula-3, Delphi, Ada, C ++, Python, Lisp και Oberon. Ωστόσο, δεδομένου ότι είναι μια γλώσσα προγραμματισμού με ένα σύστημα στατικού τύπου, έχει επίσης συγκριθεί με τις Rust, C ++ και Go.

Ο Nim compiler μπορεί να δημιουργήσει executables για distribution σε συστήματα Windows, Linux, BSD και macOS. Επίσης, μεταγλωττίζεται σε C, C ++ και JavaScript. Η Nim διαθέτει ευρεία υποστήριξη επεξεργαστών που περιλαμβάνει τον εγγενή επεξεργαστή Nim, Aporia, Visual Studio Code, Emacs και Vim.

Όπως ανακοινώθηκε προηγουμένως, η Nim 1.0 προορίζεται να είναι η μακροπρόθεσμα υποστηριζόμενη σταθερή έκδοση που λαμβάνει μόνο διορθώσεις σφαλμάτων και νέες λειτουργίες στο μέλλον με την προϋπόθεση ότι δεν θα σπάσουν τη συμβατότητα “προς τα πίσω”. Ωστόσο, αυτή η εγγύηση δεν επεκτείνεται στον εντοπισμό σοβαρών αδυναμιών ασφαλείας, οι οποίες ενδέχεται να σπάσουν τον κώδικα

.

Η Nim εμφανίστηκε το 2008 από τον Γερμανό προγραμματιστή Andreas Rumpf, ο οποίος χρησιμοποιεί το όνομα Araq στο IRC και το GitHub.

Όπως εξηγεί σε ένα blogpost, ο αρχικός στόχος για την Nim ήταν να είναι μια “απλή γλώσσα” που μεταγλωττίζεται σε C και δεν πρέπει να υπερβαίνει τις 20.000 σειρές κώδικα. Θα βασιζόταν σε ένα σύστημα μακροεντολών για την κάλυψη κενών χαρακτηριστικών στο μικρό πυρήνα. Σήμερα, ο compiler και η συνηθισμένη βιβλιοθήκη χρησιμοποιούν περίπου 140.000 σειρές κώδικα.

Με την έκδοση 1.0, ο επόμενος στόχος του Rumpf για τη Nim θα είναι η βελτίωση των εργαλείων ανάπτυξης, όπως το Nimsuggest, ένας μηχανισμός ολοκλήρωσης κώδικα για αρκετούς editors κώδικα, ο διαχειριστής πακέτων Nimble και το εργαλείο μορφοποίησης πηγαίου κώδικα Nimpretty.

Ενώ η Nim μπορεί να χρησιμοποιηθεί για να γράψει έναν kernel, μπορεί επίσης να τρέξει σε micro-controllers και άλλα ενσωματωμένα συστήματα. Και δεδομένου ότι μεταγλωττίζεται σε JavaScript, μπορεί επίσης να χρησιμοποιηθεί για ιστοσελίδες ή για να δημιουργήσει παιχνίδια και εφαρμογές.