La qualité du code développé dans chacun de ces langages est basée sur ces philosophies fondamentales et moins sur les développeurs individuels
Chaque langue a une culture autour d'elle, parce que chaque langue a été développée pour une raison par quelqu'un avec un agenda et une philosophie sous-jacente pour expliquer pourquoi sa langue allait être meilleure dans quelque chose que ce qui existait à l'époque a été créée.
Comme les religions, les langages de programmation ont tendance à attirer des gens qui ont déjà la même prédisposition aux principes de base et aux philosophies du créateur du langage.
Exemple sur la qualité perçue des solutions
Dans un camp Microsoft, vous avez:
La philosophie C # est qu'il est plus purement orienté objet, promeut des idiomes plus modernes et nécessite plus de connaissances pour le faire correctement et devrait donc fournir des solutions de meilleure qualité. C'est ce qui attire les gens vers VB.
Dans l'autre camp Microsoft:
La philosophie de VB est que je peux rapidement et avec peu de connaissances ou d'efforts créer quelque chose qui permettra à quelqu'un de cliquer sur un bouton et de faire quelque chose d'utile et de valeur commerciale, comment il le fait n'est pas si important. C'est ce qui attire les gens vers C #.
Voici quelques prises de langue et joue sur les langues et leurs philosophies:
Les gens de Perl ont tendance à se soucier de la chose exactement opposée aux gens de Python.
Les gens de Java se soucient de gagner de l'argent.
Les langages JVM (Groovy, Scala) se soucient du JMV et non du langage Java.
Tous les langages spécifiques à Microsoft (VB, C #, F #, C ++ managé) ont tendance à se soucier de gagner de l'argent sur Windows.
Les gens d'Erlang se soucient de choses dont tout le monde n'a pas besoin de se soucier et n'apprécient pas ce qu'ils ne savent pas.
Les gens de Lisp ne se soucient pas de ce que les autres pensent avoir à cœur.
Les préoccupations de ces groupes façonnent la langue, son développement et sa communauté.
Les philosophies changent avec l'expérience et les besoins
J'ai adopté ASM et BASIC parce qu'en 1983 c'était tout ce que vous aviez. Je voulais écrire des jeux et des démos, ce sont les outils pour le faire. Principalement ASM pour les démos.
J'ai adopté C puis C ++ quand c'était la seule façon d'écrire des choses comme le rendu 3D et à peu près tout ce qui était critique en termes d'espace et de temps. Ce n'était pas de l'ASM alors je l'ai appris.
J'ai adopté VB pour gagner de l'argent, c'était la chose la plus proche des environnements de développement Scala, Director et CanDo que j'avais l'habitude sur l'Amiga. Je suis d'accord avec la philosophie de développement rapide
J'ai adopté Java très tôt pour gagner de l'argent. J'ai gagné de l'argent avec VB jusqu'en 1999 et je l'ai laissé derrière quand Java 1.2 est devenu stable et mature et que le Web était pleinement opérationnel à ce moment-là, j'avais 4 ans d'expérience Java lorsque les gens ont vraiment commencé à le prendre au sérieux. Je suis d'accord avec l' écriture une fois, exécutez n'importe où, car plus mon code s'exécutait, plus il serait facile de le vendre. philosophie.
J'ai adopté Python à la fin de sa chronologie, 2005 parce qu'il grattait une démangeaison que Java n'avait pas. J'avais besoin d'écrire rapidement du code pour utiliser certaines bibliothèques qui n'étaient disponibles qu'en C et j'avais aussi besoin de faire un prototypage rapide de webservice Python était plus rapide et moins de code pour faire la même chose en Java. Quelque chose est allé à la production alors que Java certains restaient Python, beaucoup de choses ne sont jamais entrées dans la nature. Je suis d'accord avec ses batteries incluses, les philosophies idiomatiques simples ainsi que les autres.
J'ai adopté Lua quand j'avais besoin de mettre un moteur de script léger dans mes programmes C ++ et Java. C'était bien avant le support JSR233 en Java. J'ai accepté que l'intégration d'un langage de script complet et facile à utiliser soit une philosophie Lua simple.
J'ai adopté Erlang en 2006 lorsque j'ai commencé à avoir besoin d'une évolutivité massive et d'une exécution multicœur relativement indolore sur des problèmes hautement parallèles et d'une exécution multiplateforme. ** Je suis d'accord avec son absence de partage d'état, de transmission de messages et de philosophie d'état immuable. * 8
J'ai adopté Objective-C lorsque j'ai commencé à avoir besoin de créer des applications OSX et iOS. Je suis d'accord avec son ajout juste à propos de l'orientation d'objet à C pour en faire une meilleure philosophie. Aussi pour gagner plus d'argent.
J'ai adopté JavaScript officiellement en 2009 parce que j'étais d'accord avec la philosophie CouchDB et qu'il utilise JavaScript. Je n'aime toujours pas JavaScript quand je dois gérer le DOM.
Je n'ai toujours pas adopté officiellement Lisp, mais je vais finir par le faire! Je suis d'accord avec ses Ceux qui ne connaissent pas le lisp sont condamnés à réinventer sa philosophie.