| Really? - No null Then what is `voidptr(0)`? - No global variables https://github.com/vlang/v/blob/master/doc/docs.md#global-va... At least add "by default" to the web site. - No undefined values Which is done by initializing all values to 0. Probably not a good idea to do that for references though. (See also "no null values") - No undefined behavior `*voidptr(0)` is accepted by the compiler. Unsigned integer overflow is accepted by the compiler and UB in the generated C. How can V generate C code free of UB when it can't even generate C code that compiles all the time? - Pure functions by default Excluding I/O, one of the biggest sources of impurity, from your definition of pure is useless. - Generics You don't actually have generics, you have templates. Kind of ironic since Go has actually added generics before V has managed to get a 0.3 release out. The distinction is this: with generics the compiler is able to validate that the generic code type checks prior to substitution/monomorphization. With templated code, it's not possible to perform type checking until the concrete types have been instantiated. V implements templates with all the drawbacks including code bloat and inflated compile times that comes with it. |
The real deal are the many users, supporters, and contributors of Vlang. Where on GitHub (which is easy to check), it has more than many other newer languages (in various cases, more support than a couple of newer languages combined). Those people are the ones that count, who are using and improving the language daily.
"You can't put the genie back in the bottle", Vlang is firmly on the road to success and more popularity, despite its detractors and angry competitors.