<div dir="ltr"><div>Hi all,</div><div><br></div>I&#39;m curious how other members of the Swift community feel about the clarity of the &quot;Double&quot; and &quot;Float&quot; type names. It seems incongruous that the default type for integers is &quot;Int&quot;, but the default type for floating point numbers is not &quot;Float&quot;.<div><br></div><div>What if the name &quot;Float&quot; were given to the intrinsic, 64-bit floating point type? (And the existing &quot;Float&quot; and &quot;Double&quot; names were removed in favor of &quot;Float32&quot; and &quot;Float64&quot;?)</div><div><br></div><div><div><br></div><div><b>Discussion:</b></div><div><br></div><div>I understand the origins of these names in single- and double-precision IEEE floats. But this distinction feels like a holdover from C (and a 32-bit world), rather than a natural fit for Swift.</div><div><br></div><div>Here are some reasons to <b>keep Double and Float as they are</b> (numbered for easy reference, but otherwise unordered):<br></div><div><ol><li>&quot;Double&quot; and &quot;Float&quot; are more natural for developers who are &quot;familiar with C-like languages.&quot;</li><li>A corollary: A 64-bit &quot;Float&quot; type could be confusing to those developers.</li><li>Another corollary: Swift needs to interoperate with Objective C, and its &quot;float&quot; and &quot;double&quot; types.</li><li>Renaming these types would open the door to bike-shedding every type name and keyword in the language.<br></li><li>Changing the meaning of an existing type (&quot;Float&quot;) would be a bit PITA for existing code (although an automated migration from &quot;Float&quot; to &quot;Float32&quot; and &quot;Double&quot; to &quot;Float&quot; should be possible).</li><li>Renaming a fundamental type would take considerable effort.</li></ol>Here are some reasons to <b>rename these types</b>:</div><div><ol><li>The default for a &quot;float literal&quot; in Swift is a 64-bit value. It would feel natural if that that value were of type &quot;Float&quot;.</li><li>There are size-specific namesĀ for 32-bit (&quot;Float32&quot;) and 64-bit (&quot;Float64&quot;) floating point types. For cases where a size-specific type is needed, a size-specific name like &quot;Float32&quot; probably makes the intention of the code more clear (compared to just &quot;Float&quot;).</li><li>Apple&#39;s Objective C APIs generally use aliased types like &quot;CGFloat&quot; rather than raw float or double types.</li><li>There is precedent for &quot;Float&quot; types being 64-bit in other languages like Ruby, Python and Go (as long as the hardware supports it).</li><li>What kind of a name for a type is &quot;Double&quot; anyways, amirite?<br></li></ol>(that last one is a joke, BTW)<br></div><div><div><br></div><div>What do you think? Do you agree or disagree with any of my assessments? Are there any pros or cons that I&#39;ve missed? Is the level of effort so large that it makes this change impractical? Is it a colossal waste of human effort to even consider a change like this?</div><div><br></div><div>Thanks for your time and attention,</div><div>Alex Johnson (@nonsensery)<br></div></div></div></div>