Github Copilot – rewolucja w kodowaniu?

Github Copilot – rewolucja w kodowaniu?
Czy narzędzie bazujące na OpenAI, przetrenowane na miliardzie linii kodowych i zasilane wiedzą z StackOverflow, pomoże programistom, czy ich wyeliminuje?

Najgorętszy temat ostatnich tygodni rozpala do czerwoności informatyczny sezon ogórkowy –> Copilot. Programiści uśmiechają się z pobłażaniem na kolejną nowinkę, która w teorii ma ich zastąpić. Ci sami programiści większość wytwarzanego przez siebie kodu kopiują ze StackOverflow.

copilot-1.png

Patrząc na "technical preview" możliwości nowego narzędzia uznać można, że jest to bardzo rozbudowany autocomplete do IDE, eliminujący konieczność zaglądania na najbardziej popularne forum programistyczne. 

Oto, co aktualnie wiemy o Copilot:

  • sugeruje w edytorze, co należy podać i robi to tak szybko, jak autouzupełnianie,
  • sugestii może być więcej niż jedna,
  • sugestie dopasowane są do stylu kodowania danego programisty,
  • patrząc na demo wystarczy zacząć od komentarza opisującego daną funkcję, następnie zdefiniować i nazwać funkcję, a narzędzie doda do tego zmienne wraz z ich typami oraz całe body funkcji,
  • narzędzie bazuje na algorytmie sztucznej inteligencji OpenAI Codex,
  • językiem szkolenia dla generowania kodu z tekstu jest angielski, więc jego znajomość jest wymagana,
  • algorytm został przetrenowany na miliardach publicznie dostępnych kodów, w tym na kodzie z otwartych repozytoriów GitHuba.
  • dostępne jest jako rozszerzenie do Visual Studio Code,
  • w teorii narzędzie obsługuje wszystkie języki oraz framworki, ale aktualnie najlepiej radzi sobie z językami Python, JavaScript, TypeScript, Ruby oraz Go,
  • potrafi obsłużyć kod bilerplate oraz wzorce w kodzie; wystarczy podać przykład, a on wygeneruje resztę,
  • automatycznie podpowiada testy jednostkowe do powstałego kodu (!); wystarczy dodać odpowiedni pakiet unit testów,
  • narzędzie, oprócz samego tworzenia kodu, może być silnym wsparciem w nauce kodowania; pomija całą fazę googlowania rozwiązania,
  • właścicielem i autorem kodu wygenerowanego przy pomocy Copilota jest programista, który go użył,
  • produkt dostępny jest dla wybranej grupy testerów za darmo, ale jego komercyjna wersja będzie płatna.

Autorzy podkreślają, że narzędzie nie jest doskonałe – "GitHub Copilot stara się zrozumieć Twoje intencje i wygenerować najlepszy kod, jaki może, ale sugerowany kod może nie zawsze działać, a nawet mieć sens. Chociaż ciężko pracujemy, aby ulepszyć GitHub Copilot, kod sugerowany przez GitHub Copilot powinien zostać dokładnie przetestowany i sprawdzony, jak każdy inny kod",

Zdaniem testera:

Przez długi czas słyszałem, że programiści niedługo mnie zautomatyzują i przestanę być potrzebny. Wydaje się, że rozwiązanie zastępujące programistów powstało szybciej, niż to zastępujące testerów. Było to oczywiste ponieważ zapotrzebowanie na programistów przewyższa podaż na rynku i ten, kto pierwszy znajdzie rozwiązanie do eliminowania programistów może dobrze zarobić. Wiadomo, że próbuje Apple, próbuje też i Google, a przy wartych miliardy projektach komuś prędzej czy później się uda. Nawet jeśli Copilot nie jest jeszcze tym ostatecznym rozwiązaniem, to na pewno szybkim krokiem się do niego zbliżamy. 

Już dawno mówiło się, że ostatnim zawodem będzie tester testujący kod generowany przez maszynę. Jesteśmy właśnie u bram tej rewolucji. 

Zdaniem programisty:

Od bardzo dawna słyszałem tezy, że programiści w niedługim czasie przestaną być potrzebni, a sztuczna inteligencja ich zastąpi, gdyż większość kodu została już napisana. Jednak nic takiego się nie stało i szybko nie stanie. Sztuka programowania nie polega jedynie na pisaniu kodu w wymiarze algorytmicznym, kluczowe jest podejście koncepcyjne, rozumienie logiki biznesowej, kreatywność, elastyczność, jak i myślenie poza schematami. Dopóki nie stworzymy "myślącej" sztucznej inteligencji, dopóty programiści będą bezpieczni. W momencie, gdy ją jednak stworzymy, to rozmawiając w kategorii zagrożenia związanego z zastąpieniem zawodów przez AI, zagrożeni możemy czuć się wszyscy.

Rozwiązania typu Copilot, poza oczywistym wspomaganiem programistów (nie ich zastępowaniem), mogą przynieść inne zagrożenia. W przyszłości rynek może zalać fala "pseudo programistów", którym wydawać się będzie mogło, że potrafią programować. A jakie to będzie miało skutki? Możemy się łatwo domyślić...

 

Czy jeśli ktoś wytwarza oprogramowanie tradycyjnie to jest programistą manualnym, a jak używa wspomagania GitHub Copilot to jest już programistą automatycznym?
Źródła:
https://copilot.github.com

To powinno Cię zainteresować