[Note: parts of this message were removed to make it a legal post.]
The OP asked for comments on the proposal for a new, more descriptive name
for "require_relative". I have a hard time remembering if it is
"require_relative" or "relative_require", which causes me pain and grief
whenever I reach for "require_relative" as I'm coding. Because of this I
would like to leave my comment.
As I understand it, "require_relative" was introduced because of a
fundamental change to LOAD_PATH in Ruby 1.9. Having the current directory in
the LOAD_PATH was deemed to be a problem, and was removed for security
concerns and a sense of correctness. This meant that "require" would no
longer load files based on where the loading files location. Now, obviously,
this caused issues because behavior was changed, and a way was needed to fix
the broken code. Hence "require_relative" was introduced as the solution.
The stated question that began this thread is what alternative to
"require_relative" would you choose, asking only that the new single word
was 7 characters or less. I have a word in mind, but let me first
hypothesize on why "require_relative" was chosen in the first place. On the
surface having a multi-word name for this functionality seems to go counter
intuitive to Ruby's ease and flow that we all love. Why would something so
basic have a name that was so uncomfortable? As I said earlier, I have a
hard time even keeping the name right in my head! Why would the Ruby culture
create and propagate something so out of place and ill-tasting?
Why indeed. I have given this much thought. I have pondered on this subject
throughout the interactions on this thread. Why is it so wordy? Almost
overly descriptive? Where is the sweetness I am used to? Why hasn't Ruby
opened her arms to embrace me with her syntactic sugar? Why? Why Matz, why?
Could it be that "require_relative" is just a bad idea? Could it be that
"require_relative" was left intentionally wordy as some sort of syntax
vinegar to push people away from using that functionality? Not a punishment
per se, but a subtle reminder that something is wrong with the assumptions
that the code is making? A sore thumb on otherwise healthy code? But if that
is the case, then what shorter name can we give to "relative_require" that
would still communicate how ill-fitting and out of place the functionality
is to Ruby? Preferably in 7 characters or less?
My friends, I have the answer:
alias ilias require_relative
I sincerely hope my suggestion, a single word with 7 characters or less, can
help bring some closure to this topic.
~Mike