Issue #16275 has been updated by zverok (Victor Shepelev).


> Applied in changeset git|fb6a489af2765a3b56e301adf0019af6bbad6156.

> Revert "Method reference operator"

---

> "Ruby is no longer my project. It is the Ruby community's project" ˇ˝Matz (as quoted by Bozhidar Batsov)

For my 15 years of writing in Ruby, teaching Ruby, documenting Ruby, contributing to Ruby, it is the sole worst thing that happened. 
Just to summarize:

* The **feature** which is:
  * short, concise and elegant
  * doesn't conflict with any other feature
  * consistent with the rest of the syntax, and with the recent years of evolution towards functional;
  * discussed by dozens of people for multiple years (with a general agreement "it is necessary, just let's invent the best syntax for it")
  * was already merged and lived through preview-1 and preview-2
* ...was **reverted**, because:
  * some of the core team doesn't like "people invent new things basing on this feature" and it is now a bad thing
  * some of the core team just don't like it at all or don't see any value or don't like the particular syntax
* ...and it was done:
  * in a "stealth" deal-with-it manner (be aware that automatic comments "Closed via changeset" aren't sent to ruby-core mailing list)
  * without an announcement of any consensus of the core team, even post-factum one (I **can** assume it was decided on yesterday's "online meeting to confirm spec of 2.7" #16333 - but apparently "general population" doesn't deserve to know what was agreed there)
  * without explanations of the _reason_ of reverting and future of the idea (nobody needs atomic native method references? they would be in Ruby 3.0, just the syntax/consequences would be rethought? Ruby turns off from "functional" ideas altogether with awesome one-size-fits-all numbered block parameters?)
  * without comment from Matz, which such a "minor" thing probably doesn't deserve anyways, right?..

This could probably the last drop to lose interest in Ruby's evolution and governance. So be it.

Thanks for everything, anyways.

----------------------------------------
Feature #16275: Revert `.:` syntax
https://bugs.ruby-lang.org/issues/16275#change-82659

* Author: naruse (Yui NARUSE)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
`obj.:method` is introduced at r66667 by #12125 and #13581.
It encourages the functional programming style in Ruby.

But this shorthand syntax is just for methods of `self` without arguments.
It causes another feature requests like #16273 (and lambda compositions like #15428).

Such features will introduce a new view of Ruby but no one illustrates the whole picture yet.
I worried about such patch work may cause a conflict with future expansion of functional programing style or a just a garbage feature.

`.:` syntax is introduced in 2.7.0 preview1, not released in production yet.
How about reverting at this time and re-introduce with a big picture.

---Files--------------------------------
dot-colon-vs-std-benchmark.png (8.69 KB)


-- 
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>