TL;DR: An introduction to V programming language and my thoughts about how it will replace Python (or at least I hope that it should replace Python).
1. How I met V
I’ve seen V before when looking at Volt . I was finding a good application that’ll increase my productivity. I’ve seen V twice, the first time it didn’t impress me, but I like Volt and still waiting for its Linux version because I use Linux on a daily basis. At first I was like: “Well it’s just another new language trying to replace the God C++, nothing new here, it’ll just step down sooner or later”.
(God C++ is an expression I’m using to make fun of myself, I also use much Rust, Node.js, Python, Lua, … in my projects.)
I was wrong to myself. The second time I’ve been watching V recently, I was convinced about its development and decided to use V in some of my next projects. I didn’t understand it before and rushed into making a blind assumption.
2. V convinced me
I like LLVM and how it is making things very easy for someone to create a new programming language. It only takes weeks, not years like before when we didn’t have LLVM. These popular languages use LLVM as backend: Kotlin, Swift, Rust, …
What I see about LLVM is that it can help you build a programming language for your own needs faster and target cross-platform code generation easier. Now thanks to WebAssembly, LLVM-based languages are mostly portable though PC, Mobile and Web. I’ve seen a Web demo written in Kotlin too. I have no other comments about LLVM’s performance for the language you build upon its ecosystem. I was also thinking that all new programming languages should be built with LLVM.
V doesn’t use LLVM. Knowing that suddenly makes me realize how complicated LLVM is. In order to develop a programming language, you’ll have to pull massive chunks of libraries and big toolchain into your computer and suffer with really long build time with those. Your code writing becomes easier, yes. But not your whole development pipeline.
V made me think about how efficiently we can still manage for building such a complex software. Its compiler is written in itself, V. Compiler’s source code is automatically generated from V codebase. Interesting, right? Rust and Go also written in itself, but I didn’t find it fascinating as much as V. Because V is so simple! That’s when you feel you can learn everything about it from syntax to the core implementation. You would even want to contribute to V.
I won’t advertise again about V’s great characteristics, it’s already there on its website and anywhere. See it here for yourself: https://vlang.io/.
Most of other languages has failed to make me believe in their long term future. V doesn’t and never will. It’s simple & efficient everywhere that it appears, even its website! If V team can make such a good website like that, no doubt that they can do even more for everything else. In fact, V’s development is going too fast, faster than other new programming languages and even greater than some of popularly developed languages out there. Checkout its GitHub and you’ll see that truth.
3. How I will use V
I’ve joined Discord community of V and talked with members here. I asked about how V was built and the original author of V explained to me. People here are very friendly. It also has Vietnamese channel so if you’re interested in V, we can discuss together. See you there!
I’m also looking for a way to code lightweight web client as a desktop application for my project. Luckily, V is able to. Perfect! I’m not going need Electron anymore. I thought I would build it in Rust, but now I’m sure that it can’t beat V for what I need.
4. V will (or should) replace Python
For a programming language to gain popularity fast, it needs a strong edge. That edge should be able to compete with other languages very hard and people won’t replace their tools easily. Despite the fact that I like V very much, I’m not going to actually replace languages that I use with V.
It’s possible to do almost everything in V, from web, desktop, mobile software to an operating system (vos project). But here is what I personally think:
1. For Web development, I feel good with Node.js, it’s fast enough and convenient with tons of libraries & tools. But honestly I use it to build Web UI and API server only, I don’t trust Node.js for much larger projects.
2. Desktop/Server development: C++ is already powerful for everything in the field and Rust is also getting mature quite fast. I will still prefer C++ for complex desktop software and Rust for computational server dealing with data processing, analytics, etc.
3. Mobile: currently I can’t give comments, I work for Mobile too but I don’t think I have enough experience to analyze it deeper.
4. V’s advantages over Python is: fast, simple to use, easy to compile/package for final product, great live code-reloading feature. Those make me naturally think that V is a great alternative for scripting language, although it’s a real programming language.
5. In my opinion, Python is slow enough to be replaced with something else. I use Python too but I always wish Python could have done better.
6. A large number of Python users are beginner programmers, they’ll keep learning new things and V has chances there. For non-software-development jobs (ie: an accountant writing code for cleaning/calculating data, data jobs in finance, …), V is possible to replace Python. Because these approaches take fewer resource to happen and then one day V will make a bigger change in the industry.
5. Closing thoughts
I believe in V’s future and actually contribute to its development whenever I can. My recommendation to readers is: “Learn the V language, you’ll know another great tool to use when it fits the situation.” Now I’m waiting for V’s webview module to be released and will enjoy all moments working with the best desktop web client framework ever!
Let’s learn V!