Mi sono insegnato Commodore Structured Bsic, poi ho imparato Waterloo Structured Basic e Fortran al liceo, e l'ho trovato così facile. Poi ho insegnato a me stesso il Prolog e, mentre odiavo la curva di debugging e apprendimento (dopo aver insegnato metodi puramente imperativi), alla fine l'ho imparato e fino ad oggi, rimane la mia lingua preferita. Non che io abbia poche probabilità di usarlo, ma ti insegna a davvero a pensare all'applicazione in questione, e ad abbattere il lavoro, invece di immergerti a fatica e mordicchiare il compito proceduralmente .
Oggigiorno uso varie lingue imperative e mi manca l'eleganza di Prolog, ma le lezioni che ho imparato non sono mai andate perse. Chiunque può imparare le lingue imperative, ma impararle prima rende più difficile l'apprendimento successivo delle lingue dichiarative. Imparare le lingue dichiarative prima insegna buoni concetti per la vita e salva il dolore cercando di capirlo dopo aver imparato le lingue imperative.
Se scriverete solo script o app semplici con routine altamente deliberate che potete facilmente capire, allora potreste anche saltare le lingue dichiarative, ma se poteste mai affrontare qualcosa di troppo grande per ogni singolo cervello umano, voi benedirà i giorni in cui hai appreso le tecniche per attaccare un progetto usando un linguaggio dichiarativo. E perché limitarti dal primo al semplice codice che un giorno sarà sicuramente fatto da un'app o offshorato per una frazione del tuo prezzo? Dico che vale veramente la pena del "dolore".
Quindi voto per imparare una lingua dichiarativa a scuola, quindi un linguaggio imperativo più popolare, che è il modo migliore per instillare un buon comportamento di pianificazione riducendo al minimo la curva di apprendimento.