Comment les programmeurs avec hors programmation conjoints gèrent-ils leur différence de connaissances techniques?

J’avais lu un article à ce sujet un long temps de retour. L’auteur dû le prendre vers le bas à cause de certaines personnes disant que l’article était injuste envers le sexe féminin. J’ai copié le texte de la conversation depuis un site miroir. Je ne détiennent pas de droit de propriété sur le contenu ci-dessous.

Voici la conversation entre Ryan Tomayko et son épouse.

Femme : Qui est Roy Fielding?

Ryan : Un mec. Il est intelligent.

Femme : Oh? Qu’a-t-il fait?

Ryan : Il a aidé à écrire les premiers serveurs web , puis a fait une tonne de recherche expliquant pourquoi le web fonctionne de la façon dont il le fait. Son nom est sur la spécification du protocole qui permet d’obtenir des pages de serveurs à votre navigateur.

Femme : Comment ça marche?

Ryan : Le web?

Femme : Oui.

Ryan : Hmm. Eh bien, il est tout assez étonnant vraiment. Et le plus drôle, c’est que c’est tous très sous-évalué. Le protocole que je parlais, HTTP, il est capable de toutes sortes de trucs sympa que les gens ignorent pour une raison quelconque.

Femme : Tu veux dire http comme le début de ce que j’ai taper dans le navigateur?

Ryan : Oui. Cette première partie indique au navigateur quel protocole utiliser. Ce genre de choses vous tapez là est l’une des plus importantes percées dans l’histoire de l’informatique.

Femme : Pourquoi?

Ryan : Parce qu’il est capable de décrire l’emplacement de quelque chose n’importe où dans le worldfrom partout dans le monde. C’est le fondement du web. Vous pouvez penser d’elle comme coordonnées GPS pour la connaissance et l’information.

Femme : Pour les pages web?

Ryan : Pour quoi que ce soit vraiment. Ce gars-là, Roy Fielding, il parle beaucoup sur ce que ces choses point dans que je parlais de la recherche. Le web repose sur un style architectural appelé REST. RESTE fournit une définition d’une ressource, qui est à quel point ces choses à.

Femme : Une page web est une ressource?

Ryan : En quelque sorte. Une page web est une représentation d’une ressource. Les ressources sont juste des concepts. URL--ces choses que vous tapez dans le navigateur...

Femme : Je sais ce qu’est une URL...

Ryan : Ah, oui. Ceux qui disent le navigateur qu’il y a un concept quelque part. Un navigateur peut alors aller demander une représentation spécifique du concept. Plus précisément, le navigateur demande la représentation sous forme de page web du concept.

Femme : Quels autres types de représentations sont là?

Ryan : En fait, les représentations est une de ces choses qui ne s’habituent beaucoup. Dans la plupart des cas, une ressource n’a qu’une seule représentation. Mais nous espérons que représentations serviront plus à l’avenir parce qu’il y a un tas de nouveaux formats d’apparaître dans tous les sens.

Femme : Comme quoi?

Ryan : Hmm. Eh bien, il y a ce concept que les gens appellent des Services Web. Cela signifie beaucoup de choses différentes à beaucoup de personnes différentes, mais le concept de base est que les machines pourraient utiliser le web juste comme les gens le font.

Femme : C’est cette autre chose robot?

Ryan : Non, pas vraiment. Je ne veux pas dire que machines seront assis au comptoir et navigation sur le web. Mais les ordinateurs peuvent utiliser les mêmes protocoles pour envoyer des messages en arrière les uns aux autres. Nous avons fait que pour une longue période, mais aucune des techniques que nous utilisons aujourd'hui fonctionnent bien quand vous devez être en mesure de parler à toutes les machines dans le monde entier.

Femme : Pourquoi pas?

Ryan : Parce qu’ils n’ont pas été conçus pour être utilisés comme ça. Lorsque Fielding et ses copains a commencé à construire le web, être capable de parler à n’importe quelle machine partout dans le monde a été une préoccupation majeure. La plupart des techniques que nous utilisons au travail pour obtenir des ordinateurs de communiquer entre eux n’a pas eu ces exigences. Vous avez besoin juste de parler à un petit groupe de machines.

Femme : Et maintenant vous avez besoin de parler à toutes les machines?

Ryan : Oui - et plus encore. Nous devons être en mesure de parler à tous les ordinateurs de tous les trucs qui se trouve sur toutes les autres machines. Il faut donc un moyen d’avoir une machine à raconter une autre machine une ressource qui peut être sur une autre machine.

Femme : Ce qui?

Ryan : Disons que vous parlez à votre sœur et elle veut emprunter la balayeuse ou quelque chose. Mais vous ne l’avez pas - votre mère a elle. Alors vous dire votre soeur pour l’obtenir à la place de votre maman. Cela arrive tout le temps dans la vraie vie, et il arrive tout le temps quand machines commencent à parler trop.

Femme : Alors, comment les machines eux disent où sont les choses?

Ryan : L’URL, bien sûr. Si tout ce que les machines ont besoin de parler a un URL correspondante, vous avez créé la machine équivalente d’un substantif. Que vous et moi et le reste du monde avons convenu sur parler de noms d’une certaine manière est assez important, hein?

Femme : Oui.

Ryan : Machines n’ont pas un nom universel - c’est pourquoi ils sucent. Chaque langage, base de données ou autre type de système de programmation a une façon différente de parler de noms. C’est pourquoi l’URL est si importante. Il nous allons tous ces systèmes dire sur les noms des uns et des autres.

Femme : Mais quand je regarde une page web, je ne pense pas de lui comme ça.

Ryan : Personne ne fait. Sauf Fielding et poignée d’autres personnes. C’est pourquoi machines toujours aspirer.

Femme : Qu’en est-il des verbes et des pronoms et des adjectifs?

Ryan : Vous avez demandé drôle parce que c’est un autre grand aspect de repos. Eh bien, les verbes sont de toute façon.

Femme : Je plaisantais juste.

Ryan : C’était une blague drôle, mais il n’est effectivement pas une blague du tout. Les verbes sont importants. Il y a un concept puissant en programmation et en théorie de CS que l'on appelle polymorphisme. C’est une façon geek de dire que les noms différents peuvent avoir le même verbe qui leur sont appliqué.

Femme : Je ne comprends pas.

Ryan : Eh bien... Regardez la table basse. Quels sont les noms? Tasse, plateau, Journal, télécommande. Maintenant, ce sont des choses que vous pouvez faire toutes ces choses?

Femme : Je ne comprends pas...

Ryan : Vous pouvez les obtenir, droite? Vous pouvez les ramasser. Vous pouvez les renverser. Vous pouvez le graver. Vous pouvez appliquer ces mêmes verbes précis à chacun des objets assis là.

Femme : OK... alors?

Ryan : Eh bien, c’est important. Que faire si, au lieu de moi d’être en mesure de dire à vous, "obtenir la coupe," et "obtenir le journal" et "obtenir la télécommande" ; que se passe-t-il si au lieu de cela, nous avions besoin pour arriver à des verbes différents pour chacun des noms? Je ne pouvais pas utiliser le mot « get » universellement, mais plutôt dû inventer un nouveau mot pour chaque combinaison verbe/nom.

Femme : Wow ! C’est bizarre.

Ryan : Oui. Nos cerveaux est en quelque sorte assez intelligent pour savoir que les mêmes verbes peuvent être appliquées à beaucoup de noms différents. Certains verbes sont plus spécifiques que d’autres et s’appliquent uniquement à un petit ensemble de noms. Par exemple, je ne peux pas conduire une tasse et je ne peux pas boire une voiture. Mais certains verbes sont presque universels comme GET, PUT et DELETE.

Femme : Vous ne pouvez pas supprimer une tasse.

Ryan : Eh bien, très bien, mais vous pouvez jeter. C’était une autre blague, droite?

Femme : Oui.

Ryan : De toute façon, HTTP--ce protocole Fielding et ses amis inventèrent--est tout sur l’application des verbes aux noms. Par exemple, lorsque vous accédez à une page web, le navigateur fait un HTTP GET à l’URL que vous tapez dans et retour vient une page web.

Pages Web ont habituellement des images, droite? Ce sont des ressources distinctes. La page web juste spécifie l’URL vers les images et le navigateur va et fait plus HTTP obtient sur eux jusqu'à ce que toutes les ressources sont obtenues et la page web s’affiche. Mais l’important ici est que des types très différents de noms peuvent être traités de la même. Si le substantif est une image, texte, vidéo, un mp3, un diaporama, peu importe. Je peux obtenir toutes ces choses la même manière, étant donnée une URL.

Femme : Sonne comme le GET est un verbe assez important.

Ryan : C’est le cas. Surtout lorsque vous utilisez un navigateur web parce que les navigateurs jolies choses bien justGET. Ils ne font pas beaucoup d’autres types d’interaction avec les ressources. Il s’agit d’un problème parce qu’il a conduit beaucoup de gens à supposer que HTTP est juste pour GETing. Mais HTTP est effectivement ageneral but protocole d’application de verbes aux noms.

Femme : Cool. Mais je ne vois toujours pas comment cela change quoi que ce soit. Quels types de noms et verbes voulez-vous?

Ryan : Eh bien les substantifs sont là mais pas dans le bon format.

Vous pensez quand vous naviguez autour des Achats en ligne pour l’électronique, vêtements, ordinateurs, livres, DVDs & plus chercher des choses à m’acheter pour Noël. Imaginez que chacun des produits comme étant des noms. Maintenant, s’ils étaient disponibles dans une représentation qui pourrait comprendre une machine, vous pourriez faire beaucoup de choses intéressantes.

Femme : Pourquoi une machine ne peut pas comprendre une page web normale?

Ryan : Parce que les pages web sont conçus pour être compris par les gens. Une machine ne se soucie mise en page et son style. Machines a fondamentalement juste besoin des données. Idéalement, chaque URL aurait un homme lisible et une représentation lisible par machine. Quand une machine est la ressource, il demandera la machine un lisible. Quand un navigateur devient une ressource pour un être humain, il demandera l’humain lisible.

Femme : Donc les personnes devra faire formats de machine pour toutes leurs pages?

Ryan : Si elle était précieuse.

Regardez, nous avons parlé avec beaucoup d’abstraction. Que diriez-vous, nous prenons un exemple concret. Vous êtes un professeur - à l’école, je parie que vous avez un gros ordinateur, ou trois ou quatre systèmes informatiques plus probables, qui vous permettent de gérer les élèves : quelles classes ils sont, quelles qualités qu’ils obtiennent, des contacts d’urgence, des informations sur les livres vous enseignez de, etc.. Si les systèmes sont basées sur le web, il n’y a probablement une URL pour chacun des noms en cause ici : étudiant, enseignant, classe, livre, salle, etc.. Droite, passer l’URL du navigateur te donne maintenant une page web. S’il y avait une représentation lisible par machine pour chaque URL, alors il serait trivial pour verrouiller les nouveaux outils sur le système parce que toute cette information serait consommable de manière standard. Il rendrait également tout à fait un peu plus facile pour chacun des systèmes de parler les uns aux autres. Ou, vous pourriez construire un État ou un système national qui a été en mesure de parler à chacun des systèmes scolaires individuels pour recueillir les scores de tests. Les possibilités sont infinies.

Chacun des systèmes obtiendrait des informations entre eux en utilisant un simple HTTP GET. Si un système a besoin d’ajouter quelque chose à un autre système, il utiliserait un HTTP POST. Si un système veut mettre à jour quelque chose dans un autre système, il utilise un HTTP PUT. La seule chose qui reste à déterminer, c’est quoi devraient ressembler les données.

Femme : Voilà ce que vous et tous les informaticiens travaillent sur maintenant? Décider quoi devraient ressembler les données?

Ryan : Malheureusement, non. Au lieu de cela, la grande majorité sont occupée à écrire des couches des spécifications complexes pour faire ce genre de choses de façon différente, ce qui n’est pas presque aussi utile ou éloquent. Les noms ne sont pas universelles et verbes ne sont pas polymorphes. Nous allons jeter par des décennies d’utilisation de champ réel et technique éprouvée et en recommençant avec quelque chose qui ressemble beaucoup à d’autres systèmes qui n’ont pas réussi dans le passé. Nous utilisons HTTP mais seulement parce qu’elle nous aide à parler à nos gens de la sécurité des réseaux et moins. Nous sommes la cotation simplicité pour assistants et outils flashy.

Femme : Pourquoi?

Ryan : Je n’ai aucune idée.

Femme : Pourquoi ne pas vous dire quelque chose?

Ryan : Peut-être que je le ferai.

Je pense que vous obtenez le point que d’être patient avec votre partenaire est la meilleure suggestion ici. En outre, vous devez être comme descriptif qu’il peut obtenir, pour expliquer ce que vous faites et pourquoi vous le faites.

J’espère que cela aide.


Tags: Programmation informatique, Programmeurs/programmeuses, Rencontres et relations, Mariage