Skip to content

This language is not as advertised #35

@gingerBill

Description

@gingerBill

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions