Welche Rolle spielt „Sprachkulturgeschichte“ bei einer Plattform?


15

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?


Ist es ein Tag von C # gegen VB.NET?

@ DeveloperArt- Das ist nicht meine Absicht. Tatsächlich war die Frage, die ich hatte, interessant, da der Artikel heute sehr veraltet zu sein scheint, aber das Konzept könnte sich retten. Der Artikel lässt es scheinen, als wären C # -Entwickler alle Genies. Ich bin einer, also weiß ich aus erster Hand, dass wir alle genauso schlampig sein können, wenn die Stimmung zuschlägt.
Morgan Herlocker

1
@Developer Art: Ich habe diesen Artikel erst gestern gelesen, und ich bin mir ziemlich sicher, dass es ein Link war, der hier in einer Antwort gepostet wurde, der mich dazu geführt hat. Vielleicht hat es auch Prof Plum so getroffen - eine C # - vs. VB.NET-Frage führt zu einer anderen. :-)
Carson63000

Antworten:


8

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 :)


2
+1: Außerdem ist die Vorstellung, dass es eine VB-Kultur gibt, die Unternehmensgrenzen überschreitet, lächerlich. Wie würde sich diese Kultur erhalten? Geheime Treffen unter VB-Programmierern außerhalb der Arbeit? Eine "Gewerkschaft" oder "Gilde" von VB-Programmierern, um diese "Kultur" durchzusetzen? Ich habe 30 Jahre damit verbracht, in Hunderten von IT-Shops herumzuhüpfen, und kann sagen, dass die einzige Kultur, die ich je gesehen habe, rein lokal ist. Die Wahl der Sprache schafft nicht diese "andere" Kultur, auf die in der Frage verwiesen wird.
S.Lott

1
Interessant. Wenn Sie +1 gegeben haben, fragen Sie sich, wer die Stimmen herabgestimmt hat und warum: P
Demian Brecht

1
@S.Lott: Ich stehe dann korrigiert (muss das Nebenprodukt von Annahmen lieben;)). Mehr als einmal habe ich Abwertungen zu Themen wie diesen erhalten, ohne wirklich Feedback zu erhalten, was manchmal wertvoll sein kann und mir Informationen liefert, von denen ich vorher nichts mitbekommen habe :)
Demian Brecht

1
@prof: Macht die Automatisierung einen wirklich minderwertig, oder denken Sie überlegen, weil sie verstehen, welche Verknüpfungen sie verwenden können , um die gleiche Ausgabe zu erzielen, aber effizienter? :) Natürlich ist dies eine Über-Verallgemeinerung und es ist fast unmöglich, genau zu antworten. Ich bin ein bisschen auf dem Zaun, weil Go-Codierer leidenschaftlicher sind. Sie können immer noch Menschen finden, die genauso leidenschaftlich für Fortran sind. Es würde mich jedoch glauben lassen, dass der Go-Programmierer mehr Leidenschaft für neue Technologien und Praktiken hat, was imho gut ist :)
Demian Brecht

1
@Prof Plum: "Die Wahl der Plattform / Sprache hat nichts mit der durchschnittlichen Qualität des Entwicklers zu tun". Richtig. Wie kann es anders sein? Vor allem die Kultur der Organisation ist wichtig. Google Go-Codierer - selbst - sind nur Menschen. Die Organisation beschränkt Personen auf VB oder ermutigt sie, Go zu verwenden. Menschen sind alle Menschen.
S.Lott

4

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:

Die C # -Philosophie lautet, dass es eher objektorientiert ist, modernere Redewendungen fördert und mehr Wissen erfordert, um es richtig zu machen, und daher qualitativ hochwertigere Lösungen liefern sollte. Das zieht die Leute über VB an.

Im anderen Microsoft-Camp:

Die Philosophie von VB ist, dass ich schnell und mit wenig Wissen oder Aufwand etwas bauen kann, mit dem jemand auf eine Schaltfläche klicken und etwas Nützliches und von geschäftlichem Wert tun kann, wie es funktioniert, ist nicht so wichtig. Das zieht die Leute über C # an.

Hier sind einige Zungenbrecher, die Sprachen und ihre Philosophien aufgreifen:

Perl-Leute neigen dazu, sich um das genaue Gegenteil zu kümmern.

Java-Leute legen Wert darauf, Geld zu verdienen.

JVM-Sprachen (Groovy, Scala) kümmern sich um die JMV und nicht um Java, die Sprache.

Bei allen Microsoft-spezifischen Sprachen (VB, C #, F #, verwaltetes C ++) geht es in der Regel darum, unter Windows Geld zu verdienen.

Erlang-Leute kümmern sich um Dinge, um die sich alle anderen Menschen nicht kümmern müssen, und schätzen nicht, was sie nicht wissen.

Lisp-Leute interessieren sich nicht für das, was andere für sie interessieren.

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 .


0

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


Wie überschreitet diese Kultur Unternehmensgrenzen?
S.Lott

1
@Lott Technology überschreitet fast immer kulturelle Grenzen. Es gibt große kulturelle Unterschiede zwischen verschiedenen Betriebssystembenutzern. Viele Grafikdesigner und Audioingenieure, die ich kenne, würden meinen, es sei ein Deal Breaker, zu einem Unternehmen zu gehen, das alles andere als Mac verwendet. Mac hat eine Kultur gepflegt, die besonders für diese beiden Gruppen greifbar ist. Programmiersprachen sind Tools wie Photoshop und GIMP. Es ist also nicht verwunderlich, dass sie von Kulturen umgeben sind. Wenn nicht, hätten wir keine Flammenkriege.
Morgan Herlocker

@Prof Plum: Ihre Beispiele entsprechen nicht der "Kultur", die auf Tools basiert. Ihre Beispiele sind genau das Gegenteil. Die aktuelle Kultur (Audioingenieure) wählt gängige Tools aus. Nicht, dass alle Benutzer von Logic Pro gezwungen wären, Audioingenieure zu werden, weil Logic Pro irgendwie eine Kultur schafft. Ich denke, die Beispiele in Ihrem Kommentar (gleicher Beruf -> ähnliche Werkzeuge) sind ein hervorragender Beweis dafür, dass es keine "sprachliche Kulturgeschichte" gibt. Vielmehr gibt es eine gemeinsame Use-Case-Kultur oder eine gemeinsame Arbeitskultur für Endbenutzer.
S.Lott
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.