Because author kinda twisted terms to make it seems he achieved the impossible. Felt like he did better than rust+ada+haskell, all without using memory and faster than an eyeblink.
Maybe the author just likes to implement programming languages and sets high goals. All those who have experience with this know that it is a lot of work. Apparently, the author has been working on this for many years and has achieved a lot. I recently bought the Packt book; what is not clear to me at the moment is what are the specific innovations over the other already established languages. Thus, it would be helpful if on the main page of the language there was an essay on why the author thinks there is a need for a new language, and what the specific advantages are with respect to concrete features of the other languages.
The problem is that in the initial releases the "high goals" were listed as "features" of the language, not as planed improvements of the initial implementation. So even now when I read a list like in the article, I'm not sure which are already implemented and which are just wishes, but after the initial bad impression I'm not bother to check.
That is absurd. He's not saying "I have an idea, and with a bit of help we might reach extraordinary numbers", he claims "better faster leaner than everybody else".
Nice to see he's kept his word and following through as is the community. Really great and lovable group of folks. Sometimes there are cultural differentials, but everyone is really great and with a primary and essentially only rule of "be nice" - I think it's a breath of fresh air in this screwed up time.
It's not uncommon and no bad practice at all to fully specify a language before it is fully implemented. There were a couple of languages where the compiler took even many years to come into existence after the language was published, or was never finished. Other people - like e.g. me - develop the language specification and compiler in parallel. Just different ways to look at it.
How is it related to spec'ing the language. It's just fuzzy use of terms to appear extraordinary. That's all. Btw he still didn't answer my simple question, meanwhile everybody is commenting saying how nice the community is, how people should help instead of criticizing and deflecting the actual issue people had with the project.
I don't have time to help every single open source project that makes bold claims. I also don't demand anything, I just moved V to my ignored list. It may be unfair, and I may take a look in a few years again if there are enough solid news about V floating around.
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.
Thanks for the link; that's going in the direction I was looking for. So could one say that V is essentially the Go the author would have wanted, and the new language is justified by the "~20%" difference, and an independent development is necessary due to the slow pace at which Go is evolving? So that would be a similar motivation as Nim versus Python, or Oberon+ versus Oberon.
The feature differences in list form are helpful; but the priorities and motivation for individual features would also be interesting; e.g. why is "variable shadowing" bad and why is the V approach better, and how can smaller runtime and binaries smaller by a factor of 100 be achieved with a feature set that is at least 80% the same as Go? Does this really have to do with the language definition, or rather with the implementation?
Can you elaborate? There was never a claim it doesn't use memory (although it does use a lot less memory than most compilers). The language is indeed fast, V compiles itself in 0.3 seconds: