Expanding the Future (of Dev Tooling) with AI
I'm writing to share some news that I'm genuinely excited about, not even just for me but for the rest of the developer community.
Many of you know that I've been working with companies all over the world for nearly a decade, helping their developers learn JS and build excellence in their development team culture. I've always considered myself so fortunate and blessed to be able to engage with such a broad range of JS developers.
Since I work independently, I get to pick my own job title. For years, I've used "Open Web Evangelist", because of my desire to spread my passion for open web technologies to others. But recently, I stole a job title (from another company's job posting), preferring now to describe myself as "Director of Web Futures" for my company (Getify Solutions).
The value I see myself providing to our developer community has always been in envisioning and evangelizing the future of our open web technologies, and helping bring that future into reality. JS is of course an important part of that, but it's not the only future we need to be considering.
As Codota's CEO Dror Weiss says in the announcement blog post:
The future of the web as we know it is changing rapidly...
He's so right! That's why it's so important for people and companies who share a passion for what those futures should be, team up to make sure we head in that direction. I'm honored that Codota has chosen me to partner with in our mutual goals.
Who Is Codota?
You've probably noticed that AI/ML are creeping into almost every aspect of our connected lives, and developer process and tooling is no exception. For example, recently many of you probably saw the buzz about GPT-3, an AI model that can be used to generate real code from descriptive code comments, under certain circumstances.
I've personally been quite reserved in adopting or endorsing many such technologies, in part because the narrative always seems to drift toward how these things will eventually replace (a lot of) developers' work. Some say that this is inevitable, but I choose to believe we still have a choice in what future we create.
So when Codota approached me, and a quick scan of their site told me they provide AI-powered (GPT-2) autocomplete suggestions in your editor—they support all the major ones!—my first instinct was an eye-roll of doubt and reservation. Some of you may have had a similar reaction just now.
But, as our conversations expanded, I became quite intrigued as I discovered their core philosophies are so well aligned with my own: to leverage knowledge and technology to empower people (developers) to achieve more.
Codota doesn't want to create tools that replace your coding work, but to help you do your coding work more efficiently. They don't want to generate all your code for you, but help you write the code you're directly thinking about along with the other code you will probably need but might not even realize yet. They do this by training ML models on existing sets of code (such as OSS code, or even your existing code base!), which then lets them understand more semantically the code you've already written.
Codota is rapidly expanding their models and learning into the JS space, and that's a key reason they approached me. But I believe they also recognize that tools designed to augment developers in this way are not just about churning out code more quickly; they're really about helping developers learn the code they need to write, while the tool also learns from them.
It's this symbiotic relationship, this cyclical feedback, that most intrigues me about a product like Codota. Codota realizes that not only must they capitalize on a passion for JS development, but a drive to improve how we learn JS.
We instantly realized that we share a very similar grand vision.
— Dror Weiss, 2020
Grand plans, indeed!
Expanding Our Reach
Like an autocomplete tool expands from what you've already written to suggest what you should type next, what I believe Codota and I can achieve together is to expand on what developers already do well, through better and smarter tooling.
Interestingly, such tools typically rely on signals from the code like types and function signatures, which means that in the world of core JS, their depth is quite limited. But through machine learning, we can learn the semantics and intent of the surrounding code, not just the last key typed. The door of opportunity swings open wide.
Codota wants their tools to (at least!) double developer productivity. My vision is that we can do that not only by getting more developers using these tools, but in expanding where and how these tools learn themselves. The better the tools can learn from us what we're doing, the better we can then learn from the tools.
Building the Developer Empowerment Program for Codota fits right in with my other community pursuits. I'll continue to write code in OSS projects, I'll continue to write books and blog posts, and I'll continue to create videos and other content.
But now I'll have an even richer perspective on what developers' needs are, training my attention on the nexus of knowledge and tooling and optimizing to go even further!
As always, if you have thoughts or questions or would like to participate in this exploration, please reach out to me. I'm here to listen and learn from you!
About Kyle Simpson
Kyle Simpson is Director of Web Futures at Getify Solutions, where he envisions and evangelizes what's next for Open Web technologies, especially JS. He writes, speaks, teaches, and codes OSS.