Add a :GetHeirs() Alias

As a Roblox developer, it is currently too hard to spell the word Descendants, this is the only built in function which I have always struggled with spelling, and my often go to spelling of it is ‘:GetDecendants’ which of course yields an error.

If Roblox is able to address this issue, it would improve my development experience because I would no longer have to type :GetDecendants into google every time I want to go to the developer hub so I can then copy and paste the correct spelling into my script, this is due to the fact ‘Heirs’ is a lot easier to spell and therefor would greatly increase my development workflow, I also feel the name is more logical given what the function does.

Just to clarify I want :GetHeirs() to have the same functionality of :GetDescendants().


This may seem stupid, but this is actually a serious hinderance to my workflow, and this would genuinely save me a lot of time.

16 Likes

Do you have intellisense on? You shouldn’t have to type out the word every time.

6 Likes

The intellisense doesn’t always understand what you’re calling a method on, that can’t save you here.

11 Likes

Not to come off as rude, but I learned to spell Descendants specifically because of Roblox and I have to assume you can learn too. There are a few confusing API members (off the top of my head I still don’t know which function to use for RemoteFunctions, as an example) but this isn’t one of them.

24 Likes

This definitely seems unnecessary. Spend a few minutes typing out “descendants” over and over and over again to get used to it - that’s what I do. There’s no need to create a new API just for spelling reasons - that would unnecessarily complicate code, especially since “heirs” is much more disconnected from the child/parent structure than “descendants.” Some other options for you to try are…

  • Intellisense, as Thomas mentioned
  • Use AutoHotkey and set up hotstrings to replace instances of “getd” or something with GetDescendants(). I have this for WaitForChild and game.Players.LocalPlayer and it’s great.
  • Pronounce it in your head in a way that helps you remember it. I read it as “desk-endant.”

Ideally, API should never need to be changed after release, and it doesn’t make sense to do so because it can take a bit to learn the spelling of.

6 Likes

If you forget, try to spell descend first, of course my tip won’t help if you still spell it decend, if it sounds wrong for you it’s alright now, just add ants (I don’t know much about etymology, but I don’t think you should see it as a prefix or anything) to make it descendants, which indeed come from descend.
image

1 Like

There is also the fact im 15, and im not the only one experiencing this issue, if roblox wants 10 year olds to get into development, having complex spelling such as descendants would come off as confusing, in addition to the fact I know several other developers who find this specific function a problem.

As I said its sounds stupid, but it is still something I think would improve my development experience and hence I suggested it, this category is not only for major QOL changes.


@buildthomas @ChipioIndustries

Intellisense does not work if the instance does not yet exist unfortunately, if roblox were open to making it more intelligent this would definitely be a more viable option, but id imagine there is already a feature request for this.

I mean quite honestly you could make t he same point for :GetHeirs. They could type :GetHairs, :GetHares, or even :GetAirs.

Also a heir implies that it acquires the properties of its parent or that it’s only one instance.

2 Likes

Continuing in the same vein, BackgroundTransparency is hard to type (the user could misspell it as “BackroundTransparency” or something) so we should introduce an alias MainTransparency because it’s easier. And you know what, Transparency is also hard so we should have an alias SeeThru to make that one easier and then maybe MainTransparency could become MainSeeThru instead to make it super easy. Hey, there are actually some more hard ones too…

The above is ridiculous and hyperbole, but I hope it illustrates why this isn’t a fantastic idea. Frankly, if this is actually hindering anyone significantly, they’d be far better served (and that’s an understatement) by just practicing their spelling and typing. Bloating the API with aliases that are less descriptive than their actual names is simply not the solution to this problem.

For reference, and because this discussion is indeed somewhat about semantics, here are the definitions of the words:

Heir: a person legally entitled to the property or rank of another on that person’s death; a person inheriting and continuing the legacy of a predecessor.

Descendant: a person, plant, or animal that is descended from a particular ancestor [I don’t really like this one because it’s circular - notice that the word “descended” appears];
a machine, artifact, system, etc., that has developed from an earlier, more rudimentary version.

While at first they seem similar, these words mean two rather different things. Heir almost always refers to a person (unless it’s being used metaphorically, perhaps) and carries a notion of passing along something materially valuable: like money, land, or power. Descendant can apply to a person, an animal, or a thing, and mostly just signifies relation. For example, both “dogs are the heirs of wolves” and “the universe is an heir of whatever came before the big bang” sound kinda funny. Essentially, descendants has a broader meaning, making it a natural choice to describe instances that share a common ancestor.

8 Likes

While I can see why this could be an issue, programming in itself is incredibly technical especially with naming. If you ever wanted to build this into a career, you’d have to learn how to get used to it. The implied naming that :GetDescendants() vs. :GetHeirs() doesn’t make sense to change. It would actually be somewhat bad naming if they changed it & I don’t see the need for two methods to exist for the sake of backwards compatibility.

Im not asking anyone to change it, im asking for them to make an alias function.

Once again it may seem ridiculous, however this category is not for requesting publicly relevant ideas, its for requesting things which would make your development experience easier, and the one thing that bugs me regularly is having to spell descendants (Ironically spelt it so many times for this post I can spell it now), you might not like the idea, but I believe it will improve my development experience, hence the post and hence the entire point of this category .

I think the real feature request here is to make intellisense smarter.

11 Likes

If you prefer im happy to write up a feature request for making intellisense work for yet to be created instances, however id rather this still stood since after discussion a few people ive been talking to said they would prefer GetHeirs() simply because its shorter.

Support! I think having a shorter term for :GetDescendants() would be really nice to use as I myself don’t really spell out “Descendants” a lot as I’m not fond with the word too much and having a shorter-term/alias for it like :GetHeirs() would become very useful.

Having to type out :GetDescendants() onto the Developer Hub or anywhere that can help us developers is really a pain and having a shorter term would be beneficial for me and other developers out there who want to type out :GetDescendants() frequently and want to type it out shorter. I would personally use this myself in my games so I can understand it better than usual.

Interestingly, already know this from the original post and replies but for me. it would be nice to be the same. Another way is maybe to have a setting or different function to either use GetHeirs() or GetDescendants() as many might not want this change.

1 Like

I’m not gonna lie, half the errors happen because of this or other long misspellings. To solve the issue for all such API terms, here’s a more general idea:

Autocorrect right now only works up to one nesting within an object. Meaning all the functions and properties work for an object’s child, but not the object’s child’s child. At that point and beyond, it’s all up to us to spell everything right. I’ve always seen this as a problem, and I assumed it wasn’t fixed because it was inherent or something. But, I realize now, that it’s much easier to have the autocorrect window pop up each and every time expect when writing a comment.

6 Likes

I don’t doubt people will prefer a shorter name, however in my opinion it is less descriptive and as others have pointed out you’ll end up with tons and tons of aliases for every long name in the API, which will likely cause greater confusion as scripts may contain a mixture if people combine what they learn from different tutorial sources.

It’s bad enough with deprecated members still existing in tutorials confusing new scripters, but having unecessary additions simply make it worse.

Is this post implying that people who aren’t a Roblox developer wouldn’t have trouble spelling this?

Couldn’t you just write your own function?

local function GetHeirs(Instance)
   return Instance:GetDescendants()
end
1 Like

Its a bit annoying to have to copy that into several scripts / require a module every time I wish to use it, would take about the same quantity of time as having to copy paste the spelling from dev hub.

I mean that’s just a part of programming. If it’s seriously that much of a hassle you can use _G:

 _G.GetHeirs = function(Instance)
    return Instance:GetDescendants()
end

Alternatively, you can do what I did when I first started programming and make a module full of functions you use a lot, then make a plugin that automatically adds it to your projects and requires it in your scripts for you. It’s a bit of work in the short run but you won’t have to write out as much in the long run.

7 Likes