Domanda

OOP è probabilmente il più paradigma di programmazione utilizzato nella progettazione del software di oggi. La mia domanda è - che cosa altro paradigma (s) può competere con esso e può stare nel luogo della programmazione orientata agli oggetti ? Per chiarire questa domanda, non ti sto chiedendo di quello che gli altri ci sono paradigmi. Ci sono molti di loro e mi piacerebbe sapere quale:

  • è stato utilizzato in pratica, non solo in teoria.
  • può competere con oop , in modo che possa essere utilizzato in un progetto di grandi dimensioni, senza o con un minimo di dolore.
  • Può essere utilizzato per sviluppare un'applicazione desktop con la logica di business, database, e così via.
  • non viene utilizzato con il compagno di programmazione orientata agli oggetti, ma può sostituire oop.

E se c'è qualche, quali sono i pro / contro di esso, perché è meglio / peggio di oop, quali lingue sono i migliori di usarlo, cosa su come utilizzare in lingue popolari, ha eventuali modelli di progettazione, e può sostituire totalmente oop?

È stato utile?

Soluzione

programmazione funzionale è un altro paradigma di programmazione che è popolare, per lo più nel mondo accademico. Il miglior esempio di un linguaggio di programmazione funzionale è Haskell e standard ML .

La differenza fondamentale tra la programmazione funzionale e programmazione orientata agli oggetti è che si sta programmando nel senso di flusso di dati anziché flusso controllo . Vedi la presentazione Effetti Taming con la programmazione funzionale da Simon Peyton-Jones per una buona introduzione.

Un buon esempio di programmazione funzionale utilizzato nell'industria è Erlang . Viene usato principalmente in telecomunicazioni, distribuita e fault tolerant. Vedi la presentazione Erlang - Software per una simultanea mondiale da Joe Armstrong .

Ci sono anche più recenti linguaggi di programmazione funzionale che combinano la programmazione funzionale con OOP. Due esempi di buone sono F # per la piattaforma .NET e Scala per la piattaforma Java; che spesso possono utilizzare le librerie esistenti sulla piattaforma scritte in altre lingue.

L'andamento dei nuovi linguaggi di programmazione ora è multi-paradigma , in cui più paradigmi come Object Oriented la programmazione e la programmazione funzionale sono combinati nella stessa lingua.

Altri suggerimenti

trattamento procedurale è stato tutto prima di OOP alzato, ha prodotto alcuni grandi applicazioni del mondo reale (in realtà, la maggior parte di loro in origine) e molti sistemi operativi.

Si può certamente essere utilizzato in prodotti di grandi dimensioni con un minimo di dolore, e un massimo di prestazioni

Vector Relazionale Data Modeling viene utilizzato per creare modelli informativi eseguibili con il dominio semantica pertinenti all'interno della Global Information Network Architecture, un modello di rete residente broker.

FP - programmazione funzionale è un paradigma di programmazione estremamente popolare che è stato intorno per un tempo molto lungo e ha, in anni più recenti, iniziato a diventare sempre più importante. FP favorisce immutabilità sopra mutevolezza, ricorsione e funzioni senza effetti collaterali. Alcuni esempi di linguaggi FP popolari sono Erlang, Scala, F #, Haskell e Lisp (tra gli altri).

Non ci sono paradigmi attualmente che può davvero sostituire OOP. Il problema con (beneficio di) OOP è che fa una grande quantità di lavoro per te- rilasciare automaticamente le risorse, convalida dei dati, ecc, e lo rende facile per convalidare code-per non parlare che la stragrande maggioranza delle librerie esistenti al mondo sono scritti in un linguaggio OOP come il C ++, C # o Java. La realtà di andare d'accordo senza tali librerie di grandi dimensioni e tale è estremamente dubbia.

Nella nicchia o mondo accademico, troverete un sacco di programmazione funzionale. Tuttavia, se si vuole veramente fare un grande progetto, programmazione orientata agli oggetti è l'unico modo per andare.

Credo che la programmazione generica sta per venire in su come un nuovo paradigma. Tuttavia, è davvero ancora in fase di sviluppo e solo C ++ / D offerta veramente buona programmazione generica.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top