Something bizarre is happening in programming language land: The youthquake seemingly hates youth. A new HackerRank survey of nearly 40,000 developers suggests that while Go, Kotlin, and other new-school programming languages top the charts in terms of what developers want to learn next, younger developers (aged 18-24) are far less likely to prefer such languages than their fuddy-duddy peers.

The reason could come down to experience. As Adobe developer Fil Maj suggested, “[T]he benefits of using newer languages are made clear by having experience with older languages.” In other words, it’s easier to appreciate just how awesome Go is if you’ve spent years slogging through Java.

New religion

When HackerRank polled its developer audience as to which languages they wanted to learn next, Go topped the charts:

Also in that camp of “must learn” languages were Kotlin, Swift, Rust, and Scala, with each of these languages promoted by a Silicon Valley heavyweight (respectively, Google, Google, Apple, Mozilla, and Twitter). As the HackerRank report noted: “There’s a clear trend of individual developers following the lead of the Silicon Valley tech giants.”

This makes sense as developers not only want to stay abreast of what’s hip and cool, they also find it easier to take cues from tech giants, eliminating some of the guesswork as to which programming languages will be hot.

SEE: Hiring kit: Python developer (Tech Pro Research)

Ironically, the supposedly fickle Millennial generation doesn’t seem as inclined to chase the new languages as the oldsters among us.

Uphill both ways…

Ask developers generally which programming languages they prefer, and Python tops the list by a wide margin. (HackerRank’s “language preference graph is based on a Love-Dislike Index, which takes the percentage of developers who love a language and subtracts the percentage of developers who dislike the same language.”) Python is a powerful, general-purpose language that wins converts for making data science more approachable, even as its simplicity and readability make it a go-to tool for a wide array of other application needs.

While Python is tops with younger and older developers alike, those camps diverge sharply on the new-school languages listed above. Younger developers (aged 18-24) favor:

  • Python (88%)
  • C (59%)
  • C++ (61%)
  • Java (58%)
  • JavaScript (59%).

Barn-burner Go? 23%. Android development darling Kotlin? 18%. And iOS stalwart Swift? 16%. The kids may be alright, but “kid” languages, it would seem, are not.

SEE: How to build a successful developer career (free PDF) (TechRepublic)

Meanwhile, older developers of any age band are largely in love with Go, with that love increasing with age. That Go affection is 47% for those aged 25-34, but rises to 54% for those folks between 35-44, and hits a whopping 68% for those still creaking along at 45-54 (I can say “creaking” because I’m 45).

What gives?

…when I’m 64

Well, maybe it’s a question of “cool.” As developer Anthony Garvan told me, “If you’re interested in apps, JavaScript is better. For data, Python is better. For games or hardware, C / C++ is better. Go is a cool language but it occupies a niche that makes it hard to recommend for most ‘cool’ things….Go really excels at a kind of infrastructural code (platforms, networking, etc.) [and hence] doesn’t really capture the imagination of young engineers as much.”

It could also be, as developer Nick Coghlan put it: “The fact C/C++/Java rank pretty highly suggests that [younger developers] ‘favour what they already learned in class.'”

Adobe developer Simon MacDonald said something similar, holding that these recently graduated students are likely thinking, “I just learned a thing don’t make me learn a new thing.” By contrast, he goes on, the older developers are thinking, “Oh a new thing to add to my toolbox. How can I use this?”

It’s that curiosity that strikes me as dispositive here, curiosity born of years of using first-generation languages from which Go and other new-school languages have “learned.” Younger developers launch into mainstream languages like C++ and Java even as older developers, already well-versed in these, dabble in and appreciate new options. It’s hard for younger developers to appreciate the elegance of Go, for example, because they’ve never had to wade through assembly languages.

Regardless, there’s also the factor of time. Go is the hip new thing today, but will be the boring old Java tomorrow. Maybe the youngsters will stage a Go-loving youthquake at that time.