Ich stolperte vor kurzem accross dieseArtikel von vor ein paar Jahren. Es wird argumentiert, dass signifikante Unterschiede in der Kultur um VB und C #, nicht die tatsächlichen Unterschiede in der Sprache, dazu beitragen, dass C # -Codierer im Allgemeinen talentierter sind als VB-Codierer. Offensichtlich hat das viele Flammenkriege ausgelöst und die Frage, ob C # oder VB die Dümmer sind, wird nie beantwortet. Abgesehen davon behaupten die Autoren, dass die Kultur, die eine bestimmte Plattform umgibt, zur Qualität des Teams beiträgt, dennoch plausibel sein könnte. Obwohl Java derzeit effizienter ist, um Apps zu entwickeln, dürfte ein Team von Google Go-Entwicklern im Durchschnitt überdurchschnittlich gut sein als ein Team von Java-Entwicklern ein Super-Early-Adopter und ein Frontier-Hacking-Whiz zu sein. Also, auf den Punkt gebracht,Wie wirkt sich die Kultur auf der einen oder anderen Plattform auf die Qualität des durchschnittlichen Entwicklers auf dieser Plattform aus, wenn überhaupt?
quelle
Antworten:
Wirklich interessante Frage. Meine persönliche Meinung ist, dass es eine ist, die viel zu oft gefragt wird und wirklich überhaupt kein Wasser enthält.
Drehbuchkinder (und Firmen, die sie einstellen) lassen sich von der Sprache ihrer Wahl ihren Status unter den "Programmierern" vorschreiben. Gute Ingenieure sollten sich nicht weniger für die Sprache ihrer Wahl interessieren, sondern sich darauf konzentrieren, die gegebenen Probleme auf die bestmögliche Weise zu lösen (offensichtlich ist optimal eine allgemeine Aussage und kann auf viele verschiedene Faktoren angewendet werden). Ob dies C #, VB, C ++, Python oder handgeschriebene Assemblierung ist, spielt keine Rolle, da die Verwendung dieser Technologie einen klaren Vorteil für die Lösung des Problems hat.
Kurz gesagt, ich denke, es ist wertvoller, die Komplexität der Probleme zu betrachten, die man regelmäßig löst, als die Sprache, mit der sie gelöst werden.
Nur meine zwei Cent zum Thema :)
quelle
Die Qualität des in jeder dieser Sprachen entwickelten Codes basiert auf diesen grundlegenden Philosophien und weniger auf den einzelnen Entwicklern
Jede Sprache hat eine Kultur, weil jede Sprache aus einem Grund von jemandem mit einer Agenda und einer Philosophie entwickelt wurde, warum ihre Sprache in etwas besser sein würde als das, was zu der Zeit existierte, wurde erschaffen.
Wie Religionen ziehen auch Programmiersprachen Menschen an, die bereits die gleiche Veranlagung zu den Grundprinzipien und -philosophien des Sprachschöpfers haben.
Beispiel für die wahrgenommene Qualität von Lösungen
In einem Microsoft-Camp haben Sie:
Im anderen Microsoft-Camp:
Hier sind einige Zungenbrecher, die Sprachen und ihre Philosophien aufgreifen:
Was diesen Gruppen wichtig ist, prägt die Sprache, ihre Entwicklung und ihre Gemeinschaft.
Philosophien ändern sich mit Erfahrung und Bedürfnis
Ich habe ASM und BASIC übernommen, weil Sie 1983 nur so viel hatten. Ich wollte Spiele und Demos schreiben, das waren die Werkzeuge dafür. Meistens ASM für Demos.
Ich habe C und dann C ++ übernommen, als es die einzige Möglichkeit war, Dinge wie 3D-Rendering und so ziemlich alles andere zu schreiben, das räumlich und zeitlich kritisch war. Es war nicht ASM, also habe ich es gelernt.
Ich habe mich für VB entschieden, um Geld zu verdienen. Dies war die engste Verbindung zu den Entwicklungsumgebungen von Scala, Director und CanDo, die ich auf dem Amiga gewohnt war. Ich stimmte der Philosophie der schnellen Entwicklung zu
Ich habe Java frühzeitig eingeführt, um besseres Geld zu verdienen. Ich habe mit VB bis 1999 Geld verdient und es hinter mir gelassen, als Java 1.2 stabil und ausgereift wurde und das Web bis dahin voll in Gang gekommen war. Ich hatte 4 Jahre Java-Erfahrung, als die Leute anfingen, es wirklich ernst zu nehmen. Ich war einmal mit dem Schreiben einverstanden. Führen Sie das Programm so aus, dass es umso einfacher ist, es zu verkaufen, je mehr Stellen mein Code ausgeführt wird. Philosophie.
Ich habe Python erst spät im Jahr 2005 eingeführt, weil es einen Juckreiz verursacht hat, den Java nicht hatte. Ich musste schnell Code schreiben, um einige Bibliotheken zu verwenden, die nur in C verfügbar waren. Außerdem musste ich schnelles Webservice-Prototyping durchführen. Python war schneller und weniger Code, um dasselbe in Java zu tun. Etwas ging in die Produktion, als Java einige Python blieben, viele Sachen schafften es nie in die Wildnis. Ich war damit einverstanden, dass die Batterien enthalten waren, sowohl einzelne Redewendungen als auch die anderen.
Ich habe mich für Lua entschieden, als ich eine kompakte Skript-Engine in meine C ++ - und Java-Programme integrieren wollte. Dies war lange vor der JSR233-Unterstützung in Java. Ich stimmte der Einbettung einer voll funktionsfähigen Skriptsprache zu, die einfach zu bedienen ist und der einfachen Lua-Philosophie entsprechen sollte.
Ich habe Erlang im Jahr 2006 eingeführt, als ich anfing, massive Skalierbarkeit und relativ schmerzlose Multi-Core-Ausführung bei hochparallelen Problemen zu benötigen und plattformübergreifende Ausführung zu haben. ** Ich bin damit einverstanden, dass es keinen gemeinsamen Status, keine Weitergabe von Nachrichten und eine unveränderliche Statusphilosophie gibt. * 8
Ich habe Objective-C übernommen, als ich anfing, OSX- und iOS-Anwendungen zu erstellen. Ich bin damit einverstanden , dass C genau das Richtige für die Objektorientierung hinzugefügt wird, um die Philosophie zu verbessern. Auch um besseres Geld zu verdienen.
Ich habe JavaScript 2009 offiziell eingeführt, weil ich der CouchDB-Philosophie zugestimmt habe und JavaScript verwendet. Immer noch mag ich kein JavaScript, wenn ich mit dem DOM zu tun habe.
Ich habe Lisp noch nicht offiziell adoptiert, werde es aber irgendwann tun! Ich bin damit einverstanden. Diejenigen, die lisp nicht kennen, sind dazu verdammt, die Philosophie neu zu erfinden .
quelle
Eine interessante Frage. Es ist einer von denen, bei denen Sie die Antwort auf unbewusster Ebene verstehen, aber danach streben, sie in Worte zu fassen.
Es ist am besten als eine Kausalitätsschleife zu sehen.
Die Kultur ist verantwortlich für die "ethnische" Zusammensetzung der Entwickler, die von der Plattform angezogen werden. Diese Komposition wiederum definiert die Qualitäten des "durchschnittlichen" Programmierers. Die Qualität der Entwickler, die die Plattform jetzt nutzen, beeinflusst die Kultur oder ihre Wahrnehmung außerhalb der Plattform, was sich folglich auf die Entwickler auswirkt, die die Plattform betreten oder verlassen. Der Wert der "Qualität" ändert sich dadurch.
Ich habe versucht, bestimmte Regeln zu finden, aber es fällt mir schwer, sie zu verallgemeinern. Wir müssen jede Plattform separat untersuchen. Einige Beobachtungen, die ich gemacht habe:
Die Geschwindigkeit, mit der eine bestimmte Plattform entwickelt, erweitert oder verbessert wird, steht in direktem Zusammenhang mit der Qualität der Entwickler. Der ständige Fluss an neuen, glänzenden Funktionen und Werkzeugen zieht begeisterte Entwickler an (die im Durchschnitt zu qualitativ hochwertiger Arbeit fähiger sind) und stößt konservative Köpfe ab, die durch die ständigen Lernanstrengungen irritiert sind.
Die geringeren Grenzen, die eine Plattform selbst auf Kosten eines höheren Risikos bietet, sich in den Fuß zu schießen, ziehen begeisterte experimentelle Köpfe gleichermaßen an
Je komplexer die Dinge sind, die man verstehen und beherrschen muss, um die Plattform zu nutzen, umso mehr lockt erfahrene Einzelpersonen an und macht faulen Entwicklern Angst
quelle