Trudno na to odpowiedzieć, ponieważ podobnie jak w przypadku sztucznej inteligencji, kiedy to osiągniemy, będzie tak, ponieważ będziemy pisać program, który to robi. A krytycy powiedzą: „Cóż, ta maszyna tak naprawdę sama się nie programuje!
No tak. Cokolwiek zrobimy z komputerami, zrobimy to, dając mu jakiś program i on go wykona. Jeśli jest to argument przeciwko, nie możemy nic osiągnąć. A jednak w pewnym momencie ludzie myśleli, że komputer do gry w szachy będzie oczywiście inteligentny. Teraz mogą, a my wiemy dokładnie jak i nie uważamy, że to inteligentne. Okręty podwodne wciąż nie potrafią pływać.
Więc - rozważ kilka przykładów.
Od dziesięcioleci mamy generatory analizatorów składni . Dajesz im opis języka, jest on przetwarzany, a wynikiem jest kod parsera dla tego języka. Wiemy dokładnie, jak się to robi, ale czy to nie samo oprogramowanie komputerowe?
Po drugie - edytory, które informują o popełnieniu błędu (błąd składni, nieistniejąca zmienna itp.). Sam niczego nie programuje, ale może powiedzieć, że zrobiłeś coś złego. Jest bardzo na powierzchni.
Języki, w których można po prostu kliknąć i przeciągnąć elementy sterujące interfejsu użytkownika, a kod, który sprawi, że będą działać, jest generowany automatycznie.
Kompilatory JIT. Oprogramowanie, które rozpoznaje punkty aktywne w aktualnie uruchomionym oprogramowaniu i zastępuje niektóre z nich wysoce zoptymalizowanym skompilowanym kodem, skutecznie optymalizując się podczas działania. Myślę, że jest to przykład tego, co może wydawać się samym programowaniem maszynowym, dopóki nie dowiesz się dokładnie, jak to się dzieje, a potem okazuje się, że robi to, co programista powiedział, jak zawsze.
Ogólna gra. Jest to interesująca dziedzina badań, w której badacze piszą programy, które potrafią czytać opisy zasad gier, które następnie grają przeciwko sobie. Więc zamiast programu kółko i krzyżyk lub programu szachowego, są to programy, które czytają zasady gry w kółko i krzyżyk lub szachy lub jakąś nową grę wymyśloną na miejscu, a następnie mogą je zagrać. Program sam się nie programuje, ale gra w szachy bez ustalonych zasad gry w szachy. Był czas, kiedy to byłoby wyraźnie uważane za komputer, który sam się czegoś uczy.
Zrobiliśmy wiele małych kroków w ogólnym kierunku.
Ale nie mogę wymyślić żadnych programów, które same przepisują się na podstawie wyników wcześniejszych uruchomień lub które mogą rozpoznać przestarzałe lub nieefektywne procedury we własnym kodzie. Myślę, że któregoś dnia będziemy to mieć i uważamy, że to nic specjalnego, ponieważ będzie to tylko funkcja najnowszego kompilatora ...