Ha go-lingua di Google affrontare i problemi in post di Paul Graham: 'Perché Arc non è particolarmente Object Oriented'?

StackOverflow https://stackoverflow.com/questions/1714004

  •  19-09-2019
  •  | 
  •  

Domanda

Google di Golang affrontare i problemi con le lingue affrontati nel post di Paul Graham ' Perché Arc non è particolarmente Object Oriented '?

È stato utile?

Soluzione

La mia sensazione iniziale verso questo è "E 'troppo presto per dire"

  

1) Programmazione orientata agli oggetti è entusiasmante se si dispone di un   linguaggio staticamente tipizzato senza   chiusure lessicali o macro. A certi   laurea, offre un modo per aggirare questi   limitazioni. (Vedi Decima di Greenspun   Regola.)

Go supporta letterali logici (vedere docs ), che se sto leggendo questo permettono correttamente di passare funzioni come params, se definiti altrove o creati ad-hoc.

  

2) Programmazione orientata agli oggetti è popolare nelle grandi aziende, perché   adatta il loro modo di scrivere software. A   le grandi aziende, il software tende ad essere   scritto da grande (e frequentemente   mutevoli) squadre di mediocre   programmatori. Orientato agli oggetti   programmazione impone una disciplina   questi programmatori che impedisce qualsiasi   uno di loro di fare troppo   danno. Il prezzo è che il   risultante codice è gonfio di   protocolli e piena di doppioni.   Questo non è un prezzo troppo alto per la grande   le aziende, perché il loro software è   probabilmente ad essere gonfio e pieno   della duplicazione in ogni caso.

Questo punto è molto soggettiva di rispondere.

  

3) Programmazione orientata agli oggetti genera un sacco di quello che sembra   lavoro. Torna nei giorni di moduli continui,   c'era un tipo di programmatore che   avrebbe messo solo cinque o dieci righe di   il codice in una pagina, preceduto da venti   linee di elaborato formattato   Commenti. Programmazione orientata agli oggetti   è come il crack per queste persone: si   consente di incorporare tutto questo   ponteggi a destra nella vostra fonte   codice. Qualcosa che un hacker Lisp   potrebbe gestire spingendo un simbolo su   un elenco diventa un intero file di classi   e metodi. Quindi è un buon strumento, se   si vuole convincere te, o   qualcun altro, che si sta facendo un sacco   di lavoro.

Dal momento che andare non è un linguaggio vero orientato agli oggetti, probabilmente si può risolvere il problema in qualunque fashon hai dimestichezza con.

  

4) se un linguaggio stesso è un programma orientato agli oggetti, può essere   esteso dagli utenti. Beh forse. O   forse si può fare ancora meglio per   offrendo i sub-concetti di   programmazione orientata agli oggetti alla   carte. Sovraccarico, per esempio, è   non intrinsecamente legato alle classi.   Staremo a vedere.

Vai sembra avere un approccio interessante per gli oggetti, dove non sono tenuti a preoccuparsi / sviluppo di alberi di oggetti di grandi dimensioni. Sembra che gli strumenti sono presenti nella lingua di strutturare i dati in maniera orientata agli oggetti senza di te blocco in un ambiente puro orientato agli oggetti.

  

5) astrazioni orientate agli oggetti mappa ordinatamente sui domini di alcuni   specifici tipi di programmi, come   simulazioni e sistemi CAD.

...

Altri suggerimenti

Paul ha alcuni punti interessanti, in generale, ho letto un sacco di sue riflessioni. In questa materia, non siamo d'accordo. E 'un dado Lisp, e un dado programma di merda. Sembra impegnare off difficile da comprendere programmi come il lavoro di grandi programmatori. Sì, mi rendo conto che è più sfumata di quella, ma che realmente si riduce solo a questo. Alla fine della giornata, sia il codice è facile lavorare con, o non lo è. E alcuni programmatori, programmatori che Paolo avrebbe considerato grande, sarà in grado di mettere in su con più schifo di altri e ancora in grado di fare testa o croce di quello che il codice si propone. Si tratta di un'abilità, ma la maggior parte sicuramente non l'unico bisogno un buon programmatore.

A proposito di Arco, fa schifo, e se non mi sbaglio anche le persone nella comunità Lisp la penso così -. Il mio punto qui è che anche le persone intelligenti sbagliano

Ancora una volta, Paul è un ragazzo intelligente, ma tutto il suo approccio in questo particolare pezzo è fuori luogo che sembra.

Aspetta, però, è andare veramente orientata agli oggetti? Sembra del tutto agnostico su questo fronte. È possibile utilizzare OOP o FP o programmazione imperativa all'interno Go. Voglio dire, Prolog-style "programmazione" sarebbe una forzatura, ma per il resto ...

In realtà, direi che assomiglia a Go scala a questo proposito:. Ci sono alcuni paradigmi di oggetti in giro, e tuttavia, ci sono anche lambda e typecasing giro

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