https://redmine.ruby-lang.org/https://redmine.ruby-lang.org/favicon.ico?17113305112020-12-31T21:13:10ZRuby Issue Tracking SystemRuby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=896692020-12-31T21:13:10Zjeremyevans0 (Jeremy Evans)merch-redmine@jeremyevans.net
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Rejected</i></li></ul><p>jzakiya (Jabari Zakiya) wrote:</p>
<blockquote>
<p>Excuse me if this has been brought up before.</p>
</blockquote>
<p>It has been brought up before, by you in <a class="issue tracker-2 status-6 priority-4 priority-default closed" title="Feature: Add Tau constant to Math (Rejected)" href="https://redmine.ruby-lang.org/issues/13694">#13694</a>, which was itself a duplicate of <a class="issue tracker-2 status-6 priority-4 priority-default closed" title="Feature: Define Math::TAU and BigMath.TAU. The "true" circle constant, Tau=2*Pi. See http://tauday.com/ (Rejected)" href="https://redmine.ruby-lang.org/issues/4897">#4897</a>. I'm rejecting this as a duplicate. However, if you think circumstances have changed since the last rejection, please post what has changed since then.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=896702020-12-31T22:16:39Zjzakiya (Jabari Zakiya)
<ul></ul><p>Well, I guess this regresses to a philosophical|religious issue, it's obviously not technical. :-(</p>
<p>But how can adding <code>TAU</code> in anyway hurt Ruby?</p>
<p>A short list of languages I know of which now include <code>TAU</code>:<br>
D<br>
C# (.NET)<br>
F#<br>
Nim<br>
Zig<br>
Rust<br>
Julia<br>
Python3</p>
<p>What has changed is <code>TAU</code> is gaining more traction in math|science, and is being included in more languages.</p>
<p>But really, Ruby 3.0 has added so much stuff to it, some purely for looks (<code>endless methods</code>),<br>
I don't understand the resistance to adding this one constant, as it requires absolutely no change to the language.</p>
<p>If programmer happiness is really a high priority, this will make allot of us very happy.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=896712020-12-31T22:18:58Zchrisseaton (Chris Seaton)chris@chrisseaton.com
<ul></ul><p>Relevant context is probably Matz's reason for rejection and criteria for reconsidering.</p>
<p><a href="https://bugs.ruby-lang.org/issues/4897#note-41" class="external">https://bugs.ruby-lang.org/issues/4897#note-41</a></p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=896722020-12-31T22:47:54Zjzakiya (Jabari Zakiya)
<ul></ul><p>From that post 3 years ago.</p>
<blockquote>
<p>For the time being, use math-tau gem.<br>
I will add it after (and only after) it became time-proven major, probably due to Python's tau.</p>
<p>Matz.</p>
</blockquote>
<p>Well, Python3 added it, so when do you (empirically?, subjectively?) establish it's become <code>time-proven</code>?</p>
<p>How many other language adoptions does it take (oh btw, added <code>Zig</code> to the list too)?. :-(</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=896732021-01-01T02:13:14Znobu (Nobuyoshi Nakada)nobu@ruby-lang.org
<ul><li><strong>Is duplicate of</strong> <i><a class="issue tracker-2 status-6 priority-4 priority-default closed" href="/issues/4897">Feature #4897</a>: Define Math::TAU and BigMath.TAU. The "true" circle constant, Tau=2*Pi. See http://tauday.com/</i> added</li></ul> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=896752021-01-01T02:14:32Zmame (Yusuke Endoh)mame@ruby-lang.org
<ul></ul><p>jzakiya (Jabari Zakiya) wrote in <a href="#note-4">#note-4</a>:</p>
<blockquote>
<p>Well, Python3 added it, so when do you (empirically?, subjectively?) establish it's become <code>time-proven</code>?</p>
</blockquote>
<p>IMO, the sufficient condition is that it appears in some major textbooks for school.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=896762021-01-01T02:41:41Zmrkn (Kenta Murata)muraken@gmail.com
<ul></ul><p>At least Julia doesn't have <code>tau</code> in its core now. There is Tau.jl, but it isn't a standard library. Following Julia's stance to <code>tau</code>, we can say that it is enough by providing a gem to define <code>Math::TAU</code> for now.</p>
<p>I'd like to know how to use tau in languages you listed up other than Julia, Python3, and C#. Could you tell me the way?</p>
<p>jzakiya (Jabari Zakiya) wrote in <a href="#note-4">#note-4</a>:</p>
<blockquote>
<p>Well, Python3 added it, so when do you (empirically?, subjectively?) establish it's become time-proven?</p>
</blockquote>
<p>I think we can add <code>TAU</code> in core if most mathematicians usually use tau as the circle constant in their academic papers.</p>
<p>I don't know how the situation of tau as the circle constant is changed from the time of the previous proposal. I'd like to show my response to the previous pull-request again.</p>
<p><a href="https://github.com/ruby/ruby/pull/644#issuecomment-123082639" class="external">https://github.com/ruby/ruby/pull/644#issuecomment-123082639</a></p>
<blockquote>
<ul>
<li>It looks to me that tau as the circle constant isn't popular enough to be introduced in Ruby's core although it has good property.</li>
<li>So introducing tau is hurt the future Ruby now. Core constants cannot remove easily.</li>
<li>It's not Ruby's role to help further the acceptance and adoption of tau.</li>
<li>I found that Python and Julia rejected similar proposals. See <a href="https://bugs.python.org/issue12345" class="external">https://bugs.python.org/issue12345</a> and <a href="https://github.com/JuliaLang/julia/pull/4864" class="external">https://github.com/JuliaLang/julia/pull/4864</a>.</li>
</ul>
</blockquote>
<p>So, I want to know how many mathematicians accept such tau. Do you know how many academic papers that uses tau as the circle constant have been published so far?</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=896792021-01-01T06:46:45Zjzakiya (Jabari Zakiya)
<ul></ul><blockquote>
<p>So, I want to know how many mathematicians accept such tau. Do you know how many academic papers that uses tau as the circle constant have been published so far?</p>
</blockquote>
<p>How can anyone ever empirically answer these question? And why should they be <em>"the"</em> deciding factor?</p>
<p>Have you done any research to answer these questions?</p>
<p>Have you read the <code>Tau Manifesto</code>? <a href="https://tauday.com/tau-manifesto" class="external">https://tauday.com/tau-manifesto</a></p>
<p>Have you seen the <code>Tau</code> videos, like the Numberphile one? <a href="https://youtu.be/83ofi_L6eAo" class="external">https://youtu.be/83ofi_L6eAo</a></p>
<p>Every year there is a growing body of work promoting|using <code>Tau</code>, and more languages including it.</p>
<p>I don't think I can give you anymore of an objective, rational, and logical reason than these sources (with others).</p>
<p>Like I said, this seems to ultimately be a philosophical|religious issue, and you're just not believers yet.</p>
<p>Maybe in time hopefully you will be, but you must find your own way to acceptance, because others already have.</p>
<p>Let's hope 2021 will be a better new year. Happy New Year!</p>
<p>Addition:<br>
This video (from 2017) gives you one textbook that uses <code>TAU</code>, and other places of usage.</p>
<p><a href="https://www.youtube.com/watch?v=k7MuXCOlE6M&feature=youtu.be" class="external">https://www.youtube.com/watch?v=k7MuXCOlE6M&feature=youtu.be</a></p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=896952021-01-01T15:46:51Zjzakiya (Jabari Zakiya)
<ul></ul><p>To help answer this question,</p>
<blockquote>
<p>IMO, the sufficient condition is that it appears in some major textbooks for school.</p>
</blockquote>
<p>and this,</p>
<blockquote>
<p>So, I want to know how many mathematicians accept such tau. Do you know how many academic papers that uses tau as the circle constant have been published so far?</p>
</blockquote>
<p>I reviewed a couple of the <code>TAU</code> videos by Micheal Hartl, the author of <code>The TAU Manifesto</code> and creator of <code>TAUDAY</code>. He provides examples of academic and educational resources where TAU is being used and formally taught. I have extracted some of that information here as examples to the answer to these questions.</p>
<p><code>Textbook</code><br>
<strong>College Trigonometry: With Extensive Use of the Tau Transcendental</strong> (free downloadable version)<br>
<a href="https://studyres.com/doc/17428279/college-trigonometry-with-extensive-use-of-the-tau-transc" class="external">https://studyres.com/doc/17428279/college-trigonometry-with-extensive-use-of-the-tau-transc</a>...</p>
<p><code>Educational videos, and learning resources</code><br>
<strong>Kahn Academy</strong><br>
<a href="https://www.khanacademy.org/math/trigonometry/unit-circle-trig-func/long-live-tau/v/tau-versus-pi" class="external">https://www.khanacademy.org/math/trigonometry/unit-circle-trig-func/long-live-tau/v/tau-versus-pi</a></p>
<p><a href="https://www.khanacademy.org/math/trigonometry/unit-circle-trig-func/long-live-tau/v/pi-is-still-wrong" class="external">https://www.khanacademy.org/math/trigonometry/unit-circle-trig-func/long-live-tau/v/pi-is-still-wrong</a></p>
<p><a href="https://blog.khanacademy.org/happy-tau-day/" class="external">https://blog.khanacademy.org/happy-tau-day/</a></p>
<p><strong>Numberphile Video</strong><br>
<a href="https://youtu.be/83ofi_L6eAo" class="external">https://youtu.be/83ofi_L6eAo</a></p>
<p><strong>Papers</strong><br>
<code>PI is Wrong</code> - <a href="https://www.math.utah.edu/~palais/pi.html" class="external">https://www.math.utah.edu/~palais/pi.html</a></p>
<p><code>The TAU Manifesto</code> - <a href="https://tauday.com/tau-manifesto" class="external">https://tauday.com/tau-manifesto</a></p>
<p>You can find many more examples of <code>TAU</code>'s use with more research|searching.</p>
<p>It has been 11 years now since 2010 when Michael Hartl wrote the <code>The TAU Manifesto</code> and started <code>TAUDAY</code>.<br>
It is gaining greater academic, educational, and scientific acceptance|use every year.<br>
It is being included into more software languages and packages every year.</p>
<p>Hopefully, the totality of this growing body of work will establish <code>TAU</code> has met Matz's <code>time-proven</code> criteria.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=896962021-01-01T15:54:24Zchrisseaton (Chris Seaton)chris@chrisseaton.com
<ul></ul><p>It's difficult to work out if this is a genuine proposal or a meme.</p>
<p>Surely Jabari is joking when they say 'you must find your own way to acceptance, because others already have'? Is this a mathematical argument or a sort of play on cults? A lot of the language you're using and used in the 'manifesto' also just seem like huge red flags that a joke is being played on busy software maintainers here. The manifesto itself admits it's 'quirky, quixotic', and it definitely seems more fun that serious proposal. The Python bug tracker issue seems to have lots of people who think it's just a joke.</p>
<p>Can you clarify if this is a serious proposal, and if so explain why it seems to have so many red flags both to people here and for example in the Python issue tracker? Or is it half serious proposal and half something whimsical as well?</p>
<p>Because I can't read the tone and I think others can't as well. Can you help give some frank context?</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=896972021-01-01T16:42:16Zjzakiya (Jabari Zakiya)
<ul></ul><p>This is a very serious proposal, and <code>TAU</code> is a very serious concept - the unit turn.</p>
<p>As Michael Hartl raises, trying to get people to accept <code>TAU</code> as better than <code>PI</code> is more about emotional attachment to a familiar concept, than an objective assessment and understanding of the need to <code>change</code> the thinking.</p>
<p>For humans, change is hard, especially for things they are familiar with.<br>
The best time to teach anything (math, music, art, swimming, dietary habits, etc) is when humans are young, and haven't developed a resistance to change from something they are familiar with (whether good or bad). Habits are hard to break.</p>
<p>Look at how hard it is to get people to accept they need to wear facemasks to protect themselves|others in this pandemic!</p>
<p>Everybody here is smart. Everybody here has been trained in the scientific method, to be (mostly) objective and rational.</p>
<p>But everybody here is also human, and habits die hard.</p>
<p>As stated, Python went through a long process to finally come to a point where enough people <code>accepted</code> including <code>TAU</code>, so now its in Python3. <code>GO</code> is having a harder time accepting it. <a href="https://github.com/golang/go/issues/40663" class="external">https://github.com/golang/go/issues/40663</a></p>
<p>But D, C#, F#, Nim, Zig, Rust, Julia, and others I just don't know about, have accepted it. Why?</p>
<p>The simple answer is because those communities are comprised of different people who have <code>accepted</code> it, that's all.</p>
<p>They've probably read the same materials, seen the same videos, raised the same arguments, but in the end they said yes to including it.</p>
<p>So when I said</p>
<blockquote>
<p>you must find your own way to acceptance, because others already have'?</p>
</blockquote>
<p>that's exactly what I mean. I don't know what it will take for the people who control Ruby's development to <code>accept</code> that <code>TAU</code> should be included. Only you will know when you reach that point.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=896982021-01-01T17:04:37Zlarskanis (Lars Kanis)
<ul></ul><p>Almost 25 years ago I started my computer career with 3D programming. Very low level to that times, but using a lot of trigonometric computations. Using PI always felt like something half done. It's strange to tell the computer it should turn the object by 6 half rounds (which is PI) instead of 3 full rounds (which is TAU).</p>
<p>I don't remember any scientific publications using TAU and given that it's just <code>2*PI</code>, I would never add an additional gem just for this constant. However from a practical programmer perspective TAU is often more meaningful than PI. So IMHO this is something that should be added to ruby core.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=896992021-01-01T20:58:01Zjzakiya (Jabari Zakiya)
<ul></ul><p>FYI.</p>
<p>Yesterday (the last day of 2020) before I created this issue to include <code>TAU</code> in <code>Ruby</code>, literally seconds before, I opened the exact same request in <code>Crystal</code>, as <code>Ruby|Crystal</code> are my two favorite languages.</p>
<p>After one day, <code>Crystal</code> is going to add it.</p>
<p><a href="https://github.com/crystal-lang/crystal/issues/10165" class="external">https://github.com/crystal-lang/crystal/issues/10165</a></p>
<p>This is what I mean by it's <em>just a matter of acceptance</em>.</p>
<p>In the case of <code>Crystal</code> a main dev read the Manifesto (which he never heard of before) and immediately accepted|embraced the concept, and even wants to promote it via the language. Here, it's been met with caution and resistance. Same issue, same information, different people reacting to it differently.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=897002021-01-01T21:03:45Zchrisseaton (Chris Seaton)chris@chrisseaton.com
<ul></ul><p>I don't think this manifesto helps itself by conflating a serious argument with a lot of silliness and jokes. You can see how people react to it by wondering if they're being trolled.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=897012021-01-01T21:27:41Zjzakiya (Jabari Zakiya)
<ul></ul><blockquote>
<p>I don't think this manifesto helps itself by conflating a serious argument with a lot of silliness and jokes. You can see how people react to it by wondering if they're being trolled.</p>
</blockquote>
<p>Well, I don't see anything specific in the Manifesto that is silly or a joke. At the end he answers actual questions that have been posed to him that you may take as silly questions, but that doesn't detract from the merits of the issue. And in parts of some of his videos he takes a lighthearted approach to redefining the culture around <code>PI</code>, but that's to get people to loosen up their resistances.</p>
<p>Remember, most people in the field of physics didn't just jump on the Relativity bandwagon immediately, from that (then) nobody Einstein. These things take time for each individual to come to peace in their own minds about the need to change their thinking. Look at Ruby. Until Rails came along it was <em>just-another-language</em> that most people never heard of|used.</p>
<p>So marketing is a big part of getting people to accept ideas. And if <code>TAUDAY</code>, and <code>TAU</code> T-shirts, and videos about two pies, make it more comfortable for people to understand|embrace the concept, then consider it effective silliness.</p>
<p>I would just urge you not to be blind to the overwhelming mathematical, scientific, and pedagogical benefits <code>TAU</code> brings, and try to understand why other people do embrace it, and actively use it.</p>
<p>And since that is the case, then including it will make <code>Ruby</code> more relevant to them, and bring them more happiness.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=897022021-01-01T21:30:04Zchrisseaton (Chris Seaton)chris@chrisseaton.com
<ul></ul><p>Ok well this issue is currently marked rejected. You need to convince someone to change that first. Then you need to add it to the list of issues to be considered by Matz this month <a href="https://bugs.ruby-lang.org/issues/17480" class="external">https://bugs.ruby-lang.org/issues/17480</a>.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=897032021-01-01T21:41:05Zjzakiya (Jabari Zakiya)
<ul></ul><p>OK, well then I request this issue be reclassified as <code>Open</code>, by whoever has the power to do that.</p>
<p>Also, as it seems Matz's last response to a similar request was over 3 years ago, I request that whoever has the power to request he review this issue again now do that too.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=897042021-01-01T21:42:04Zchrisseaton (Chris Seaton)chris@chrisseaton.com
<ul></ul><blockquote>
<p>I request that whoever has the power to request he review this issue again now do that too.</p>
</blockquote>
<p>That's done by adding to the list of issues to be considered I linked - when you have this as not rejected you can add to there.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=897052021-01-01T21:48:35Zjzakiya (Jabari Zakiya)
<ul></ul><p>Well since I don't have the power to re<code>Open</code> it, will you then see that it is?</p>
<p>Otherwise, this is just going around in an infinite circle, and I don't need the new year starting out like this.</p>
<p>Since you know what needs to be done, I am asking you (or someone else who can) to perform the mechanics to get it done.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=897062021-01-01T22:12:44Zjeremyevans0 (Jeremy Evans)merch-redmine@jeremyevans.net
<ul><li><strong>Status</strong> changed from <i>Rejected</i> to <i>Open</i></li></ul><p>Personally, I don't think that anything significant has changed in the last three years this area. And the comparison of Tau vs Pi to Relativity vs Newtonian Mechanics is laughable.</p>
<p>However, I also don't want to be the one to stop debate on this issue, so I'm reopening it. However, I recommend to Matz that he rejects it again. I think a good time to add <code>Math::TAU</code> is when the majority of mathematics textbooks switch from Pi to Tau, and not before.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=897072021-01-01T22:14:28Zchrisseaton (Chris Seaton)chris@chrisseaton.com
<ul></ul><p><a class="user active user-mention" href="https://redmine.ruby-lang.org/users/11075">@jzakiya (Jabari Zakiya)</a> you just need to comment on <a href="https://bugs.ruby-lang.org/issues/17480" class="external">https://bugs.ruby-lang.org/issues/17480</a> then, copying the format of the other comments.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=897082021-01-01T22:34:21Zufuk (Ufuk Kayserilioglu)
<ul></ul><p>I also don't understand why <code>Math::TAU</code> needs to be added to Ruby, even though I am familiar with the manifesto and think it might have a merit. However, it is just a redefinition of a basic mathematical constant that doesn't bring much else to the table other than making learning some trig concepts simpler. Moreover, the manifesto explicitly states:</p>
<blockquote>
<p><strong>How can we switch from π to τ?</strong><br>
The next time you write something that uses the circle constant, simply say “For convenience, we set τ=2π”, and then proceed as usual.</p>
</blockquote>
<p>Which means that all you have to do is:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="no">Math</span><span class="o">::</span><span class="no">TAU</span> <span class="o">=</span> <span class="mi">2</span> <span class="o">*</span> <span class="no">Math</span><span class="o">::</span><span class="no">PI</span>
</code></pre>
<p>in your codebase if you want to use it, as suggested by the manifesto. There is no need for Ruby to add all possible constants to the language, especially not the ones that are expressible in terms of constants that already exist.</p>
<p>Basically, it boils down to: Is there a mathematical operation you can't perform if Ruby does not define Tau? I'd say: no. Happy to hear otherwise.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=897342021-01-03T22:45:19Zjzakiya (Jabari Zakiya)
<ul></ul><blockquote>
<p>you just need to comment on <a href="https://bugs.ruby-lang.org/issues/17480" class="external">https://bugs.ruby-lang.org/issues/17480</a> then, copying the format of the other comments.</p>
</blockquote>
<p>Thanks. Done.</p>
<blockquote>
<p>Personally, I don't think that anything significant has changed in the last three years this area. And the comparison of Tau vs Pi to Relativity vs Newtonian Mechanics is laughable.</p>
</blockquote>
<p>As with <code>PI</code>, the Newtonian view of reality had an entrenched pedagogical, professional, cultural, and even nationalistic hold on people's minds and lives. Einstein's Relativity shattered that for many, purely on these basis. So "<code>F = ma is wrong</code>" when trying to explain the way the natural world is observed to work in all cases. And even though Relativity has been observed to work over and over again, to explain things Newtonian mechanics can't, the <code>Newtonians</code> still resist(ed) accepting it emotionally (as Einstein himself later emotionally resisted accepting totally Quantum Mechanics).</p>
<blockquote>
<p>However, I recommend to Matz that he rejects it again. I think a good time to add Math::TAU is when the majority of mathematics textbooks switch from Pi to Tau, and not before.</p>
</blockquote>
<p>Well, that's a very arbitrary and subjective criteria, don't you think? I already presented one Open Source textbook, first released in 2015, that's been in use. And the Khan Academy - <a href="https://www.khanacademy.org/" class="external">https://www.khanacademy.org/</a> - maybe the largest, well known educational learning platform in the world, put out its first video on teaching|promoting <code>TAU</code> in 2012, and you can't get anymore main stream than it.</p>
<p>For a better, more extensive list of uses of <code>TAU</code> please view the list of citations on its wikipedia page:<br>
<a href="https://en.wikipedia.org/wiki/Turn_(angle)#Tau_proposal" class="external">https://en.wikipedia.org/wiki/Turn_(angle)#Tau_proposal</a></p>
<blockquote>
<p>Basically, it boils down to: Is there a mathematical operation you can't perform if Ruby does not define Tau? I'd say: no. Happy to hear otherwise.</p>
</blockquote>
<p>I would like to refocus the discussion to what the proposal seeks, and why.</p>
<p>The impetus behind the proposal is to bring <code>Ruby</code> in line with the other (and growing) number of software languages and packages that now include the fundamental math constant <code>TAU</code> as a standard resource that is available for programmers to use. It does not require anybody here to use it, or change any code they have.</p>
<p>Though Bob Palais's <code>PI is wrong</code> - <a href="https://www.math.utah.edu/~palais/pi.pdf" class="external">https://www.math.utah.edu/~palais/pi.pdf</a> - appeared in 2001, the popular promotion of its acceptance|use took off with Michael Hartl's (of <code>Ruby on Rails Tutorial</code> fame, <a href="https://www.railstutorial.org/" class="external">https://www.railstutorial.org/</a>) 2010 article <code>The Tau Manifesto</code> and same year creation of <code>TAU Day</code>, as an alternative to <code>PI Day</code>. (MIT now releases it acceptance notices on <code>PI Day</code> (March 14; 3/14) at <code>TAU Time</code>, 6.28 pm).</p>
<p>Thus since 2010, the knowldege and understanding about <code>TAU</code> being the better|correct circle constant has steadily increased, adopted, and used.</p>
<p>A short (growing) list of software languages and packages that include|provide <code>TAU</code> are:</p>
<p>D -- <a href="https://code.dlang.org/packages/tau" class="external">https://code.dlang.org/packages/tau</a>; <a href="https://forum.dlang.org/thread/mailman.1426.1309854678.14074.digitalmars-d@puremagic.com" class="external">https://forum.dlang.org/thread/mailman.1426.1309854678.14074.digitalmars-d@puremagic.com</a><br>
C#|.NET -- <a href="https://github.com/dotnet/runtime/pull/37517" class="external">https://github.com/dotnet/runtime/pull/37517</a>; <a href="https://docs.microsoft.com/en-us/dotnet/api/system.math.tau?view=net-5.0" class="external">https://docs.microsoft.com/en-us/dotnet/api/system.math.tau?view=net-5.0</a><br>
F# -- " "<br>
Nim -- <a href="https://nim-lang.org/docs/math.html#TAU" class="external">https://nim-lang.org/docs/math.html#TAU</a><br>
Zig -- <a href="https://ziglang.org/documentation/0.7.1/std/#std;math" class="external">https://ziglang.org/documentation/0.7.1/std/#std;math</a><br>
Java|Node.js -- <a href="https://mathjs.org/docs/reference/constants.html" class="external">https://mathjs.org/docs/reference/constants.html</a>; <a href="https://mathjs.org/" class="external">https://mathjs.org/</a><br>
Rust -- <a href="https://doc.rust-lang.org/stable/std/f64/consts/constant.TAU.html" class="external">https://doc.rust-lang.org/stable/std/f64/consts/constant.TAU.html</a><br>
Raku -- <a href="https://docs.raku.org/language/terms" class="external">https://docs.raku.org/language/terms</a><br>
Julia -- <a href="https://juliapackages.com/p/tau" class="external">https://juliapackages.com/p/tau</a>; <a href="https://github.com/JuliaLang/julia/pull/4864" class="external">https://github.com/JuliaLang/julia/pull/4864</a><br>
Crystal -- <a href="https://github.com/crystal-lang/crystal/issues/10165" class="external">https://github.com/crystal-lang/crystal/issues/10165</a>; <a href="https://github.com/crystal-lang/crystal/pull/10179" class="external">https://github.com/crystal-lang/crystal/pull/10179</a><br>
Python3 -- <a href="https://docs.python.org/3/library/math.html" class="external">https://docs.python.org/3/library/math.html</a>; <a href="https://www.python.org/dev/peps/pep-0628/" class="external">https://www.python.org/dev/peps/pep-0628/</a></p>
<p>Matlab -- <a href="https://www.mathworks.com/matlabcentral/fileexchange/48636-tau-the-circle-constant?s_tid=srchtitle" class="external">https://www.mathworks.com/matlabcentral/fileexchange/48636-tau-the-circle-constant?s_tid=srchtitle</a><br>
Google calculator -- <a href="https://www.google.com/search?q=%CF%84%3D" class="external">https://www.google.com/search?q=%CF%84%3D</a></p>
<p>See also: <a href="https://en.wikipedia.org/wiki/User:Waldyrious/Tau#Support_in_tools_and_programming_languages" class="external">https://en.wikipedia.org/wiki/User:Waldyrious/Tau#Support_in_tools_and_programming_languages</a></p>
<p><strong>Why</strong></p>
<ol>
<li>Since 2010, <code>TAU</code>'s acceptance and use has increased in academia, science, and software languages and packages</li>
<li>It requires no technical changes to Ruby.</li>
<li>It makes Ruby compatible with other popular languages (like Python and Rust).</li>
<li>It makes Ruby natively easier to use for pedagogy.</li>
<li>It will better establish Ruby as a good scientific language, particularly for unfamiliar Ruby users.</li>
<li>It has met Matz's previous criteria of being <code>time-proven</code>.</li>
<li>It will, ultimately, be expected to be included in every general purpose language.</li>
</ol>
<p>In the final analysis, <code>PI is wrong</code> and <code>TAU is right</code>.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=897712021-01-05T03:19:43Zmrkn (Kenta Murata)muraken@gmail.com
<ul></ul><p><a class="user active user-mention" href="https://redmine.ruby-lang.org/users/11075">@jzakiya (Jabari Zakiya)</a> I guess the resources you've listed up in the comment #9 are only describing tau's advantages or pi's disadvantages. They are not the evidence that shows the tau is usually used.</p>
<p>Why <a href="https://rubygems.org/gems/math-tau" class="external">math-tau.gem</a> is not enough for your usecase?</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=898642021-01-12T05:19:49Zakr (Akira Tanaka)akr@fsij.org
<ul></ul><p>I feel a constant of Math::PI * 2 is useful especially for<br>
<code>x * 360 / (Math::PI * 2)</code>.</p>
<p>We need not only <code>*</code> but also parenthesis.</p>
<p><code>x * 360 / Math::TAU</code> is shorter than above.</p>
<p>However I like another name, Math::PI2.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=898662021-01-12T05:45:42Zshyouhei (Shyouhei Urabe)shyouhei@ruby-lang.org
<ul></ul><p><code>M_PI_2</code> is π/2 rather than 2π. I guess <code>Math::PI2</code> is too confusing.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=898682021-01-12T05:56:09Zshyouhei (Shyouhei Urabe)shyouhei@ruby-lang.org
<ul></ul><p>jzakiya (Jabari Zakiya) wrote in <a href="#note-23">#note-23</a>:</p>
<blockquote>
<p><strong>Why</strong></p>
<ol>
<li>Since 2010, <code>TAU</code>'s acceptance and use has increased in academia, science,</li>
</ol>
</blockquote>
<p>Can you tell us more about this area? A few references of research papers (preferably with an URL of doi.org) would be much appreciated. As I wrote in <a href="https://bugs.ruby-lang.org/issues/4897#note-39" class="external">https://bugs.ruby-lang.org/issues/4897#note-39</a>, I cannot distinguish if this constant being actively receiving low marks from academic community, or is just young.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=898692021-01-12T06:02:45Zakr (Akira Tanaka)akr@fsij.org
<ul></ul><p>shyouhei (Shyouhei Urabe) wrote in <a href="#note-26">#note-26</a>:</p>
<blockquote>
<p><code>M_PI_2</code> is π/2 rather than 2π. I guess <code>Math::PI2</code> is too confusing.</p>
</blockquote>
<p>I hope that it does not cause big confusion because Ruby has no PI_2.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=898702021-01-12T06:14:19Zakr (Akira Tanaka)akr@fsij.org
<ul></ul><p>akr (Akira Tanaka) wrote in <a href="#note-28">#note-28</a>:</p>
<blockquote>
<p>shyouhei (Shyouhei Urabe) wrote in <a href="#note-26">#note-26</a>:</p>
<blockquote>
<p><code>M_PI_2</code> is π/2 rather than 2π. I guess <code>Math::PI2</code> is too confusing.</p>
</blockquote>
<p>I hope that it does not cause big confusion because Ruby has no PI_2.</p>
</blockquote>
<p><code>Math::TWOPI</code> is yet another idea.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=898812021-01-12T10:10:13Zsawa (Tsuyoshi Sawada)
<ul></ul><p>akr (Akira Tanaka) wrote in <a href="#note-25">#note-25</a>:</p>
<blockquote>
<p>However I like another name, <code>Math::PI2</code>.</p>
</blockquote>
<p>akr (Akira Tanaka) wrote in <a href="#note-28">#note-28</a>:</p>
<blockquote>
<p><code>Math::TWOPI</code> is yet another idea.</p>
</blockquote>
<p>Either one halfway nullifies the original proposal. The whole point of this issue is that $\tau$ is the basic mathematical constant related to circle, (and if $\pi$ is temporarily ever needed, the latter is the one that should be described in terms of the former, i.e, $\pi := \tau / 2$). Expressing $\tau$ in terms of $\pi$ goes counter to this.</p>
<p>P.S. I have had the same idea as the $\tau$ proponents since when I was a high school student. I believe I am among the countless people, if not the majority, in this respect.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=898912021-01-12T22:38:56Zuniversato (Yoshimine Sato)
<ul></ul><p>FYI</p>
<p><a href="https://processing.org/reference/TAU.html" class="external">https://processing.org/reference/TAU.html</a><br>
Processing may not be a general purpose language, but it has <code>TAU</code> and <code>TWO_PI</code> on its core.<br>
Processing has <code>TAU</code> since 2013.</p>
<p>DOI: 10.14736/kyb-2016-6-0943<br>
<a href="http://www.kybernetika.cz/content/2016/6/943" class="external">http://www.kybernetika.cz/content/2016/6/943</a><br>
In this paper τ is used in the Gaussian density function.</p> Ruby master - Feature #17496: Add constant Math::TAUhttps://redmine.ruby-lang.org/issues/17496?journal_id=899042021-01-13T05:47:02Zshyouhei (Shyouhei Urabe)shyouhei@ruby-lang.org
<ul></ul><p>universato (Yoshimine Sato) wrote in <a href="#note-31">#note-31</a>:</p>
<blockquote>
<p>FYI</p>
<p><a href="https://processing.org/reference/TAU.html" class="external">https://processing.org/reference/TAU.html</a><br>
Processing may not be a general purpose language, but it has <code>TAU</code> and <code>TWO_PI</code> on its core.<br>
Processing has <code>TAU</code> since 2013.</p>
<p>DOI: 10.14736/kyb-2016-6-0943<br>
<a href="http://www.kybernetika.cz/content/2016/6/943" class="external">http://www.kybernetika.cz/content/2016/6/943</a><br>
In this paper τ is used in the Gaussian density function.</p>
</blockquote>
<p>Thank you! This is the first time I actually see the practical use of this constant.</p>