Logiciel d'écriture, je trouve, est composé de deux parties:
- l'Idée, et
- la mise en Œuvre.
L'Idée est de penser de: "je n'ai ce problème; comment puis-je le résoudre?" et "comment puis-je le résoudre de façon élégante?" Les réponses à ces questions sont obtenus par réflexion sur des algorithmes et de l'architecture. Les idées viennent en partie grâce à l'analyse et en partie grâce à la perspicacité et de l'intuition.
L'Idée est généralement la partie la plus facile. Vous parlez à vos amis et collègues et vous écrou elle lors d'une réunion ou d'un café. Il faut une heure ou deux, en plus des révisions que vous mettre en œuvre et de trouver de nouveaux problèmes.
La phase de Mise en oeuvre de développement de logiciels est tellement difficile que nous plaisanter à ce sujet. "Oh," nous disons, "le reste est une Simple Question de Code". Car il devrait être simple, mais il ne l'est jamais.
Nous avons utilisé pour écrire notre code sur des cartes perforées, et c'était dur: des erreurs ont été très difficiles à repérer, nous avons donc dû dépenser plus d'effort à faire en sorte que chaque ligne a été parfait. Puis nous avons eu la borne serial (série): nous avons pu voir tout notre code à la fois, de la recherche à travers elle, de les organiser de façon hiérarchique et de créer des choses abstraites à partir de matières de code machine.
Nous avons d'abord eu d'assemblage, et d'un niveau de code machine. Mnémoniques nous a libérés de se souvenir du code machine. Puis, nous avons eu des compilateurs, qui nous a libérés de rappeler les instructions. Nous avons eu des machines virtuelles, qui permettent de s'éloigner de la machine détails spécifiques.
Et maintenant, nous avons avancé des outils comme Eclipse et Xcode que d'effectuer une analyse sur notre code pour nous aider à écrire du code plus rapide et d'éviter les pièges les plus courants.
Mais l'écriture de code est toujours difficile. L'écriture de code est de comprendre les grands systèmes complexes, et les outils que nous avons aujourd'hui n'est tout simplement pas aller très loin pour nous aider avec ça. Lorsque je clique sur "rechercher toutes les références" dans Eclipse, j'en obtenir une liste au bas de la fenêtre. Je clique sur l'un, et je suis déchiré loin de ce que je regardais, l'a forcé à changer le contexte. Architecture Java est généralement de plusieurs niveaux de profondeur, de sorte que je dois changer et basculer et switch jusqu'à ce que je trouve ce que je suis vraiment à la recherche de -- j'ai oublié d'où je venais. Et je fais ça tous les jours jusqu'à ce que j'ai compris un système. C'est la taxation mentalement, et Eclipse n'a pas beaucoup de qui n'a pas pu être fait en 1985 avec grep, à l'exception de manger des centaines de mégas de RAM.
L'écriture de code a à peine changé depuis que nous avons été à regarder orange sur noir. Nous avons les bases théoriques pour beaucoup plus d'outils de pointe, des outils qui fonctionnent réellement pour nous aider à comprendre et à étendre les systèmes complexes, nous travaillons tous les jours.
Alors, pourquoi est-écriture de code toujours aussi dur?