'Childlike' vs. 'Childish'

The words have very different connotations

Childish and childlike initially meant nearly the same thing: “resembling or suggesting a child.”

childish

'Childlike' is generally used in a positive or neutral way. 'Childish'...not so much.

Childish is the older term, dating to Old English from before the 12th century. To the original neutral meaning (“of a child or typical of a child”), a second one with negative connotations began to be used in the 1400s, referring to the qualities of a child in a person who is no longer a child—and therefore should know better: “having or showing the unpleasant qualities (such as silliness or lack of maturity) that children often have.”

another childish rant

selfish and childish behavior

Childlike entered the language much later, in the mid-1500s. It, by contrast, usually connotes some positive quality such as innocence, trustfulness, or ingenuousness:

a childlike delight in music

a sense of childlike wonder

Childlike is also used for the perfectly neutral meaning:

childlike drawings

But the lines of meaning still cross between these two words: sometimes childish is clearly used in a neutral or positive way:

a round, childish face

Tony Abbott got in touch with his childish side to open a childcare centre. The former prime minister cut the ribbon at Little Scribblers Brookvale and played with the centre's little regulars.
—Ali Lowe, Manly Daily (Australia), 10 November 2016

We make a similar distinction with the much less frequently used words babyish and babylike:

nasty babyish behavior

a babyish sulk

an almost babyish soft round face

a babylike face with big eyes

There are two rarely used, collector’s item words that are synonyms of these words: babish (for babyish) and childly (for childish).

Child may come from Old English stock, but, like many English terms, there is also a Latinate equivalent: puerile, which means “silly or childish especially in a way that shows a lack of seriousness or good judgment,” and comes from the Latin word puer meaning “boy” or “child.” Another near-synonym with Latin roots is juvenile, meaning “unpleasantly childish.”

These very subtle differences of meaning among words that are otherwise similar can give us the power to be extremely specific when telling someone not to be a child.