A week ago, Microsoft held its Build developer conference in its backyard in Seattle. This week, Google did the same in an amphitheater right next to its Mountain View campus. While Microsoft’s event felt like it embodied the resurgence of the company under the leadership of Satya Nadella, Google I/O — and especially its various, somewhat scattershot keynotes — fell flat this year.

The two companies have long been rivals, of course, but now — maybe more than ever — they are on a collision course that has them compete in cloud computing, machine learning and artificial intelligence, productivity applications and virtual and augmented reality.

It’s fascinating to compare Pichai’s and Nadella’s keynote segments. Both opened their respective shows. But while Pichai used his time mostly to announce new stats and a new product or two, Nadella instead used his time on stage to talk about the opportunities and risks of the inevitable march of technological progress that went way beyond saying that his company is now ‘AI first.’ “Let us use technology to bring more empowerment to more people,” Nadella said of one of the core principles of what he wants his company to focus on. “When we have these amazing advances in computer vision, or speech, or text understanding — let us use that to bring more people to use technology and to participate economically in our society.”

And while Google mostly celebrated itself during its main I/O keynote, Nadella spent a good chunk of time during his segment on celebrating and empowering developers in a way that felt very genuine.

Having spent a few days at both events, I couldn’t help coming home thinking that it may be Microsoft that has the more complete vision for this AI-first world we’ll soon live in — and if Google has it, it didn’t do a good job articulating it at I/O this year.

AI First

The area where this rivalry is most obvious (outside of the core cloud computing services) is in machine learning. Google CEO Sundar Pichai noted during his keynote segment that the company is moving from being a mobile first company to an AI first one. Microsoft is essentially on the same path, even as its CEO Satya Nadella phrased it differently. Neither company really mentioned the other during its keynote events, but the parallels here are pretty clear.

The two marquee products both companies used to show off their AI prowess were surprisingly similar. For Microsoft, that was Story Remix, a very nifty app that automatically makes interesting home videos our of your photos and videos. For Google, it was Google Photos, which is using its machine learning tech to help you share your best photos more easily. Remix is a far more fun and interesting product, which garnered massive applause from the developer audience at Build, while the new Google Photos features sound useful enough, but aren’t going to blow people away. There was also nothing developers could learn from that segment.

Google Lens, which can identify useful information in images, looks like it could be really useful, too (though we won’t really know until we get our hands on it at some point in the future), but it’s worth noting that Google’s presentation wasn’t very clear here and that a number of people I talked to after the event told me that they had a hard time figuring out whether this was a developer tool, a built-in feature for the Google Assistant or a standalone app. That’s never a good sign.

Google also still offers Google Goggles, an app that allowed you to identify objects around you for a few years now. I think Google forgot that even existed, as it’s sometimes prone to do.

At the core of the two companies’ AI efforts for consumers are Microsoft Cortana and the Google Assistant. This is one area where Google remains clearly ahead of Microsoft, simply because it offers more hardware surfaces for accessing it and because it knows more about the user (and the rest of the world). Cortana works well enough, but because it mostly lives on the desktop and isn’t really connected to the rest of your devices, using it never comes natural.

In the virtual personal assistant arena, Google actually had some interesting announcements (though things like making calls on Google Home fell a bit flat, too, simply because Amazon announced this same feature for its Echo speakers a few days earlier). The fact that it is coming to the iPhone shows that Google wants it to be a cross-platform service and its integration with Chromecast is also really interesting (but again, because Amazon already announced its version of the Echo with a built-in screen, this didn’t land with the big splash Google had surely hoped for either).

None of the new Assistant features are available now, which is disappointing and follows an unfortunate trend for Google I/O announcements in recent years.

With the Microsoft Graph, it’s worth mentioning, Microsoft is now building a fabric that will tie all of your devices and applications together. Whether that will work as planned remains to be seen, but it’s a bold project that could have wide-reaching consequences for how you use Microsoft’s tools, even on Android, in the future.

VR/AR/Real World

Another topic both companies talked about at their events are virtual and augmented reality. Here, both Google and Microsoft are talking about the spectrum of experiences that sit between full augmented reality (or “mixed reality” as Microsoft calls it) and virtual reality (and at the other end of that is “real reality” in Google’s charts).

With HoloLens, Microsoft has a clear lead in standalone augmented reality experiences. That’s a $3,000 device, though. Google’s current approach is different in that it want to use machine vision (combined with its Tango technology) to use phones as the prime lens for viewing AR experiences.

As for VR, Google this year talked a lot about standalone headsets. Yet while it revealed a few partners, it remained vague about specs, prices and release dates. Microsoft, on the other hand, is currently focusing on tethered headsets from partners like Acer that combine some of its HoloLens technology for tracking your movements with the power of the connected Windows 10 PC. Microsoft is shipping dev kits now and consumers will be able to buy them later this year.

It’s HoloLens, though, is technically miles ahead of anything Google even showed blueprints of at I/O. That’s a surprise, because Google had a lead in building a VR ecosystem thanks to its quirky Cardboard viewers, but now it feels like it’s at the risk of falling behind.

Developer Conferences

Both Microsoft and Google used their events to announce relatively evolutionary updates to their flagship operating systems. Google, of course, had already pre-announced Android O and Microsoft had already pre-announced that it’ll now offer two Windows 10 releases a year, so the fact that we’ll get a new update in the fall really wasn’t a surprise.

For both companies, these developer shows are high-stakes events. Google I/O, however, felt pretty relaxed this year. Indeed, it almost felt as if I/O came at the wrong time of the year for the company. There simply wasn’t all that much to announce this year, it felt, and while that would’ve allowed Google to more clearly lay out its vision, it instead squandered valuable keynote time on talking about previously announced YouTube features that few people in the audience cared about.

While Microsoft admittedly has a far wider product portfolio for developers, its event had far more energy and showed a clearer vision. Microsoft, too, made sure that its event focused almost exclusively on developers (“There will be coding on stage,” a Microsoft representative warned the assembled media before the first keynote). Google’s event (and especially the main keynote) often felt like the company didn’t quite know who its audience was (developers? consumers? the press?). And Google had a “developer keynote” at its developer conference. That must have been a first.

When Microsoft showed off Remix at Build, it was to tell developers that they, too, can take the company’s tools and build an experience like this. When Google showed off Google Photos, it showed consumers that they can now use its technology to quickly make photo books. Yet really interesting new feature for developers, like Instant Apps, were barely mentioned in the keynote, even though they touch both consumers and developers.

Yet the fact that the addition of Kotlin as a first-class language for Android development got more applause than any other announcement at the show clearly shows what the core audience is (in the press boxes, that announcement mostly resulted in blank stares, of course).

So to be blunt, I/O was relativelyboring this year. There was no new hardware, no major new developer tools, no big new consumer product, very few new tools and almost no products that developers or consumers can use right now (and not even a full name for Android O). Maybe this kind of annual cadence for developer conferences simply doesn’t work anymore now that technology moves way too fast for annual updates, but it also remains the most effective tool to bring a developer ecosystem together under one roof (or tents, in Google’s case), state your case and lay out your vision. This year, Microsoft did a better job at that.