Est-ce que go-langue de Google face aux problèmes dans le poste de Paul Graham « Pourquoi Arc est pas particulièrement orienté objet »?

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

  •  19-09-2019
  •  | 
  •  

Question

Est-ce que Google golang régler les problèmes liés langues abordées dans le poste de Paul Graham « Pourquoi Arc est pas particulièrement orienté objet ?

Était-ce utile?

La solution

Mon premier sentiment envers c'est « Il est trop tôt pour dire »

  

1) La programmation orientée objet est passionnant si vous avez un   statiquement typé sans   fermetures lexicales ou macros. pour certains   degré, il offre un moyen de contourner ces   limites. (Voir le dixième de Greenspun   Règle.)

Go prend en charge les littéraux de fonction (voir docs ) qui, si je lis ceci correctement permettent vous de passer des fonctions comme params, qu'ils soient définis ailleurs ou créé ad hoc.

  

2) La programmation orientée objet est populaire dans les grandes entreprises, car elle   convient la façon dont ils écrivent des logiciels. À   les grandes entreprises, les logiciels ont tendance à être   écrit par un grand (et souvent   l'évolution) des équipes de médiocre   programmeurs. Orienté objet   programmation impose une discipline   ces programmeurs qui empêche toute   l'un d'entre eux de faire trop   dommage. Le prix est que le   le code résultant est gonflé avec   protocoles et pleine de duplication.   Ce n'est pas un prix trop élevé pour le grand   entreprises, parce que leur logiciel est   va probablement être pléthorique et complète   de duplication de toute façon.

Ce point est loin de répondre à l'appréciation de.

  

3) La programmation orientée objet génère beaucoup de ce qui ressemble   travail. Retour dans les jours de fanfold,   il y avait un type de programmeur qui   ne placeront cinq ou dix lignes de   code sur une page, précédée de vingt   lignes formatées minutieusement   commentaires. Programmation orientée objet   est comme le crack pour ces personnes: il   vous permet d'intégrer tout cela   droit d'échafaudage dans la source   code. Quelque chose qu'un pirate Lisp   pourrait gérer en poussant un symbole sur   une liste devient un fichier entier de classes   et méthodes. Il est donc un bon outil si   vous voulez vous convaincre, ou   quelqu'un d'autre, que vous faites beaucoup   du travail.

Comme go est pas un langage objet vraiment orienté, vous pouvez probablement résoudre le problème dans tout ce fashon vous êtes à l'aise avec.

  

4) Si une langue est elle-même un programme orienté objet, il peut être   étendu par les utilisateurs. Eh bien, peut-être. Ou   peut-être vous pouvez faire encore mieux en   offrant les sous-concepts de   à la programmation orientée objet   carte. Surcharge, par exemple, est   pas intrinsèquement liée aux classes.   Nous verrons.

Go semble avoir une approche intéressante à des objets, où vous n'êtes pas obligé de vous inquiéter / développer de grands arbres d'objet. Il semble que les outils sont présents dans la langue de structurer vos données dans un objet mode orienté sans vous enfermer dans un environnement orienté objet pur.

  

5) abstractions de l'objet orienté plan soigneusement sur les domaines de certaines   certains types de programmes, tels que   des simulations et des systèmes de CAO.

...

Autres conseils

Paul a quelques points intéressants, en général, j'ai lu beaucoup de ses rêveries. Dans cette affaire, nous ne partageons pas. Il est un écrou Lisp, et un écrou de programme merdique. Il semble difficile de mettre en gage de comprendre les programmes que le travail des grands programmeurs. Oui, je me rends compte qu'il est plus nuancée que cela, mais il se résume à cela. A la fin de la journée, que ce soit votre code est un travail facile avec, ou ce n'est pas. Et certains programmeurs, les programmeurs que Paul estimerait grand, sera en mesure de mettre en place avec plus de merde que d'autres et encore être en mesure de faire des têtes ou queues de ce que le code prévoit. C'est une compétence, mais assurément pas le seul apanage d'un bon programmeur.

En parlant d'Arc, il suce, et à moins que je me trompe même les gens dans la communauté Lisp pense donc -. Mon point étant ici que même les gens intelligents font des erreurs

Encore une fois, Paul est un gars intelligent, mais toute son approche dans cette pièce particulière est hors de la marque, il semble.

Attendre, cependant, est d'aller vraiment orienté objet? Il semble tout à fait agnostique sur ce front. Vous pouvez utiliser OOP ou FP ou la programmation dans les Impératif Go. Je veux dire, style Prolog « programmation » serait un bout droit, mais autrement ...

En fait, je dirais que Go ressemble scala à cet égard. Il y a certains paradigmes d'objets qui traînent, et pourtant, il y a aussi lambdas et typecasing qui traînent

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top