# Rename println! to print!

**URL:** <https://internals.rust-lang.org/t/rename-println-to-print/1056>\
**Category:** bikeshed (deprecated)\
**Created:** [December 21, 2014, 9:35am UTC](https://internals.rust-lang.org/t/rename-println-to-print/1056 "2014-12-21T09:35:47Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![tshepang](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/tshepang/32/179_2.png) [@tshepang](https://internals.rust-lang.org/u/tshepang)\
**Post date:** [December 21, 2014, 9:35am UTC](https://internals.rust-lang.org/t/rename-println-to-print/1056/1 "2014-12-21T09:35:47Z")

</div>

I feel that `println!` should be renamed to `print!`, and current `print!` given some other name (`print_nnl`: no newline?). `println!` is a bit too long for such a commonly-used macro. I imagine we can’t simply add a flag, as in `print("string", end="")` of Python?

---

<div class="post-metadata">

**Author:** ![sinistersnare](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/sinistersnare/32/18_2.png) [@sinistersnare](https://internals.rust-lang.org/u/sinistersnare)\
**Post date:** [December 22, 2014, 5:54am UTC](https://internals.rust-lang.org/t/rename-println-to-print/1056/2 "2014-12-22T05:54:38Z")

</div>

I feel like it would confuse people coming from non python backgrounds. Our current system makes it clear what is happening.

I’m not in favor of doing end= like in python because that might make some newcomers think we have keyword arguments.

---

<div class="post-metadata">

**Author:** ![kainino](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/kainino/32/295_2.png) [@kainino](https://internals.rust-lang.org/u/kainino)\
**Post date:** [December 22, 2014, 6:46pm UTC](https://internals.rust-lang.org/t/rename-println-to-print/1056/3 "2014-12-22T18:46:58Z")

</div>

While I’m not a particular fan of this exact idea (renaming `println!` to `print!` or Python’s `end=""`), it does occur to me that `println!` _sounds_ like a misnomer: it doesn’t “print a line”, as it could print a multi-line string. Instead, it “prints a string _plus_ a newline”. I can’t think of any good alternative naming, off the top of my head. It probably isn’t worth bikeshedding, as there are plenty of people coming in from Java and other languages which already use the `println` convention.

Aside: if one _is_ heavily using `println!` to print things out in their code, in many cases they could use the `log` crate for more informative logging, anyway: `log!`, `debug!`, `info!`, `warn!`, and `error!`.

---

<div class="post-metadata">

**Author:** ![tbu](https://avatars.discourse-cdn.com/v4/letter/t/839c29/32.png) [@tbu](https://internals.rust-lang.org/u/tbu)\
**Post date:** [December 22, 2014, 10:15pm UTC](https://internals.rust-lang.org/t/rename-println-to-print/1056/4 "2014-12-22T22:15:16Z")

</div>

`println` has been used in Pascal, so there’s precedent for that name.

---

<div class="post-metadata">

**Author:** ![sinistersnare](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/sinistersnare/32/18_2.png) [@sinistersnare](https://internals.rust-lang.org/u/sinistersnare)\
**Post date:** [December 23, 2014, 1:03am UTC](https://internals.rust-lang.org/t/rename-println-to-print/1056/5 "2014-12-23T01:03:42Z")

</div>

It also is used in Java, which is much more popular than Pascal 🙂

Oh, and apparently Go too.

---

<div class="post-metadata">

**Author:** ![tshepang](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/tshepang/32/179_2.png) [@tshepang](https://internals.rust-lang.org/u/tshepang)\
**Post date:** [December 23, 2014, 6:42am UTC](https://internals.rust-lang.org/t/rename-println-to-print/1056/6 "2014-12-23T06:42:57Z")

</div>

Just in case: note that `end='\n'` by default in Python.

---

<div class="post-metadata">

**Author:** ![sinistersnare](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/sinistersnare/32/18_2.png) [@sinistersnare](https://internals.rust-lang.org/u/sinistersnare)\
**Post date:** [December 24, 2014, 5:54pm UTC](https://internals.rust-lang.org/t/rename-println-to-print/1056/7 "2014-12-24T17:54:22Z")

</div>

Yes I know, but it doesn’t change the fact that Rust code does not have keyword arguments, so having one macro that uses some bastardized version of them, while everything else does not would be much stranger than anything gained from this proposal.

---

<div class="post-metadata">

**Author:** ![lu\_zero](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/lu_zero/32/4186_2.png) [@lu\_zero](https://internals.rust-lang.org/u/lu_zero)\
**Post date:** [December 25, 2014, 12:23pm UTC](https://internals.rust-lang.org/t/rename-println-to-print/1056/8 "2014-12-25T12:23:12Z")

</div>

If you use a lot `println` sounds like you might consider more advanced logging/formatting (e.g. color escapes and log classes).

---

<div class="post-metadata">

**Author:** ![sindriava](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/sindriava/32/606_2.png) [@sindriava](https://internals.rust-lang.org/u/sindriava)\
**Post date:** [January 12, 2015, 2:02pm UTC](https://internals.rust-lang.org/t/rename-println-to-print/1056/9 "2015-01-12T14:02:17Z")

</div>

-1, the current format is more conventional and less confusing IMO.

---

<div class="post-metadata">

**Author:** ![sivadeilra](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/sivadeilra/32/7347_2.png) [@sivadeilra](https://internals.rust-lang.org/u/sivadeilra)\
**Post date:** [January 12, 2015, 3:25pm UTC](https://internals.rust-lang.org/t/rename-println-to-print/1056/10 "2015-01-12T15:25:19Z")

</div>

-1. println makes it clear what is going on.

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/system/32/14092_2.png) [@system](https://internals.rust-lang.org/u/system)\
**Post date:** [March 25, 2019, 8:23am UTC](https://internals.rust-lang.org/t/rename-println-to-print/1056/11 "2019-03-25T08:23:23Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
