6
votes

La langue Google est-elle adressée aux problèmes de la post de Paul's Graham's's Graham ''s's's Noir notamment d'objet orienté "?

est-ce que Google's Golang adresse les problèmes avec les langues adressées dans la post de Paul's Graham's ''s''s Post ' Pourquoi l'arc n'est-il pas particulièrement orienté objet '?


2 commentaires

Quels problèmes? Ce post parle de problèmes de dépassement des conceptions volumineuses orientées objet, pas de problèmes avec des langues.


@MQuander: Et vraiment le post concerne plus que des avantages parasites que des problèmes.


3 Réponses :


9
votes

Mon sentiment initial envers ceci est "Il est trop tôt pour dire"

1) La programmation orientée objet est passionnante si vous avez un langue statiquement typée sans fermetures lexicales ou macros. À certains degré, il offre un moyen autour de 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 cela correctement autoriser Vous devez transmettre des fonctions sous forme de paramètres, qu'il soit défini 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. À grandes entreprises, le logiciel a tendance à être écrit par gros (et fréquemment Changer) équipes de médiocre programmeurs. Orienté objet La programmation impose une discipline sur ces programmeurs qui empêchent tout l'un d'entre eux de faire trop endommager. Le prix est que le Le code résultant est gonflé avec protocoles et plein de duplication. Ce n'est pas trop élevé un prix pour grand entreprises, parce que leur logiciel est va probablement être gonflé et complet de toute façon de toute façon.

Ce point est loin d'être subjectif à répondre.

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 mettrait que cinq ou dix lignes de code sur une page, précédé de vingt ans lignes de formatées élaborées commentaires. Programmation orientée objet est comme une fissure pour ces personnes: vous permet d'intégrer tout cela échafaudage droit dans votre source code. Quelque chose qu'un pirate informatique LISP pourrait gérer en poussant un symbole sur Une liste devient un fichier entier de classes et des méthodes. Donc c'est un bon outil si vous voulez vous convaincre, ou quelqu'un d'autre, que tu fais beaucoup de travail.

Depuis que Go n'est pas une langue véritablement orientée objet, vous pouvez probablement résoudre le problème dans n'importe quel fashon que vous êtes à l'aise.

4) Si une langue est elle-même un programme orienté objet, il peut être prolongé par les utilisateurs. Eh bien, peut-être. Ou Peut-être que vous pouvez faire encore mieux par offrant les sous-concepts de programmation orientée objet a la Carte. Surcharge, par exemple, est pas intrinsèquement attaché 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'objets. On dirait que les outils sont présents dans la langue pour structurer vos données de manière orientée objet sans vous enfermer dans un environnement orienté objet pur.

5) Abstractions orientées objet Carte parfaitement sur les domaines de certains types de programmes spécifiques, comme Simulations et systèmes de CAO.

...


1 commentaires

GO Supporte des fonctions de première classe et d'ordre supérieur, de sorte que c'est cool. De plus, il prend en charge la frappe à la MLS / Haskell / Racket. La chose que j'aime personnellement à propos de Go, c'est que, bien qu'il y ait des idiomes à cet égard, les designers semblent comprendre que différentes situations appellent à différents outils - contrairement à Graham. Ne me trompez pas, Graham est génial. C'est juste que cela se dispute sur les idiomes de programmation est finalement infructué: il se résume à un argument sur des outils entre des artisans biaisés ou entre les processus de pensée entre philosophes biaisés.



5
votes

Paul a des points intéressants, en général, j'ai lu beaucoup de ses références. Dans cette affaire, nous ne sommes pas d'accord. C'est une noix de lisp et une noix de programme de merde. Il semble mettre en gage difficile de comprendre les programmes comme le travail de grands programmeurs. Oui, je me rends compte qu'il est plus nuancé que cela, mais cela se résume vraiment à cela. À la fin de la journée, votre code est facile à travailler, soit ce n'est pas le cas. Et certains programmeurs, les programmeurs que Paul jugeraient super, pourront supporter plus de merde que d'autres et pourront toujours faire des têtes ou des queues de ce que le code entend. C'est une compétence, mais le plus assurément pas le seul à un bon programmeur a besoin.

Parler de l'arc, ça craint, et à moins que je ne me trompe même que les gens de la communauté Lisp, pensent donc 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.


0 commentaires

1
votes

attendre, cependant, est vraiment orienté objet? Cela semble entièrement agnostique sur ce front. Vous pouvez utiliser OOP ou FP ou une programmation impérative à part allez. Je veux dire, «programmation» de style Prolog serait un étirement, mais sinon ...

En fait, je dirais que je vais ressembler à Scala à cet égard: il y a des paradigmes d'objets qui se trouvent autour, et pourtant, il y a aussi des lambdas et la classique se couchait.


1 commentaires

Go est orienté objet. Il utilise l'approche générique d'expédition de l'orientation de l'objet, de même que les Lisp et Dylan communs.