Uważam, że wiedza o tym czym jest Prolog i Lisp (lub inne języki realizujące podobne paradygmaty) i umiejętność elementarnego posługiwania się tymi językami jest koniecznym elementem wykształcenia współczesnego informatyka. Doskonale zdaje też sobie sprawę, że otaczająca nas rzeczywistość mówi coś dokładnie innego. Obecnie na rynku pracy jest głównie zapotrzebowanie na programistów Javy, C++ i .NET a „na topie" są tzw. aplikacje webowe. Studia nie mają jednak na celu wykształcenia programistów/administratorów/sieciowców, ale przede wszystkim ludzi myślących, posiadających rozległą i uniwersalną wiedzę. Stąd istotna jest świadomość, że algorytm nie koniecznie musi być z mozołem zapisywany w jednym z imperatywnych języków prgramowania (np. C, Java, Pascal), ale często można to zrobić dużo prościej i szybciej posługując się deklaratywnym językiem programowania np. Prologiem (programowanie w logice) czy Lispem (programowanie funkcyjne1 2). Oczywiście nie mówimy tutaj o całkowitym zastąpieniu tych pierwszych języków drugimi.
Bardzo interesująca jest możliwość łączenia różnych języków ze sobą czy realizowanie różnych idei w tym samym języku. Osiągamy wówczas pewnego rodzaju elastyczność mając możliwość napisania różnych elementów aplikacji w najoptymalniejszy sposób2. Odbicie tego sposobu myślenia odnajdujemy w najnowszych tendencjach
• C++
• Jess
• Drools
Moim zdaniem żaden z języków deklaratywnych nie nadaje się do stworzenia kompletnej aplikacji biznesowej2. To jednak nie powinno dziwić, gdyż nie do tego zostały one zaprojektowane. Niestety
xiii
‘Nazywane także funkcjonalnym.
*Nie oszukujmy się: nie ma jednego uniwerslanego języka programowania.
Nie oznacza to, że nie można. Jak bardzo się uprzemy to jest to wykonalne (np. system operacyjny [23]: This project aims to deuelop a Lisp based operating system for generał purpose Computer architectures.). Pytanie tylko, po co?