I know it’s too late to change anything but I have to say, the syntax looks a little too academic and too verbose.
Not only that, I find it even inconsistent.
To make it more practical and to be consistent with the rest, I propose the following changes.
-
Allow runs in Specifiers, e.g., instead of
<transace><decides>
, allow,<transact, decides>
-
It’s kind of dumb to repeat the same Using keywords every time.
Allow,
using { /Fortnite.com/Devices; /Verse.org/Native}
and also allow the following to make it consistent with the code Blocks
using :
/Fortnite.com/Devices
/Verse.org/Native
-
Get rid of “var” and “set”. It makes the code look ugly and inconsistent with the rest of the syntax.
So to define a Constant, useMyConstant<constant> : int = 1
To define a variable, just don’t specify<constant>
, e.g.,MyVar : int = 1
And to set a variable, just do this.MyVar = 2
instead ofset MyVar = 2
It looks bad.
And if you try to set a constant, you will get a compile error anyway. -
To instantiate a class with default values, currently, you have to do something like this
MyClass {A := 1, B := 2}
I think it’s not consistent with the rest of the syntax. A colon is used when defining a new var, thus the syntax should look like this.MyClass{ A = 1, B = 2}
It’s shorter and more consistent. -
I don’t like the way Verse reverses everything. It might be too late to change the whole syntax but we can at least use more common naming standard.
Please don’t use Snake case. It takes more effort to type and makes the code longer. Screen space is precious, you know.
Just use Camel case variables. Pascal case for Classes. Lowercase for internal types and so on. Verse is doing things backward pretty much for everything including naming convention. Why?? -
Just use
bool
instead oflogic
. I laughed when I first sawlogic
, When I heard that there is no boolean type from the earlier presentation, I was really puzzled. But it turned outbool
is justlogic
, the name changed. I don’t really see the difference. Yeah, you can differentiate the underlying meanings if you really want but we all know what it does. I have no problem accepting a failed logic asfalse
.
We will see what the academic people will say.
Thanks.
ps. One thing I don’t fully understand is the use of <decides>
and []
to call a function within if
Is it really necessary to call the function with []
? It makes it really confusing to access an array and to call a function. Is it really wrong to call a function that returns a bool? Again, I think the idea came from academics, ignoring practicality and common conventions.