Tagging conventions for Kotlin questions on Stack Overflow


#1

In a question I asked recently on Stack Overflow, an interesting point came up: how do we best indicate which target platform a Kotlin question is about?

Arguably, Stack Overflow is the single most important resource for getting help with programming issues today. Kotlin is represented by a growing number of questions there; it’s currently 16k. I would assume that most questions are either platform agnostic or about the JVM.

Looking at the tags used with [kotlin] most often, we get in particular

  • [android] with 8213 questions,
  • [jvm] with 84,
  • [kotlin-native] with 43,
  • [kotlin-js] with 16,
  • [native] with 9.

There doesn’t seem to be a consistent strategy. I think it would be helpful for discovering and understanding Kotlin-related posts on SO if the tags would indicate whether they are platform-specific, and if so to which.
Of course, the community would have to moderate Kotlin questions aggressively for a while at least in order to establish any convention.

Here are three basic proposals.

Proposal 1: [kotlin] + [platform]

Pair [kotlin] with [jvm], [android], [native], or [javascript]/[web]/[browser] (?) if a question is specific to one or more platforms. Use [kotlin] alone if it’s about the language itself or the standard library.
(I note that some Android devs seem to tag any question they run into [android], even if the question isn’t specific to that platform at all.)

This would bundle all Kotlin questions under a shared tag, and use established tags to differentiate.

Proposal 2: [kotlin] + [kotlin-platform]

If a question is specific to a platform, use [kotlin] together with [kotlin-jvm], [kotlin-android], [kotlin-native], or [kotlin-js].

This would bundle all Kotlin questions under a shared tag, and use (new) tags to differentiate without intersecting with existing tags in potentially unfortunate ways (For example, do JS devs really want to see Kotlin questions? Do we expect them to be able to help? [native] seems to be an odd mixing pot, too.)

Proposal 3: [kotlin] vs [kotlin-platform]

As Proposal 2, but use [kotlin] only on platform-agnostic questions.

This would give up having a single pool for all Kotlin-related questions but would allow for the most specific searches. For example, if you want to answer Kotlin questions as a way of learning the language, all platform-specific issues are probably out of scope.

What do you people think?


#2

My favorite is Proposal 2.

  • Having the big mother tag [kotlin] is good for catching questions tagged without regards for the convention (to retag them) and to make sure Kotlin has the best possible representation in SO stats.
  • Using existing tags can have unfortunate side effects, and those tags are (probably) not used consistently themselves.
  • Tagging [kotlin] [javascript] would mean something different from using [kotlin-js]; the former might be about actual interop issues while the latter probably is about issues with the Kotlin target itself.
  • It’s consistent with existing tags of the form [kotlin-framework].
  • The effect of Proposal 3 (isolation of platform-agnostic questions) can be simulated by searching [kotlin] -[kotlin-*] or something similar.

#3

I would agree with proposal 2. I’d like to point out though that the javascript tag here has an issue of it’s own. It can either refer to the language or to the target platform (for transpilation out of many languages including Kotlin).