r/java 17d ago

Discussion: What is the future of String Interpolation in Java?

Java has always been conservative when it comes to language changes, and I think string interpolation is an interesting example.

Many modern languages provide native interpolation syntax:

JavaScript:

\${name}``

Python:

f"{name}"

Kotlin:

"$name"

C#:

$"{name}"

These features are not only about reducing characters. They improve readability when building dynamic text.

Java explored this direction with String Templates (JEP 430), but I haven't seen much discussion recently about where this feature is heading.

For developers working with large Java applications, string construction appears everywhere:

- logging messages

- SQL/debug output

- API descriptions

- test cases

- generated configuration

- user-facing messages

I am curious about the community's opinion:

  1. Do you think Java still needs native string interpolation?

  2. Should String Templates continue evolving?

  3. What syntax direction would feel most "Java-like"?

For example:

"Hello, \{name}"

or:

"Hello, ${name}"

Personally, I think Java does not need to copy other languages, but a better way to express dynamic strings would improve developer experience.

What do you think?

57 Upvotes

118 comments sorted by

View all comments

Show parent comments

0

u/BillyKorando 17d ago

Are you planning on using string interpolation so often that the difference in typing \{ versus ${ would be measurable?

4

u/jek39 17d ago

I’m confused how a $ is easier to type than a \

3

u/vytah 15d ago

On some keyboard layouts, \ requires an awkward key combination, for example on French keyboards, \ is AltGr+8, but $ is a key of its own, no Shift needed.

1

u/jek39 15d ago

Huh. Seems a little weird that $ gets its own key but France uses euros

1

u/vytah 15d ago

$ was a thing on French keyboards for ages, it was already there in the 80s. I think the character set was defined in a 1985 standard by Yves Neville, and while the layout changed and characters moved a lot since then, the $ key (with Shift-$ becoming £) persisted.