loading...

Finding a programming language to call home

opensussex profile image gholden ・2 min read

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.

Over the years I've used many different languages. But I've always felt like none of them quite did it for me. I never found one I could call home.

Now, this isn't going to be a post about bashing languages. There are reasons why people use certain languages. These reasons could be purely economical (language X has a great prospect for career progression), they could be purely technical (language Y is great for doing concurrency for example).

I'm the sort of person that will read a programming language book for relaxation. I might not even use the language. I might just read about a language, out of curiosity. One of the main reasons is so that I am able to have a view on what languages are out there, and what they're suitable for.

But deep down, there is another reason I look at different languages. I want to find one that I can call home.

Now, for years, I've been programming in a variety of Object Oriented Languages. I've never really felt OOP, as a paradigm, really did it for me. I remember when I first learnt it, and my University Tutor was insisting that this is how the world IS. It just didn't fit in how I thought about the world. But I accepted it, and just went with it. First in C++ then in Java.

Over the last few years I've gotten the Functional bug. So I've toyed around with Haskell, Elixir, Elm, oCaml... and then someone said to me that I should try Lisp. Now Lisp is a language that's been on my radar for many many years. But I just didn't get it. I really didn't. But something has clicked. Something over the last few weeks. It's like a light has turned on. I feel born again!. I've started to learn Clojure - and it feels really good. It feels pretty wonderful!

I think I might have found a programming language I can call home....

Watch this space.

Posted on by:

opensussex profile

gholden

@opensussex

I'm a programmer that's interested in trying to keep things simple.

Discussion

markdown guide
 

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

 

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 :)

 

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

 

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.