Preliminary Developer Survey Results

I’m happy to present an initial summary of the results of the developer survey. Thanks again to everyone who’s participated!

We need a little more time to analyse the results and share our plan on how we’re incorporating your feedback. We’re working our way through all the detailed feedback, which is not fully represented in this summary (the word clouds are fun though :-)). Once 2.13.0 is out (RC1 expected by end of January), we’ll follow up with more details, along with our plans for 2.14.

In the mean time, we’re very interested to hear your feedback on the presentation and interpretation of the results, and will be happy to improve them for the final version!

PS: I’d also like to encourage you to take the Cats Ecosystem Community Survey!

3 Likes

Excellent!

I’d be a little cautious about interpreting a few of these. In particular, “In which application domain do you primarily use Scala?” shows only a very small number for “Web frontend”, but I think the structure of the question may be getting in the way. The focus on “primarily” leads someone like me to say “Web backend”, since that is the largest body of my Scala code. But I also have something like 20k lines of Scala.js as my frontend – it isn’t “primarily”, but it’s a fairly close second, and quite mission-critical…

2 Likes

That should be taken into account by the last section I think: “which platforms are you targeting with the Scala compiler”, which lists 13% of people using Scala.js

I think it would be helpful to mention when this survey was taken.
Especially regarding Which Scala version are you... currently using/planning to use

Thanks for posting this. I’m curious about what the format of the survey was and how it was designed.

Were the questions single-choice only? Were they multi-choice? Or ranked choice? The reason I ask is because ranked-choice questions would capture the most data about the respondents’ ‘true preferences’, followed by multi-choice and then single-choice. At any rate, in the final report I’d recommend providing this kind of detail, perhaps in an appendix.

First off, I didn’t participate in the survey :frowning: How was it advertised? I’m not seeing any related email.

I would say that the “word chart” isn’t very informative for some questions. Take for example How can we be more welcoming? - top words are community, scala and people. That means very little to me.

I might be a bit pessimistic, but the results for the question When did you first start learning Scala? are bit worrisome. The results show that less and less people are starting to learn Scala nowadays. However, there is the possibility of a selection bias here as those who are new to Scala might have not been exposed to this survey, which goes back to my first question of how this survey was advertised. As a reference, I have 3 years of experience with Scala.

As for Scala 3.0 first priority, it’s interesting to see the tie between the three major aspects. It might be interesting to try and find correlation between these results and years of expertise with Scala, “fraction of the value” question, and perhaps even application domain. I would say that build tool and IDE are also very relevant here, but seeing that the vast majority use IntelliJ and SBT, it’s probably not worth running that analysis. If you ask me – 3 years of xp, ~80% value (rest is Java), backend, IntelliJ, Gradle – compilation time is orders of magnitude more important than the rest. I would also love a better interoperability between Gradle and the incremental compiler (SBT ZInc nowadays), especially since it would make Scala far more appealing to Java newcomers, and by far easier to introduce to existing Java projects.

I love the report website btw, even though it’s a bit slow :slight_smile: The PDF looks OK but it took forever (a couple of minutes) to generate it.

1 Like

The concept is usually called a “tag cloud” – it’s very chic for this sort of use nowadays. But I agree: you can’t get much utility out of it. That said, I doubt any automatically-coded approach is going to help with these questions – they require manual analysis and coding, which is going to be a lot of Just Plain Work on somebody’s part.

That would be my guess. For example, at my current client, I would guess that only the relatively senior Scala geeks were even aware of the survey’s existence, because they’re the sorts of people who hang out on the Gitter group and Scala Users forum (which IIRC are where I saw this advertised).

In and of itself, this is an interesting point: there is no good channel that reaches a large fraction of the Scala programming community, AFAIK. There are some folks who try (eg, Scala News), but I don’t think most of them have much uptake in the grand scheme of things. I wonder if we, as a community, should be trying to evangelize a central low-volume news outlet more aggressively. If there was a single point that Everybody Knows is the place to listen for key announcements, I suspect folks would be more likely to subscribe: there’s a bit of social network effect in it.

My pick would probably be the Scala Center blog/news/announcement channel, which did carry the announcement of this survey back in May. But that really should have obvious RSS feed info and a way to subscribe to it as a mailing list, if we were to talk that up as the main push channel. That seems like relatively low-hanging-fruit for somebody to set up, if there was a will to do so.

The main point, though, is that we should stop being so passive about it – we should choose a news source and say, “As an active Scala programmer, we encourage you to sign up for this as a source of especially-useful news and announcements”, and keep that low-volume and highly filtered. That would help unify things, and provide a main spine of news for the newer folks…

1 Like

(OT but) Since you brought it up, the Gradle project has an open issue for Gradle/Zinc integration: https://github.com/gradle/gradle/issues/2158

Already subscribed to it :slight_smile:

Thanks ! That’s very much appreciated ! Would it be possible to have access to the raw data? Anonymized, of course ? Or at least for a subpart of the questions ?

We can look into this, time permitting. Which one(s) would you like to analyse?

Usually for an analysis you want to start with the entire, unfiltered, raw data set to try to minimize any biases going in :slight_smile:

Hi everybody!

Regarding the question “Which tools are you using to analyze/enforce code health”, I see that scalastyle is the 3rd most used tool after scalafmt and compiler options. However scalastyle does not fully support scala 2.12, because of missing support for trailing commas in scalariform (https://github.com/scalastyle/scalastyle/issues/276)

I know that most work in this area is being done by ScalaCenter in scalafix, but right now scalafix is not a replacement for scalastyle. Would be reasonable that the scalafix team invests some resources in a better scalastyle migration story?

1 Like

Would be reasonable that the scalafix team invests some resources in a better scalastyle migration story?

I’m (genuinely) not sure what that would mean or involve? What do you have in mind?

As for the trailing commas issue specifically, it seems like something that ought to be able to move forward as a purely community thing? The relevant tickets are:

Offhand, it doesn’t seem to me like something where the Scala Center engineers’ deep expertise is needed.

(Also, personally, fwiw, I wouldn’t like to see any Scala Center resources diverted from making Metals happen.)

Seth

sorry I missed your answer! Like @yawaramin said :slight_smile: But actually, I’m quite out of free time currently, so I won’t be able to look at the data for now :confused:

Scalariform 0.2.7 has been released, with both trailing comma support, and initial support for Scala 2.13 (M5).

Scalastyle shouldn’t be held back now in supporting Scala 2.12+

1 Like