We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Be pushy! Let's join for wider and better Kotlin support worldwide

00:00

Formal Metadata

Title
Be pushy! Let's join for wider and better Kotlin support worldwide
Title of Series
Number of Parts
542
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Come to see some of the actions the community has done to push Kotlin further, and get inspiration on how to join or lead that movement for higher software quality and compatibility. Wish SDK X supported Kotlin Multiplatform? Wish it had coroutines and Flows instead of callbacks? With some bug you encounter in the IDE was fixed? Wish that idea you just had makes it to Kotlin? Wish function as a service from cloud provider Y had first-class Kotlin support? Wish scripting in app Z supported Kotlin? Well, YOU, can join the push to have more and better Kotlin APIs, and better Kotlin tooling, beyond IntelliJ IDEA and Android Studio. How? There's no definite answer, but you'll learn stories about how people are leading that push, all for higher software quality, and wider compatibility. Do you know the story of how Kotlin got installed on all GitHub Actions runners? You'll learn about that, too. Hopefully, that will inspire you enough to become an effective ally in the push for more Kotlin worldwide!
14
15
43
87
Thumbnail
26:29
146
Thumbnail
18:05
199
207
Thumbnail
22:17
264
278
Thumbnail
30:52
293
Thumbnail
15:53
341
Thumbnail
31:01
354
359
410
Computer-aided designGoogolSoftware developerExpert systemPhysical lawCollaborationismOperations support systemBlogEvent horizonComputerCompilerFormal languageComputer fileBitLine (geometry)CodeProjective planeData managementCharge carrierMultiplication signAlgorithmWater vaporTerm (mathematics)Open sourceBlogProcess (computing)Speech synthesisProgramming languageRevision controlDemosceneFormal languageShared memoryOnline helpWeb-DesignerView (database)NeuroinformatikPoint (geometry)E-learningExterior algebraWordLibrary (computing)Web browserShape (magazine)Software developerFeedbackJava appletComputer animation
CompilerFormal languageAndroid (robot)IntelOnline helpFeedbackComputer fileBroadcast programmingScripting languageJava appletParity (mathematics)Peer-to-peerAerodynamicsLibrary (computing)Coma BerenicesWeb browserGame controllerVirtual machineEvent horizonComputer programmingMobile WebComputing platformElectronic mailing listEmailContinuous trackComputer-aided designLatent heatWorld Wide Web ConsortiumGroup actionFront and back endsMobile appoutputSoftware bugOnline helpScripting languageSoftwareLink (knot theory)Software developerCircleAndroid (robot)Correspondence (mathematics)Term (mathematics)Declarative programmingRandomizationEvent horizonComputer programmingLatent heatWeb 2.0Menu (computing)Programming languageWeb-DesignerBitMultilaterationWater vaporWindowContinuous integrationProjective planeStapeldateiDifferent (Kate Ryan album)Multiplication signType theoryWritingGreen's functionGraph coloringWordComputer animation
Formal languageObservational studyBlogConcurrency (computer science)CoroutineExtension (kinesiology)Data typeMultiplicationComputing platformSoftware development kitRandom numberDecision theoryTerm (mathematics)Online helpExplosionWeb pagePerspective (visual)GoogolComputer-aided designSoftware developerExpert systemView (database)Type theoryProcess (computing)BlogBitCross-platformMultiplication signMessage passingOpen sourceGoodness of fitFormal languageCodePoint (geometry)Observational studyBookmark (World Wide Web)Computer programmingMechanism designCASE <Informatik>Web pageTraffic reportingFeedbackSheaf (mathematics)Perspective (visual)Data structureProjective planeSlide ruleContext awarenessComputer animation
Program flowchart
Transcript: English(auto-generated)
Hello, thanks for coming. It's my pleasure to be the first time at Fosdame in person. Last time was online two years ago. And so today I want to show you no Kotlin line of code and just inspire you Kotlin developers
Who is already doing Kotlin here? And who is not? It will be easier to see. Okay, so it might be slightly less relevant for you But it's interesting going forward if you come to like Kotlin and want more support for it. One, so it's no code. That means that soft skills will be required if you want to leverage what you
learn or what you might see as inspiration in this short talk. So, what can we do to push for better support or wider support for Kotlin? We can plant seeds.
For example, when I first was introduced to algorithms with Python, that was a seed that could have had led me to Do a carrier in data science maybe or anything related to Python. That's kind of a seed and you have seeds everywhere or in the browser if you right-click and then you can see some CSS,
HTML, JavaScript. That's also a seed that sometimes lead people to become web developers or just developers. Maybe not web developers. So you can plant seeds, you can also water plants from time to time every day Beware, not too often, or you can just wait for rain.
Sometimes just planting a seed is enough. You can also find and train new farmers. It's always a bit better that there are also people that share your point of view when you want to to say, hey, this thing is cool. But if you are the only guy saying this thing is cool, at some point people are like,
but why is he the only person that finds Kotlin cool? So all of that is kind of lobbying and lobbying might be a big word, but there are multiple ways to see it. I don't see it as a bad word. But anyway, so it can be Kotlin. I think it does actually boost Kotlin.
And so I will use the lobby word just to make things a bit simpler. So where would you want to lobby? Where do you plant the seeds? So of course online. This is a place where many many developers find new content, learn about new stuff, discover things.
You can ask. You can ask for example for a new feature, or you can ask for an issue to be fixed. You can send a support ticket to an SDK vendor. For example, you can send a support ticket to Firebase. How do I do that with Kotlin? I don't see the example in the documentation.
That's one such example. Sometimes it's just about telling people, hey, I'm using this and when they get a bunch of people telling telling about Kotlin or some questions, then you raise a priority internally. You don't see it. It's very hard because you don't have immediate feedback or no feedback at all, but it does have an impact.
You can suggest things. So you can comment in an issue. For example, is there something with a lot of asynchronous in a Java library? You can say, oh, if you also make a Kotlin version or if you change it to Kotlin, you can make it a bit easier with Kotlin, for example.
But you don't have to be very pushy. You can just suggest that alternative and then maybe other people say, oh, yeah, that would be a good idea or maybe no one. But you are planting a seed. You can also suggest to collaborate on open source projects, even if they are not in Kotlin in the first place. But contributing is also a way to reach better or wider support for Kotlin.
Because when there are libraries existing in Kotlin, well, you don't have to write it. So it's easier to do whatever you want. You can sit on the work from the community previous work that now has been done, thanks maybe to you. Blog posts. You can be a guest writer. So instead of writing blog posts in a Kotlin-only community, you can find a way to
get your post in a publication that is about any programming language and then people that are just curious also hear about Kotlin before they are very deep into the job. And of course offline,
like now, it's kind of online as well. You can talk to folks at work, at events, at the bar anywhere, or maybe you are just meeting someone that, oh, yeah, I like developing. I found the inspector. Oh, yeah, cool. And what do you like? Making apps, maybe website, making things that work behind the scenes. And then
Kotlin is not relevant for all of those. But sometimes when it is, you can also mention it and at least they know. And maybe one day, maybe two years from now, they will think again about it and they will look. And then maybe they will make you so educated that you will use five years from now or ten years from now. You don't know.
And yeah, you can, when I said, talk to folks at events, I'm not saying like a speaker, speaking to an audience, but like you can talk to, yeah, there are many developers today at first and you can just talk to anyone here. And if they don't reject you, then you
you can mention that you, whatever you are doing, and they will know a bit more. Kotlin is a very young language, so that doesn't help. There is a language like 2016 was a 1.0 release. So if you want it faster, we have to be actors of that move, I would say.
So then who to lobby? Anyone starting from about eight years old, I think. I don't know about the other bound, maybe 80, 88 years old. Anyone has an idea?
Folks that are interested in computer science, of course, you will not tell all the cashiers that you meet, hey, you know about Kotlin, maybe they are not all interesting to that. But something also very important is folks that impact other developers. So that might be developers, for example, someone that is making an SDK, a library, but that might also be a manager or
CTO, project leaders, generally speaking. Also, something you can do is when Kotlin doesn't work the way you want or something around it doesn't work the way you want, you can fight issues.
That is something that really has a positive impact on the term. For example, people have been complaining about long compilation time. Who is affected by this? Yeah, so someone, I'm very sure that there's at least one issue on the Kotlin issue tracker for that.
If you want to submit a new issue, some problem that you find, you can just go up Kotlin.in slash issue and the issue tracker has some people really triaging the issues, so there's a good chance that it helps at a long term getting Kotlin in a better shape.
And also, of course, it can be any other issue tracker depending on what it is exactly, because you might have issues in Kotlin or the ID support, but also in a library, and that might also affect developers, their experience with Kotlin overall or making their project. So, yeah, a few links. Also, you try judgebrain.com if you know that it's only in AJI
or also writing your ID. There's a help menu and then send feedback. You can send an issue for Android Studio or IntelliJ, depending on which one you are using. There are also links in AndroidX release pages, sorry, release notes pages, a link to send a new issue.
So, I don't know, you find an issue in androidx.compose compiler, then you can go there, and then you click on the release notes, latest version. Maybe you will see, oh, I'm not using the latest version, and the bug actually has been fixed, but if it's not, there's a link right here. And more, probably you can find out the right place.
And so something important is going beyond the Kotlin circle. I will give you one example. It was, I think, two years ago or something. I wanted to run a Kotlin script on GitHub actions.
I knew how to do it to install Kotlin on the GitHub action runner for the continuous integration. So there was a one-liner that I could work on Linux, but I also wanted it to run on Windows, and I had no idea how I could make it run on Windows in one-liner.
And Kotlin was not pre-installed on the machine, so I could not run Kotlin script like this. I could run batch script, but I'm not familiar with batch, and I don't think I would really want to deep dive into it to do what I wanted. So what I did is that I submitted an issue. There was a project from GitHub that was about the GitHub action runner, where you could request for them to install new software on all
GitHub action runners. So I said, hey, can you install Kotlin? And a few weeks or months later, I mean, I think they said yes a few days later, and then a few weeks or months later, Kotlin was installed on all GitHub actions runners. So now if you have a Kotlin script, you can just run it on GitHub actions.
And so you just have to ask, and it was really outside the Kotlin community. I don't think GitHub is very, very Kotlin-y company, even though they now have an Android app and they use Kotlin instead. So yeah, it's important to not always stick to our circle, and another example
is for FOSDEM. So what's this? This, tomorrow morning, it's a JavaScript level, and the first talk, let's see it a bit bigger, is... Okay, can you read? Okay, I don't know why they put it at the beginning of the day,
but I see that it's not orange. It's green on the side. So maybe it's like they want to fade it a bit away. I don't know what the colors mean on the side. Sorry? They're random. Oh, random. So thanks randomness then.
So I really thought that they would never select my talk. So you can try that. And also if you are, I don't know, maybe you are interested in web development. That might also be an opportunity to learn more, because you also get to the event. So maybe you watch a few other talks,
because I think a bunch of us usually are not just about doing, I don't know, mobile development or backend development, but sometimes we have a pet project and we do other stuff. So it might still be relevant to go at not Kotlin at all conferences. So yeah, it's important to spread the word as the right places, I believe.
And keep in mind that you need to adapt your approach to the target audience or the expected audience. Sometimes you don't really know. For example, if you come at a DevFest in a place you know nothing about, you might learn on a lot of professionals, or maybe half of the conference is from that company that is doing only that programming language, or
maybe it's all students. It really depends. So sometimes try to find out, or otherwise make it a bit generic, but don't talk like they know everything about Kotlin or they know why Kotlin is interesting. You know, you probably know why Kotlin is a good language, or what it's not good about.
It's important to that. Be introductory if you are not at a Kotlin event. I think that's a given. And also about requiring Kotlin-only specific things, or explain it. For example, receiver types. Not many programming languages have that.
I learned it when I learned Kotlin. I think it exists in Scala. Maybe. But yeah, sometimes if you want to show something cool, take the time to explain it or don't. And also think problem-first, because we know that Kotlin, oh yeah, if I had to do this, I would do it.
If I had to do this, I would do it in Rust, and this also in Kotlin. But people are not always aware of what is a problem that Kotlin will solve. So instead of thinking about all solutions, think about what problems they might have encountered in their other tools. So it's kind of you putting yourself in the shoes of other people.
Well, there are things that you can imagine. Just a few things, hoping to inspire you. So which other communities you might want to target?
Beginners. Because you, with not a lot of ceremony, you can do cool things in Kotlin, I believe. For example, writing hello world is two lines. And you don't have to create a class. So that's kind of classy, I think. Teenagers,
amateurs, students, pros that you believe are not that pro, that might still change going forward. And pros and experiments, personally, I think that seeing Kotlin helped me a lot to be critical about what tools I'm using and taking
things less for a given. So that might also be an important for your colleagues to go, even if they don't end up using Kotlin going forward. You can also target some specific pro communities, web developers, data science, iOS developers, DevStop apps, backend devs,
and the corresponding programming languages, of course. Kotlin 1.8, now I think there's a way to have Kotlin.js export TypeScript declarations. So that also something interesting
in terms of new audiences that now you might target because Kotlin evolved. So sometimes staying a bit on top, kind of like six-month delay if you want, but on the news in Kotlin can help you be a better advocate. So yeah, so even Objective-C, there are still a bunch of very good macOS apps made with mostly Objective-C, and it works very well with Kotlin Native, better than with Swift,
I think some of you know. And backend development, because a backend developer might switch companies, so they might target something different later on. You never, you really never know, I think. I mean, probably you know better than I do because you know the person.
Some plants are better water with beer, especially here, I guess, but not a lot of people like beer. Personally, I don't drink a lot of beer, but I just wanted to shoot out for the good beer here.
And so what will it be about? Again, try to be context relevant, but you can share your experience. Sometimes it's not about saying, hey, Kotlin is good because, and just a technical fact, even though it also might be very interesting, but sharing your experience is really something that helps people see which situation it might be helpful in. So that can be experienced from you,
but also folks that you know, or folks online that you maybe don't know, blog, talks, case studies. There's a case studies section on the Kotlin's website somewhere, especially for KMM, I think, and also some companies are just publishing their case studies. For example, I think DoorDash is, has been doing a bunch of
blog posts about Kotlin related stuff and how it had them do a bunch of actually useful things for them. You can, of course, talk about technical facts about the language or its ecosystem. One of them is Kotlin and structural concurrency, but it's also not so easy to explain. So
beware if you talk about it, but that's probably my favorite thing in Kotlin, so sometimes I mention it. Language features like extensions, that is, I believe, not so hard to explain as well. So
type and use safety, but beware that people have an idea of what the type is. Speakers and languages do a very good job at making you not know what even the type is. And also compatibility sharing multi-platform is also a strength in Kotlin, even though it's not always smooth
and yet it's becoming better and better. This can be a, sometimes is the only reason why some people are using Kotlin. And then they also get the other nice things and less nice things as well. And also you can share new things.
Personally, it occurs to me that I look at release notes from Dart or maybe Python or other programming language, just to see how they are evolving. Might be a bit particular because I'm kind of interested also in language design sometimes, especially Dart, that's been taking an interesting
pass lately. But maybe just as a blog post about Kotlin 1.8.20, that is coming sometime in the future. Maybe it will interest some of your colleagues. Who knows?
Yeah, and it was a bit hard to structure these slides. I hope you will forgive me. So now it's random things we can do. You can merge SDK vendors to put Kotlin at the forefront. That also has an impact. You know, if I always say a mechanism can only be a man,
then less known men will see them as impossible mechanisms of future. There's been people that have been looking into this and that's a fact. It unfortunately happens that way in our brains. So you can say to SDK vendors, can you put Kotlin before Java? And then more people will see Kotlin. That also has an impact.
If they are using Kotlin, they'll say, oh, yeah, maybe this is a good SDK. So you can tell them that that could be a good thing if you could put Kotlin before on your page. I've personally seen a bunch of SDKs where they had written Java, Objective-C, Swift, and Kotlin was like very far away. You had to
to dig a bit. So yeah, nudge. Always be nice about it. So you can act as a leader. Something quite different that works best, I think, when you are in the company and people are taking into account your feedback. You can suggest
using Kotlin when is the right time. For example, we have a new Greenfield project and we are not sure how we will approach it. So you can say, oh, for this thing that could be helpful, we can consider then have just a normal discussion. You can also get people to discover Kotlin. I think you already know, but yeah.
You can help your teammates master Kotlin. That can also be through pull requests. You can review some code because knowing about Kotlin is only the first step. And again, report the user experience issues, please.
Before they target, they affect more people. About acting as a leader, one thing is get everyone on the same page. So again, start with problems that you will avoid with Kotlin. Otherwise, why would we use Kotlin if there is not solve any problems?
Just because it starts with a K and also about others concerns, because there probably will be, take them into consideration. Listen about that. Acknowledge them and when possible, you can address them or put them into perspective. Yeah, okay, this is a problem. At the same time, we are avoiding those three problems that are
affecting us even more. So that's a good trade-off to make maybe. That really depends. Yeah, and remember that you can never be perfect at this. I'm sure I'm not. Putting yourself in other shows, taking their point of view helps to know what to tell them about Kotlin, because there are so much
to tell about Kotlin, and you cannot say everything. Personal experience helps. What I mean is that if you try to spread somehow Kotlin more, you will learn things on your own. And that works best for who you are as well, because this is a very social thing.
Listening and acknowledging helps, because then people are like, okay, you actually want to help them. It's not just about telling them, do this, do this, and being nice even when you have a feeling that
it's always a good thing. And also, it can take a while. It can take, as I told you, months, years, you never know. So don't over-punch. This is something I remind myself. And yeah, that's about it. And if you want to talk about that later,
I think we don't have a lot of time for questions, or maybe two minutes, maybe one question.
Yeah, the question was, will I open source how to make the Kotlin handkerchief? So yes, I will do it right now. This is made with an actual handkerchief. Inside there are some plastic
and with four hands, so thanks mom, with four hands you can hold the thing while some other some of the two other hands are sewing the plastic thing that keeps it, you know, holding. It's only at the top. You don't need to put plastic here. And this is some Legos that I put behind.
Then I fold it and then in the pocket.