
Issue #19859 has been updated by rubyFeedback (robert heiler). Note that python chose startswith(); Java chose string_object_here.startsWith(). In regards to "retain interface compatibility": I do not think matz wants to deprecate/remove .start_with?() and .end_with?(), so the only possibility would be to add aliases. I am not sure such aliases should be added, but I do not quite mind either way; personally I'll just keep on using .start_with? and .end_with?. I believe part of the issue here - aka "not proper / correct english" may arise from thinking that ruby is necessarily adhering to the english language (only), 1:1, which I do not think is the case. There is also expressiveness in a programming language (see python choosing "def foobar():" aka def too). This also reminds me a bit of the older File.exist?() versus File.exists?() discussion, by the way. People may reason from an OOP point of view ("object, do you exist?") or a Shakespeare point of view ("oh thou pretty world, in where this object does exist?" or more succinctly "if object exists? do call this method"; these style-questions sometimes come up, e. g. users who use "if condition then"; they seem to prefer seeing the "then" visually, which I always found odd. I never got into the habit of using "then".) ---------------------------------------- Feature #19859: Start & Finish, Begin & End https://bugs.ruby-lang.org/issues/19859#change-104443 * Author: thoran (thoran not blank) * Status: Open * Priority: Normal ---------------------------------------- In English "start" is paired with "finish" and "begin" is paired with "end". While "start" and "begin", and "finish" and "end" have similar meanings they are not the same. Hence it should be: `String#begin_with?` & `String#end_with?` or maybe `String#start_with?` & `String#finish_with?` or both; but not certainly not `String#start_with?` & `String#end_with?` as it is presently. Further, I would argue that it should be only `String#begin_with?` & `String#end_with?` because "start" and "finish" imply temporality and strings don't have that connotation. Hence the solution here for me would be to: `/String#start_with?/String#begin_with?/`. If however there is a desire to retain interface compatibility and to adhere to TMTOWTDI, then introduce both: `String#begin_with?` and `String#finish_with?` -- https://bugs.ruby-lang.org/