API Casing Inconsistency

There are certain parts of the API that just confuses me because they aren’t consistent. They mostly pertain to capitalization.

1.)
Vector3:Lerp()
CFrame:lerp()

2.)
Vector3.x,Vector3.y,Vector2.x,Vector2.y
Mouse.X,Mouse.Y,UDim2.X,UDim2.Y

These are 2 most notable inconsistencies i’ve found and it gets really annoying when you expect CFrame:Lerp() only to get an error or expect Mouse.x or vice versa.

I know that Vector3:lerp() works too as well as uppercase XYZ for Vector3 properties.

But more consistency would be nice. It seems like they’ve moved more toward that though, deprecating lower camel case methods in favor of uppercase ones in the last few years.

the real question is:

Why are synchronous API members called “Async”?

It honestly makes no sense for synchronous methods to be called async. I’m not sure how that suffix even originated.

Part.Velocity
BodyVelocity.velocity

Roblox could roll API generations and let games attach to earlier or newer ones.

[quote] the real question is:

Why are synchronous API members called “Async”? [/quote]

[quote] I know that Vector3:lerp() works too as well as uppercase XYZ for Vector3 properties.

But more consistency would be nice. It seems like they’ve moved more toward that though, deprecating lower camel case methods in favor of uppercase ones in the last few years. [/quote]

Earlier when reading the Mouse’s position I did Mouse.x and Mouse.y and ended up with an error. That adds to it if other properties support both cases. CFrame:Lerp() errors.

[quote] Part.Velocity BodyVelocity.velocity

Roblox could roll API generations and let games attach to earlier or newer ones. [/quote]
This one I discussed with Khanovich. He says they will look into it.
Been a little while since RDC East… so I am not sure much will change soon.

[quote] the real question is:

Why are synchronous API members called “Async”? [/quote]

That’s why I brought it up :stuck_out_tongue:

Someone generate a list of all API entries that are not in the form of:

[tt]Object.someFunction(…)[/tt]
[tt]Object:SomeFunction(…)[/tt]
[tt]Object.SomeProperty[/tt]

I didn’t see if someone already mentioned it, but every CFrame property ever is simply .CFrame, but:

Camera.CoordinateFrame

[quote] I didn’t see if someone already mentioned it, but every CFrame property ever is simply .CFrame, but:

Camera.CoordinateFrame [/quote]

This should be resolved at some point in the future.