-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Description
This language is not as advertised
This language does not do over 90% of what is advertised. Most of what is advertised is not coherent with most of the claims you have stated. With the new release of the playground, most of the examples in the docs fail, even many of the extremely basic ones.
- You appear to do very basic tokenization/lexing which you use to naïvely convert the code into C or C++ (through testing of the playground)
- The converter program does virtually no semantic checking other than the most basic type checking
- Name lookups do not respect nested scopes within functions and caused the playground to crash
- There is poor checking for certain characters and tokens you disallow
- Record types and their methods must be declared before use, the type before the methods
- The playground was crashing frequently
- The playground is extremely insecure
You have previously claimed that the V compiler uses no AST. However, most of the features that you claim would require a form of AST to even work, including generics and interfaces. An AST is an abstract syntax tree, which means that it just stores data about the syntax that is in a tree-like format. It's pretty much impossible to not have unless you have a very basic language or doing naïve transformations into another similar language.
You claim that the language has no runtime but the following require a runtime:
- All arrays are dynamic
println- Threads with
go - Synchronization of threads with
runtime.wait() - Automatic memory management
Things that are currently broken:
- Automatic imports
- Interface method calls
- Interfaces have to be declared with `type Foo interface {`
- Foo{a,b} syntax (use Foo{a:a, b:b})
- Closures
- a[i].field
- Locks (lock {}). Use sync.Mutex for now.
- Enums
Disabled features:
- Generics
Why was the playground lacking a lot of basic functionality? If most of these extremely basic features are broken, how could you have made any software in this language other than basic things? -- e.g. Fibonacci examples.
Software claimed to be built in V:
- Volt
- Filey
- Vid
- gitly
- Hot code reloading
Claimed C/C++ Translations into V:
- DOOM
- DOOM 3
- LevelDB
- SQLite
Claims from your "compare" page:
- No null
How would you handle pointers?! In your documentation, you demonstrate that pointers exist. This means that no null is false. Pointers also crashed the playground.
- Much stricter vfmt
And when you mean stricter, what does that mean? It was also failing quite often even on basic code in the playground.
- Cheaper interfaces without dynamic dispatch
So how do they work? Is it just static dispatch?
What you have promised does not even come close to what is delivered.