Czy sztuczna inteligencja zastąpi programistów?

TeamQuest 03.10.2018 r.
Czy sztuczna inteligencja zastąpi programistów?

AI to jeden z tematów, który rozpala wyobraźnię świata technologii. Każda ewolucja daje nowe etaty dla developerów, wyzwania. Czy jednak myślące maszyny mogą odebrać pracę również nam, programistom?

Od kilku lat słyszymy o sztucznej inteligencji, która będzie w stanie prowadzić samochody, pisać artykuły, tropić przestępców, leczyć nieuleczalne choroby, czy programować. Niektóre z tych rzeczy już nastąpiły, inne pewnie wydarzą się za kilka lat. Ja jednak dzisiaj skupiam się na tym ostatnim: programowaniu. Czy AI jest rewolucją, która może pożreć własne dzieci?

Uczenie maszynowe

Cała historia opiera się w zasadzie o machine learning, czyli uczenie maszynowe. Jest to nauka zajmująca się problematyką sztucznej inteligencji. Głównym jej celem jest stworzenie automatycznego systemu potrafiącego uczyć się przy pomocy nabieranego doświadczenia (danych). Dzięki temu maszyna będzie udoskonalała się sama. Jest to prosta i podstawowa zasada AI. Naukowcy tworzą algorytmy, które mogą „uczyć się” na podstawie przesłanych i zebranych danych. Sztuczna inteligencja ma wyciągać wnioski, podejmować decyzje i konstruować nową wiedzę.

Jednym z pierwszych przypadków uczenia maszynowego w praktyce był projekt Arthura Samuela z IBM, który w latach 50-tych stworzył algorytm i aplikację do szkolenia zawodników szachowych. Program wraz z każdym ruchem zawodnika zapisywał jego posunięcie i „zapamiętywał”. Dzięki temu maszyna się doskonaliła.

Takie były początki. Teraz jednak wielcy świata technologii chcą wykorzystać uczenie maszynowe do automatyzacji procesów produkcyjnych. Machine learning bez wątpienia ma wiele korzyści. Za pomocą uczenia maszynowego zwiększa się:

  • Wydajność
  • Bezawaryjność
  • Produktywność
  • Redukują się koszty

Niemal każdy z nas kojarzy koncept uczenia maszynowego. Jaki ona ma jednak związek z programowaniem? Otóż chodzi o to, że naukowcy doszli do wniosku, że maszyny mogą być efektywniejsze od programistów. Trwa właśnie wyścig, kto pierwszy stworzy narzędzie zdolne do pisania i budowania aplikacji automatycznie. Kilka wielkich firm zaangażowało się w rozwój tego zagadnienia i pierwsze efekty są obiecujące.

Uniwersyteckie początki

Nauka

1,5 roku temu na światło dzienne wyszła informacja, że naukowcy z Uniwersytety Cambridge i Microsoft Reaserch stworzyli AI, który pisze swój własny program. Nazywa się to DeepCoder.

DeepCoder – system wykorzystujący metodę syntezy programowej do pisania oprogramowania. Polega to na tym samym, że DC pobiera fragmenty kodu z innych programów i implementuje je na własny użytek. Narzędzie samo decyduje, co mu będzie potrzebne, a co nie.
DeepCoder jest znacznie wydajniejszy i szybszy, niż człowiek. Pisanie programów zajmuje mu ledwie kilka sekund. Oczywiście ma on ciągle swoje ograniczenia i nie radzi sobie ze skomplikowanymi aplikacjami.

Jeszcze wcześniej, bowiem na początku 2016 roku do wiadomości przedostała się informacja o naukowcach z MIT, którzy stworzyli oprogramowanie używające nauczania maszynowego do nauki ogólnych zagadnień z prawidłowo napisanych programów. Dzięki temu narzędzie mogło porównywać i szybko naprawiać błędy w innych konfiguracjach oprogramowania. Mówiąc prościej: oprogramowanie AI pożyczało „zdrowy” kod z innych aplikacji i potem naprawiało awarię w „chorym”. Choć system nie był perfekcyjny, bowiem na 880 błędów, 50 pominął, testy ciągle trwają. Prace nad tym rozwiązaniem na MIT zaczęły się już w 2009 roku.

Francuski wydawca gier – Ubisoft też w tym roku zapowiedział, że będzie wprowadzał sztuczną inteligencję do pomocy programistom. Zamiast tworzyć kolejne patche, oprogramowanie ma wykrywać i informować developera podczas pisania o możliwym popełnieniu błędu.

Facebook to nie tylko zdjęcia znajomych z wakacji

Media społecznościowe

Jednym z najprężniej działających przedsiębiorstw w dziedzinie rozwoju nowych technologii jest Facebook. Światowy gigant od lat pracował nad narzędziami, które pozwolą wyszukiwać i naprawiać błędy w programie.

Od dłuższego czasu popularny portal społecznościowy korzystał z Sapienz – urządzenia do testowania programów używanych przez firmę. Na jego podstawie powstał teraz SapFix, który ma znajdować i naprawiać niedokładności w programie. Wszystkie znalezione błędy i stworzone łatki musi zatwierdzić główny programista. Oprogramowanie jednak wykorzystuje tę wiedzę: jeśli łatka została zatwierdzona, program wrzuca ją do bazy rozwiązań, z którego będzie mógł skorzystać w przyszłości. Wyżej wymienione przykłady były testowane laboratoryjnie. Z SapFix jest inaczej: jego użyteczność jest sprawdzana na aplikacjach portalu.

Facebook obiecał, że udostępni swoje narzędzia na licencji open-source. Skorzystać na tym będą mogły mniejsze firmy, których nie stać na zakup drogich rozwiązań i zatrudnienie kilkudziesięciu developerów. Jeśli słowa amerykańskiego giganta są prawdziwe, każdy będzie mógł rozwijać na własny użytek nową technologię.

Czy AI zastąpi programistów?

AI - sztuczna inteligencja

Powyższe przykłady pokazują, że jesteśmy blisko stworzenia AI, które będzie samo pisało programy.

Jeśli wierzysz w to, że ludzkość wyginie przez rozwój sztucznej inteligencji, to tak – AI wyprze programistów. Jeżeli wiesz, że nastąpi bunt maszyn, prawdopodobnie stracisz wtedy pracę jako programista.

Racjonalna odpowiedź na to pytanie jest jednak złożona. Nie, sztuczna inteligencja nie zabierze miejsc pracy dla developerów aplikacji. Przynajmniej nie w najbliższym czasie. Z drugiej jednak strony: tak, nieco zmieni specyfikę zadań programisty. Prawdopodobnie za kilka, kilkanaście lat praca na tym stanowisku będzie ograniczała się jedynie do sprawdzenia, czy program działa dobrze. Całą resztę będzie w stanie zrobić AI.

Oczywiście, choć IT zmierza w tym kierunku, gwarancji żadnej nie ma, że tak się stanie. Teraz jednak pracy dla programistów będzie jeszcze więcej, bo najpierw ktoś musi nauczyć sztuczną inteligencję, jak programować. Jeszcze upłynie co najmniej kilka lat, zanim AI będzie w stanie pracować samodzielnie. Więc teraz możesz uczyć się obsługi nowych narzędzi i próbować rozwijać nowoczesną technologię, by być gotowym na zagładę ludzkości.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT: