Qual è il nome del paradigma di programmazione caratterizzato da Go?

8

Sono affascinato dal modo in cui Go abbandona le gerarchie di classi e sembra abbandonare completamente la nozione di classe nel tipico senso orientato agli oggetti. Inoltre, sono stupito dal modo in cui le interfacce possono essere definite senza il tipo che implementa quell'interfaccia che deve essere conosciuta.

Ci sono termini che possono / possono essere usati per caratterizzare questo tipo di metodologia di programmazione e paradigma linguistico (o forse aspetti specifici di esso)? Il paradigma del linguaggio Go è sufficientemente nuovo e distinto dal paradigma OOP classico e sufficientemente importante nella storia della programmazione per garantire un nome univoco?

    
posta Ami 17.01.2012 - 17:36
fonte

2 risposte

9

Il trasferimento di messaggi tra contesti di esecuzione leggeri, insieme alla possibilità di creare e distruggere questi contesti in modo dinamico, è fondamentalmente il modello di attore .

I linguaggi di programmazione tendono ad avvicinarsi al problema di espressione in due modi: le lingue OO tendono a concentrarsi sul renderlo è più facile implementare le stesse operazioni utilizzando diversi tipi di dati (ad esempio "oggetto che posso cliccare con un mouse" potrebbe essere una barra di scorrimento, una finestra, un menu, una casella di testo, ecc. - stessa operazione, diverse rappresentazioni di dati), mentre le lingue funzionali tendono a focalizzarsi facilmente sull'implementazione di nuove operazioni con gli stessi tipi di dati sottostanti. Abbandonando le gerarchie di classi, Go sembra finire più sul lato "funzionale" di questa divisione.

Come Adam Crossland ha indicato nel suo commento, "type-ignorantly-implementation-interface" può essere considerato una forma di digitazione anatra, che è molto diffusa nei linguaggi dinamici. (È tecnicamente più corretto, comunque, considerare questo come un sistema di tipo strutturale all'interno di Go. I modelli C ++ sono probabilmente i più popolari implementazione di un sistema di tipo strutturale oggi.)

Go ha molti antecedenti: non credo che nessuna delle sue idee sia originale per la lingua. Ma penso che sia generalmente la misura sbagliata per un linguaggio destinato a essere pratico. Go sembra che unisca idee utili provenienti da diversi domini diversi in un modo elegante, che (penso) risulterebbe in una programmazione più produttiva di C # o Java potrebbe produrre. Spero che guadagni trazione.

    
risposta data 17.01.2012 - 21:10
fonte
3

Primitive di concorrenza.

Comunicare processi sequenziali o CSP è un lavoro di Charles Antony Richard Hoare, pubblicato per la prima volta nel 1985 da Prentice Hall International.

Erlang è un linguaggio funzionale e Go è strutturato, si potrebbe dire che Erlang è il predicatore di Go.

    
risposta data 10.05.2012 - 07:53
fonte

Leggi altre domande sui tag