Issue #16894 has been updated by jzakiya (Jabari Zakiya).


I was just pointing out that other languages recognized this issue and only fairly recently chose to make syntax changes to explicitly deal with it.

I think using ``//`` is probably the ``least worst`` choice because it's already being used by Python, which has a large user base, and Crystal, which would make it drop-in compatible, and you then wouldn't have to create a whole different process to create ``mindshare`` because the general coding community is becoming used to seeing it and knowing what it means.

Also, as pointed out in the Python PEP, it's the simplest one to edit to change ``/`` to ``//`` on a case-by-case basis is people's code.

I do allot of Crystal programming, so when it made the change to ``//`` in v0.31 (current v0.34) it wasn't that difficult to upgrade old code.

----------------------------------------
Feature #16894: Integer division for Ruby 3
https://bugs.ruby-lang.org/issues/16894#change-85658

* Author: ankane (Andrew Kane)
* Status: Open
* Priority: Normal
* Assignee: matz (Yukihiro Matsumoto)
----------------------------------------
Hi Ruby team,

It'd be great if division in Ruby matched what we all learned in school.

``` ruby
1 / 2 == 0.5
```

New developers wouldn't immediately be confused when they try to do division and experienced developers could stop adding to_f to their code (typically after they get tripped up on the first run). In my experience, floating point division is way more common than floor division. This could definitely break existing code, so I understand it's a decision that shouldn't be made lightly. Overall, Ruby is really intuitive, but this is one place where it's not.

It looks like this was considered for Ruby 2.0 as well as few years ago in #5512, so feel free to close if it's not something you'd like to reconsider right now.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>