Da ich ich erst kürzlich hier in der Delphipraxis schon einmal das Vorurteil zu hören bekam,
zu viel Vielseitigkeit sei problematisch - zumindest habe ich die Aussagen jeweils so interpretiert - und heute nochmal, wollte ich doch einmal fragen, wie die anderen Forenten hier insgesamt zu dem Thema stehen, siehe Titel.
Um eines vorwegzuschicken: Jeder nach seiner Façon!
Es geht hier also nicht darum ein allumfassendes und auf alle Entwickler anwendbares Dogma zu finden, jedoch empfand ich Aussagen als ... nunja, pointiert.
Zitat 1:
Als "Zwitter" der x Tools nutzt wird es natürlich schwieriger zu verargumentieren.
Wäre evtl. beser mal einige der "Nebenschauplätze" zu beenden und z.B. alles in eine
IDE zu entwickeln die man "sonst auch" nutzt.
Zitat 2:
Außerdem soll es doch ein Qualitätsmerkmal eines guten Entwicklers sein, auf 100 Hochzeiten zu tanzen...sagt man mir immer wieder, dann nicke ich weise und mach weiter nur meine zwei bis drei Hochzeiten auf Delphi/Win und Python/Linux.
In meiner Replik auf Bernhard habe ich schon einige Punkte aus meiner Sicht thematisiert. Eine weitere Replik seinerseits gab es nicht und das Thema ist ohnehin geschlossen worden.
Mein Standpunkt ist:
Jede neu erlernte (Programmier-)Sprache, eröffnet dir einen neuen Blick auf die (Software-)Welt.
Und in der Tat kann das Reinschnuppern in Erlang, Io, Lisp, Ruby, Rust o.ä. einen gewissen Lerneffekt für die bereits "gemeisterten" Programmiersprachen bedeuten. Ich empfehle wärmstens die beiden Bücher von Bruce A. Tate (Seven Languages in Seven Weeks, Seven More Languages in Seven Weeks).
Man sollte aber wissen wie viel genug ist - zumindest zur gleichen Zeit. Ich habe bspw. schon mit vielen "weiteren" Programmiersprachen geliebäugelt, aber erst bei Rust steige ich jetzt gerade wieder voll ein. Meines Erachtens nach reicht es eine Sprache - so wie Tate es mit den Büchern versucht - erst einmal soweit zu lernen, daß man deren Vorzüge und Nachteile kennt. Kurzum: daß man deren idealen Einsatzzweck einschätzen kann und "weiß was es 'da draußen' so gibt". Wenn ich dann irgendwann vor einem Problem stehe und weiß, daß es da diese oder jene Sprache (oder Werkzeug) gibt, dann bin ich halt in der Lage nicht jedes Problem als sprichwörtlichen Nagel zu behandeln. Meine Kenntnisse vertiefen kann ich
dann noch immer.
Außerdem rosten (Programmier-)Sprachkenntnisse, wie auch bei natürlichen Sprachen, ein. Bspw. hatte ich einst mit MIPS, PPC und SPARC-Assembler zu tun, müßte mich da aber erst wieder mit vertraut machen. Bei Delphi, Perl oder PHP ist es ganz ähnlich und VBA werde ich mal lieber aus dem Lebenslauf streichen (schon weil ich keinen Bock drauf hab
).
Und dann sind da ja noch weitere Dimensionen (bei C#, Java oder Python ist das recht kraß) wie die Standardbibliotheken oder auch Bibliotheken und Frameworks allgemein. Und nur weil du total der Checker mit STL-Containern oder IOStreams bist, magst du von Programmierung rund um SUS/POSIX nicht viel Ahnung haben. Und dennoch kannst du C++ "gemeistert" haben (soweit das eben geht). Des weiteren kommen noch Betriebssysteme, Bare Metal usw. hinzu ...
Und ja, es gibt sicher einige Leute, die sich schon als Berater zum Thema
SQL verdingen wenn sie eine Suchmaschine bedienen können (man sieht's ja häufig an der Tiefe der Fragen). Ein Kumpel und ehemaliger Kollege hat das mal sehr schön auf den Punkt gebracht. Er fragte mich wie gut ich
SQL "könne". Habe ihm dann halt erzählt was ich bei
MySQL (bzw. MariaDB) und SQLite3 schon gemacht habe, daß ich aber nun wirklich keine tiefergehenden Kenntnisse (stored procedures, Optimierung) habe. Darauf meinte er: "Da hast du wahrscheinlich mehr Ahnung als so mancher Berater (consultant)".
Klar, vielleicht sind einige der Probleme über die ich in meiner Karriere gestolpert bin auch eher esoterischer Natur. Aber was nützt mir halt die geile
IDE auf meinem lokalen Rechner, wenn der Kunde mir nur per "Bildschirm teilen" Zugriff auf ein Terminal mit einer
SSH-Verbindung zum Endgerät (Server, Kühlschrank, Meßsonde ...) gibt und ich dort allenfalls vi und gdb vorfinde? Da sitzt man dann in der Telko vor der lokal installierten
IDE ... und dann? Oder ich debugge auf dem System eines Kunden und habe - aus einleuchtenden Gründen - keine Debugsymbole. Oder oder oder ...
Und bei der Windows-Treiberentwicklung war man jahrelang damit konfrontiert daß es keine Integration in Visual Studio gab, wenn man die von Microsoft "vorgeschriebenen" Werkzeuge verwendete (
DDK/WDK). Daraus entstand ja mein DDKWizard und Projekte von anderen wie VisualDDK. Apropos Treiber: da verbietet sich Delphi schon aus mehreren Gründen als Implementierungssprache (und ja, die entsprechenden Prototypen sind mir bekannt).
Die Vielseitigkeit habe ich ja über Jahre aufgebaut und nicht alles gleichzeitig gemacht. Dennoch habe ich das Gefühl von diesen Erfahrungen zu zehren und kann eingeschlafenes Wissen schnell reaktivieren, wenn es benötigt wird (erst unlängst mit Delphithemen geschehen).
Wie viel Vielseitigkeit ist also zuviel? Was meint ihr?