Z robotem jak z kumplem. Programiści dostali wyjątkowe narzędzie od GitHuba

Z robotem jak z kumplem. Programiści dostali wyjątkowe narzędzie od GitHuba

Każdy, kto miał współcześnie do czynienia z tworzeniem oprogramowania, na pewno zetknął się z pojęciem pair programming, czyli programowanie w parach.

Na czym polega pair programming? To wywodząca się z metodyki agile technika pracy dwóch programistów przy jednej stacji roboczej. Jeden z nich (driver), pisze kod, a drugi (observer) dokonuje na bieżąco przeglądu napisanych linijek programu. Korzystając ze zjawiska, które możemy streścić przysłowiem „co dwie głowy, to nie jedna”, Observer zajmuje się architekturą rozwiązania, a Driver jego implementacją.

Co jednak, gdy nie mamy partnera do programowania?

Tutaj z pomocą może przyjść wirtualny kolega do pary, zasilany sztuczną inteligencją. Takiego właśnie programistę do pomocy stworzył GitHub, a jego testy technical preview właśnie ruszyły. Nazywa się GitHub Copilot i może pracować jako dodatek do Visual Studio Code lub do GitHub Codespaces - środowiska do programowania w chmurze.

Aby skorzystać z usług Copilota, trzeba najpierw zapisać się do zamkniętych testów na stronie https://copilot.github.com/. Niestety, zaproszenie do testów po zapisaniu się nie jest zapewnione.

Copilot rozpoznaje wszystkie popularne języki programowania. Według GitHub wersja testowa radzi sobie szczególnie dobrze z JavaScriptem, Pythonem, TypeScriptem, Rubym oraz Go. Potrafi jednak współpracować z dziesiątkami innych języków.

Co potrafi Copilot?

Sercem Copilota jest Codex - system sztucznej inteligencji stworzony przez OpenAI. Copilot jest „autouzupełnieniem na sterydach” - dzięki zastosowaniu uczenia maszynowego potrafi zrozumieć cały kontekst pisanego kodu i podpowiedzieć dalsze kroki. Zgodnie z lotniczą metaforą to ludzki programista jest pilotem i to on(a) decyduje o tym, jaki fragment podpowiadanego kodu wykorzystać.

Copilot potrafi np. wygenerować przykładowe użycie nowej funkcji lub obiektu, przez co nie musimy szukać tego w dokumentacji lub niezbędnym programiście forum StackOverflow. Można to zilustrować przykładem napisania kodu używającego pythonowej biblioteki do Twittera o nazwie Tweepy. Copilot uwolnił nas od napisania dużej ilości powtarzalnego, banalnego kodu.

Innym przykładem zastosowania jest... generowanie kodu na podstawie komentarza w kodzie opisującego co chcemy osiągnąć.

Kolejne zastosowanie to generowanie kodu na podstawie powtarzalnego wzorca - tutaj przykład wymieniania w strukturze stałej języka programowania i znaku rozpoczynającego komentarz.

Wielu programistów również ucieszy się z podpowiadania testów jednostkowych (unit tests) pasujących do metody, którą napisaliśmy.

Copilot potrafi również podpowiedzieć alternatywy do fragmentów kodu, jaki napisaliśmy, i pozwala wybrać taką, która nam najbardziej odpowiada.

AI pomaga programować - czy to już przyszłość?

Gdy pojawiały się kolejne usprawnienia w środowiskach programistycznych (kolorowanie składni, potem podpowiadanie inteligentne i inne), za każdym razem były one coraz bardziej sprytne i inteligentne. Copilot - a może i inne usługi i dodatki, które powstaną na jego wzór - jest kolejnym logicznym krokiem. Okazało się, że wbrew temu, co sądzono pod koniec lat 90., sztuczna inteligencja nie wyeliminowała programistów - po prostu ich wspomaga.