My two cents: like others here, I also feel we are missing in the Kotlin world a vision, or at least the communication of the vision. This is something I really miss from the Java world, where we consistently have the feeling of seeing the future built in front of our eyes, with all the great projects with regular progress made and communicated (including Amber, Loom, Valhalla, Panama, etc); even every six-month releases are packed with gorgeous changes, just look at https://openjdk.java.net/projects/jdk/14/!
On the other hand, Kotlin is really great and Jetbrains teams have been doing an outstanding job in so many directions at once, in so little time, so my comments should not be taken negatively, thanks for the awesome work! But apart from this keynote which talks a bit about 1.4 and next versions (yeah a faster compiler, that’s really good!) with vague details though, there is very little vision communicated, and KEEPs are often outdated with no indication of their priority or progress. Of course I may have missed some communication channel, but I have looked and couldn’t find anything, so if it exists it’s well hidden.
I know the Kotlin world is yet much smaller and a bit young to have as many advocates and communicants as Java, but I feel like it wouldn’t take that much to make us all happy: maybe a yearly or bi-yearly blog with an update on the high level visions, like which KEEP are being investigated, what are the teams working on, the vision for several years forward, and some KEEP updating. We just want to dream!
Another thing is that as a Kotlin/JVM user, I sometimes feel like a second-class citizen. I understand that some push must be needed for Native and JS, but does that really mean for instance that we still can’t have invokedynamic instructions, which is a performance killer which seems fairly easy to fix (KT-26060)? Why is the default JVM compatibility 1.6… I mean 1.8 is EOL now, and even Android phones have had full 1.8 compatibility for years, so it can’t be used anymore as an excuse? Why do users of Java library have to push several years to make many of them work with Kotlin, when so much is communicated on it’s Java interoperability (like KT-4779)? Why do you really don’t want us to use sun.* internal classes, even though there are some real uses cases, and we are perfectly entitled to use them when we deploy our own JRE with our application? Why do I increasingly have to code hack Java classes to workaround similar cases, while having the impression of missing out on more and more good stuff from Java? Argl, where is my Bromazepam pill?