No to i ja dorzucę swoje trzy grosze.
Programy pisze się dla ludzi. Maszynie jest wszystko jedno. To człowiek musi rozumieć program, aby móc go zmienić, gdy przestanie spełniać oczekiwania.
BASIC jakiego znamy z 8-bitowców jest językiem niestrukturalnym. Jest idealny do pierwszych kroków, ale nie wymusza, ani nawet nie wspomaga struktury, przez co rozumienie programu jest bardzo trudne i modyfikowanie kosztowne. Nie mamy ani klarownego przypływu sterowania ani porządku w danych.
Języki strukturalne wspomagają strukturę wymuszając jasny przepływ sterowania, ale niestety o dane dbają tak samo, jak BASIC o sterowanie, czyli wcale. Większość energii zespołu jest pochłaniana na ręczne zarządzanie zasobami, ostrożną komunikację pomiędzy modułami i szukanie błędów kto komu nadepnął na stopę, a kto o czym zapomniał.
Języki obiektowe zaś chronią dane i w poprawnym projekcie to kompilator powie ci, że czegoś ci nie wolno (bo dobierasz się do cudzego obiektu i nie za bardzo wiesz jak, bo kolega nie napisał dokumentacji) i to kompilator automatycznie zwolni zasób, gdy nie jest ci już potrzebny. To nie moda. To odciążenie.
Języki deklaratywne są najbardziej wyrafinowane, bo w nich określamy tylko co mamy osiągnąć, a już sama maszyna dba o to, aby nam to dostarczyć, dlatego są najczęściej destynowane do specyficznych zastosowań (jak SQL czy HTML).
Inne paradygmaty jak języki funkcyjne czy logiczne (Prolog nie jest funkcyjny) mają wąskie zastosowania w rozwiązywaniu nietuzinkowych problemów wyuzdanymi algorytmami. Zastosowań mają mało, ale w tym, co robią, są diabelnie dobre.
Gdybyśmy wszyscy byli supermenami, to nie musiałoby powstać nic wyższego niż asembler. Człowiek jednak jest ułomny, a programy nieuchronnie błędne i musimy sobie pomagać, jak tylko potrafimy automatyzując co tylko się da, tak, aby jak najbardziej skupiać się na istocie problemu, a nie na technikaliach jego implementacji.