Perché i linguaggi naturali progettati non sono comuni
Ci sono tre motivi per cui impari un linguaggio naturale:
- I tuoi genitori o l'ambiente parlano una lingua, e naturalmente cerchi di capire di cosa stanno parlando.
- La tua scuola richiede di imparare un paio di lingue straniere.
- ohmygosh {Esperanto, Quenya, Klingon, Lojban} è fantastico perché sono {interessato alla linguistica, a un fan di {LoTR, Star Trek}}.
Come accade, le lingue che impareresti al punto 3 non vengono generalmente pronunciate in pubblico o a casa e non vengono insegnate a scuola al posto del francese o dello spagnolo. Pertanto, sono tutti molto di nicchia.
La correlazione non implica nesso di causalità
Oh wow, quindi A e B sembrano avere qualche correlazione. A causa B? O viceversa? O ci sono altri fattori che non ho considerato?
La tua domanda sembra chiedere se un linguaggio di programmazione può diventare mainstream solo se non è ortogonale. Questo è fuorviante.
Le lingue evolvono
Le lingue cambiano nel tempo. La loro libreria standard viene rielaborata. Nuova sintassi aggiunta. L'orientamento dell'oggetto è reso disponibile. Le espressioni Lambda sembrano utili. Ma chiusure e oggetti possono essere implementati in termini l'uno dell'altro, quindi perché dovrei averne bisogno entrambi? Perché dovrei voler aggiungere generici o altri integratori di sistema? Ovviamente non ho bisogno di loro ...
Un linguaggio che non si evolve è probabilmente morto.
Alcune lingue sono fatte per portare a termine il lavoro
Per alcune lingue, la praticità è della massima importanza. Non importa se ci sono cinque o più cacciaviti nella mia cassetta degli attrezzi, perché non tutte le viti sono uguali. Un utente esperto sceglierà quello giusto per la situazione.
Altre lingue si sforzano di essere più minimali e / o eleganti. Questo può essere utile per scopi didattici o in contesti di ricerca. Le lingue piccole sono più facili da portare. Sono spesso utili, ma non sempre quando devi spedire la tua domanda ieri.
La quota di mercato è Ballast e Obbligo di spostarsi
Un linguaggio che cerca di essere rilevante domani deve continuare ad evolversi e includere nuovi concetti. Ad esempio, lo standard C ++ viene lentamente ma costantemente rielaborato. Ogni versione di Java è un passo avanti. C # è spesso all'avanguardia rispetto alle lingue tradizionali. Un linguaggio come SML o Smalltalk non ha serie ambizioni di diventare mainstream.
Un linguaggio già ampiamente utilizzato deve rimanere retrocompatibile o perdere quote di mercato. Le caratteristiche che erano lì ieri devono rimanere disponibili anche se è stata introdotta un'alternativa migliore. In Java, i parametri di tipo vengono cancellati durante la compilazione per back-compat. In PHP, lo spazio dei nomi principale è pieno di funzioni pericolose e deprecate che non possono essere rimosse senza interrompere una buona parte di Internet.
Conclusione
Suggerirei che le lingue di successo tendono a diventare meno ortogonali nel tempo, non solo che i linguaggi meno ortogonali tendono a diventare più facilmente mainstream. Tuttavia, non vi è alcun nesso di causalità perché ci sono più fattori da considerare.
Se guardo l'elenco delle lingue che hai collegato a noi vediamo come lingue ortogonali: Schema e Lua avevano il minimalismo come obiettivo di design, linguaggi accademici come Coq , Haskell , SML sono meno utili per la programmazione quotidiana o difficili da imparare, e alcuni linguaggi come Forth e APL sono usati a malapena.
Le lingue meno ortogonali sono abbastanza comuni o hanno una lunga storia. Fortran e COBOL sono antichi, ma hanno ancora una nicchia strong. Lingue come PHP e Shell sono cresciute al di là di ciò che intendevano fare. Alcune lingue sono esplicitamente pluralistiche, ad es. Perl e il suo discendente Ruby . La lingua C # è in competizione diretta con Java e cerca di ottenere un punteggio con caratteristiche migliori. Alcune lingue hanno un impegno religioso per il backcompat, ad es. C ++ o Perl .