For those of you who don't know what's the deal, check it out on copilot's website.
In short GitHub and OpenAI managed to MachineLearn the hell out of public repositories on GitHub (not sure at this stage if it was the only source) and expose it in the form of developers digital assistant! Go watch a sample of how it works on bdougies channel:
I am currently using Tabnine , but am wondering if I will need that any longer, or more specifically will the two need me for anything but the starting comment! It's been incredibly helpful, and made more time in my life for stuff other than hunting typos and reading through awfully long interfaces! Funny enough I am actually working with DynamoDb these days, and share the astonishment at this "abstraction".
The tool that was created to help you code faster, was used to write itself already. Battle tested in self creation, amazing times in technology.
Just think that now you don't only get to talk to your coffee machine to make you a coffee - you can tell your computer to do your job for you.
WE NEED VOICE INPUT
All the science fiction movies of my childhood where characters were talking with the machines are coming true (yet again), it's way more than a chatbot at this stage - although admittedly has more of the close-miss potential!
When I got to know about it, it set off a rollercoaster of emotions:
- Bliss - potentially offloading the cognitive / time constraint of looking for a related StackOverflow answer to a robot? Hell, yeah - take my money.
- Fear for the future - after all the robot that's going to replace me is looming right over my shoulder. Now I will feed it even more insight, as it will likely be reading and analysing the output of its "suggestions" - I wonder, will it collect metrics on code if it's used on private repositories as well? How long do I have before a career switch? Most of those thoughts were quickly alleviated, coding is "just a speck of dust inside a giant's eye". Also I am unrealistically optimistic right now and I believe I will manage to automate my job away to the computer, before it automates me away - so that I can finally get all the time in the world for my 🐝🐝s and the 🐶,
- (possibly) Anger - yet another corporate tool, the epitome of what it means to monetise the public (after all it's in beta and I don't expect it to stay free forever) - from what I've read there is some controversy over the licenses of projects it has scanned as it hasn't gone through fully open / MIT licenses only.
- Joy with a dose of excitement - I have always wanted a repository of different ways to do the same. This are the 3 solutions of Project Euler, HackerRank, LeetCode and other such websites. With CoPilot it's even better, as I don't have to browse for the solutions myself. When you add a mix of languages including at least three of the ones I use, well YOU HAVE MY KEYBOARD.
- Hesitance - it's already been pointed out that even the examples used in presentation are imperfect. See here for more detail. This comes for a place of misunderstanding of what the purpose of this tool is at this stage I think. For now it's meant to take away the mundane aspects of developer work, ensure more quality.
- Time anxiety - I fear that the advent of tools that make certain jobs easier, will be misread by the business we are in. A lot of us are already galloping at a breakneck pace - imagine if someone misreads copilot as "oh so all of my developers are the unique 10x-ers now?". I dread the moment when I hardly had time to read what the copilot spit out (yay feature rush!), to later come back and fix / adjust it without prior understanding.
- Uncertainty - admittedly biassed here, because of how the software development contracts are structured these days - but does using this tool transfer all of the IP to GitHub? On the one hand it would be fun, we would all be one big family, but on the other I doubt this sort of engagement will pay at least my social security!
I haven't settled on my own opinion just yet as I have yet to try the tool, but the memes are 💯, check some of my favourite to date below:
After all, it seems to be following the general direction of "low-code" tooling. There has been so many exciting development in that space recently, that's it's hard to keep up, here's another great sample from the space I am personally invested in:
In general I share the sentiment of Ben Kehoe:
- (great read on the matter of abstraction: https://kentcdodds.com/blog/aha-programming/.)