Go for an alternative

Published .. 16-07-2024
Type ....... article
Tags ....... go, v

I love Go as much as the next developer. It has fast compilation to native code, making it efficient. The standard library is robust, offering a wide range of functionalities right out of the box. The language's simplicity is one of its most attractive features, and the tooling that comes with it is top-notch.

However, this simplicity can be a double-edged sword. When I read code I haven't written, I truly appreciate the straightforwardness. This also applies when I revisit my own code after some time has passed. The clarity and lack of unnecessary complexity make understanding and maintaining the code much easier. Yet, when working on my own small private projects, I often find myself craving a language that offers more expressiveness and is a bit more fun to work with.

Recently, I've been exploring a few alternatives:

Nim: It's an interesting language with many appealing features. However, the Python-like syntax and indentation rules don't work me. I prefer a different style for readability and structure.

Zig: This language is gaining popularity, especially among the "cool kids" in the programming community. Its comptime functionality is particularly impressive. Despite this, Zig feels a bit too low-level for my taste, making it less enjoyable for personal projects where I seek a balance between performance and higher-level abstractions.

V: Unfortunately, this is the one that comes with many warnings. But it has potential, and I have decided to test it on a few private projects because:

  • Rapid Development: V boasts very fast compilation times, like Go, which can significantly speed up the development cycle. This makes it ideal for quickly iterating on small projects.

  • Simplicity and Readability: V maintains a syntax that is clean and easy to read, similar to Go. This simplicity is something I value highly in a language as I only develop for a minor part of my time.

  • Modern Features: V includes some modern language features that make coding more enjoyable and expressive. This could bring a bit of fun and creativity into my coding process.

  • Memory Safety: The language promises to be memory-safe without needing a garbage collector. This can lead to fewer bugs and better performance, which is crucial for small projects where you want to ensure reliability without extensive testing.

  • Active Development: The V language is under active development, and its community is enthusiastic. This means there is potential for rapid improvement and new features that could enhance the development experience.

  • Learning Opportunity: Experimenting with V provides an opportunity to learn a new language and paradigm. This can broaden my programming skills and offer new perspectives that I can apply to other projects.

By testing V on a few private projects, I hope to better understand its capabilities and see if it can become a valuable tool in my programming toolkit.