One thing I learned working in big tech — there’s always someone watching.
Take the Amazon Alexa. You can bet the big 4 tech firms are watching Amazon and trying to decide if they’ll make technology to compete. And I really wish they would. I have an echo and love it, but programming for the Echo is crap.
Why is programming for the echo crap? So many issues:
- provisioning services is a nightmare. You do’t even know what services you need to provision, much less have access to a configuration file. Lots of AWS console pages — lots — to get to hello world.
- No audio stream. If you want to make a phone app, forget it. Amazon won’t give you the voice data. There’s AVS that you can use to send voice you capture to Alexa — but there’s no access to the voice in the Echo.
- 90 second, fixed format playback from the API. You literally chunk everything as 90 second long mp3s.
- NodeJS. Voice is not web, and the stateless nature of web design makes no sense in voice apps. The biggest issue is that your app will respond to any of the registered commands in any sequence. Conversations, however, are always sequential. It’s just the wrong language for the job.
- NodeJS, outside the web, is sort of a problem. There’s real harm in imposing the async paradigm on problems that are much simpler to read in a stateful manner.
- And not just any NodeJS — you can’t write the code in your own editor. Amazon wants to make sure they own the coding platform, and you have to write Alexa code in their web editor.
- Can’t really sell what you make. Amazon won’t let you monetize the actual ASK — instead, you have to sell something else, like an unlock code, on Android.
- AVS platform lock — AVS is essentially only available for Linux/Android. If you want to use AVS on PC/Mac, well, you’re SOL.
- Overly cloudy. I’m not a fan of the cloud, because it adds complexity that doesn’t need to be there. But Alexa takes the cake on too much cloud for no reason. Can’t write the code on local system — must be in browser. Can’t run any part on your own hardware — must run in AWS. Evey instance requires a lambda spin-up. Can’t sell what you make. Developers give too much control away when using Alexa.
My team won the Echo prize in the recent Seattle VR Hack-a-thon. The team at Amazon is amazing, and echo is an amazing product. Again, I own and love my echo. But without a competitor, the developer experience is really sub-par. I also don’t like these cloud companies forcing devs to lock in to them — can’t even use your own editor? Come on!
So that’s my argument — that Echo needs competition from the big tech companies. Sure, some start-up can make a great echo-like product with a better developer experience. There are small-shop products that make similar products that I run across on KickStarter/Indiegogo. But those companies are vertically focused — no developer experience at all — where the big 4 make APIs…