DEV Community

Finding a programming language to call home

gholden on November 20, 2019

I've been programming for many years. Started out on my Amstrad CPC464 with BASIC. Back then programming was a hobby, and I absolutely loved it. ...
Collapse
 
juancarlospaco profile image
Juan Carlos

I was the same, I am kinda nonconformist, if you are still open to try...,
I can recommend you a new language that ticked all checkboxes.

nim-lang.org
Nim is a statically typed compiled programming language.
It has Type Inference, can also be Interpreted (NimScript),
can do OOP and Functional programming, with good support for both,
it compiles to several targets, it can compile to C, C++, JavaScript, NodeJS, ObjectiveC, and NimScript.
Theres additional targets like LLVM IR, WebAssembly, Vulkan, etc.
Compiles to tiny single-file dependency-free native binary executables.
Compilation is fast, small binary size, you wont need Nim once compiled.
It runs on Backend, it runs on Frontend. Whole stack with 1 language.
It has 6 Garbage Collectors, including a Rust-like one, or No GC (manual).
It can interoperate with anything that has C/C++ or JS API.
Package Manager builtin, scriptable with NimScript.
Code Beautifier, Style Checker, Documentation generator builtin.
Any performance achievable with C is achievable with Nim, if you know it.
Nim is written on Nim, compiles itself, easy to hack into, MIT licensed.
Compile Time function execution, including compile time FFI, JSON, Regex.
Its multipurpose, it can do anything, web, frontend, backend, scripts, etc.
For me it completely replaced NodeJS, Python, Go.

Hello World:

echo "Hello World"

Tutorial and Docs:
nim-lang.org/learn.html

Collapse
 
opensussex profile image
gholden

I did look at nim a while back - from what I can remember I did enjoy it as a language. I'll take another look at some point soon - currently Clojure has me hooked so want to spend some time with that :)

Collapse
 
galoiswannabe profile image
galoisWannaBe

I find that in multi-paradigm languages, I could do either functional or OOP. The thing that bothers me is dynamically typed languages! IDK why, but, despite Python's amazing everything, it always bugs me when I'm working with integers and doubles and can't specify which I need at the time. JS bugs me even more!

That's why I settled on Kotlin, at least until I get a Kotlin project finished for my portfolio

Collapse
 
opensussex profile image
gholden

I've not properly taken a look at Kotlin - but as it follows similar syntax to C shouldn't be too hard to pick up. Thanks for the recommendation.