1) La farce Business Apps :
Je pense que tout ce qui concerne les frameworks "Enterprise" est de la fumée et des miroirs. J2EE, .NET, la majorité des frameworks Apache et la plupart des abstractions pour gérer de telles choses créent beaucoup plus de complexité qu'ils n'en résolvent.
Prenez n'importe quel ORM Java ou .NET normal, ou n'importe quel framework MVC supposé moderne pour l'un ou l'autre qui fait de la «magie» pour résoudre des tâches fastidieuses et simples. Vous finissez par écrire d'énormes quantités de laid XML XML qui sont difficiles à valider et à écrire rapidement. Vous avez des API massives où la moitié d'entre elles consistent simplement à intégrer le travail des autres API, des interfaces impossibles à recycler et des classes abstraites qui ne sont nécessaires que pour surmonter l'inflexibilité de Java et C #. Nous n'avons tout simplement pas besoin de la plupart de cela.
Que diriez-vous de tous les différents serveurs d'applications avec leur propre syntaxe de descripteur reproché, la base de données trop complexe et les produits de collecticiel?
Le point n'est pas cette complexité == mauvaise, c'est cette complexité inutile == mauvaise. J'ai travaillé dans des installations d'entreprise massives où certaines d'entre elles étaient nécessaires, mais même dans la plupart des cas, quelques scripts maison et une simple interface Web suffisent pour résoudre la plupart des cas d'utilisation.
J'essaierais de remplacer toutes ces applications d'entreprise par des cadres Web simples, des bases de données open source et des constructions de programmation triviales.
2) Les n années d'expérience requises:
À moins que vous n'ayez besoin d'un consultant ou d'un technicien pour gérer un problème spécifique lié à une application, une API ou un framework, alors vous n'avez pas vraiment besoin de quelqu'un avec 5 ans d'expérience dans cette application. Ce dont vous avez besoin, c'est d'un développeur / administrateur qui peut lire la documentation, qui possède des connaissances de domaine dans tout ce que vous faites et qui peut apprendre rapidement. Si vous avez besoin de développer dans une sorte de langage, un développeur décent le prendra en moins de 2 mois. Si vous avez besoin d'un administrateur pour le serveur Web X, en deux jours, il devrait avoir lu les pages de manuel et les groupes de discussion et être à jour. Rien de moins et cette personne ne vaut pas son salaire.
3) Le cursus commun "informatique":
La majorité des diplômes en informatique et en génie logiciel sont des taureaux. Si votre premier langage de programmation est Java ou C #, alors vous faites quelque chose de mal. Si vous n'obtenez pas plusieurs cours d'algèbre et de mathématiques, c'est faux. Si vous ne vous plongez pas dans la programmation fonctionnelle, elle est incomplète. Si vous ne pouvez pas appliquer des invariants de boucle à une boucle triviale pour, vous ne valez pas votre sel en tant que supposé informaticien. Si vous sortez avec une expérience dans les langages x et y et l'orientation des objets, c'est plein de s ***. Un véritable informaticien voit un langage en termes de concepts et de syntaxes qu'il utilise, et voit les méthodologies de programmation comme une parmi d'autres, et a une si bonne compréhension des philosophies sous-jacentes des deux que le choix de nouveaux langages, méthodes de conception ou langages de spécification devrait être trivial.